UNIT 2 : PROCESS MODEL
A GENERIC PROCESS MODEL (FRAMEWORK):
Software Process Framework details the steps and chronological order of a process. Since it
serves as a foundation for them, it is utilized in most applications. Task sets, umbrella
activities, and process framework activities all define the characteristics of the software
development process. Software Process includes:
1. Tasks: They focus on a small, specific objective.
2. Action: It is a set of tasks that produce a major work product.
3. Activities: Activities are groups of related tasks and actions for a major objective.
Process Framework Activities
The process framework is required for representing common process activities. Five
framework activities are described in a process framework for software engineering.
Communication, planning, modeling, construction, and deployment are all examples of
framework activities. Each engineering action defined by a framework activity comprises a list
of needed work outputs, project milestones, and software quality assurance (SQA) points.
1. Communication
By communication, customer requirement gathering is done. Communication with consumers
and stakeholders to determine the system’s objectives and the software’s requirements.
2. Planning
Establish engineering work plan, describes technical risk, lists resources requirements, work
produced and defines work schedule.
3. Modeling
Architectural models and design to better understand the problem and to work towards the best
solution. The software model is prepared by:
Analysis of requirements
Design
4. Construction
Creating code, testing the system, fixing bugs, and confirming that all criteria are met. The
software design is mapped into a code by:
Code generation
Testing
5. Deployment
In this activity, a complete or non-complete product or software is represented to the customers
to evaluate and give feedback. On the basis of their feedback, we modify the product for the
supply of better products.
Umbrella Activities
Umbrella Activities are that take place during a software development process for improved
project management and tracking.
1. Software project tracking and control: This is an activity in which the team can assess
progress and take corrective action to maintain the schedule. Take action to keep the
project on time by comparing the project’s progress against the plan.
2. Risk management: The risks that may affect project outcomes or quality can be analyzed.
Analyze potential risks that may have an impact on the software product’s quality and
outcome.
3. Software quality assurance: These are activities required to maintain software quality.
Perform actions to ensure the product’s quality.
4. Formal technical reviews: It is required to assess engineering work products to uncover and
remove errors before they propagate to the next activity. At each level of the process, errors
are evaluated and fixed.
5. Software configuration management: Managing of configuration process when any change
in the software occurs.
6. Work product preparation and production: The activities to create models, documents, logs,
forms, and lists are carried out.
7. Reusability management: It defines criteria for work product reuse. Reusable work items
should be backed up, and reusable software components should be achieved.
8. Measurement: In this activity, the process can be defined and collected. Also, project and
product measures are used to assist the software team in delivering the required software.
PROCESS ASSESSMENT AND IMPROVEMENT :
o Software 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. The Software
Process Assessment includes many fields and parts like identification and characterization of
current practices, the ability of current practices to control or avoid significant causes of poor
(software) quality, cost, schedule and identifying areas of strengths and weaknesses of the
software.
Types of Software Assessment :
Self Assessment : This is conducted internally by the people of their own organisation.
Second Party assessment: This is conducted by an external team or people of the own
organisation are supervised by an external team.
Third Party assessment:
In an ideal case Software Process Assessment should be performed in a transparent, open and
collaborative environment. This is very important for the improvement of the software and the
development of the product. The results of the Software Process Assessment are confidential
and are only accessible to the company. The assessment team must contain at least one person
from the organization that is being assessed.
Software Process Maturity Assessment:
The scope of Software Process Assessment includes many components like it should cover all
the processes in the organisation, a selected subset of the software process or a specific project.
The idea of process maturity serves as the foundation for the majority of standard-based
process evaluation methodologies.
Though an organisstion is the assessment objective, even when the same approach is applied
again, the outcomes of a process evaluation may vary. The different results are mainly due to
two reasons. The reasons are that the organization that is being investigated must be
determined. When the company is very large it is possible for the company to have different
definitions due to which the actual scope of appraisal may be different in successive
assessments. Even if it is the same organization the sample of projects selected to represent t he
organization may affect the scope and result. Process maturity is important when the
organisation intended to embark on an long term improvement strategy.
Software Process Cycle:
Generally there are six different steps in the complete cycle:
Selecting a team: The first step is to select all the team members. Everyone must be
software professionals with sound knowledge in software engineering.
The standard process maturity questionnaire is filled out by the representatives of the site
that will be evaluated.
In accordance with the CMM core process areas, the assessment team analyses the
questionnaire results to determine the areas that call for additional investigation.
The evaluation team visits the location to learn more about the software procedures us ed
there.
The evaluation team compiles a set of results outlining the organization’s software
process’s advantages and disadvantages.
In order to deliver the findings to the right audience, the assessment team creates a Key
Process Area (KPA) profile analysis.
SCAMPI;
SCAMPI stands for Standard CMMI Assessment Method for Process Improvement. To fulfil
the demands of the CMMI paradigm, the Standard CMMI Assessment Method for Process
Improvement (SCAMPI) was created (Software Engineering Institute, 2000). Moreover, it is
based on the CBA IPI. The CBA IPI and SCAMPI both have three steps.
1. Plan and become ready
2. Carry out the evaluation on-site
3. Report findings
The planning and preparation phase includes the following activities:
Describe the scope of the evaluation.
Create the assessment strategy.
Get the evaluation crew ready and trained.
Make a quick evaluation of the participants.
CMMI Appraisal Questionnaire distribution
Look at the survey results.
Perform a preliminary document evaluation.
The onsite evaluation phase includes the following activities:
Display the results.
Execute the findings.
Complete / end the assessment.
Master Software Testing and Automation in an efficient and time-bound manner by mentors
with real-time industry experience. Join our Software Automation Course and embark on an
exciting journey, mastering the skill set with ease!
PERSCRIPTIVE PROCESS MODELS :
[Link] Waterfall Model :
The waterfall model is a software development model used in the context of large, complex
projects, typically in the field of information technology. It is characterized by a structured,
sequential approach to project management and software development.
The waterfall model is useful in situations where the project requirements are well-defined and
the project goals are clear. It is often used for large-scale projects with long timelines, where
there is little room for error and the project stakeholders need to have a high level of
confidence in the outcome.
Features of the Waterfall Model
1. Sequential Approach: The waterfall model involves a sequential approach to software
development, where each phase of the project is completed before moving on to the next
one.
2. Document-Driven: The waterfall model relies heavily on documentation to ensure that the
project is well-defined and the project team is working towards a clear set of goals.
3. Quality Control: The waterfall model places a high emphasis on quality control and testing
at each phase of the project, to ensure that the final product meets the requirements and
expectations of the stakeholders.
4. Rigorous Planning: The waterfall model involves a rigorous planning process, where the
project scope, timelines, and deliverables are carefully defined and monitored throughout
the project lifecycle.
Overall, the waterfall model is used in situations where there is a need for a highly structured
and systematic approach to software development. It can be effective in ensuring that large,
complex projects are completed on time and within budget, with a high level of quality and
customer satisfaction.
Phases of Classical Waterfall Model
Waterfall Model is a classical software development methodology that was first introduced by
Winston W. Royce in 1970. It is a linear and sequential approach to software development that
consists of several phases that must be completed in a specific order. The phases include:
1. Requirements Gathering and Analysis: The first phase involves gathering requirements
from stakeholders and analyzing them to understand the scope and objectives of the
project.
2. Design: Once the requirements are understood, the design phase begins. This involves
creating a detailed design document that outlines the software architecture, user interface,
and system components.
3. Implementation: The implementation phase involves coding the software based on the
design specifications. This phase also includes unit testing to ensure that each component
of the software is working as expected.
4. Testing: In the testing phase, the software is tested as a whole to ensure that it meets the
requirements and is free from defects.
5. Deployment: Once the software has been tested and approved, it is deployed to the
production environment.
6. 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.
The classical waterfall model divides the life cycle into a set of phases. This model considers
that one phase can be started after the completion of the previous phase. That is the output of
one phase will be the input to the next phase. Thus the development process can be considered
as a sequential flow in the waterfall. Here the phases do not overlap with each other. The
different sequential phases of the classical waterfall model are shown in the below figure.
1. Feasibility Study
The main goal of this phase is to determine whether it would be financially and technically
feasible to develop the software.
The feasibility study involves understanding the problem and then determining the various
possible strategies to solve the problem. These different identified solutions are analyzed based
on their benefits and drawbacks, The best solution is chosen and all the other phases are carried
out as per this solution strategy.
2. Requirements Analysis and Specification
The aim of the requirement analysis and specification phase is to understand the exact
requirements of the customer and document them properly. This phase consists of two different
activities.
Requirement gathering and analysis: Firstly all the requirements regarding the software are
gathered from the customer and then the gathered requirements are analyzed. The goal of
the analysis part is to remove incompleteness (an incomplete requirement is one in which
some parts of the actual requirements have been omitted) and inconsistencies (an
inconsistent requirement is one in which some part of the requirement contradicts some
other part).
Requirement specification: These analyzed requirements are documented in a software
requirement specification (SRS) document. SRS document serves as a contract between the
development team and customers. Any
future dispute between the customers and the developers can be settled by examining the
SRS document.
3. Design
The goal of this phase is to convert the requirements acquired in the SRS into a format that can
be coded in a programming language. It includes high-level and detailed design as well as the
overall software architecture. A Software Design Document is used to document all of this
effort (SDD)
4. Coding and Unit Testing
In the coding phase software design is translated into source code using any suitable
programming language. Thus each designed module is coded. The aim of the unit testing phase
is to check whether each module is working properly or not.
5. Integration and System testing
Integration of different modules is undertaken soon after they have been coded and unit tested.
Integration of various modules is carried out incrementally over a number of steps. During
each integration step, previously planned modules are added to the partially integrated system
and the resultant system is tested. Finally, after all the modules have been successfully
integrated and tested, the full working system is obtained and system testing is carried out on
this.
System testing consists of three different kinds of testing activities as described below.
Alpha testing: Alpha testing is the system testing performed by the development team.
Beta testing: Beta testing is the system testing performed by a friendly set of customers.
Acceptance testing: After the software has been delivered, the customer performed
acceptance testing to determine whether to accept the delivered software or reject it.
6. Maintenance
Maintenance is the most important phase of a software life cycle. The effort spent on
maintenance is 60% of the total effort spent to develop a full software. There are basically
three types of maintenance.
Corrective Maintenance: This type of maintenance is carried out to correct errors that were
not discovered during the product development phase.
Perfective Maintenance: This type of maintenance is carried out to enhance the
functionalities of the system based on the customer’s request.
Adaptive Maintenance: Adaptive maintenance is usually required for porting the software
to work in a new environment such as working on a new computer platform or with a new
operating system.
2. Incremental Model :
Incremental Model is a process of software development where requirements divided into
multiple standalone modules of the software development cycle. In this model, each module goes
through the requirements, design, implementation and testing phases. Every subsequent release
of the module adds function to the previous release. The process continues until the complete
system achieved.
The various phases of incremental model are as follows:
1. Requirement analysis: In the first phase of the incremental model, the product analysis
expertise identifies the requirements. And the system functional requirements are understood by
the requirement analysis team. To develop the software under the incremental model, this phase
performs a crucial role.
2. Design & Development: In this phase of the Incremental model of SDLC, the design of the
system functionality and the development method are finished with success. When software
develops new practicality, the incremental model uses style and development phase.
3. Testing: In the incremental model, the testing phase checks the performance of each existing
function as well as additional functionality. In the testing phase, the various methods are used to
test the behavior of each task.
4. 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
Advantage of Incremental Model
o Errors are easy to be recognized.
o Easier to test and debug
o More flexible.
o Simple to manage risk because it handled during its iteration.
o The Client gets important functionality early.
Disadvantage of Incremental Model
o Need for good planning
o Total Cost is high.
o Well defined module interfaces are needed.
[Link] Process Models
A software process model is a structured representation of the activities of the software
development process. During the development of software, various steps that are important for
the successful development of the project are taken and if we structured them according to the
proper order in a model then it is called a software process model. The software process model
includes various activities such as steps like planning, designing, implementation, defining
tasks, setting up milestones, roles, and responsibilities, etc.
Evolutionary Process Model
The evolutionary model 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.
Types of Evolutionary Process Models
1. Iterative Model
2. Incremental Model
3. Spiral Model
A.)Iterative Model
In the iterative model first, we take the initial requirements then we enhance the product over
multiple iterations until the final product gets ready. In every iteration, some design
modifications were made and some changes in functional requirements is added. The main idea
behind this approach is to build the final product through multiple iterations that result in the
final product being almost the same as the user wants with fewer errors and the performance,
and quality would be high.
Iterative model
B.)Incremental Model
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.
ready.
Incremental Model
C)Spiral Model
The spiral model is a combination of waterfall and iterative models and in this, we focused on
risk handling along with developing the project with the incremental and iterative approach,
producing the output quickly as well as it is good for big projects. 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.
Spiral Model
Advantages of the Evolutionary Process Model
1. During the development phase, the customer gives feedback regularly because the
customer’s requirement gets clearly specified.
2. After every iteration risk gets analyzed.
3. Suitable for big complex projects.
4. The first build gets delivered quickly as it used an iterative and incremental approach.
5. Enhanced Flexibility: The iterative nature of the model allows for continuous changes and
refinements to be made, accommodating changing requirements effectively.
6. Risk Reduction: The model’s emphasis on risk analysis during each iteration helps in
identifying and mitigating potential issues early in the development process.
7. Adaptable to Changes: Since changes can be incorporated at the beginning of each
iteration, it is well-suited for projects with evolving or uncertain requirements.
8. Customer Collaboration: Regular customer feedback throughout the development process
ensures that the end product aligns more closely with the customer’s needs and
expectations.
Disadvantages of the Evolutionary Process Model
1. It is not suitable for small projects.
2. The complexity of the spiral model can be more than the other sequential models.
3. The cost of developing a product through a spiral model is high.
4. roject Management Complexity: The iterative nature of the model can make project
management and tracking more complex compared to linear models.
5. Resource Intensive: The need for continuous iteration and customer feedback demands a
higher level of resources, including time, personnel, and tools.
6. Documentation Challenges: Frequent changes and iterations can lead to challenges in
maintaining accurate and up-to-date documentation.
7. Potential Scope Creep: The flexibility to accommodate changes can sometimes lead to an
uncontrolled expansion of project scope, resulting in scope creep.
8. Initial Planning Overhead: The model’s complexity requires a well-defined initial plan, and
any deviations or adjustments can be time-consuming and costly.