KEMBAR78
Software Engineering | PDF | Software Testing | Software Development Process
0% found this document useful (0 votes)
26 views83 pages

Software Engineering

The document outlines a course on Software Engineering, detailing its objectives, outcomes, and syllabus across five units covering software process models, requirements, design engineering, risk management, and quality management. It emphasizes the importance of software engineering in managing large projects, ensuring reliability, and developing effective software solutions. Additionally, it discusses the characteristics of good software, common software myths, and the generic process framework for software development.

Uploaded by

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

Software Engineering

The document outlines a course on Software Engineering, detailing its objectives, outcomes, and syllabus across five units covering software process models, requirements, design engineering, risk management, and quality management. It emphasizes the importance of software engineering in managing large projects, ensuring reliability, and developing effective software solutions. Additionally, it discusses the characteristics of good software, common software myths, and the generic process framework for software development.

Uploaded by

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

SOFTWARE ENGINEERING

By,
K. VENKATARANGAIAH ACHARI
Assistant professor
Dept. of CSE AIML
MRECW
Course Objectives:
The students will be able :
 To comprehend the various software process models.

 To understand the types of software requirements and SRS document.

 To know the different software design and architectural styles.

 To learn the software testing approaches and metrics used in software

development.
 To know about quality control and risk management.
Course Outcomes:
Students will have the ability:
 To compare and select a process model for a business system.

 To identify and specify the requirements for the development of an

application.
 To develop and maintain efficient, reliable and cost-effective software

solutions.
 To critically think and evaluate assumptions and arguments
Syllabus
UNIT – I:
Introduction to Software Engineering: The evolving role of software, Changing Nature of
Software, Software myths. A Generic view of process: Software engineering- A layered
technology, a process framework, Process patterns, process assessment. Process models: The
waterfall model, Incremental process models, Evolutionary process models, The Unified
process, Agility and Agile Process model, Extreme Programming, Other process models of
Agile Development and Tools

UNIT ‐II:
Software Requirements: Functional and non-functional requirements, User
requirements, System requirements, Interface specification, the software requirements
document. Requirements engineering process: Feasibility studies, Requirements
elicitation and analysis, Requirements validation, Requirements management. System
models: Context Models, Behavioural models, Data models, Object models, structured
methods. UML Diagrams.
UNIT ‐III:
Design Engineering: Design process and Design quality, Design concepts, the design
model. Creating an architectural design: Software architecture, Data design, Architectural
styles and patterns, Architectural Design.
Object-Oriented Design: Objects and object classes, An Object-Oriented design process,
Design evolution. Performing User interface design: Golden rules, User interface analysis
and design, interface analysis, interface design steps, Design evaluation.
UNIT ‐IV:
Risk management: Reactive vs. Proactive Risk strategies, software risks, Risk
identification, Risk projection, Risk refinement, RMMM, RMMM Plan. Quality
Management: Quality concepts, Software quality assurance, Software Reviews, Formal
technical reviews, Statistical Software quality Assurance, The Capability Maturity Model
Integration (CMMI), Software reliability, The ISO 9000 quality standards.

UNIT ‐V:
Risk management: Reactive vs. Proactive Risk strategies, software risks, Risk
identification, Risk projection, Risk refinement, RMMM, RMMM Plan. Quality
Management: Quality concepts, Software quality assurance, Software Reviews, Formal
technical reviews, Statistical Software quality Assurance, The Capability Maturity Model
Integration (CMMI), Software reliability, The ISO 9000 quality standards.
TEXT BOOKS:
1. Software Engineering A Practitioner’s Approach, Roger S Pressman, 6 th edition.
McGraw Hill International Edition.
2. Software Engineering, Ian Sommerville, 7th edition, Pearson education.

REFERENCE BOOKS:
3. Software Engineering, A Precise Approach, Pankaj Jalote, Wiley India, 2010.
4. Software Engineering: A Primer, Waman S Jawadekar, Tata McGraw-Hill, 2008
3. Software Engineering, Principles and Practices, Deepak Jain, Oxford University
Press.
4. Software Engineering1: Abstraction and modelling, Diner Bjorner, Springer
International edition, 2006.
5. Software Engineering2: Specification of systems and languages, Diner Bjorner,
Springer International edition 2006.
6. Software Engineering Principles and Practice, Hans Van Vliet, 3rd edition, John
Wiley
& Sons Ltd.
7. Software Engineering3: Domains, Requirements, and Software Design, D. Bjorner,

