software engineering paradigms
TRANSCRIPT
-
8/3/2019 Software Engineering Paradigms
1/23
Software Engineering
Paradigms
What happens in the life of software
-
8/3/2019 Software Engineering Paradigms
2/23
Software Engineering
Layers
22
a quality focus
process model
methods
tools
-
8/3/2019 Software Engineering Paradigms
3/23
The Primary Goal:
High Quality
33
Remember:
High quality = project timeliness
Why?
Less rework!
-
8/3/2019 Software Engineering Paradigms
4/23
Classic Life Cycle\Waterfall Model
44
SystemEngineering
Analysis
Design
Code
Testing
Maintenance
-
8/3/2019 Software Engineering Paradigms
5/23
Waterfall Model
CharacteristicsThe classic life cycle - oldest and most widelyused paradigm
Activities flow from one phase to anotherIf there are corrections, return to a previousphase and flow from there again
Major advantages: Good for planning and well-defined/repeated projects
55
-
8/3/2019 Software Engineering Paradigms
6/23
Problems of Waterfall
ModelReal projects often follow the sequenceAll requirements may not be stated
explicitly by customerCustomer only sees the results aftersome time
Developers are often delayed atcertain phases
66
-
8/3/2019 Software Engineering Paradigms
7/23
Prototyping Model
77
Stop
Requirementsgathering and
refinement
Buildingprototype
Quickdesign
Customerevaluation
Refiningprototype
Engineerproduct
Start
listento
customer
build/revisemock-up
customertest-drivesmock-up
-
8/3/2019 Software Engineering Paradigms
8/23
Prototyping Model
CharacteristicsDeveloper and customer determineobjectives and draft requirements
Prototype quickly produced and
evaluated by customer
Prototype then refined, and re-evaluated
Process iterated, before final productdevelopment
Advantages: Customer participation andbetter requirements
88
-
8/3/2019 Software Engineering Paradigms
9/23
Problems of Prototyping
ModelProblem 1: Customer may seeprototype as working model andexpects fast results
Problem 2: Developer compromisedwhen producing prototype quickly, e.g.different operating system or
programming language
99
-
8/3/2019 Software Engineering Paradigms
10/23
-
8/3/2019 Software Engineering Paradigms
11/23
Six Task Region
Spiral Model
11
-
8/3/2019 Software Engineering Paradigms
12/23
Customer Communication-tasksrequired to establish effectivecommunication between developer andcustomer.
12
-
8/3/2019 Software Engineering Paradigms
13/23
Planning-tasks required to defineresources, timelines, and other projectrelated information.
13
-
8/3/2019 Software Engineering Paradigms
14/23
Risk analysis-tasks required to assessboth technical and management risks
14
-
8/3/2019 Software Engineering Paradigms
15/23
Engineering-Tasks required to build oneor more representations of the application
15
-
8/3/2019 Software Engineering Paradigms
16/23
Construction & Release-Tasksrequired to construct, test, install andprovide user support (e.g., documentationand training)
16
-
8/3/2019 Software Engineering Paradigms
17/23
Customer Evaluation-Tasks required toobtain customer feedback based onevaluation of the software representationscreated during the engineering stage and
implementation during the installation stage 17
-
8/3/2019 Software Engineering Paradigms
18/23
Spiral Model
CharacteristicsOriginally proposed by Boehm, couplesiterative nature of prototyping and thesystematic aspects of waterfall model
Software is developed in series ofincremental releases
Each iteration produces a more complete
productBetter management through risk analysis
18
-
8/3/2019 Software Engineering Paradigms
19/23
Problems of Spiral Model
May be difficult to convince customersthat evolution is controllable
Demands risk assessment expertise -major risk will cause problems if notidentified
Relatively new and not widely used -cannot determine performance
19
-
8/3/2019 Software Engineering Paradigms
20/23
Fourth GenerationTechniques (4GT)
20
-
8/3/2019 Software Engineering Paradigms
21/23
4GT Characteristics
Use of software tools that allowsoftware engineer to specify s/wcharacteristics at higher level
The tools generate codes based onspecification
More time in design and testing -
increase productivity
Tools may not be easy to use, codesgenerated may not be efficient
21
-
8/3/2019 Software Engineering Paradigms
22/23
Conclusion
The paradigm used for development ofsoftware depends on a number of factors
People - staff & users
Software productTools available
Environment
Existing models makes development processclearer, but they can be evolved to becomenew paradigms
22
-
8/3/2019 Software Engineering Paradigms
23/23
References
Software Engineering: A PractitionersApproach 5th Ed. by Roger S.Pressman, Mc-Graw-Hill, 2001
Software Engineering by IanSommerville, Addison-Wesley, 2001
23