KUFA UNIVERSITY
Department ofComputer Science
Fundamentals of Software Engineering
Presented ByPresented ByNeamah HassanNeamah Hassan
Presented ByPresented ByNeamah HassanNeamah Hassan
discusses systematic and cost – effective techniques discusses systematic and cost – effective techniques to SW development to SW development
Software Engineering approach to develop sw
Software Engineering
Goals of study Goals of study Software Engineering
skill to participate in development of large software skill to participate in development of large software products products
learn how to effectively handle complexity in a learn how to effectively handle complexity in a software development problem software development problem
Life cycle modelLife cycle model
- describes the different activities that need to - describes the different activities that need to develop a (SW) and the develop a (SW) and the sequencing sequencing of these of these activities activities
- referred as referred as SDLCSDLC
- SW SW Life cycle Life cycle
Is a series of identifiable stages that a software Is a series of identifiable stages that a software product undergoes during its lifetime product undergoes during its lifetime
AdvAdv
- encourages development of SW in semantic and - encourages development of SW in semantic and discipline manner discipline manner
- Produce good quality products without time and cost - Produce good quality products without time and cost overruns overruns
Documentation purposeDocumentation purpose
- a common understanding to S/W engineers and - a common understanding to S/W engineers and helps to develop SW in semantic and discipline helps to develop SW in semantic and discipline manner manner
- helps to identify inconsistencies , redundancies and - helps to identify inconsistencies , redundancies and omissions in the development process omissions in the development process
- Tailoring process become easy Tailoring process become easy
- Preventing the misinterpretations that occurPreventing the misinterpretations that occur
There are four models to design life cycleThere are four models to design life cycle
1- waterfall model1- waterfall model
2- prototype model 2- prototype model
3- evolutionary model 3- evolutionary model
4- spiral model 4- spiral model
waterfall modelwaterfall model
- basic model and most obvious therefore we should - basic model and most obvious therefore we should be understand this model well . be understand this model well .
- not practical , cant be used in the actual S/W - not practical , cant be used in the actual S/W development project . development project .
- theoretical way - theoretical way
- All other models based on classical All other models based on classical waterfall modelwaterfall model
Cont..Cont..
- classical waterfall model divided life cycle model classical waterfall model divided life cycle model into phases into phases
Feasibility study Feasibility study
- Requirements analysis and specification Requirements analysis and specification
- Design Design
- CodingCoding
- TestingTesting
- MaintenanceMaintenance
Cont..Cont..
- This model is sequential bcz execute every phase This model is sequential bcz execute every phase one after one one after one
- Advantage ? Advantage ?
- Disadvantage ? Disadvantage ?
Feasibility study Feasibility study
- Aim Aim
To determine whether it would be financially and To determine whether it would be financially and technically feasible to develop the product technically feasible to develop the product
- Understand the exact requirements of the Understand the exact requirements of the customer and to document it properly customer and to document it properly
- Two phase Two phase
- Requirements gathering and analysis
- Requirements specification
- Requirements analysis and specification
Cont … Cont …
Goal of Goal of Requirements gathering
-Collect the relevant info related to the product Collect the relevant info related to the product
-Goal of Goal of Requirements analysis
-Weed out the Weed out the incompletenessincompleteness and and inconsistenciesinconsistencies
In these In these Requirements
- Requirements specification
Customer Customer Requirements are organized into software requirement specification ( SRS ) document.
Content of ( SRS )
1- function Requirements
2- non – function 2- non – function Requirements
( SRS )
- ( SRS ) document is written using end user ( SRS ) document is written using end user terminology terminology
- Its important that the ( SRS ) document br Its important that the ( SRS ) document br reviewed and approved by the customer reviewed and approved by the customer
- Serve as contract between the customer and Serve as contract between the customer and development team development team
- Any feature dispute between customer and Any feature dispute between customer and developers can be settles by examining the ( SRS ) developers can be settles by examining the ( SRS ) document document
Design
- Transform the requirements specified in SRS Transform the requirements specified in SRS document in to structure that is suitable for document in to structure that is suitable for implementation.implementation.
- Translate the S/W design into source code Translate the S/W design into source code
- Called as implementation phase Called as implementation phase
Coding
Testing
- Each module is unit tested Each module is unit tested
- Unit tested involves Unit tested involves ( testing each module in ( testing each module in isolation from other module , isolation from other module , debugging, and debugging, and documenting it documenting it ) )
- To determine the correct working To determine the correct working
- Integration Integration is undertaken once they have been is undertaken once they have been coded and unit tested coded and unit tested
- System testing :- System testing :- to unsure that the developed to unsure that the developed system conforms to its requirements laid out in the system conforms to its requirements laid out in the SRS document SRS document
Cont…
There are three different kinds of System testingThere are three different kinds of System testing
1-alpha testing 1-alpha testing
The system performed by development teamThe system performed by development team
2- B testing 2- B testing
the system testing performed by a friendly set of the system testing performed by a friendly set of customers customers
3 – Acceptance testing 3 – Acceptance testing
the system testing performed by customer him self the system testing performed by customer him self after the product delivery after the product delivery
Maintenance
There are three different kinds of There are three different kinds of Maintenance
1- corrective 1- corrective Maintenance
Involves correcting errors that were not discovered during product development phase
2- perfective Maintenance
Involve improving the implementation of system and enhancing the functionalities of system according to customer requirements
3- adaptive Maintenance
Porting the S/W work in to new environment
NEXT LECTURE
Prototype model Prototype model
Evolutionary model Evolutionary model
Spiral model Spiral model