Professional Documents
Culture Documents
Unit I - Chapter 2
Unit I - Chapter 2
Compiled by,
Ms. Ashwini T
CS Dept, YIASCM
▪ In software engineering, the phrase software process refers to the
▪ The process that deals with the technical and management issues
2
18 June 2022
▪ General activities in all SPs are:
development constraints?
demands.
3
18 June 2022
▪ A software process defines a method for developing a software.
is used.
▪ Each software development process starts with some needs and ends
▪ A software process specifies how the abstract set of activities that should
➢ Development process
➢ Management process
▪ Any software project has to deal with the problem of change and rework
satisfactorily.
process.
7
18 June 2022
8
18 June 2022
▪ Project : A project is defined by a fixed time, scope, and resources.
and to incorporate that change into the day-to-day processes of the company.
▪ Both projects and process are important for running and improving a
business.
9
18 June 2022
10
18 June 2022
▪ Software Products are nothing but software systems delivered to the
customer with the documentation that describes how to install and use the
system.
▪ Software products are produced with the help of the software process.
11
18 June 2022
▪ Software products fall into two broad categories:
▪ Generic products:
▪ Customized Products:
12
18 June 2022
13
18 June 2022
▪ Fundamental Objective of SP - Optimality and Scalability
▪ Optimality - process must be able to produce high quality software at low cost and
➢ Predictability
➢ Process Improvement
14
18 June 2022
▪ Process framework determines the process which are essential for
completing a complex software project.
▪ Framework activities:
1. Communication
2. Planning
3. Modeling
4. Construction
5. Deployment
15
18 June 2022
▪ It is a disciplined examination of the software processes used by an
16
18 June 2022
▪ ++This is determined by the capability of selected software processes.
▪ In addition, it measures the extent to which the software process meets the
user’s requirements.
existing processes.
the processes.
17
18 June 2022
18
18 June 2022
▪ A self-assessment (first-party assessment)
▪ A second-party assessment
customer.
▪ A third-party assessment
19
18 June 2022
▪ Software process assessments are performed in an open and
collaborative environment.
▪ They are for the use of the organization to improve its software
team.
20
18 June 2022
▪ Different approaches are used for assessing software process. These
approaches are
1. SPICE (ISO/IEC15504),
improvement,
4. Bootstrap
21
18 June 2022
▪ SPICE (Software Process Improvement and Capability Determination) is a
standard used for both process improvement and process capability
determination.
▪ SPICE provides a framework for assessing the software process and is used
by the organizations involved in planning, monitoring, developing, managing,
and improving acquisitions.
23
18 June 2022
▪ Not performed: At this level, the processes are unable to accomplish the
required outcomes. Thus, no identifiable products are created.
▪ Planned and tracked: At this level, the defined process delivers products
according to quality requirements within a specified time. The processes and
products are verified according to the procedures, standards, and
requirements.
24
18 June 2022
▪ Well-defined: At this level, the processes based on software engineering
principles which are capable of achieving defined outcomes are used.
25
18 June 2022
▪ A quality management system refers to the activities within an organization, which
▪ The major advantage of this standard is that it achieves a better understanding and
▪ Plan: Determines the processes and resources which are required to develop
a quality product according to the user’s satisfaction.
▪ Do: Performs activities according to the plan to create the desired product.
weaknesses in an organization.
28
18 June 2022
29
18 June 2022
▪ The objectives of SCAMPI are listed below.
31
18 June 2022
▪ The organization’s software process capability is assessed by a group of
▪ Thus, the primary goal of CBA IPI is to provide an actual picture of the
32
18 June 2022
▪ CBA-IPI tool is used in an organization to gain insight into the software
development capability.
▪ For this, the strengths and weaknesses of the existing process are identified
33
18 June 2022
▪ To achieve this, the assessment team performs the following functions.
▪ These are used to guide the organization in planning .and prioritizing future
process improvement activities.
34
18 June 2022
35
18 June 2022
36
18 June 2022
▪ Bootstrap is an improvement on SEI approaches for process assessment and improvement
and covers the requirements laid by ISO 9000.
▪ This approach evaluates and improves the quality of software development and management
process of an organization.
2. To identify the strengths and weaknesses of the processes in the organization being
assessed
▪ Each process model follows a Series of steps unique to its type to ensure
38
18 June 2022
1. Waterfall Model
2. Prototyping Model
3. Spiral Model
4. Incremental Model
7. V Model
39
18 June 2022
➢Example of a Sequential model.
➢It is mandatory for a phase to be completed before the next phase starts.
➢Since the phases fall from higher level to lower level, like a waterfall,
• For smaller projects, waterfall model works well and yield the
appropriate results.
• Since the phases are rigid and precise, one phase is done one at a
time, it is easy to maintain.
• The entry and exit criteria are well defined, so it is easy and
systematic to proceed with quality.
• For example, if the application has now moved to the testing stage and there is
a change in requirement, then it needs to go back and change it.
• For bigger and complex projects, this model is not good as a risk factor is
higher.
• Not suitable for the projects where requirements are changed frequently.
45
18 June 2022
▪ Prototype is a working model of software with some limited functionality.
▪ The prototype does not always hold the exact logic used in the actual
software application and is an extra effort to be considered under effort
estimation.
▪ It helps get valuable feedback from the customer and helps software
designers and developers understand about what exactly is expected
from the product under development. 46
18 June 2022
➢The basic idea is to freeze the requirements before a design or
➢ By using this prototype, the client can get an “actual feel” of the
system, since the interactions with prototype can enable the client
to better understand the requirements of the desired system.
47
18 June 2022
48
18 June 2022
▪ Users are actively involved in the development
49
18 June 2022
▪ Risk of insufficient requirement analysis owing to too much dependency
on the prototype.
▪ Developers may try to reuse the existing prototypes to build the actual
system, even when it is not technically feasible.
▪ It is a time-consuming process. 50
18 June 2022
▪ Should be used when the desired system needs to have a lot of interaction with
the end users.
▪ Typically, online systems, web interfaces have a very high amount of interaction
with end users, are best suited for Prototype model.
▪ It might take a while for a system to be built that allows ease of use and needs
minimal training for the end user.
▪ Prototyping ensures that the end users constantly work with the system and
provide a feedback which is incorporated in the prototype to result in a useable
system.
▪ They are excellent for designing good human computer interface systems.
51
18 June 2022
▪ Incremental Model is a process of software development where requirements
▪ Each iteration passes through the requirements, design, coding and testing
phases. And each subsequent release of the system adds function to the
previous release until all designed functionality has been implemented.
52
18 June 2022
53
18 June 2022
▪ The system is put into production when the first increment is delivered.
▪ The first increment is often a core product where the basic requirements are
▪ Once the core product is analyzed by the client, there is plan development
54
18 June 2022
▪ System development is broken down into many mini development projects
frozen
55
18 June 2022
▪ The software will be generated quickly during the software life cycle
56
18 June 2022
▪ It requires a good planning designing
▪ Each iteration phase is rigid and does not overlap each other
▪ Rectifying a problem in one unit requires correction in all the units and
57
18 June 2022
▪ Requirements of the system are clearly understood
▪ When software engineering team are not very well skilled or trained
▪ Such methodology is more in use for web application and product based
companies
58
18 June 2022
▪ Initially proposed by Boehm in 1980s.
▪ The spiral model has four phases. A software project repeatedly passes
through these phases in iterations called Spirals.
59
18 June 2022
60
18 June 2022
61
18 June 2022
▪ This phase starts with gathering the business requirements in the baseline
spiral.
▪ At the end of the spiral, the product is deployed in the identified market.
62
18 June 2022
▪ During the second quadrant, all the possible solutions are evaluated to select
▪ Then the risks associated with that solution are identified and the risks are
▪ At the end of this quadrant, the Prototype is built for the best possible
solution.
63
18 June 2022
▪ 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.
64
18 June 2022
▪ 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.
65
18 June 2022
▪ Risk Handling: The projects with many unknown risks that occur as the development
proceeds, in that case, Spiral Model is the best development model to follow due to
the risk analysis and risk handling at every phase.
▪ Good for large projects: It is recommended to use the Spiral Model in large and
complex projects.
▪ Customer Satisfaction: Customer 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.
66
18 June 2022
▪ Complex: The Spiral Model is much more complex than other SDLC
models.
▪ If the requirements are well understood and described, and the project scope
69
18 June 2022
▪ RAD (Rapid Application Development) is a concept that products can be
product version
70
18 June 2022
71
18 June 2022
▪ 1.Business Modelling:
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.
72
18 June 2022
▪ 2. Data Modelling:
▪ The data collected from business modeling is refined into a set of data
▪ The attributes (character of each entity) are identified, and the relation
73
18 June 2022
▪ 3. Process Modelling:
▪ The information object defined in the data modeling phase are transformed
74
18 June 2022
▪ 4. Application Generation:
▪ Automated tools are used to facilitate construction of the software; even they
▪ Many of the programming components have already been tested since RAD
emphasis reuse.
▪ But the new part must be tested, and all interfaces must be fully exercised.
75
18 June 2022
▪ When the system should need to create the project that modularizes in a
of period.
▪ It should be used only if the budget allows the use of automatic code
generating tools.
76
18 June 2022
▪ This model is flexible for change.
77
18 June 2022
▪ It required highly skilled designers.
78
18 June 2022
▪ In time boxing model, development is done iteratively as in the iterative
enhancement model.
▪ It is divided into a sequence of fixed stages where each stage performs a clearly
defined task (analysis, implementation, and deploy) that can be done independently.
▪ This model also requires that the time duration of each stage is approximately equal
so that pipelining concept is employed to have the reduction in development time
and product releases.
79
18 June 2022
80
18 June 2022
▪ This itself very useful in many situations
schedule
81
18 June 2022
▪ Multiple iterations executing in parallel
▪ Each stage performs a clearly defined task that can be done independently
▪ When one stage team finishes, it hands over the project to the next team 18 June 2022
82
▪ Advantages:
▪ distr. Execution
▪ Disadvantages:
▪ Larger teams,
▪ CM is harder
83
18 June 2022
▪ Applicability
84
18 June 2022
▪ Emphasizes the concept of “Verification and Validation”.
▪ Testing Phases will be planned in parallel with the development of the stage
which they are supposed to be tested against and will be joined at the bottom
by the actual coding process.
85
18 June 2022
86
18 June 2022
▪ Business requirement analysis:
87
18 June 2022
▪ System Design:
▪ In this stage system engineers analyze and interpret the business of the
▪ Architecture Design:
88
18 June 2022
▪ Module Design:
▪ In the module design phase, the system breaks down into small modules.
▪ Coding Phase:
▪ After designing, the coding phase is started. Based on the requirements, a suitable
programming language is decided.
▪ Before checking in the repository, the final build is optimized for better
performance, and the code goes through many code reviews to check the
performance.
89
18 June 2022
▪ Coding
and modules.
▪ After the coding has been done. A V-Model will process to do the testing in
▪ Thus complete a V-like shape cycle of Verification (Down), Coding (Joint) and
▪ In the V-Model, Unit Test Plans (UTPs) are developed during the module
design phase.
▪ These UTPs are executed to eliminate errors at code level or unit level.
▪ A unit is the smallest entity which can independently exist, e.g., a program
module.
▪ Unit testing verifies that the smallest entity can function correctly when
91
18 June 2022
▪ Integration Testing:
▪ Integration Test Plans are developed during the Architectural Design Phase.
▪ These tests verify that groups created and tested independently can coexist
▪ System Testing:
▪ Unlike Unit and Integration Test Plans, System Tests Plans are composed by
▪ System Test ensures that expectations from an application developer are met.
92
18 June 2022
▪ Acceptance Testing:
93
18 June 2022
▪ When the requirement is well defined and not ambiguous.
▪ The V-shaped model should be chosen when sample technical resources are
94
18 June 2022
▪ Advantages
▪ Easy to Understand.
▪ Testing Methods like planning, test designing happens well before coding.
▪ This saves a lot of time. Hence a higher chance of success over the waterfall model.
▪ Works well for small plans where requirements are easily understood
▪ Disadvantages
▪ Software is developed during the implementation stage, so no early prototypes of the software are
produced.
▪ If any changes happen in the midway, then the test documents along with the required documents,
has to be updated.
95
18 June 2022
▪ Process improvement
96
18 June 2022
▪ First - an organization needs to understand the status of the current status
and then develop a plan to improve the process.
▪ Introducing too many new methods for the software process will make the
task of implementing the change very hard.
▪ Changes are best introduced in small increments and that it is not feasible to
totally revolutionize a process.
97
18 June 2022
98
18 June 2022
▪ Basic project controls for ensuring that activities are being done properly
99
18 June 2022
▪ Policies for managing a software project and procedures to implement those
policies exist.
▪ project commitments are realistic and based on past experience with similar
projects,
▪ cost and schedule are tracked and problems resolved when they arise,
100
18 June 2022
▪ organization has standardized on a software process, which is properly
documented.
▪ A software process group exists in the organization that owns and manages
the process.
▪ In the process each step is carefully defined with verifiable entry and exit
▪ In this process both the development and management processes are formal.
101
18 June 2022
▪ Quantitative goals exist for process and products.
▪ Due to the models built, the organization has a good insight in the process
102
18 June 2022
▪ The focus of the organization is on continuous process improvement.
▪ New technologies and tools are introduced and their effects measured in an
the organization.
103
18 June 2022
▪ Does not specify levels or what areas to focus on for improvement.
▪ The basic idea behind this approach is to understand the current process, set
objectives for improvement, and then plan and execute the improvement
actions.
104
18 June 2022
▪ Characterize : Understand the current process and the environment it operates in.
▪ Set Goals : Based on step 1 and objectives of the organization, set quantifiable goals for
performance improvement. The goals should be reasonable.
▪ Choose Process : Based on characterization and goals, choose the component processes
that should be changed to meet the goals.
▪ Execute : Execute projects using the processes and provide feedback data.
▪ Analyze : Analyze the data at the end of each project. From the analysis, determine problems
and make recommendations for improvements to be applied on future projects.
▪ Package : Based on the experience gained from many projects, define and formalize the
changes to be made to processes and expectation from the new processes.
105
18 June 2022
▪ Used - For collecting proper data that will serve the purpose of process
improvement.
▪ It suggests a general framework for collecting data from projects that can be
used for a specific purpose.
▪ The QIP and GQM have been used successfully by many organizations to
107
18 June 2022
108
18 June 2022