Chapter 5 - Introduction To Software Engineering Notes
Chapter 5 - Introduction To Software Engineering Notes
Modern day software are large and complex, handles large amount of data.
In most cases, software is not delivered on time or did not conform to the specifications provided by Customer.
1. Requirement specification
- Requirements are gathered.
- Estimating Project costs, risks and schedule.
2. Analysis and System Design
- Design the overall software architecture.
- Identifying fundamental software system components and their relationships.
3. Implementation and unit testing
- Software design is realised as a set of software components through programming, coding and documentation.
- Each component tested along with its development.
4. Integration and System testing
- components are integrated and tested as a complete system.
5. Operation and Maintenance
- System is delivered and deployed for the client.
- The real and practical use of the software system begins.
Component-based Model
Component/Software component – It is a software element that confirms to a software model and can be independently
deployed and composed without modification according to a composition standard.
- Component-based software development model is a software development process that develops software systems by
selecting appropriate off-the-shelf components and then assembles them with a well-defined software architecture.
- It is based on idea of incorporating and reuse existing software components in current software development if feasible
and possible.
Various phases in this model are:
1. Requirement Specification: the basic software specifications (not full specifications) for the new system are
determined.
2. Component Analysis: From the available software-components pool or library, a search is made for the
components that can implement specification as per specifications decided for the new system.
If a component meets a specification partly (say about 60-70%), the components may be used.
3. Requirements modification: The software requirements are re-analysed using information about the available
reusable components.
4. System design with reuse:
Two activities:
(i) System design after taking into account the reusable component available.
(ii) If no reusable components are available, the new software (components) may have to be designed.
5. Development and integration:
- The fresh development of the software components takes place for which no reusable components were
found.
- Then the freshly developed software components and the reusable systems are integrated to create the
new system.
Delivery Models
Why delivery models needed?
(a) Changing environment and conditions result in changes in system requirements (e.g. growth in user base)
(b) Policies and management priorities may change.
(c) Technological advancement may lead to forced changes.
Delivery models is not just about delivery, but it is about development process that delivers iteratively along with
software development.
Two important delivery models: (i) Incremental delivery model (ii) Spiral development model
1. It generates working software quickly. Customers do not have to wait until the entire system is delivered.
2. It is easier to test and debug during a smaller iteration.
3. It cost less to change scope and requirements.
4. There is a lower risk of overall project failure as tested increments are added.
5. Easier to manage risk because risky pieces are identified and handled first of all.
1. After each software increment is added with the system, the integration testing to test the system working as
a whole, is carried out, which increases the testing-load.
2. If all requirements are not clearly identified and not aptly prioritised, it may lead to major problems in overall
system architecture.
The Spiral Model
- It combines the iterative nature of prototyping with the systematic approach of waterfall model.
- Software is developed in a series of incremental release, where in early stage, prototypes are used and in later
iterations, it becomes a more complete version of the product.
- In this model, the sequence of activities takes place with some backtracking from one activity to another, just like
a spiral – and hence the name.
- Most suitable for large, complex and expensive software systems.
- The following activities are carried out during each phase of spiral mode l:
(i) Objective setting (First Quadrant) – The objective of the phase are determined and associated risks are
examined.
(ii) Risk Assessment and Reduction (Second Quadrant) – Detailed Analysis of the risk that determined in previous
phase. This phase is also responsible for risk reduction.
(iii) Development and Validation (Third Quadrant) – This phase is for the development and validation of the
next level of the product after resolving the identified risks.
(iv) Review and Planning (Fourth Quadrant) – During this phase, the results achieved so far are reviewed with
the customer. And the planning for the next iteration also takes place.
*****************