Springer International Edition.


8. Introduction to Software Engineering, R. J. Leach, CRC Press. Course.
UNIT - I
What is Software Engineering?
The term is made of two words, software and engineering.

Software:
It is a collection of executable integrated programs associated libraries and
documentation.
Means it carefully , organized instructions and code written by developers
on any of various particular computer languages.

Engineering:
it is the application of scientific and mathematical principles to design, develop,
build, and maintain structures, machines, devices, systems, and processes.
i.e. developing products, using well-defined, scientific principles and methods.

.
Software Engineering:
Application of engineering for the development of software is known as software
engineering

Key Points:
 It is a systematic, innovative, and cost-effective approach to develop
software.
 A person involved in developing the product is called a software
engineer.
 A software (S/w) engineer is a licensed professional who is skilled in the
engineering discipline.
Need of Software Engineering
1. Handling Big Projects:
Corporation must use SE to handle large projects without any issues.
2. To manage the cost:
Software engineering programmers plan everything and reduce all those things
that are not required.
3. To decrease time:
It will save a lot of time if you are developing software using a software engineering
technique.
4. Reliable software:
It is the company’s responsibility to deliver software products on schedule and to
address any defects that may exist.
5. Effectiveness:
Effectiveness results from things being created in accordance with the software
standards.
Characteristics of Good Software:
Characteristics of software
 Functionality:
What the system does and the purpose of the system.

 Usability:
The quality of a user's experience when interacting with products or
software.

 Reliability:
The probability of failure-free operation of a computer program in a
specified environment.

 Performance:
The measure of how well an application executes its intended tasks.

 Scalability:
A type of testing that checks a software’s ability to grow or expand
effectively.
Characteristics of Software:
1.Software is developed or engineered, but it is not manufactured
 Development of software and other hardware involves manpower, but the
quantity and the way of approach remain significantly different.
 In both the manufacturing processes, one will be left out with certain end
products , but the efforts applied in them remain different.
Developed or Engineered - Completely new thing
Manufactured - modifying or prototyping Existing
2. Software does not wear out
 One of the fundamental characteristics of software is that it does not wear out
in the same way that physical objects do. Software doesn’t degrade or lose
functionality over time due to wear and tear.
 The hardware development process the failure rate is very high because of
manufacturing detects the failure rate remains constant for some period of
time and again it starts increasing because of environment maladies (Extreme
temperature, duties, and Vibrations).
physical thing – wear and tear like expiry date
Virtual (s/w) - not wear tear no expiry date
3. Software is custom built rather than
assembling existing components
When software is custom-built rather than assembled from existing components,
it means that the software is designed and developed specifically for a particular
user, organization, or purpose, instead of being based on pre-made parts,
libraries, or frameworks.
S/W is developed based on customer requirements but other physical things
does not like (purchased pre manufactured)
Evolving role of software
Software has dual roles.
1.product
2.Vehicle (process)
1. S/W as a product:
it produces ,Manages and displays the information
2. S/W as a vehicle:
 it is a vehicle for delivering product(process).it is like a information

Transformer.( after manufacturing need to deliver the the market


(transportation, advertise, marketing retailers , wholesalers ,distributors) ).
 S/W control other programs (OS)

 S/W effects Communication (N/W’s)

 S/W helps in building other Software’s (using tools to develop other

s/w’s.)
Nature of Software:
1. Software is every where and any where.
2. Software is a set of instructions or programs instructing a
3.computer to do specific tasks.

Based on usage

Software’s are classified into


 System Software
 Application Software
 Engineering and Scientific Software
 Embedded Software
 Web Application Software
 Product line software
 Artificial Intelligence Software
1. System Software:
 System software is software designed to provide a platform for other
software.
 It is an interaction between hardware & application software.
 Examples: Operating Systems like macOS, Linux, Android, and Microsoft
Windows.
 compilers, editors, drivers, etc.
2. Application Software:
 Application Software is the type of software which is installed on OS. It
runs on the platform which is provide by system software.
 Application software's are user applications is used by user to perform

specific task.
Examples:
 Social media apps( WhatsApp , Insta ,Facebook)

 Gaming apps

 Word processing apps(MS word)

 Multimedia apps

 Education and enterprise apps (C, C++, java, etc)


