

















































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
This is first lecture of software engineering course .you will be able to understand each concept very clearly.
Typology: Cheat Sheet
1 / 57
This page cannot be seen from the preview
Don't miss anything!


















































Classical waterfall model divides life cycle into phases: feasibility study, requirements analysis and specification, design, coding and unit testing, integration and system testing, maintenance.
Feasibility Study Req. Analysis Design Coding Testing Maintenance
(CONT.) Most organizations usually define: entry and exit criteria for every phase. They also prescribe specific methodologies for: specification, design, testing, project management, etc.
Main aim of feasibility study:determine whether developing the product financially worthwhile technically feasible. First roughly understand what the customer wants: different data which would be input to the system, processing needed on these data, output data to be produced by the system, various constraints on the behavior of the system.
Perform a cost/benefit analysis: to determine which solution is the best. you may determine that none of the solutions is feasible due to: high cost, resource constraints, technical reasons.
understand the exact requirements of the customer, document them properly.
requirements gathering and analysis requirements specification.
usually collected from the end- users through interviews and discussions. For example, for a business accounting software: interview all the accountants of the organization to find out their requirements.
Identify all the functions to be performed. Identify data flow among the functions. Decompose each function recursively into sub-functions. Identify data flow among the subfunctions as well.
High-level design: decompose the system into modules, represent relationships among the modules. Detailed design: different modules designed in greater detail: data structures and algorithms for each module are designed.
First identify various objects (real world entities) occurring in the problem: identify the relationships among the objects. For example, the objects in a pay-roll software may be: employees, managers, pay-roll register, Departments, etc.