SE Unit 1 V 2
SE Unit 1 V 2
Design Phase:
SRS document send forward to the design phase.
Design phase handled by UI & UX team.
All gathered requirements are converted into suitable design.
It defines overall software architecture together with high level and detailed design.
High level design includes Algorithm, Flow charts, Decision Tree, Database design etc.
Low level design includes Rough paper design, User interface components etc.
Also finalized programming languages, Database, Hardware and other software requirements.
All this work is documented as a Software Design Document (SDD).
Development Phase:
In this phase software design is translated into source code, by using any suitable programming
language.
The developer first develops the small programs called units / modules after that integrated it.
Unit test is done in every phase, to check whether each module is working properly or not.
Testing Phase:
In this phase, Tester perform all the testing activities to make sue that the system meets the client
requirements or not.
After combining all the unit modules, Integration testing is done for any faults and failures.
In case of any Bugs, report it.
It generates the Test cases & Test reports.
Deployment:
The product is deployed in the client environment or released into the market.
Maintenance Phase:
In maintenance phase, there are some issues which come up in the client environment.
To fix those issues, patches are released.
Also, to enhance the product some better versions are released.
Maintenance is done to deliver these changes in the client environment.
Disadvantages:
1) High amount of risk and uncertainty
2) Error can be fixed only during the phase.
3) Not suitable for the projects where requirements are changing.
4) It becomes very difficult to move back to the phase.
5) Not a good model for complex and object-oriented projects.
6) Clients valuable feedback cannot be included with ongoing development phase.
Each module goes through the requirements, analysis, design, development, testing,
implementation, testing and deployment phases.
Every subsequent release of the module adds function to the previous release.
The process continues until the complete project achieved.
Testing Phase:
In this testing phase, Tester check the performance of each existing function as well as additional
functionality as per the client requirements or not.
There are many test methods, but the most common are White Box, Black Box and Grey Box test
methods.
Implementation:
Implementation phase enables the coding phase of the development system. It involves the final
coding that design in the designing and development phase and tests the functionality in the testing
phase. After completion of this phase, the number of the product working is enhanced and upgraded
up to the final system product
Spiral Model:
1) Introduction to Spiral Model
2) Phases of Spiral Model
3) When to use Spiral Model
4) Advantages of Spiral Model
5) Disadvantages of 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.
1. The exact number of phases needed to develop the product can be varied by the project
manager depending upon the project risks.
2. As the project manager dynamically determines the number of phases, the project manager
has an important role in developing a product using the spiral model.
3. It is based on the idea of a spiral, with each iteration of the spiral representing a complete
software development cycle, from requirements gathering, analysis, design,
implementation, testing, and maintenance.
2) Risk Analysis
Identification of all the potential risks
Risk mitigation strategy is planned for solving risks.
Design a prototype of the model.
4) Customer Evolution
In the evaluation phase, the software is evaluated to determine if it meets the customer’s
requirements and if it is of high quality.
Take feedback from the client.
If client want any changes, goes to next planning OR next spiral iteration.
A specialized process model in software engineering is a customized approach that addresses the
specific requirements, challenges, and constraints of a particular type of software project or
industry.
The components-based development model makes use of various characteristic of spiral model.
This model is evolutionary in nature. That means the necessary changes can be made in the software
during each iteration of software development cycle.
Before beginning the modelling and construction activity of software development the candidate
component must be searched and analysed. The components can be simple function or can be
object-oriented classes or methods.
Identify the component-based products and analyse them for fitting in the existing application
domain.
The formal methods model offers defect-free software. However, there are some drawbacks of this
model which resists it form getting used widely. These drawbacks are.
The formal methods model is time consuming and expensive. For using this model, the developers
need the strong mathematical background or some extensive training. If this model is chosen for
development then the communication with customer becomes very difficult.
Programmers need to keep in mind all the things that need to be done, how to deal with each issue,
the problems associated with them and the correct execution. Due to these concerns there are
chances of appearing serious problems during application development and maintenance. The
coding process for realizing a concern becomes very critical.
This a flexible and iterative approach to developing software. It focuses on creating working
software increments, collaborating with team members, and adapting to changes. It is based on the
Unified Modelling Language (UML) and is characterized by its use of use cases to drive development,
its focus on architecture-centric development, and its emphasis on risk management and
incremental delivery. UP is a flexible and adaptable process that can be tailored to meet the specific
needs of a project or organization, making it a popular choice for many software development teams
Key Principles of Unified Process
Iterative and Incremental: Unified Process divides the development process into multiple iterations,
with each iteration adding new functionality incrementally.
Use Case Driven: The use case-driven approach focuses on identifying the key interactions and
scenarios that a user will have with a system
The Unified Process focuses on identifying and prioritizing use cases that represent the system’s
functionality from the user’s perspective.
Architecture-Centric: The Unified Process emphasizes defining and refining the system architecture
throughout the development process.
Risk Management: Unified Process identifies and manages project risks proactively to minimize their
impact on the project’s success.
Continuous Validation: Unified Process ensures continuous validation of the system’s requirements,
design, and implementation through reviews, testing, and feedback.
Inception
The main goal of this phase involves delimiting the project scope. This is where we define why we
are making this product in the first place. It should have the following:
What are the key features?
How does this benefit the customers?
Which methodology will we follow?
What are the risks involved in executing the project?
Schedule and cost estimates.
Elaboration
In this phase, the project requirements are analysed in more detail, and the architecture of the
system is defined. Key activities include developing use cases, creating the architectural baseline,
identifying key components, and refining the project plan. The goal of this phase is to mitigate major
risks and establish a solid architectural foundation for the project.
Construction
This is the phase where the actual implementation of the system takes place. Key activities include
developing, testing, and integrating the system components, as well as continuously verifying that
the system meets the requirements. The goal of this phase is to build a complete, high-quality
software product that is ready for deployment.
Transition
This phase involves the deployment, multiple iterations, beta releases, and improvements of the
software. The users will test the software, which may raise potential issues. The development team
will then fix those errors.
The Software Engineering Institute (SEI) has developed a comprehensive model predicated
on a set of software engineering capabilities that should be present as organizations reach
different levels of process maturity. To determine an organization’s current state of process
maturity, the SEI uses an assessment that results in a five-point grading scheme.
The grading scheme determines compliance with a capability maturity model (CMM) [PAU93]
that defines key activities required at different levels of process maturity. The SEI approach
provides a measure of the global effectiveness of a company's software engineering practices
and establishes five process maturity levels that are defined in the following manner:
Level 1: Initial. The software process is characterized as ad hoc and occasionally even chaotic.
Few processes are defined, and success depends on individual effort.
Level 2: Repeatable. Basic project management processes are established to track cost,
schedule, and functionality. The necessary process discipline is in place to repeat earlier
successes on projects with similar applications.
Level 3: Defined. The software process for both management and engineering activities is
documented, standardized, and integrated into an organization wide software process. All
projects use a documented and approved version of the organization's process for developing
and supporting software. This level includes all characteristics defined for level 2.
Level 4: Managed. Detailed measures of the software process and product quality are
collected. Both the software process and products are quantitatively understood and
controlled using detailed measures. This level includes all characteristics defined for level 3.
Level 5: Optimizing. Continuous process improvement is enabled by quantitative feedback
from the process and from testing innovative ideas and technologies. This level includes all
characteristics defined for level 4.
The five levels defined by the SEI were derived as a consequence of evaluating responses to
the SEI assessment questionnaire that is based on the CMM. The results of the questionnaire
are distilled to a single numerical grade that provides an indication of an organization's
process maturity.