3. Engineering and Scientific Software (Real
time):
These software are used to monitor, control and analyze real world events
as they occur. It has very high accuracy, complex formula evolution & data
analysis.
Examples:
Weather prediction apps
Stock Market apps, Stress Analysis
4. Body measurementSoftware:
Embedded apps
Embedded software resides within the system or product and is used to
implement and control feature and function for the end-user and the
System, itself. s/w is inside of H/W.
 Examples:
Switches , Routers , Digital camera
Washing machine functionalities ,microwave oven controls
Traffic control, etc.
5. Web Applications:
 It is a client-server computer program which the client runs on the
web browser.
 Web apps can be little more than a set of linked hypertext files that
present information using text and limited graphics.
 Examples:
◦ Online forms
◦ Shopping carts
◦ Gmail, Yahoo
◦ Photo editing
◦ File conversion, etc.
6. Product-line software:
Designed to provide a specific capability for use by many customers, product-line
software can focus on the limited and esoteric marketplace or address the mass
consumer market.
Ex: Ms office ,Adobe, Facebook, Computer Graphics, dbms, business
stock related etc
7. Artificial Intelligence Software:
It makes use of a nonnumerical algorithm to solve a complex problem.
 Applications include:
◦ Robotics
◦ Expert systems
◦ Pattern recognition
◦ Artificial neural networks
◦ Theorem proving
◦ Game playing

 Examples:
◦ Google Cloud
◦ Azure Studio
◦ TensorFlow
◦ Salesforce, etc.
Software Myths
Myth : Some thing assumption like may or may not be true

Types:
1.Management myth
2.Customer myth
3. Developer’s or Practitioners myth
1. Management myth
Managers with software responsibility, like managers in most disciplines, are
often under pressure to maintain budgets, keep schedules from slipping, and
improve quality.
types: 3 types
Myth 1: We already have a book that’s full of standards and procedures
for building software – won’t that provide my people with everything they
need to know?
Reality: The book of standards may very well exist but, is it used? Are
software practitioners aware of its existence? Does it reflect modern software
engineering practice?
Myth 2: If we get behind schedule, we can add more programmers and
catch up.

Reality: Software development is not a mechanistic process like


manufacturing. As new people are added, people who were working must
spend time educating the newcomers, thereby reducing the amount of time
spent on productive development effort. People can be added but only in a
planned and well-coordinated manner.
Myth 3: If I decide to outsource the software project to a third party, I
can just relax and let that firm build it.

Reality: If an organization does not understand how to manage and control


software projects internally, it will invariably struggle when it outsources
software projects.
2.Customer Myths
The customer believes myths about software because software managers and
practitioners do little to correct misinformation. Myths lead to false
expectations and ultimately, dissatisfaction with the developer.
Myth 1: A general statement of objectives is sufficient to begin writing
programs – we can fill in the details later.

Reality: Although a comprehensive and stable statement of requirements is not


always possible, an ambiguous statement of objectives is a recipe for disaster.

Myth 2: Project requirements continually change, but change can be easily


accommodated because software is flexible.

Reality: It is true that software requirements change, but the impact of change
varies with the time at which it is introduced. Change can cause upheaval that
requires additional resources and major design modification.
3.Practitioner’s myths
Myths that are still believed by software practitioners. During the early days
of software, programming was viewed as an art. Old ways and attitudes die
hard.
Myth 1: Once we write the program and get it to work, our jobs are
done.

Reality: Someone once said that the sooner you begin writing code, the
longer it’ll take you to get done. Industry data indicate that between 60 and 80
percent of all effort expended on software will be expended after it is
delivered to the customer for the first time.
Myth 2: The only deliverable work product for a successful project is the working
program.
Reality: A working program is only one part of a software configuration that includes many
elements. Documentation provides guidance for software support.
Ex:- developer need to check quality daily formal technical reviews to check the quality no
need to wait completion of code.
3. Practitioner’s
myths
Myth 3: Software engineering will make us create voluminous and
unnecessary documentation and will invariably slow us down.

Reality: Software engineering is not about creating documents. It is about creating


quality. Better quality leads to reduced rework. And reduced rework results in
faster delivery times.
ex:- provide user guide to use and solve problem of users.
Generic view of process
Process:
A set of activities, methods, practices, and transformations that people use to
develop and maintain software and the associated products (e.g., project plans,
design documents, code, test cases, and user manuals) .

