SE Unit - I Notes

Download as pdf or txt
Download as pdf or txt
You are on page 1of 71

CS403 SOFTWARE

ENGINEERING
Computer Science and Engineering, IV-Semester
Unit I: The Software Product and
Software Process
Software Product and Process Characteristics,
Software Process Models: Linear Sequential Model,
Prototyping Model, RAD Model, Evolutionary
Process Models like Incremental Model, Spiral
Model, Component Assembly Model, RUP and Agile
processes. Software Process customization and
improvement, CMM, Product and Process Metrics
 https://vedveethi.co.in/eNote/SE4TH/CS-
403_SE_Unit%201.htm
Some of the commonly used
software process models:
1. Linear Sequential or Waterfall Model
2. V-Model
3. Prototype Model
4. RAD Model
5. Incremental Model
6. Spiral Model
7. Agile Model
1: Waterfall Model or Linear Sequential
 The Waterfall Model is a linear and sequential software
development process.

 In this model, each phase of the software development


cycle must be completed before moving onto the next
phase.

 This model is easy to understand and implement,

 it does not account for changes and feedback during


the development process.
Cont..
 you must plan and schedule all your activities
before starting the project.

 Each activity in the waterfall model is represented


as a separate phase arranged in linear order.

 Each of these phases produces one or more


documents that need to be approved before the next
phase begins.
Phases of SDLC(System Development
Life Cycle) Waterfall Model
 It has the following phases:
1. Requirements
2. Design
3. Development & Implementation
4. Testing
5. Deployment
6. Maintenance
Cont…
Cont…
 Requirement Gathering and analysis − All possible
requirements of the system to be developed are captured in this
phase and documented in a requirement specification document.
 System Design − The requirement specifications from first
phase are studied in this phase and the system design is prepared.
This system design helps in specifying hardware and system
requirements and helps in defining the overall system
architecture.
 Development & Implementation − With inputs from the system
design, the system is first developed in small programs called
units, which are integrated in the next phase. Each unit is
developed and tested for its functionality, which is referred to as
Unit Testing.
Cont….
 Integration and Testing − All the units developed in the
implementation phase are integrated into a system after testing of
each unit. Post integration the entire system is tested for any faults
and failures.

 Deployment of system − Once the functional and non-functional


testing is done; the product is deployed in the customer
environment or released into the market.

 Maintenance − 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 customer environment.
When to use SDLC Waterfall Model?

 When the requirements are constant and not


changed regularly.
 A project is short
 The situation is calm
 Where the tools and technology used is consistent
and is not changing
 When resources are well prepared and are available
to use.
Advantages of Waterfall model
 This model is simple to implement also the number of resources that are
required for it is minimal.

 The requirements are simple and explicitly declared; they remain


unchanged during the entire project development.

 The start and end points for each phase is fixed, which makes it easy to
cover progress.

 The release date for the complete product, as well as its final cost, can be
determined before development.

 It gives easy to control and clarity for the customer due to a strict reporting
system.
Disadvantages of Waterfall model
 In this model, the risk factor is higher, so this model is
not suitable for more significant and complex projects.

 This model cannot accept the changes in requirements


during development.

 It becomes tough to go back to the phase.

 Since the testing done at a later stage, it does not allow


identifying the challenges and risks in the earlier phase,
so the risk reduction strategy is difficult to prepare.
2: V-Model
 The V model (Verification and Validation model) is an
extension of the waterfall model.

 All the requirements are gathered at the start and can


not be changed.

 You have a corresponding testing activity for each


stage.

 For every phase in the development cycle, there is


an associated testing phase.
Cont…
 The corresponding testing phase of the development
phase is planned in parallel, as you can see below.

 The V model is highly disciplined, easy to understand,


and makes project management easier.

 But it isn’t good for complex projects or projects that


have unclear or changing requirements.

 This makes the V model a good choice for software


where downtimes and failures are unacceptable.
Cont…
There are the various phases of
Verification Phase of V-model:
 Business requirement analysis: This is the first step where product
