Software Engineering [Quick Revision]
Introduction to Software Engineering
Software Engineering is a systematic approach to the design, development, operation, and maintenance of a software system.
Dual Role of Software:
- As a product
- As a vehicle for delivering a product
Objectives of Software Engineering:
- Maintainability
- Correctness
- Re-usability
- Testability
- Reliability
- Portability
- Adaptability
Product vs Software Product
Classification of Software
On the basis of application:
- System Software
- Network and Web Application Software
- Embedded Software
- Reservation Software
- Business Software
- Entertainment Software
- Artificial intelligence Software
- Scientific Software
- Utilities Software
- Document Management Software
On the Basis of Copyright
- Commercial
- Shareware
- Free ware
- Public Domain
Software Development Models and Architecture
- Classic Waterfall Model
2. Iterative Waterfall Model
3. Spiral Model
4. Incremental Process Model
4. Rapid Application Development Model (RAD)
5. Agile Development
The Agile model was primarily designed to help a project to adapt to change requests quickly. So, the main aim of the Agile model is to facilitate quick project completion. To accomplish this task agility is required. Agility is achieved by fitting the process to the project, removing activities that may not be essential for a specific project. Also, anything that is wastage of time and effort is avoided
A few Agile SDLC models are given below:
- Crystal -
- Atern
- Feature-driven development
- Scrum
- Extreme programming (XP)
- Lean development
- Unified process
Agile model is the combination of iterative and incremental process models. Steps involve in agile SDLC models are:
- Requirement gathering
- Requirement Analysis
- Design
- Coding
- Unit testing
- Acceptance testing