Software Process:
means To develop Quality products by using technical and management rules.
A software process defines how software is created. It’s a series of steps and
practices that, when followed, aim to deliver a product that meets user needs, is
reliable, and can be maintained over time.

Generic process model:


it is a description of software development process.it is used in most software
models since it provides a base for them.
Process
It Establishes the foundation for software engineering by identifying small
Framework
number of Framework activities and umbrella activities that are applicable
for entire software process.
Generic Process Framework
Activities:
Regardless of the specific approach, a software project typically moves
through these core, interconnected phases:

Phases:
 Communication
 Planning
 Modeling
 Construction
 Deployment
Framework activities:
It is suitable to small Projects.
The five generic process framework activities useful in developing several
projects are given below:
1. Communication
2. Planning
3. Modeling
4. Construction
5. Deployment

1. Communication:
 Software development starts with the communication between customer and
developer.
 Developer gather requirements of the project with the users.
 Communication with consumers ,and stake holders to determine the systems
Objectives, software requirements and features.
2. Planning
 It consists of complete estimation ,scheduling for project development and

tracking.
 Discuss work plan, technical risk , list of resource requirements, work schedules.

3. Modelling
 Constructing practical model to get better understanding of the project.
 It consists of complete requirement analysis and design of the project like
algorithm ,flowchart. If any Changes are required, we can implement them in
this step.
4. Construction
It is a combination of code generation and testing.

5. Deployment
In this framework activity, usually the developed project is delivered to the end
users. They deploy the project and give relative feedbacks to the developers.
Umbrella activities:
Suitable to large projects. It is Mainly to track , control and manage the project
There are eight umbrella activities of a software process framework.
They are:
 Tracking and controlling software project - a team will monitor every thing.

 Risk management - identify risks , analyse risks and solve it

 Software Quality Assurance (SQA) – check the quality of s/w

 Formal technical reviews - group of people sit and verify.

 Software measurements - measure the time ,cost, man power etc

 Software Configuration Management – any changes that effects the user and

organization.
 Reusability management – define criteria for again reuse a s/w
 Work product preparation and production – requirements to create the work
like documents ,records , files, tables, man power etc.
Software engineering – A layered technology
Software engineering is a fully layered technology. To develop software, we
need to go from one layer to another. All the layers are connected and each
layer demands the fulfillment of the previous layer. each layer performs a
specific set of tasks, contributing to the application's overall functionality .

Layered technology is divided into four


parts:
1. Quality focus
2. Process
3. Method
4. Tools
1. Quality
 it is a bed rock supports to Software Engineering. It defines the
continuous process improvement principles of software
 It ensures that each layer functions correctly & efficiently, contributing to
the overall performance & stability of the software.
 To maintain quality, rigorous testing is conducted at each layer. This
includes unit testing, where individual components within a layer are tested,
and integration testing, where the interaction between layers is evaluated.
 It provides integrity that means providing security to the software so that
data can be accessed by only an authorized person, no outsider can access
the data.
2. Process
It is the foundation or base layer of software engineering. It is key that binds all
the layers together which enables the development of software before the
deadline or on time.
Process defines a framework that must be established for the effective
delivery of software engineering technology. The software process covers all the
activities, actions, and tasks.
3. Method
During the process of software development, the answers to all “how-to-
do” questions are given by method. It has the information of all the tasks
which includes communication, requirement analysis, design modeling,
program construction, testing, and support.
i.e. how to build the module , how to write a code to that and how
to test and how to design and implement every how to question will give
answers.

4. Tools
Software engineering tools provide a self-operating system for processes and
methods. Tools are integrated which means information created by one tool
can be used by another.
Process Patterns
 Process patterns define a set of activities, actions, work tasks, work
products and/or related behaviors
 A template is used to define a pattern. Template provides important

features and functions related s/w process.


 By applying patterns to a s/w projects we get a s/w product.

examples:
 Customer communication (a process activity)

 Analysis (an action)

 Requirements gathering (a process task)

 Reviewing a work product (a process task)

 Design model (a work product)


Process Assessment
 Software Process Assessment is a disciplined and organized examination
of the software process which is being used by any organization bases
the on the process model.
 By applying patterns to a s/w projects we get a s/w product. If the s/w
product is fulfilled user requirements or not.
 To find the fulfillments by applying s/w patterns to real time practices will
