UNIT1 Software Engineering1
UNIT1 Software Engineering1
ENGINEERING:
Engineering is the application of scientific and practical knowledge to invent,
design, build, maintain, and improve frameworks, processes, etc.
SOFTWARE ENGINEERING
Software Engineering is the process of designing, developing, testing, and
maintaining software. It is a systematic and disciplined approach to software
development that aims to create high-quality, reliable, and maintainable
software.
2. S O F T W A R E C O M PO N E NTS
Components in software are like building blocks that make up a program. Each
component has a specific job and works together with other components to
create a complete system.
Program
Operating
Documentation Procedures
• Program (Code) – The actual set of instructions written in a programming
language that executes tasks.
Example: A web application’s backend code.
• Documentation – Manuals, guides, and code comments that explain the
software’s functionality and usage.
Example: API documentation for developers.
• Operating Procedures – Guidelines for installing, running, and
maintaining the software.
Example: IT policies for software updates.
4. Software Crisis
Software Crisis is a term used in computer science for the difficulty of writing
useful and efficient computer programs in the required time. The software
crisis was due to using the same workforce, same methods, and same tools even
though rapidly increasing software demand, the complexity of software,
and software challenges. With the increase in software complexity, many
software problems arose because existing methods were insufficient.
Both follow a
Coding, debugging, Designing,prototyping,
Development systematic
testing, and manufacturing, and
Process development
deployment. construction.
approach.
Low (only High (materials like Both require
Material Costs computing resources steel, concrete, resources for
required). electronics). development.
Easy to update and Changes are costly and Both may require
Modification &
modify (patches, time-consuming after modifications over
Flexibility
upgrades). production. time.
The SDLC Model involves six phases or stages while developing any software.
Stage-1: Planning and Requirement Analysis
Planning is a crucial step in everything, just as in software development. In this same stage,
requirement analysis is also performed by the developers of the organization. This is
obtained from customer inputs, and sales department/market surveys.
The information from this analysis forms the building blocks of a basic project. The quality
of the project is a result of planning. Thus, in this stage, the basic project is designed with
all the available information.
Stage-1 : Planning and Requirement Analysis
Stage-2: Defining Requirements
In this stage, all the requirements for the target software are specified. These requirements
get approval from customers, market analysts, and stakeholders.
This is fulfilled by utilizing SRS (Software Requirement Specification). This is a sort of
document that specifies all those things that need to be defined and created during the
entire project cycle.
Stage 4: Development
Stage-5: Product Testing and Integration
After the development of the product, testing of the software is necessary to ensure its
smooth execution. Although, minimal testing is conducted at every stage of SDLC.
Therefore, at this stage, all the probable flaws are tracked, fixed, and retested. This ensures
that the product confronts the quality requirements of SRS.
Documentation, Training, and Support: Software documentation is an essential part of
the software development life cycle. A well-written document acts as a tool and means to
the information repository necessary to know about software processes, functions, and
maintenance. Documentation also provides information about how to use the product.
Stage 5: Testing
Stage-6: Deployment and Maintenance of Products
After detailed testing, the conclusive product is released in phases as per the organization’s
strategy. Then it is tested in a real industrial environment. It is important to ensure its
smooth performance. If it performs well, the organization sends out the product as a whole.
After retrieving beneficial feedback, the company releases it as it is or with auxiliary
improvements to make it further helpful for the customers. However, this alone is not
enough. Therefore, along with the deployment, the product’s supervision.
Prototyping Model-Concept
In this process model, the system is partially implemented before or during the analysis
phase thereby allowing the customers to see the product early in the life cycle. The process
starts by interviewing the customers and developing the incomplete high-level paper
model. This document is used to build the initial prototype supporting only the basic
functionality as desired by the customer. Once the customer figures out the problems, the
prototype is further refined to eliminate them. The process continues until the user
approves the prototype and finds the working model to be satisfactory.
Steps of Prototyping Model
Step 1: Requirement Gathering and Analysis: This is the initial step in designing a
prototype model. In this phase, users are asked about what they expect or what they want
from the system.
Step 2: Quick Design: This is the second step in the Prototyping Model. This model covers
the basic design of the requirement through which a quick overview can be easily
described.
Step 3: Build a Prototype: This step helps in building an actual prototype from the
knowledge gained from prototype design.
Step 4: Initial User Evaluation: This step describes the preliminary testing where the
investigation of the performance model occurs, as the customer will tell the strengths and
weaknesses of the design, which was sent to the developer.
Step 5: Refining Prototype: If any feedback is given by the user, then improving the
client’s response to feedback and suggestions, the final system is approved.
Step 6: Implement Product and Maintain: This is the final step in the phase of the
Prototyping Model where the final system is tested and distributed to production, where
the program is run regularly to prevent failures.
Each phase of the Spiral Model is divided into four quadrants as shown in the above
figure. The functions of these four quadrants are discussed below:
1. Objective determination and identify alternative solutions: Requirements
are gathered from the customers and the objectives are identified, elaborated,
and analyzed at the start of every phase. Then alternative solutions possible
for the phase are proposed in this quadrant.
2. Identify and resolve Risks: During the second quadrant, all the possible
solutions are evaluated to select the best possible solution. Then the risks
associated with that solution are identified and the risks are resolved using the
best possible strategy. At the end of this quadrant, the Prototype is built for
the best possible solution.
3. Develop the next version of the Product: During the third quadrant, the
identified features are developed and verified through testing. At the end of
the third quadrant, the next version of the software is available.
4. Review and plan for the next Phase: In the fourth quadrant, the Customers
evaluate the so-far developed version of the software. In the end, planning for
the next phase is started.
Risk Handling in Spiral Model
A risk is any adverse situation that might affect the successful completion of a software
project. The most important feature of the spiral model is handling these unknown risks
after the project has started. Such risk resolutions are easier done by developing a
prototype.
1. The spiral model supports coping with risks by providing the scope to build a
prototype at every phase of software development.
2. The Prototyping Model also supports risk handling, but the risks must be
identified completely before the start of the development work of the project.
3. But in real life, project risk may occur after the development work starts, in
that case, we cannot use the Prototyping Model.
4. In each phase of the Spiral Model, the features of the product are dated and
analyzed, and the risks at that point in time are identified and are resolved
through prototyping.
5. Thus, this model is much more flexible compared to other SDLC models.
Why is the Spiral Model called the Meta Model?
The Spiral model is called a Meta-Model because it subsumes all the other SDLC models.
For example, a single loop spiral actually represents the Iterative Waterfall Model.
1. The spiral model incorporates the stepwise approach of the Classical Waterfall
Model.
2. The spiral model uses the approach of the Prototyping Model by building a
prototype at the start of each phase as a risk-handling technique.
3. Also, the spiral model can be considered as supporting the Evolutionary
model – the iterations along the spiral can be considered as evolutionary levels
through which the complete system is built.
Life-
Cycle of Iterative Enhancement Model
The Iterative Enhancement Model creates an environment where development teams can
more effectively adjust to changing requirements by segmenting the software
development process into smaller, more manageable parts. Every iteration improves on
the one before it, adding new features and fixing problems found in earlier stages.
Members of the team, stakeholders and end users are encouraged to collaborate and
communicate continuously to make sure the software meets changing needs and
expectations. Until the software is finished being built, the iteration process is carried out,
which involves giving the user the increments.
Advantages of Iterative Enhancement Model
● Adaptation to changing requirements is made possible by its flexibility in
accommodating modifications and improvement during each iteration.
● Early software iterations provide clients with functional portions of the
product, facilitating prompt feedback and validation.
● Problems and risks can be identified and addressed early in the development
process, reducing chances of issue for future stages.
● Feedback and constant client involvement are encouraged to make sure the
finished product lives up to user expectations.
● Every iteration is put through testing and improvement, leading to higher
quality products.
Disadvantages of Iterative Enhancement Model
● Especially in larger projects, managing several iterations at once can add
complexity.
● Higher cost
● Due to constant changes, there may be delays in documentation, making it
more difficult to maintain comprehensive documentation.
● Continuous customer engagement may not be possible in all scenarios, which
impacts the effectiveness of the model.
Specific use cases where this model proves beneficial include:
1. Mobile app development: Updates and improvements are often needed for
mobile apps to stay current with new devices, operating system versions and
user preferences. By using an iterative process developers can release the beta
versions of their apps, get user feedback and then improve functionality of
those iterations in future release.
2. Web Application Development: The requirements for developing web
applications frequently change as a result of shifting user demand and
advancements in technology. The Iterative Enhancement Model makes it
possible to develop features incrementally and guarantee that the application
can be modified to satisfy changing user and market demands. In later
iterations it also makes it easier to incorporate new features based on input
from users.
3. E-commerce Platforms: Development in the e-commerce field often
involves constant updates. Implementing an iterative approach enables the
introduction of new functionality.
When to use the Iterative Model?
1. When requirements are defined clearly and easy to understand.
LONG QUESTIONS
1. Explain Software Quality Attributes in detail. 2023
2. Explain SDLC. Also discuss various activities during SDLC. 2023
3. Illustrate the statement “Software engineering is layered technology”. 2022
4. Explain prototyping model of SDLC. What are its advantages over conventional
model? Explain with diagram. 2022
5. Discuss Spiral Model for Software development life cycle and highlight the Risk
analysis in this context. 2022
6. What is the need of SDLC? Discuss evolutionary development model in detail with
the help of diagram. 2021
7. Explain iterative waterfall and spiral model for software life cycle and discuss various
activities in each phase. 2018
8. List several software process paradigms. Explain how both waterfall model and
prototyping model can be accommodated in the spiral process model.
2018
9. Which is more important-the product or process? Justify your answer. 2018
10. Explain Spiral Model? Also write it’s advantages and disadvantages. 2017
11. Explain different phases of SDLC. 2017
12. Explain Iterative Enhancement Model. Write its advantages and disadvantages. 2017
13. Explain software development life cycle. Discuss various activities during SDLC.
2016
14. What are the characteristics of a software process? 2016
15. Define the following: (i) Water fall Model (ii) Spiral Model 2016