requirements understood from the customer's side. This phase
contains detailed communication to understand customer's
expectations and exact requirements.

 System Design: In this stage system engineers analyze and interpret


the business of the proposed system by studying the user
requirements document.

 Architecture Design: The baseline in selecting the architecture is


that it should understand all which typically consists of the list of
modules, brief functionality of each module, their interface
relationships, dependencies, database tables, architecture diagrams,
technology detail, etc. The integration testing model is carried out in
a particular phase.
Cont..
 Module Design: In the module design phase, the
system breaks down into small modules. The
detailed design of the modules is specified, which
is known as Low-Level Design

 Coding Phase: After designing, the coding phase is


started. Based on the requirements, a suitable
programming language is decided. There are some
guidelines and standards for coding.
3: Prototype Model
 This model is used when the customers do not know the exact project
requirements beforehand.

 In this model, a prototype of the software is developed and evaluated by


users.

 Feedback from users is used to refine the prototype and improve the final
product.

 The Prototype Model is an iterative software development process.

 This model is ideal for projects with unclear or changing requirements.


Steps of Prototyping Model:
 Step 1: Requirement Gathering and Analysis: In this
phase, users are asked about what they expect or what
they want from the system.

 Step 2: Quick Design: 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.
Cont…
 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, here the program is run regularly to
prevent failures.
Types of Prototyping Models:
 There are four types of Prototyping Models, which
are described below.
 Rapid Throwaway Prototyping
 Evolutionary Prototyping
 Incremental Prototyping
 Extreme Prototyping
Advantage of Prototype Model
1. Reduce the risk of incorrect user requirement
2. Good where requirement are
changing/uncommitted
3. Regular visible process aids management
4. Support early product marketing
5. Reduce Maintenance cost.
6. Errors can be detected much earlier as the system
is made side by side.
Disadvantage of Prototype Model
 An unstable/badly implemented prototype often becomes the final product.
 Require extensive customer collaboration
 Costs customer money

 Needs committed customer

 Difficult to finish if customer withdraw

 May be too customer specific, no broad market

 Difficult to know how long the project will last.


 Prototyping tools are expensive.
 Special tools & techniques are required to build a prototype.
 It is a time-consuming process.
4:RAD Model
( Rapid Application Development )

 The Rapid Application Development (RAD) Model is an iterative and


incremental software development process.

 In this model, software is developed quickly through the use of prototyping


and iterative development.

 This model is ideal for projects with tight schedules and changing
requirements.

 The Rapid Application Development (RAD model) is based on iterative


development and prototyping with little planning involved.

 You develop functional modules in parallel for faster product delivery.


Cont..
 The RAD concept focuses on gathering requirements using
focus groups and workshops, reusing software components,
and informal communication.

 The RAD model accommodates changing requirements,


reduces development time, and increases the reusability of
components.

 it can be complex to manage.

 Therefore, the RAD model is great for systems that need to


be produced in a short time and have known requirements.
Cont……
Cont…

It involves the following phases:


1. Business modeling

2. Data modeling

3. Process modeling

4. Application generation

5. Testing and Turnover


The various phases of RAD
1.Business Modeling: The information flow among
business functions is defined by answering questions
like what data drives the business process, what data is
generated, who generates it, where does the
information go, who process it and so on.

2. Data Modeling: The data collected from business


modeling is refined into a set of data objects (entities)
that are needed to support the business.
The attributes (character of each entity) are identified,
and the relation between these data objects (entities) is
defined.
Cont…
3. Process Modeling: The information object defined in the data
modeling phase are transformed to achieve the data flow necessary
to implement a business function.
Processing descriptions are created for adding, modifying, deleting,
or retrieving a data object.

4. Application Generation: Automated tools are used to facilitate


construction of the software; even they use the 4th GL techniques.

5. Testing & Turnover: Many of the programming components have