get reliable s/w product.and this entire process should be continuously
assessed by this process is called Process assessment.
Types of Software Assessment :

 Self Assessment :
This is conducted internally by the people of their own organization.
 Second Party assessment:

This is conducted by an external team or people of the own organization are


supervised by an external team.
 Third Party assessment:

Other reliable organizations verify.


Legacy software
 It is very old S/W.
 Developed Decades ago
 Inextendible design(poor Quality)
 No documentation
 Can’t meet needs of new technologies

Solution for Legacy Software:


 Software should be adapted to meet new computing environments and technology.
(Improve compatibility with modern platforms)
 should be enhanced(advanced)to meet new business requirements.
 Extensible design – to make it interoperable with other systems.
 Rearchitectured so that it is suitable to new environment.
Capability Maturity
Models(CMM):
measuring the maturity of an organization .
 It is a framework developed by the Software Engineering Institute (SEI).
 The primary purpose of CMM is to improve and refine software
development processes within an organization.
 CMM provides a structured way for organizations to assess their current
software development practices and identify areas for improvement.
MNC’s may fall under these levels.
 It has 5 levels of maturity
Level 1(Initial)
Level 2(repeatable)
Level 3(Defined)
Level 4(Managed)
Level 5(Optimised)
 Initial (Level 1): Processes are ad hoc and chaotic. There is no stable environment for software
development.
i.e. processes are basic ,poorly control(immature) and reactive
to the situation.
 immature
 Not well defined

 Repeatable(Level 2): Basic project management processes are established to track cost, schedule, and
functionality.
focus on establishing basic project management policies to develop current
projects based on past experiences.
 Project Planning
 Configuration Management

Software Quality assurance
 Defined(Level 3): Processes are well-documented and standardized across the
organization.
 Peer reviews
 Inter group communication
 Training Programs

 Managed(Level 4): Processes are measured and controlled using quantitative


techniques.
 Quantitative Qualitative goals are set
 s/w Quality management
 Quantitative management

 Optimised(Level 5): all MNC Focuses on continuous process improvement


through feedback and innovation.
 Defect Prevention
CMMI(Capability Maturity Model
Integration )
Capability Maturity Model Integration (CMMI) is a successor of CMM and is a
more evolved model that incorporates best components of individual disciplines
of CMM like Software CMM, Systems Engineering CMM, People CMM, etc.
Since CMM is a reference model of matured practices in a specific discipline, it
becomes difficult to integrate these disciplines as per the requirements. This is
why CMMI is used as it allows the integration of multiple disciplines as and
when needed.
Objectives of CMMI
 Fulfilling customer needs and expectations
 Value creation for investors/stockholders
 Market growth is increased
 Improved quality of products and services
 Enhanced reputation in industry
Evolution of Software:
 Process of developing a software using principles and methodology of
software engineering is termed as Software Evaluation.
 Software Evolution is a term that refers to the process of developing software
initially, and then timely updating it for various reasons, i.e., to add new
features or to remove obsolete functionalities, etc.
 To reach at the Satisfaction level of Customer ,all changes, updates,
modifications, updates are under the Software Evolution

Laws of Software Evolution:


1) Continuous Change
2) Increasing Complexity
3) Continuing Growth
4) Reducing Quality
5) Feedback Systems
6) Self Regulation
7) Organizational Stability
Types:
1. S-Type(static)
2. P-Type(practical)
3. E-Type(Embedded)
S-Type(static):
It is a type of S/W evolution which works exactly according to the requirements &
Specification ,the changes of getting changes very less approximately null.
Ex: Calculation Software's
P-Type(practical):
 It is the type of software Evolution which works on Procedures.It is defined by Exactly
what Procedures can do.
 In this Software Described Specifications Can be described but the solutionis not
Obviously instant.
 Changes might be needed ahead.
Ex: Gaming Software’s
E-Type(Embedded):
It is the type of Software Evolution which works closely as Requirements of real world
Problems and environments.
Ex: Banking Software’s ,Trading Software’s.
Software Development Life
cycle(SDLC)
 It refers overall process involved in the software development.
 It is also called as Software Development Process
 Framework that defines task performed at each step in the software
development.
 It defines what phases are involved.
 There are 6 stages in s/w development life cycle.

