0% found this document useful (0 votes)
25 views

Week 1 Introduction

This document provides an introduction to software engineering. It defines software as computer programs, data structures, and documentation. It describes software engineering as an engineering discipline concerned with all aspects of software production. The key activities in software engineering are software specification, development, validation, and evolution. It also lists different types of software applications and discusses challenges in software engineering.

Uploaded by

Zain Ahmed
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views

Week 1 Introduction

This document provides an introduction to software engineering. It defines software as computer programs, data structures, and documentation. It describes software engineering as an engineering discipline concerned with all aspects of software production. The key activities in software engineering are software specification, development, validation, and evolution. It also lists different types of software applications and discusses challenges in software engineering.

Uploaded by

Zain Ahmed
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 15

Lecture 1- Introduction (Lecture 1)

Dr. Muhammad Ali Nizamani

22/09/2020 Chapter 1 Introduction 1


What is Software?

Software is: (1) instructions (computer programs)


that when executed provide desired features,
function, and performance; (2) data structures
that enable the programs to adequately manipulate
information and (3) documentation that describes
the operation and use of the programs.

2
What is Software?

Software is developed or engineered, it is not


manufactured in the classical sense.
Software doesn't "wear out."
Although the industry is moving toward component-
based construction, most software continues to be
custom-built.

3
What is Software?

4
Wear vs. Deterioration

increased failure
rate due to side effects
Failure
rate

change
actual curve

idealized curve

Time

5
Software Applications

 system software
 application software
 engineering/scientific
software
 embedded software
 product-line software
 WebApps (Web
applications)
 AI software

6
Software—New Categories

 Open world computing—pervasive, distributed


computing
 Ubiquitous computing—wireless networks
 Netsourcing—the Web as a computing engine
 Open source—”free” source code open to the
computing community (a blessing, but also a potential
curse!)
 Also … (see Chapter 31)
 Data mining
 Grid computing
 Cognitive machines
 Software for nanotechnologies

7
Legacy Software

Why must it change?


 software must be adapted to meet the needs
of new computing environments or
technology.
 software must be enhanced to implement new
business requirements.
 software must be extended to make it
interoperable with other more modern
systems or databases.
 software must be re-architected to make it
viable within a network environment.

8
a
Software Engineering

9
he
ce
d,
Software Engineering

10
A Layered Technology

tools

methods

process model

a “quality” focus

Software Engineering

11
Software engineering

 Software engineering is an engineering discipline that is


concerned with all aspects of software production from
the early stages of system specification through to
maintaining the system after it has gone into use.
 Engineering discipline
 Using appropriate theories and methods to solve problems
bearing in mind organizational and financial constraints.
 All aspects of software production
 Not just technical process of development. Also project
management and the development of tools, methods etc. to
support software production.

30/10/2014 Chapter 1 Introduction 12


Importance of software engineering

 More and more, individuals and society rely on advanced


software systems. We need to be able to produce
reliable and trustworthy systems economically and
quickly.
 It is usually cheaper, in the long run, to use software
engineering methods and techniques for software
systems rather than just write the programs as if it was a
personal programming project. For most types of
system, the majority of costs are the costs of changing
the software after it has gone into use.

30/10/2014 Chapter 1 Introduction 13


Frequently asked questions about software
engineering

Question Answer
What is software? Computer programs and associated documentation.
Software products may be developed for a particular
customer or may be developed for a general market.
What are the attributes of good software? Good software should deliver the required functionality
and performance to the user and should be
maintainable, dependable and usable.
What is software engineering? Software engineering is an engineering discipline that is
concerned with all aspects of software production.
What are the fundamental software Software specification, software development, software
engineering activities? validation and software evolution.
What is the difference between software Computer science focuses on theory and fundamentals;
engineering and computer science? software engineering is concerned with the practicalities
of developing and delivering useful software.
What is the difference between software System engineering is concerned with all aspects of
engineering and system engineering? computer-based systems development including
hardware, software and process engineering. Software
engineering is part of this more general process.

30/10/2014 Chapter 1 Introduction 14


Frequently asked questions about software
engineering

Question Answer
What are the key challenges facing Coping with increasing diversity, demands for reduced
software engineering? delivery times and developing trustworthy software.
What are the costs of software Roughly 60% of software costs are development costs,
engineering? 40% are testing costs. For custom software, evolution
costs often exceed development costs.
What are the best software engineering While all software projects have to be professionally
techniques and methods? managed and developed, different techniques are
appropriate for different types of system. For example,
games should always be developed using a series of
prototypes whereas safety critical control systems require
a complete and analyzable specification to be developed.
You can’t, therefore, say that one method is better than
another.
What differences has the web made to The web has led to the availability of software services
software engineering? and the possibility of developing highly distributed
service-based systems. Web-based systems
development has led to important advances in
programming languages and software reuse.

30/10/2014 Chapter 1 Introduction 15

You might also like