already been tested since RAD emphasis reuse.
This reduces the overall testing time. But the new part must be
tested, and all interfaces must be fully exercised.
Objectives of RAD
1. Speedy Development
2. Adaptability and Flexibility
3. Stakeholder Participation
4. Improved Interaction
5. Improved Quality via Prototyping
5. Improved Quality via Prototyping
Advantage of RAD Model
1. This model is flexible for change.
2. In this model, changes are adoptable.
3. Each phase in RAD brings highest priority
functionality to the customer.
4. It reduced development time.
5. It increases the reusability of features.
Disadvantage of RAD Model
1. It required highly skilled designers.
2. All application is not compatible with RAD.
3. For smaller projects, we cannot use the RAD
model.
4. On the high technical risk, it's not suitable.
5. Required user involvement.
5: Incremental Model
 The Incremental Model is an iterative software development process.

 In this model, the software is developed in small, incremental stages.

 Each stage of development adds new functionality to the software.

 This model is ideal for projects with changing requirements.

 It is efficient as the developers only focus on what is important and bugs


are fixed as they arise,

 but you need a clear and complete definition of the whole system before
you start.
Cont….
Evolutionary Model like Incremental
Model
 The Evolutionary development model divides the development
cycle into smaller, incremental waterfall models

 users can get access to the product at the end of each cycle.

Evolutionary Model Life Cycle :


1. Feedback is provided by the users on the product for the planning
stage of the next cycle and the development team responds, often
by changing the product, plan, or process.

2. the software product evolves with time.


Cont…
3. The evolutionary model suggests breaking down work into
smaller chunks, prioritizing them, and then delivering those
chunks to the customer one by one.

4. The number of chunks is huge and is the number of deliveries


made to the customer.

5. The main advantage is that the customer’s confidence increases as


he constantly gets quantifiable goods or services from the
beginning of the project to verify and validate his requirements.

6. The model allows for changing requirements as well as all work is


broken down into maintainable work chunks.
Cont…
Application of Evolutionary Model

 It is used in large projects where you can easily


find modules for incremental implementation.

 Evolutionary model is also used in object oriented


software development.
Necessary Conditions for Implementing
this Model
1. Customer needs are clear and been explained in
deep to the developer team.

2. There might be small changes required in separate


parts but not a major change.

3. As it requires time, so there must be some time


left for the market constraints.
Advantages Evolutionary Model
1. Adaptability to Changing Requirements: Evolutionary models
work effectively in projects when the requirements are ambiguous
or change often.

2. Early and Gradual Distribution: Functional components or


prototypes can be delivered early to incremental development.
Faster user satisfaction and feedback may result from this.

3. User Commentary and Involvement: Evolutionary models place


a strong emphasis on ongoing user input and participation.

4. Improved Handling of Difficult Projects: Big, complex tasks


can be effectively managed with the help of evolutionary models.
Disadvantages Evolutionary Model
1. Communication Difficulties: Evolutionary models require
constant cooperation and communication.

2. Dependence on an Expert Group: A knowledgeable and


experienced group that can quickly adjust to changes is needed for
evolutionary models.

3. Increasing Management Complexity: Complexity can be


introduced by organizing and managing several increments or
iterations, particularly in large projects.

4. Greater Initial Expenditure: As evolutionary models necessitate


continual testing, user feedback and prototyping, they may come
with a greater starting cost.
6: Spiral Model
 The Spiral Model is one of the most important Software Development
Life Cycle models, which provides support for Risk Handling.

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

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.
Cont…

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.

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

2. Identify and resolve Risks: During the second quadrant, all the possible
solutions are evaluated to select 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.

4. Review and plan for the next Phase: In the fourth quadrant, the
Customers evaluate the so-far developed version of the software.
Advantages of the Spiral Model
1. 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.
2. Good for large projects: It is recommended to use the Spiral Model in large and complex
projects.
3. Flexibility in Requirements: Change requests in the Requirements at a later phase can be
incorporated accurately by using this model.
4. 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.
5. 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.
6. 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.
7. Improved Communication: The Spiral Model provides for regular evaluations and reviews,
which can improve communication between the customer and the development team.
8. 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

1. Complex: The Spiral Model is much more complex than other SDLC models.

2. Expensive: Spiral Model is not suitable for small projects as it is expensive.

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

4. Difficulty in time management : As the number of Iterations are unknown at