Requirements
Analysis
Design
Implementation/development
Testing
Deployment
1. Requirements phase :
In this phase collecting requirements from user and provided
to development team.
2. Analysis phase :
In this phase Documents the requirements in the SRS(software
requirement specification).
3. Design Phase :
Based on user Requirements to make a design showing how
the flow of process should happen.
Design classified 2 types
1. High level design
2. Low level Design
 High level design:

gives the architecture(outline) of of s/w product.


 Low level Design:

describes how each and every feature in the s/w product should work
4. Development Phase:
in this phase, writing the code using programming languages for the
software product.
i.e. based on design developer develops the code.
It is also called as Implementation.
5. Testing:
Once the implementation of code to test the code working properly or not.
in this phase finding errors and bugs and correcting them by the QA testers
by using different types of testing methods.
6. Deployment and Maintainance:
in this phase developed s/w product delivers to end user and provide
Documentation(user guide) to end users.
again developers team collect feedback from users, stakeholders,
distributors etc
SDLC/PROCESS MODELS
Process: A series of steps taken to produce an intended output.

 It is a method to implement SDLC


 Guide the software team through a set of framework activities
 Defines how SDLC phases are executed.

Types of Process models:


 Waterfall model
 V model
 Evolutionary models
 Unified process model
 Agile model
1. Water fall model
 The Waterfall model is one of the oldest and most straight forward approaches
to software development.
 The Waterfall model follows a systematic and sequential approach to software
development.
 Each phase in the development process must be completed before moving on
to the next one, resembling the downward flow of a waterfall.
 Also known as Classic Life cycle model.
Phases
 Requirements: The first phase involves gathering exact requirements from users to
form the documents

 Design: Once the documents collected from SRS, the design phase begins. This
involves creating a detailed design (blue print).

 Development (implementation): in this phase develop the code to designed output.


after design phase and before development developed code divided in to
small programs (modules) or unit. This phase also includes unit testing to
ensure that each component of the software is working as expected.

 Testing: In the testing phase, developed code is tested using testing methods.

 Deployment: Once the software has been tested and approved, it is deployed to the
production environment.

 Maintenance: The final phase of the Waterfall Model is maintenance, which


involves fixing any issues that arise after the software has been deployed and
ensuring that it continues to meet the requirements over time.
Advantages:
 Fixed requirements
 Used in small projects
 Low cost
 Good documentation

Disadvantages:
 High risk
 Low customer requirement
 Difficult to identify errors
2. V model
 The V-model is an SDLC model where execution of processes happens in a
sequential manner in a V-shape.
 It is also known as Verification and Validation model.
 The V-Model is an extension of the waterfall model and is based on the
association of a testing phase for each corresponding development stage.
 This means that for every single phase in the development cycle, there is a
directly associated testing phase. This is a highly-disciplined model and the next
phase starts only after completion of the previous phase.
 The left-hand side of the V represents the verification phase while the right-
hand side represents the validation phase.
 Verification confirms the product is built correctly according to specifications.
Validation confirms the product meets user needs and expectations.
 The V-model is useful when working with larger teams where communication
and coordination between developers and testers becomes challenging.
 By clearly defining the testing requirements for each stage of the development
process, the V-model can ensure that all team members are working toward a
shared understanding of the project’s goals and objectives.

V-Model Verification Phases


1. Business Requirement Analysis
2. System Analysis
3. Software Architecture Design
4. Module Design
5. Coding
The verification phase refers to the practice of evaluating the
product development process to ensure the team meets the specified
requirements.
Business Requirement Analysis
In the business requirement analysis step, the team comes to understand the
product requirements as laid out by the customer.
System Analysis
the system engineers analyze and interpret the business requirements of the proposed
system by studying the user requirements document.
Software Architecture Design
this involves selecting software structure based on identified modules, their functions
technical elements like database schema and diagrams. Preliminary integration test
strategies are also outlined during the architecture design phase, guiding how modules
will later be tested together.
Module Design
In the module design stage, the development team breaks down the system into small
modules and specifies the detailed design of each module, which we call low-level
design.
Coding
Finally, we begin coding. The development team selects a suitable
programming language based on the design and product requirements. There are, of
course, guidelines and standards for coding.
V-Model Validation Phases
 The validation phase involves dynamic analysis methods and testing to ensure
the software product meets the customer’s requirements and expectations.
 This phase includes several stages including unit testing, integration testing,

system testing and acceptance testing.


