0% found this document useful (0 votes)
39 views10 pages

Sofytware Engineering BCA

The document discusses different software engineering concepts including the waterfall model, iterative waterfall model, and spiral model. The waterfall model involves separate sequential phases while the iterative model allows feedback and improvements between phases. The spiral model is risk-driven and iterative with each loop addressing a phase of development.

Uploaded by

rabi23shankar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views10 pages

Sofytware Engineering BCA

The document discusses different software engineering concepts including the waterfall model, iterative waterfall model, and spiral model. The waterfall model involves separate sequential phases while the iterative model allows feedback and improvements between phases. The spiral model is risk-driven and iterative with each loop addressing a phase of development.

Uploaded by

rabi23shankar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Software engineering:

Software engineering is an engineering discipline that is concerned with all aspects of software
production. Software engineers should adopt a systematic and organised approach to their work and
use appropriate tools and techniques depending on the problem to be solved, the development
constraints and the resources available.

What is the difference between software engineering and system engineering?

• System engineering is concerned with all aspects of computer-based systems development


including hardware, software and process engineering. Software engineering is part of this
process concerned with developing the software infrastructure, control, applications and
databases in the system.

• System engineers are involved in system specification, architectural design, integration and
deployment.

Generic Software process Models:

• The waterfall model


-Separate and distinct phases of specification and development.
• Evolutionary development
-Specification, development and validation are interleaved.
• Component-based software engineering
-The system is assembled from existing components.
• There are many variants of these models e.g. formal development where a waterfall-like process
is used but the specification is a formal specification that is refined through several stages to an
implementable design.

What is a software process model?


• A simplified representation of a software process, presented from a specific perspective.

• Examples of process perspectives are

– Workflow perspective - sequence of activities;

– Data-flow perspective - information flow;

– Role/action perspective - who does what.

• Generic process models

– Waterfall;

– Iterative development;

– Component-based software engineering


Waterfall model problems:
• Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing
customer requirements.
• Therefore, this model is only appropriate when the requirements are well-understood and
changes will be fairly limited during the design process.
• Few business systems have stable requirements.
• The waterfall model is mostly used for large systems engineering projects where a system is
developed at several sites.
Advantages of Classical Waterfall Model:
The classical waterfall model is an idealistic model for software development. It is very simple, so it can
be considered the basis for other software development life cycle models. Below are some of the major
advantages of this SDLC model.
Easy to Understand: Classical Waterfall Model is very simple and easy to understand.
Individual Processing: Phases in the Classical Waterfall model are processed one at a time.
Properly Defined: In the classical waterfall model, each stage in the model is clearly defined.
Clear Milestones: Classical Waterfall model has very clear and well-understood milestones.
Properly Documented: Processes, actions, and results are very well documented.
Reinforces Good Habits: Classical Waterfall Model reinforces good habits like define-before-design and
design-before-code.
Working: Classical Waterfall Model works well for smaller projects and projects where requirements are
well understood.
Applications of Classical Waterfall Model
Large-scale Software Development Projects: The Waterfall Model is often used for large-scale software
development projects, where a structured and sequential approach is necessary to ensure that the
project is completed on time and within budget.
Safety-Critical Systems: The Waterfall Model is often used in the development of safety-critical systems,
such as aerospace or medical systems, where the consequences of errors or defects can be severe.
Government and Defense Projects: The Waterfall Model is also commonly used in government and
defense projects, where a rigorous and structured approach is necessary to ensure that the project
meets all requirements and is delivered on time.
Projects with well-defined Requirements: The Waterfall Model is best suited for projects with well-
defined requirements, as the sequential nature of the model requires a clear understanding of the
project objectives and scope.
Projects with Stable Requirements: The Waterfall Model is also well-suited for projects with stable
requirements, as the linear nature of the model does not allow for changes to be made once a phase has
been completed.
What is the Iterative Waterfall Model?
The Iterative Waterfall Model is a software development approach that combines the sequential steps
of the traditional Waterfall Model with the flexibility of iterative design. It allows for improvements and
changes to be made at each stage of the development process, instead of waiting until the end of the
project. The iterative waterfall model provides feedback paths from every phase to its preceding phases,
which is the main difference from the classical waterfall model.
When errors are detected at some later phase, these feedback paths allow for correcting errors
committed by programmers during some phase.

Process of Iterative Waterfall Model:


1. Requirements Gathering
This is the first stage where the business owners and developers meet to discuss the goals and
requirements of the website.
2. Design
In this stage, the developers create a preliminary design of the website based on the requirements
gathered in stage 1.
3. Implementation
In this stage, the developers begin to build the website based on the design created in stage 2.
4. Testing
Once the website has been built, it is tested to ensure that it meets the requirements and functions
properly.
5. Deployment
The website is then deployed and made live to the public.
6. Review and Improvement
After the website has been live for a while, the business owners and developers review its performance
and make any necessary improvements.
This process is repeated until the website meets the needs and goals of the business. Each iteration
builds upon the previous one, allowing for continuous improvement and iteration until the final product
is complete.

When to use Iterative Waterfall Model?


The prerequisite of being well-defined and comprehended.
The development team is gaining knowledge about new technologies.
Certain characteristics and objectives carry a significant chance of failure in the future.
Application of Iterative Waterfall Model
The essential needs are established, but as time passes, the finer points may become relevant.
Programmers have a learning curve to climb when they utilize new technology.

Advantages of Iterative Waterfall Model:


Feedback Path: In the classical waterfall model, there are no feedback paths, so there is no mechanism
for error correction. But in the iterative waterfall model feedback path from one phase to its
preceding phase allows correcting the errors that are committed and these changes are reflected in
the later phases.
Phase Containment of Errors: The principle of detecting errors as close to their points of commitment as
possible is known as Phase containment of errors.
Collaboration: Throughout each stage of the process, there is collaboration between the business
owners and developers. This ensures that the website meets the needs of the business and that any
issues or concerns are addressed in a timely manner.
Flexibility: The iterative waterfall model allows for flexibility in the development process. If changes or
new requirements arise, they can be incorporated into the next iteration of the website.
Testing and feedback: The testing stage of the process is important for identifying any issues or bugs
that need to be addressed before the website is deployed. Additionally, feedback from users or
customers can be gathered and used to improve the website in subsequent iterations.
Easy to Manage: The iterative waterfall model is easy to manage as each phase is well-defined and has a
clear set of deliverables. This makes it easier to track progress, identify issues, and manage resources.
Cost-Effective: It is highly cost-effective to change the plan or requirements in the model. Moreover, it is
best suited for agile organizations.
Drawbacks of Iterative Waterfall Model:
Difficult to incorporate change requests: The major drawback of the iterative waterfall model is that all
the requirements must be clearly stated before starting the development phase. Customers may change
requirements after some time but the iterative waterfall model does not leave any scope to incorporate
change requests that are made after the development phase starts.
Incremental delivery not supported: In the iterative waterfall model, the full software is completely
developed and tested before delivery to the customer. There is no scope for any intermediate delivery.
So, customers have to wait a long for getting the software.
Overlapping of phases not supported: Iterative waterfall model assumes that one phase can start after
completion of the previous phase, But in real projects, phases may overlap to reduce the effort and time
needed to complete the project.

What is the Spiral Model?

The Spiral Model is a Software Development Life Cycle (SDLC) model that provides a systematic and
iterative approach to software development. In its diagrammatic representation, looks like a spiral with
many loops. The exact number of loops of the spiral is unknown and can vary from project to project.
Each loop of the spiral is called a Phase of the software development process.It is based on the idea of a
spiral, with each iteration of the spiral representing a complete software development cycle,
from requirements gathering and analysis to design, implementation, testing, and maintenance.

Phases of Spiral Model?

The Spiral Model is a risk-driven model, meaning that the focus is on managing risk through multiple
iterations of the software development process. It consists of the following phases:
1. Planning
The first phase of the Spiral Model is the planning phase, where the scope of the project is determined
and a plan is created for the next iteration of the spiral.
2. Risk Analysis
In the risk analysis phase, the risks associated with the project are identified and evaluated.
3. Engineering
In the engineering phase, the software is developed based on the requirements gathered in the previous
iteration.
4. Evaluation
In the evaluation phase, the software is evaluated to determine if it meets the customer’s requirements
and if it is of high quality.
5. Planning
The next iteration of the spiral begins with a new planning phase, based on the results of the evaluation.

The functions of these four quadrants are discussed below:

Objectives 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.

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.

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.

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.
Why Spiral Model is called 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.
The spiral model incorporates the stepwise approach of the Classical Waterfall Model.
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. 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.

Advantages of the Spiral Model

