Professional Documents
Culture Documents
Lesson - 8
Software Engineering
Concepts
Summer 2009
1
What is software?
2
Importance of Software
3
What is software engineering?
4
What is the difference between software
engineering and computer science?
5
What is the difference between software
engineering and system engineering?
• System engineering is concerned with all aspects of computer-
based systems development including hardware, software and
process engineering.
6
What is a software process?
7
What are software engineering methods?
8
What is CASE (Computer-Aided Software
Engineering)
Software systems which are intended to provide
automated support for software process activities,
such as requirements analysis, system modelling,
debugging and testing
• Upper-CASE
– Tools to support the early process
activities of requirements and design
• Lower-CASE
– Tools to support later activities such as
programming, debugging and testing
9
What are the attributes of good software?
10
What are the key challenges facing
Software Engineering?
• Heterogeneity
– Developing techniques for building software that can cope with
heterogeneous platforms and execution environments;
• Delivery
– Developing techniques that lead to faster delivery of software;
• Trust
– Developing techniques that demonstrate that software can be
trusted by its users.
– Reliable, Secured and Safe.
11
Generic Software Process Models
• A simplified representation of a software process,
presented from a specific perspective
12
Engineering Example
Building a house:
•Land and finances System Feasibility
•garden, garage, you are used to age wine, Software Plans and Requirements
enjoy to sit by the fireplace, lots of storage,
don’t like Bauhaus
•Architect will define number of floors and Product Design
rooms, orientation of the driveway, size of the
garage …
Detailed Design
•type of bricks, color of the walls,…
Code
•Construction
•Entering Integration (Product Verification)
13
The Waterfall Model
System Feasibility Validation
Plans +
Validation
Requirements
Product
Integration
Verification
Plans +
Validation
Requirements
Product
Integration
Verification
Operation +
Revalidation
Maintenance
15
Review of Waterfall Model
Weaknesses:
– Usually requirements change, are incomplete
or even not known
– Communication ! (…see Mars Orbiter…)
Result: ‘That’s not what I meant !’ ( go back to
last step )
Product
Integration
Verification
Operation +
Revalidation
Maintenance
17
Evolutionary Process Model
Concurr ent
activities
Initial
Specification
version
Outline Intermediate
Development
description versions
Final
Validation
version
18
Process Model Problem
• Waterfall
– High risk for new systems because of specification and
design problems.
– Low risk for well-understood developments using familiar
technology.
• Prototyping
– 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.
19
Spiral Process Model
Determine objectives
Evaluate alternatives
alternatives and identify, resolve risks
constraints Risk
analysis
Risk
analysis
Risk
analysis Opera-
Prototype 3 tional
Prototype 2 protoype
Risk
REVIEW analy sis Proto-
type 1
Requirements plan Simulations, models, benchmarks
Life-cycle plan Concept of
Operation S/W
requirements Product
design Detailed
Requirement design
Development
plan validation Code
Design Unit test
Integration
and test plan V&V Integr ation
Plan next phase test
Acceptance
Service test Develop, verify
next-level product
20
Spiral Model Advantages
21
Spiral Model Problems
22
The Human Factor
Programmer‘s view:
• Some (holy) lines of code
• A technical challenge
• A pet
• ... Programmer
User
SOFTWARE
Customer Designer
23
The Human Factor
User‘s view:
• A miracle
• A wonderful tool making things easier
• An incombprehensible tool
Usercomplicating life Programmer
unnecessarilly
• Something that simply should work !
SOFTWARE
Customer Designer
24
The Human Factor
User Programmer
SOFTWARE
Customer Designer
Customer‘s view:
• A hopefully affordable tool to enhance profit.
25
The Human Factor
User Programmer
SOFTWARE
27
Question???
28