1. Unit Testing
During the unit testing stage, the team develops and executes unit test plans to
identify errors at the code or unit level. This testing happens on the smallest
entities, such as program modules, to ensure they function correctly when isolated
from the rest of the code.
2. Integration Testing
The integration testing stage involves executing integration test plans developed
during the architectural design step in order to verify that groups created and
tested independently can coexist and communicate with each other.
3. System Testing
The system testing stage involves executing system test plans developed during
the system design step. System test plans are developed by quality assurance
(QA) teams using business requirements defined by stakeholders. System testing
ensures the team meets the application developer’s expectations.
4. Acceptance Testing
The acceptance testing step is related to the business requirement
analysis part of the V-model and involves testing the software product in
the user environment to identify compatibility issues with the different
systems available within the user environment. Acceptance testing also
identifies non-functional issues like load and performance defects in the
Advantages
real user environment.
Improves Quality
Reduces Risks
Improves Communication
Enhances Testing
small projects where project requirements are clear
Disadvantages
Time-Consuming
Resource Intensive
not support iteration of phases
When to use the V-model:
•The V-shaped model should be used for small to medium sized projects where
requirements are clearly defined and fixed.
•The V-Shaped model should be chosen when ample technical resources are
available with needed technical expertise.
Evolutionary Process models
 Evolutionary model is a combination of Iterative and Incremental model of
software development life cycle.
 They allow to develop more complete versions of the software.
 It is based on the concept of making an initial product and then evolving the
software product over time with iterative and incremental approaches with
proper feedback.
 In this type of model, the product will go through several iterations and come
up when the final product is built through multiple iterations. The
development is carried out simultaneously with the feedback during the
development.
 This model has a number of advantages such as customer involvement,
taking feedback from the customer during development, and building the
exact product that the user wants.
 Because of the multiple iterations, the chances of errors get reduced and the
reliability and efficiency will increase.
Evolutionary Model
evolutionary process models:
1. The prototyping model
2. The spiral model
3. Incremental Model
1. The Prototyping model
 Prototype is defined as first or preliminary form using which other forms are
copied or derived.
 Prototype model is a set of general objectives for software.
 It does not identify the requirements like detailed input, output.
 It is software working model of limited functionality.
 In this model, working programs are quickly produced.
The different phases of Prototyping model are:
1. Communication
In this phase, developer and customer meet and discuss the overall objectives of
the software.

2. Quick design
 Quick design is implemented when requirements are known.

 It includes only the important aspects like input and output format of the

software.
 It focuses on those aspects which are visible to the user rather than the detailed

plan.
 It helps to construct a prototype.

3. Modeling quick design


 This phase gives the clear idea about the development of software because the

software is now built.


 It allows the developer to better understand the exact requirements.
4. Construction of prototype
The prototype is evaluated by the customer itself.

5. Deployment, delivery, feedback


 If the user is not satisfied with current prototype, then it refines according to

the requirements of the user.


 The process of refining the prototype is repeated until all the requirements of

users are met.


 When the users are satisfied with the developed prototype then the system is

developed on the basis of final prototype.


Advantages of Prototyping Model
 Prototype model need not know the detailed input, output, processes,

adaptability of operating system and full machine interaction.


 In the development process of this model users are actively involved.

 The development process is the best platform to understand the system by the

user.
 Errors are detected much earlier.

 Gives quick user feedback for better solutions.

 It identifies the missing functionality easily. It also identifies the confusing or

difficult functions.
Disadvantages of Prototyping Model:
 The client involvement is more and it is not always considered by the developer.
 It is a slow process because it takes more time for development.
 Many changes can disturb the rhythm of the development team.
 It is a thrown away prototype when the users are confused with it.
4. Construction of prototype
The prototype is evaluated by the customer itself.

5. Deployment, delivery, feedback


 If the user is not satisfied with current prototype, then it refines according to

the requirements of the user.


 The process of refining the prototype is repeated until all the requirements of

users are met.


 When the users are satisfied with the developed prototype then the system is

developed on the basis of final prototype.


3. Iterative Model
 In a practical software development project, the classical Waterfall
Model is hard to use.
 So, the Iterative Waterfall Model can be thought of as incorporating the
