KUFA UNIVERSITY Department of Computer Science
Fundamentals of Software Engineering Presented By Neamah Hassan Presented By Neamah Hassan
discusses systematic and cost – effective techniques to SW development discusses systematic and cost – effective techniques 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 products skill to participate in development of large software products learn how to effectively handle complexity in a software development problem learn how to effectively handle complexity in a software development problem
Life cycle model - describes the different activities that need to develop a (SW) and the sequencing of these activities - describes the different activities that need to develop a (SW) and the sequencing of these activities -referred as SDLC -SW Life cycle Is a series of identifiable stages that a software product undergoes during its lifetime
Adv - encourages development of SW in semantic and discipline manner - encourages development of SW in semantic and discipline manner - Produce good quality products without time and cost overruns
Documentation purpose - a common understanding to S/W engineers and helps to develop SW in semantic and discipline manner - a common understanding to S/W engineers and helps to develop SW in semantic and discipline manner - helps to identify inconsistencies, redundancies and omissions in the development process -Tailoring process become easy -Preventing the misinterpretations that occur
There are four models to design life cycle 1- waterfall model 1- waterfall model 2- prototype model 2- prototype model 3- evolutionary model 3- evolutionary model 4- spiral model 4- spiral model
waterfall model - basic model and most obvious therefore we should be understand this model well. - basic model and most obvious therefore we should be understand this model well. - not practical, cant be used in the actual S/W development project. - not practical, cant be used in the actual S/W development project. - theoretical way - theoretical way -All other models based on classical waterfall model
Cont.. -classical waterfall model divided life cycle model into phases Feasibility study -Requirements analysis and specification -Design -Coding -Testing -Maintenance
Cont.. -This model is sequential bcz execute every phase one after one -Advantage ? -Disadvantage ?
Feasibility study -Aim To determine whether it would be financially and technically feasible to develop the product -Understand the exact requirements of the customer and to document it properly -Two phase -Requirements gathering and analysis -Requirements specification -Requirements analysis and specification
Cont … Goal of Goal of Requirements gathering -Collect the relevant info related to the product -Goal of -Goal of Requirements analysis -Weed out the incompleteness and inconsistencies 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 terminology -Its important that the ( SRS ) document br reviewed and approved by the customer -Serve as contract between the customer and development team -Any feature dispute between customer and developers can be settles by examining the ( SRS ) document
Design -Transform the requirements specified in SRS document in to structure that is suitable for implementation. -Translate the S/W design into source code -Called as implementation phase Coding
Testing -Each module is unit tested -Unit tested involves ( testing each module in isolation from other module, debugging, and documenting it ) -To determine the correct working -Integration is undertaken once they have been coded and unit tested -System testing :- to unsure that the developed system conforms to its requirements laid out in the SRS document
Cont… There are three different kinds of System testing There are three different kinds of System testing 1-alpha testing The system performed by development team The system performed by development team 2- B testing the system testing performed by a friendly set of customers the system testing performed by a friendly set of customers 3 – Acceptance testing the system testing performed by customer him self 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 Evolutionary model Spiral model