Professional Documents
Culture Documents
Chapter 0
Software Engineering
Yousuf Hotak
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
• What is software?
• Software crisis.
• Exploratory style.
What is software???
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Why software???
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
What is software???
Why software???
• IEEE Definition:
• Software Engineering is the application of a systematic, disciplined,
quantifiable قــابـلاـندازـهـ ګ یرـیapproach to the development, operation and
maintenance of software.
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Software Crisis
• Software mostly:
• Fail to meet user requirement. (What user requires is not made.)
Software Crisis
Standish Group Report on software
Successful
28%
Delayed or cost
overrun
49%
Cancelled
23%
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
• Larger problems.
Fix
Do Until Done
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Software Services
Software
Maintenance
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
• Waterfall
• V Model
• Evolutionary Traditional Models
• Prototyping
• Spiral Model
• Agile Models
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Retire Specify
Maintain Design
Deliver Code
Test
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Feasibility Study
Requirement
Analysis
Design
Coding
Testing
Maintenance
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Requirement
Design
Coding
Test
Maintenance
0 10 20 30 40 50 60 70
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Feasibility Study
Requirement
Analysis
Design
Coding
Testing
Maintenance
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Feasibility Study
Feasibility Dimensions:
• Economic Feasibility:
• The software must be economically feasible. Also called cost/benefit feasibility.
• Schedule Feasibility:
• The timing of delivery must be determined as well.
• Technical Feasibility:
• The team members must be technically expert.
• Like, If we need a connection of satellite in our program, someone must be able to
connect it to us.
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Feasibility Study
Requirement
Analysis
Design
Coding
Testing
Maintenance
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Feasibility Study
Requirement
Analysis
Design
Coding
Testing
Maintenance
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Design
• During Design phase requirements specification is
transformed into:
• A form, suitable for implementation in some programming
language.
Feasibility Study
Requirement
Analysis
Design
Coding
Testing
Maintenance
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Coding
• During this phase:
• Each module of the design is coded.
• Each module is tested.
• Each module is documented.
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Feasibility Study
Requirement
Analysis
Design
Coding
Testing
Maintenance
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Testing
• During coding modules are also tested.
• In this phase:
• Different modules are integrated to check weather they interact
with each other.
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Testing
• In this phase:
• Firstly, partially integrated system is tested called unit testing.
M1 M2 M3
Testing
• In this phase:
System Testing
• After all modules have been successfully integrated and
tested:
• System Testing is carried out.
Feasibility Study
Requirement
Analysis
Design
Coding
Testing
Maintenance
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Maintenance
• Once the system testing is complete:
• The software is delivered to customer and maintenance phase is
started.
• If any bug is reported from customer the software engineers fix it.
• This phase continues for quite long time.
• This phase takes 60/100% of software development effort.
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Types of Maintenance
• Corrective maintenance:
• Bugs might be reported.
• To correct them corrective maintenance is needed.
• Perfective Maintenance:
• New functionalities might be needed to bring.
• To enhance new functionalities perfective maintenance is needed.
• Adaptive Maintenance:
• The software might need to work with new hardware.
• To do that adaptive maintenance is needed.
• Like, new server, new computer or new operating system etc.
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Waterfall Model
• Classical waterfall model is very simple:
• Once one stage is complete the second stage starts just like natural
waterfall.
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Waterfall Model
• But what if:
• There is a design error which was discovered during testing?
• The later the phase in which the defect/error gets detected, the
more expensive is its removal. WHY?
• We need to rework the result of many phases.
• Like, change requirement, change code, change design and test again.
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Feasibility Study
Requirement
Analysis
Design
Coding
Testing
Maintenance
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Waterfall Model
• The later the error is detected the expansive it is:
• Errors should be detected in same phase:
• For example:
• If a design problem is detected in design phase itself,
• The problem can be taken care of much more easily.
• Than say if it is identified at the end of system testing phase.
• Reason?
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Waterfall Model
• Reason?
• Rework must be carried out not only to the design but also to the
code and test phases.
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Waterfall Model
• Iterative waterfall model is by far the most widely used
model.
• Almost every other model is derived from the waterfall model.
• Why?
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
Waterfall Model
• When to use waterfall model?
• Requirements are well known and stable.
• Technology to make is understood.
• Experienced development team is available.
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
• Waterfall
• V Model
• Evolutionary Traditional Models
• Prototyping
• Spiral Model
• Agile Models
Department
HEWAD University of Computing & Technology هیــــواد پوهنــتون کمپیوتر ساینس پوهنځ ی
In this Chapter
• What is software?
• Software crisis.
• Exploratory style.
End of Chapter 0
Any Questions???