necessary changes to the classical Waterfall Model to make it usable in
practical software development projects. It is almost the same as the
classical Waterfall Model.
The Iterative Waterfall Model provides feedback paths from every phase
to its preceding phases.
Phases:
Requirements Gathering: This is the first stage where the business owners
and developers meet to discuss the goals and requirements of the website.
Design: In this stage, the developers create a preliminary design of the
website based on the requirements gathered in stage 1.
Implementation: In this stage, the developers begin to build the website
based on the design created in stage 2.
Testing: Once the website has been built, it is tested to ensure that it meets
the requirements and functions properly.
Deployment: The website is then deployed and made live to the public.
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.
Advantages
 Testing and debugging during smaller iteration is easy.
 A Parallel development can plan.
 It is easily acceptable to ever-changing needs of the project.
 Risks are identified and resolved during iteration.
 Limited time spent on documentation and extra time on designing.

Disadvantages
 It is not suitable for smaller projects.
 More Resources may be required.
 Design can be changed again and again because of imperfect requirements.
 Requirement changes can cause over budget.
 Project completion date not confirmed because of changing requirements.
When to use the Iterative Model?
1.When requirements are defined clearly and easy to understand.
2.When the software application is large.
3.When there is a requirement of changes in future.
4. Incremental Process
Model
 The Incremental model is a software Development approach which is used to
breakdown the project into smaller and easily manageable parts.
 In these, each part passes through Requirement, Design, Testing phases and
Implementation phase. The overall process continue until we got the complete
System.
 The Incremental Process Model is a method of software development where the
system is built step by step. Instead of delivering the whole system at once, it is
developed and delivered in small parts called increments. Each increment builds
upon the previous one by adding new functionality, until the complete system is
finished.
 In the incremental model, we first build the project with basic features and then
evolve the project in every iteration, it is mainly used for large projects.
 The first step is to gather the requirements and then perform analysis, design,
code, and test and this process goes the same over and over again until our final
project is ready.
Phases
The phases of Incremental model is divided into the four parts which is
Requirement, Design, Testing phases and Implementation phase.
In those phase, the process continues until we got the expected output at the end.

 Requirements
 Design
 Testing
 Implementation
1. Requirement Analysis
The first step in the Incremental Model is understanding what the software needs to do.
The team gathers the requirements from the product experts and clearly defines the
system’s functional needs. This phase is important because it sets the foundation for
everything else in the development process.
2. Design & Development
Next, the team focuses on designing how the software will function and starts
developing it. They work on adding new features and making sure the system works as
expected. The design and development steps go hand-in-hand to build the functionality
of the software.
3. Testing
Once a feature is developed, it goes through testing. The testing phase checks how the
software performs, including both new and existing features. The team uses different
testing methods to make sure everything is working correctly.
4. Implementation
This phase involves writing the final code based on the design and development steps.
After testing the functionality, the team verify that everything is working as planned.
By the end of this phase, the product is gradually improved and updated until it
becomes the final working version.
Advantages:
The Incremental Model of software development builds a system in small,
manageable sections (increments), making it a good choice for many projects.
 Faster Software Delivery
 Clear Understanding for Clients
 Easy to Implement Changes
 Effective Risk Management
 Cost-Effective
Disadvantages
 Requires a Skilled Team and Proper Planning
 Cost Can Increase Over Time
 High Effort to Fix Repeated Issues
When to use the incremental model
1.When major requirements are understood but some requirements can evolve within
the passage of time.
2.When product launch in the market is getting late.
3.When a customer has no problem with the budget but he demands more and more
quality in software.
2. Spiral model
 Spiral model is a combination of iterative development process model and
sequential linear development model(waterfall Model).
 This model is used in Projects which are large and complex
 in this, we focused on risk handling along with developing the project with the
incremental and iterative approach, producing the output quickly.
 The software is created through multiple iterations using a spiral approach.
Later on, after successive development the final product will develop, and the
customer interaction is there so the chances of error get reduced.
 The spiral model has four phases:
1. Planning
2. Risk Analysis
3. Engineering
4. Evaluation.
 A software project repeatedly passes through these phases in iterations (called
Spirals).
 The baseline spiral, starting in the planning phase, requirements are
gathered and risk is assessed. Each subsequent spirals builds on the
baseline spiral.
Spiral model is divided into 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. 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.

Advantages of 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.
 It is good for large and critical projects.
 It gives strong approval and documentation control.
 In spiral model, the software is produced early in the life cycle process.
Disadvantages of Spiral Model:
 It can be costly to develop a software model.
 It is not used for small projects.
THANK YOU

You might also like