Risk Handling: The projects with many unknown risks that occur as the development proceeds, in that
case, Spiral Model is the best development model to follow due to the risk analysis and risk handling at
every phase.
Good for large projects: It is recommended to use the Spiral Model in large and complex projects.
Flexibility in Requirements: Change requests in the Requirements at a later phase can be incorporated
accurately by using this model.
Customer Satisfaction: Customers can see the development of the product at the early phase of the
software development and thus, they habituated with the system by using it before completion of the
total product.
Iterative and Incremental Approach: The Spiral Model provides an iterative and incremental approach to
software development, allowing for flexibility and adaptability in response to changing requirements or
unexpected events.
Emphasis on Risk Management: The Spiral Model places a strong emphasis on risk management, which
helps to minimize the impact of uncertainty and risk on the software development process.
Improved Communication: The Spiral Model provides for regular evaluations and reviews, which can
improve communication between the customer and the development team.
Improved Quality: The Spiral Model allows for multiple iterations of the software development process,
which can result in improved software quality and reliability.

Disadvantages of the Spiral Model


Complex: The Spiral Model is much more complex than other SDLC models.
Expensive: Spiral Model is not suitable for small projects as it is expensive.
Too much dependability on Risk Analysis: The successful completion of the project is very much
dependent on Risk Analysis. Without very highly experienced experts, it is going to be a failure to
develop a project using this model.
Difficulty in time management: As the number of phases is unknown at the start of the project, time
estimation is very difficult.
Complexity: The Spiral Model can be complex, as it involves multiple iterations of the software
development process.
Time-Consuming: The Spiral Model can be time-consuming, as it requires multiple evaluations and
reviews.
Resource Intensive: The Spiral Model can be resource-intensive, as it requires a significant investment in
planning, risk analysis, and evaluations.

Evolutionary Model:
• Exploratory development
– Objective is to work with customers and to evolve a final system from an initial outline
specification. Should start with well-understood requirements and add new features as
proposed by the customer.
• Throw-away prototyping
– Objective is to understand the system requirements. Should start with poorly
understood requirements to clarify what is really needed.

Evolutionary Development:
• Problems
– Lack of process visibility;
– Systems are often poorly structured;
– Special skills (e.g. in languages for rapid prototyping) may be required.
• Applicability
– For small or medium-size interactive systems;
– For parts of large systems (e.g. the user interface);
– For short-lifetime systems.
Application of Evolutionary Model:

I. It is used in large projects where you can easily find modules for incremental implementation.
Evolutionary model is commonly used when the customer wants to start using the core features
instead of waiting for the full software.
II. Evolutionary model is also used in object oriented software development because the system
can be easily portioned into units in terms of objects.
III. Necessary Conditions for Implementing this Model
IV. Customer needs are clear and been explained in deep to the developer team.
V. There might be small changes required in separate parts but not a major change.
VI. As it requires time, so there must be some time left for the market constraints.
VII. Risk is high and continuous targets to achieve and report to customer repeatedly.
VIII. It is used when working on a technology is new and requires time to learn.

Advantages Evolutionary Model:

Adaptability to Changing Requirements: Evolutionary models work effectively in projects when the
requirements are ambiguous or change often. They support adjustments and flexibility along the course
of development.

Early and Gradual Distribution: Functional components or prototypes can be delivered early thanks to
incremental development. Faster user satisfaction and feedback may result from this.

User Commentary and Involvement: Evolutionary models place a strong emphasis on ongoing user input
and participation. This guarantees that the software offered closely matches the needs and expectations
of the user.

Improved Handling of Difficult Projects: Big, complex tasks can be effectively managed with the help of
evolutionary models. The development process is made simpler by segmenting the project into smaller,
easier-to-manage portions.

Disadvantages Evolutionary Model:

Communication Difficulties: Evolutionary models require constant cooperation and communication. The
strategy may be less effective if there are gaps in communication or if team members are spread out
geographically.

Dependence on an Expert Group: A knowledgeable and experienced group that can quickly adjust to
changes is needed for evolutionary models. Teams lacking experience may find it difficult to handle
these model’s dynamic nature.

Increasing Management Complexity: Complexity can be introduced by organizing and managing several
increments or iterations, particularly in large projects. In order to guarantee integration and
synchronization, good project management is needed.

Greater Initial Expenditure: As evolutionary models necessitate continual testing, user feedback and
prototyping, they may come with a greater starting cost. This may be a problem for projects that have
limited funding.

You might also like