Software Engineering

Download Report

Transcript Software Engineering

Software Engineering
• Software Engineering is the science and art of
building significant software systems that are:
1) on time
2) on budget
3) with acceptable performance
4) with correct operation.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)
Software Engineering, 6th edition. Chapters 1,3
Slide 1
Software Engineering




The economies of all developed nations are
dependent on software.
More and more systems are software controlled.
Software engineering is concerned with theories,
methods and tools for professional software
development.
Software engineering expenditure represents a
significant fraction of the GNP of developed
countries.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)
Software Engineering, 6th edition. Chapters 1,3
Slide 2
Software Costs



Software costs often dominate system costs. The
costs of software on a PC are often greater than
the hardware cost.
Software costs more to maintain than it does to
develop.
Software engineering is concerned with costeffective software development.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)
Software Engineering, 6th edition. Chapters 1,3
Slide 3
Software Products

Generic products:
–

Stand-alone systems which are produced by a development
organization and sold on the open market to any customer.
Customized products:
–
Systems which are commissioned by a specific customer and
developed specially by some contractor.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)
Software Engineering, 6th edition. Chapters 1,3
Slide 4
Software Product Attributes




Maintainability
Dependability
Efficiency
Usability
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)
Software Engineering, 6th edition. Chapters 1,3
Slide 5
Importance of Product Characteristics


The relative importance of these characteristics
depends on the product and the environment in
which it is to be used.
In some cases, some attributes may dominate
–

In safety-critical real-time systems, key attributes may be
dependability and efficiency.
Costs tend to rise exponentially if very high
levels of any one attribute are required.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)
Software Engineering, 6th edition. Chapters 1,3
Slide 6
Efficiency Costs
Cost
Ef ficiency
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)
Software Engineering, 6th edition. Chapters 1,3
Slide 7
The Software Process

Structured set of activities required to develop a
software system
–
–
–
–


Specification
Design
Validation
Evolution
Activities vary depending on the organization
and the type of system being developed.
Must be explicitly modeled if it is to be
managed.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)
Software Engineering, 6th edition. Chapters 1,3
Slide 8
Engineering Process Model






Specification: Set out the requirements and
constraints on the system.
Design: Produce a model of the system.
Manufacture: Build the system.
Test: Check the system meets the required
specifications.
Install: Deliver the system to the customer and
ensure it is operational.
Maintain: Repair faults in the system as they
are discovered.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)
Software Engineering, 6th edition. Chapters 1,3
Slide 9
Software Engineering is Different




Normally, specifications are incomplete.
Very blurred distinction between specification,
design and manufacture.
No physical realization of the system for testing.
Software does not wear out - maintenance
does not mean component replacement.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)
Software Engineering, 6th edition. Chapters 1,3
Slide 10
Generic Software Process Models

Waterfall
–

Evolutionary
–

Specification and development are interleaved
Formal Transformation
–

Separate and distinct phases of specification and development
A mathematical system model is formally transformed to an
implementation
Reuse-based
–
The system is assembled from existing components
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)
Software Engineering, 6th edition. Chapters 1,3
Slide 11
Waterfall Process Model
Requirements
definition
System and
software design
Implementation
and unit testing
Integr ation and
system testing
Operation and
maintenance
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)
Software Engineering, 6th edition. Chapters 1,3
Slide 12
Evolutionary Process Model
Concurr ent
activities
Outline
description
Specification
Initial
version
Development
Intermediate
versions
Validation
Final
version
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)
Software Engineering, 6th edition. Chapters 1,3
Slide 13
Process Model Problems

Waterfall
–
–

Prototyping
–
–

High risk for new systems because of specification and
design problems.
Low risk for well-understood developments using familiar
technology.
Low risk for new applications because specification and
program stay in step.
High risk because of lack of process visibility.
Transformational
–
High risk because of need for advanced technology and
staff skills.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)
Software Engineering, 6th edition. Chapters 1,3
Slide 14
Hybrid Process Models




Large systems are usually made up of several
sub-systems.
The same process model need not be used for
all subsystems.
Prototyping for high-risk specifications.
Waterfall model for well-understood
developments.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)
Software Engineering, 6th edition. Chapters 1,3
Slide 15
Spiral Process Model
Determine ob jectiv es
alternatives and
cons traints
Risk
analys is
Ev aluate altern atives
id en tify, resolve risk s
Risk
analys is
Risk
analys is
REVIEW
Requirements plan
Life-cycle plan
Develop ment
plan
Plan next p has e
Integration
and test p lan
Prototyp e 3
Prototyp e 2
Operational
protoyp e
Risk
analysis Prototy pe 1
Simulations, models, b en ch marks
Concept o f
Operation
S/W
requirements
Requirement
valid ation
Prod uct
design
Detailed
design
Code
Unit tes t
Design
V&V
Integr ation
test
Accep tance
test
Develop, v erify
Serv ice
next-level p rod uct
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)
Software Engineering, 6th edition. Chapters 1,3
Slide 16
Spiral Model Advantages





Focuses attention on reuse options.
Focuses attention on early error elimination.
Puts quality objectives up front.
Integrates development and maintenance.
Provides a framework for hardware/software
development.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)
Software Engineering, 6th edition. Chapters 1,3
Slide 17
Spiral Model Problems


Contractual development often specifies
process model and deliverables in advance.
Requires risk assessment expertise.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)
Software Engineering, 6th edition. Chapters 1,3
Slide 18
Process Visibility


Software systems are intangible so managers
need documents to assess progress.
Waterfall model is still the most widely used
model.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)
Software Engineering, 6th edition. Chapters 1,3
Slide 19
Waterfall Model Documents
Acti vi ty
Requirements analysis
Requirements definition
System specification
Architectural design
Interface design
Detailed design
Coding
Unit testing
Module testing
Integration testing
System testing
Acceptance testing
Output documents
Feasibility study, Outline requirements
Requirements document
Functional specification, Acceptance test plan
Draft user manual
Architectural specification, System test plan
Interface specification, Integration test plan
Design specification, Unit test plan
Program code
Unit test report
Module test report
Integration test report, Final user manual
System test report
Final system plus documentation
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)
Software Engineering, 6th edition. Chapters 1,3
Slide 20
Process Model Visibility
Process model
Waterfall model
Evolutionary
development
Formal
transformations
Reuse-oriented
development
Spiral model
Process visibility
Good visibil ity, each activity prod uces some
deliverable
Poor visibili ty, uneconomic to
produce
documents during rapid iteration
Good visibil ity, documents mus t be produced
from each phase for the process to continue
Moderate vis ibility, it may be artificial
to
produce documents describing reuse
and
reusable components.
Good visibil ity, each segment and each ring
of the spiral should produce some document.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)
Software Engineering, 6th edition. Chapters 1,3
Slide 21
Professional Responsibility


Software engineers should not just be concerned
with technical considerations. They have wider
ethical, social and professional responsibilities.
No clear rights and wrongs about many of these
issues:
–
–
Development of military systems
Whistle blowing
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)
Software Engineering, 6th edition. Chapters 1,3
Slide 22
Ethical Issues




Confidentiality
Competence
Intellectual property rights
Computer misuse
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)
Software Engineering, 6th edition. Chapters 1,3
Slide 23