the start of the project, time estimation is very difficult.

6. Time-Consuming: The Spiral Model can be time-consuming, as it requires


multiple evaluations and reviews.
COMPONENT ASSEMBLY MODEL:
 The component-based assembly model uses object-oriented
technologies.

 In object-oriented technologies, the emphasis is on the


creation of classes.

 Classes are the entities that encapsulate data and


algorithms.

 In component-based architecture, classes (i.e., components


required to build application) can be uses as reusable
components.
Cont….
 This model uses various characteristics of spiral model.

 This model is evolutionary by nature.

 Hence, software development can be done using


iterative approach.

 In CBD model, multiple classes can be used.

 These classes are basically the prepackaged


components.
The model works in following manner:

Step-1: First identify all the required candidate


components, i.e., classes with the help of application
data and algorithms.

Step-2: If these candidate components are used in


previous software projects then they must be present in
the library.

Step-3: Such preexisting components can be extracted


from the library and used for further development.
Cont..
Step-4: But if the required component is not present
in the library then build or create the component as
per requirement.

Step-5: Place this newly created component in the


library. This makes one iteration of the system.

Step-6: Repeat steps 1 to 5 for creating n iterations,


where n denotes the number of iterations required
to develop the complete application.
Characteristics of Component
Assembly Model:
 Uses object-oriented technology.
 Components and classes encapsulate both data and
algorithms.
 Components are developed to be reusable.
 Paradigm similar to spiral model, but engineering
activity involves components.
 The system produced by assembling the correct
components.
7:Agile Model

 Agile SDLC model is a combination of iterative and incremental


process models.

 focus on process adaptability and customer satisfaction by rapid


delivery of working software product.

 Customers are involved during each iteration

 Requirements are assumed to change

 Each incremental part is developed over an iteration


Phases of Agile Model:
1. Requirements gathering
2. Design the requirements
3. Construction/ iteration
4. Testing/ Quality assurance
5. Deployment
6. Feedback
Cont…
1. Requirements gathering: In this phase, you must define the
requirements. You should explain business opportunities and plan
the time and effort needed to build the project.

2. Design the requirements: You can use the user flow diagram or
the high-level UML diagram to show the work of new features
and show how it will apply to your existing system.

3. Construction/ iteration: Designers and developers start working


on their project, which aims to deploy a working product. The
product will undergo various stages of improvement, so it
includes simple, minimal functionality.
Cont…
4. Testing: In this phase, the Quality Assurance team
examines the product's performance and looks for
the bug.

5. Deployment: In this phase, the team issues a


product for the user's work environment.

6. Feedback: After releasing the product, the last step


is feedback. In this, the team receives feedback
about the product and works through the feedback.
Agile methodologies
Scrum:
 One of the most popular agile models, Scrum
consists of iterations called sprints.

 Each sprint is between 2 to 4 weeks long and is


preceded by planning.

 You cannot make changes after the sprint activities


have been defined.
Cont..
Extreme Programming (XP):
 With Extreme Programming, an iteration can last
between 1 to 2 weeks.

 XP uses pair programming, continuous integration,


test-driven development and test automation, small
releases, and simple software design.
Cont..
Kanban:
 Kanban focuses on visualizations, and if any
iterations are used they are kept very short.

 You use the Kanban Board that has a clear


representation of all project activities and their
numbers, responsible people, and progress.
When to use the Agile Model?
1. When frequent changes are required.
2. When a highly qualified and experienced team is
available.
3. When a customer is ready to have a meeting with
a software team all the time.
4. When project size is small.
Advantage(Pros) of Agile Method:
1. Frequent Delivery
2. Face-to-Face Communication with clients.
3. Efficient design and fulfils the business
requirement.
4. Anytime changes are acceptable.
5. It reduces total development time.
Disadvantages(Cons) of Agile Model:

1. Due to the shortage of formal documents, it


creates confusion and crucial decisions taken
throughout various phases can be misinterpreted
at any time by different team members.

2. Due to the lack of proper documentation, once the


project completes and the developers allotted to
another project, maintenance of the finished
project can become a difficulty.

You might also like