Академический Документы
Профессиональный Документы
Культура Документы
CH1.1 CH1.2
CH1.3 CH1.4
1
FAQs about software engineering What is software?
What are the costs of software engineering? Computer programs and associated documentation
What are software engineering methods? Software products may be developed for a particular
customer or may be developed for a general market
What is CASE (Computer-Aided Software
g g)
Engineering) Software products may be
Generic
G i - developed
d l d to be b soldld to a range off
What are the attributes of good software?
different customers
What are the key challenges facing software
Custom - developed for a single customer
engineering? according to their specification
CH1.5 CH1.6
CH1.7 CH1.8
2
What is Software Engineering What is Software Engineering - Contd.
Software Engineering is the application of science and
mathematics to make computers useful to people via Software Engineering is the technological and
software. What does Engineering means: managerial discipline concerned with systematic
Builds real systems production and maintenance of software products
Seeks to meet the needs of customers that aree developed
p andd modified
f on time andd within
Faces cost and schedule limits cost estimates.
Uses systematic methods
Exploits standard designs Software Engineering is needed most for large
complex systems.
CH1.9 CH1.10
12
CH1.11 CH1.12
3
What is the difference between software What is a software process?
engineering and computer science? A set of activities whose goal is the development or
evolution of software
Generic activities in all software processes are:
Computer science is concerned with theory and
Specification - what the system should do and its
fundamentals; software engineering is concerned with
development constraints
the practicalities of developing and delivering useful
Development - production of the software system
software
Validation - checking that the software is what the
Computer science theories are currently insufficient to
act as a complete underpinning for software customer wants
engineering Evolution - changing the software in response to
changing demands
CH1.13 CH1.14
16
CH1.15 CH1.16
4
Cost of Correction What are the costs of software engineering?
CH1.17 CH1.18
CH1.19 CH1.20
5
What are the attributes of good software? What are the key challenges facing software
engineering?
The software should deliver the required functionality and
performance to the user and should be maintainable,
dependable and usable Coping with legacy systems, coping with increasing diversity
Maintainability and coping with demands for reduced delivery times
Software must evolve to meet changing needs Legacy systems
Dependability Old,
Old valuable systems must be maintained and updated
Software must be trustworthy Heterogeneity
Efficiency Systems are distributed and include a mix of hardware and
Software should not make wasteful use of system resources software
Usability Delivery
Software must be usable by the users for which it was designed
There is increasing pressure for faster delivery of software
CH1.21 CH1.22
Confidentiality
Engineers should normally respect the
Software engineering involves wider responsibilities confidentiality of their employers or clients
than simply the application of technical skills irrespective of whether or not a formal
Software
So twa e eengineers
g ee s must
ust be
behave
ave in aan honest
o est aand
d confidentiality agreement has been signed.
signed
ethically responsible way if they are to be respected as Competence
professionals Engineers should not misrepresent their level of
Ethical behaviour is more than simply upholding the competence. They should not knowingly accept
law. work which is outside their competence.
CH1.23 CH1.24
6
Issues of professional responsibility Outlines Of the Lectures:
CH1.25 CH1.26
CH1.27 CH1.28
7
Evolution of Computer Systems Evolution of Operating Systems
Vacuum-tube based
Batch processing
Transistor based
Time sharing
IC based
Multiprogramming
VLSI based
Multi-tasking
Non-Von Neuman Computing Systems
Multi-processing
CH1.29 CH1.30
9Errors in the existing design or Locate the parts of the system documents affected by the
implementation change.
CH1.31 CH1.32
8
Importance of Software Evolution Areas of Concern in Software
Development
Despite 50 years of progress, the software •Self discipline is a badly-needed trait.
industry remains years - perhaps decades - •Software problems became orders of magnitude
short of the mature engineering discipline larger.
•Range of applications widened greatly.
needed to meet the demands of an
•The size of resulting programs is greatly inflated.
information-age society.
•Great willingness to make changes in specifications.
•Programmers are seldom restrained in changing
-Scientific American, September 1994 issue programs.
“Software Chronic Crisis” by W. Gibbs •Can the software be “engineered” indeed?
-- R.W. Hamming in his Foreword in the Journal of Systms Integration, Volume 6, Numbers 1/2, March 1996.
CH1.33 CH1.34
CH1.35 CH1.36
9
Evolution is not just another name for Software evolution occurs throughout
maintenance the life cycle
It includes :
•Software evolution includes : specification-based development
incremental/phased development
•responses to requirements changes requirements prototyping
improvements to performance or clarity
•improvements version and configuration control
•repairs of bugs on-line documentation
testing code generation etc.
•and the overall organization of the
development process It captures dynamic aspects of software
development
CH1.37 CH1.38
CH1.39 CH1.40
10
Prototyping - Contd. Prototyping - Contd.
Initial Goals
Problems
Analysis The purpose of a computer-aided prototyping
Requirements systems are to :
Prototype
Performance •Aid the designer in constructing and evaluating a
New Prototyping Demo User
pprototype.
yp
G l
Goals
Modularization •Provide an execution, debugging and monitoring
Validated Requirements capability.
Implementation
CH1.41 CH1.42
Delivery and
Maintenance
CH1.43 CH1.44
11
Software Lifecycle of Waterfall Model Software Lifecycle of Waterfall Model
Requirements Analysis and Specification Coding and Module Testing
What is the Problem to Solve? Writing Code to Meet Component/Module Design
What Does Customer Need/Want? Specifications
Interactions Between SE and Customer Individual Test Modules in Isolation
Identify and Document System Requirements Drivers and Stubs to Simulate Behavior
Generate User Manuals and Test Plans Integration and System Testing
Design and Specification Integration
i off Components/Modules
C / d l intoi Subsystems
S b
How is the Problem to be Solved? Integration of Subsystems into Final Program
Transition to Detailed Design Bug Fixes and Version Releases Over Time
CH1.45 CH1.46
CH1.47 CH1.48
12
CH1.49 CH1.50
Evolutionary Model
CH1.51 CH1.52
13
Evolutionary Model - Contd. Evolutionary Model - Contd.
Deliver something to the real user
The development begins by analyzing an increment at
Measure the added value to the user in all critical the requirements level. Each increment is then
dimensions. designed, coded and tested, integrated and delivered.
Adjust both the design and the objectives based on the A prototype serves the purpose of a starting point.
observed realities.
The overall process is thus a sequence of mini-
Disciple must be retained throughout the evolution waterfall processes.
process
CH1.53 CH1.54
CH1.55 CH1.56
14
CH1.57 CH1.58
Risks are potentially adverse circumstances that may The spiral model is cyclic in nature.
impair the development process and the quality of
products. Each cycle of the spiral consists of four stages - and
each stage
g is represented
p by
y one qquadrant of the
Risk management is a discipline whose objectives Cartesian diagram.
are to identify, address and eliminate software risk
items before they become either threats to successful The radius of the spiral represents the cost
software operation or a major source of expensive accumulated so far in the process and the angular
software rework. dimension represents the progress in the process.
CH1.59 CH1.60
15
Spiral Model - Contd. Spiral Model - Contd.
Stage-1 identifies the objectives of the portion of the Stage-3 consists of developing and verifying the next
product under consideration - in terms of qualities to level in product development process. In less
achieve. It also identifies alternatives - whether to buy, understood end-user applications, this step may again
design or reuse any software - and the constraints on the be evolutionaryy in nature.
application of the alternatives.
Stage-4 consists of reviewing the results of the stages
Stage-2 evaluates the alternatives - identifies the traversed so far and planning for the next iteration of
potential risk areas and deals with them. Risk the spiral, if any.
assessment may require prototyping and/or simulation.
CH1.61 CH1.62
CH1.63 CH1.64
16
CH1.65 CH1.66
CH1.67 CH1.68
17
CH1.69 CH1.70
CH1.71 CH1.72
18
Jackson’s System Development
JSD suggests a technique that represents a mixture of
descriptive approaches based on object-oriented design
and functional decomposition.
CH1.73 CH1.74
CH1.75 CH1.76
19
Jackson’s System Development - Contd. Jackson’s System Development - Contd.
In the network stage, the entire system is a network of In the implementation stage, the network of processes is
interconnected and communicating processes - described transformed into an implementation.
by a system specification network (SSN)
The concurrent network of processes may have to be
transformed into a sequential system, if the implementation
P A Q P’
A’
Q’ platform is sequential.
CH1.77 CH1.78
Introduction
Software Evolution
Software Life Cycles
Requirement Specification and Analysis
Software Design Issues : DFD , UML
Requirement
q Coding Specification
p
g & Testingg
Project Planning, Risk Management and
&
Estimation Technique
Software Quality Management
Analysis
Discussions & Quiz/Examinations
CH1.79 CH1.80
20