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

UNIT I - CHAPTER 2

Compiled by,

Ms. Ashwini T

CS Dept, YIASCM
▪ In software engineering, the phrase software process refers to the

method of developing the software.

▪ A software process is a set of activities together with proper

ordering to build a high-quality software with low cost and small


cycle-time.

▪ The process that deals with the technical and management issues

of software development is called a software process.

2
18 June 2022
▪ General activities in all SPs are:

▪ Specification: what should the systems do and what are its

development constraints?

▪ Development: production of the software

▪ Validation: checking that the software is what the customer wants

▪ Evolution: changing the software in response to changing

demands.

3
18 June 2022
▪ A software process defines a method for developing a software.

▪ A software project is a development project in which a software process

is used.

▪ Software products are the outcomes of a software project.

▪ Each software development process starts with some needs and ends

with some software that satisfies those needs.

▪ A software process specifies how the abstract set of activities that should

be performed to go from user needs to final product.


4
18 June 2022
▪ Three major components in a software process. They are

➢ Development process

➢ Management process

➢ Software configuration management process.

▪ The development process specifies the development and quality

assurance activities that need to be performed.

▪ Management process specifies how to plan and control these activities,

so that project objectives are met.


5
18 June 2022
▪ The development and management processes aim at satisfying cost and
quality objectives of a project.

▪ Any software project has to deal with the problem of change and rework
satisfactorily.

▪ This change cannot be handled by the development process.

▪ To handle the change and rework issues, another process called


software configuration management process is used.

▪ Objective - to deal with managing changes so that cost and quality


objectives are met and the integrity of the project is not violated due to
the change requests.
6
18 June 2022
▪ Project management process and configuration control process

depend on development process.

▪ The main objectives of these processes are to produce a desired

product. So, they can be called as product engineering processes.

▪ Software is not static; it is dynamic because it must change to adapt

newer technologies and tools. Due to this, a process to manage a


software is needed. It is called process management process.

▪ Main objectives of process management are to improve the software

process.
7
18 June 2022
8
18 June 2022
▪ Project : A project is defined by a fixed time, scope, and resources.

▪ When implementing a project, the goal is to execute change, usually drastic,

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.

▪ However, depending on the end result trying to be achieved, one may be

more suited than the other.

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.

▪ In certain cases, software products may be part of system products where

hardware, as well as software, is delivered to a customer.

▪ Software products are produced with the help of the software process.

11
18 June 2022
▪ Software products fall into two broad categories:

▪ Generic products:

Generic products are stand-alone systems that are developed by a


production unit and sold on the open market to any customer who is able to
buy them.

▪ Customized Products:

Customized products are the systems that are commissioned by a particular


customer. Some contractor develops the software for that customer.

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

small cycle time.

▪ Scalability - it should also be applicable for large software projects.

▪ Some of the characteristics are:

➢ Predictability

➢ Support Maintainability and Testability

➢ Early Defect Removal and Defect Prevention

➢ 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

organization, based on a process model.

▪ The assessment includes :

▪ Identification and characterization of current practices,

▪ Identifying areas of strengths and weaknesses, and

▪ The ability of current practices to control or avoid significant

causes of poor (software) quality, cost, and schedule.

16
18 June 2022
▪ ++This is determined by the capability of selected software processes.

▪ The capability of a process determines whether a process with some

variations is capable of meeting user’s requirements.

▪ In addition, it measures the extent to which the software process meets the

user’s requirements.

▪ Process assessment is useful to the organization as it helps in improving the

existing processes.

▪ In addition, it determines the strengths, weaknesses and the risks involved in

the processes.
17
18 June 2022
18
18 June 2022
▪ A self-assessment (first-party assessment)

▪ performed internally by an organization's own personnel.

▪ A second-party assessment

▪ performed by an external assessment team or the organization is assessed by a

customer.

▪ A third-party assessment

▪ performed by an external party or (e.g., a supplier being assessed by a third

party to verify its ability to enter contracts with a customer).

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

processes, and the results are confidential to the organization.

▪ The organization being assessed must have members on the assessment

team.

20
18 June 2022
▪ Different approaches are used for assessing software process. These

approaches are

1. SPICE (ISO/IEC15504),

2. ISO 9001:2000, standard CMMI assessment method for process

improvement,

3. CMM-based appraisal for internal process 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.

▪ It is carried out in accordance with the International Organization for


Standardization (ISO) and International Electro-technical Committee
(IEC), which are used together and known as ISO/IEC 15504. 22
18 June 2022
▪ The functions of SPICE (ISO/IEC 15504) are listed below.

1. To develop process-rating profiles instead of pass or fail criteria

2. To consider the environment in which the assessed process operates

3. To facilitate self assessment

4. To ensure suitability for all applications and all sizes of organizations.

23
18 June 2022
▪ Not performed: At this level, the processes are unable to accomplish the
required outcomes. Thus, no identifiable products are created.

▪ Performed informally: At this level, the implemented process accomplishes


the defined outcomes. It is not planned and tracked; rather it depends on
individual knowledge and identifiable products.

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

▪ Quantitatively controlled: At this level, the performance measures,


prediction capability and objective management are evaluated quantitatively.
In addition, existing processes perform consistently within the defined limits
to accomplish the desired outputs.

▪ Continuously improved: At this level, the existing processes adapt to meet


future business goals. For continuous improvement, various kinds of statistical
methods are used.

25
18 June 2022
▪ A quality management system refers to the activities within an organization, which

satisfies the quality related expectations of customers.

▪ Organizations ensure that they have a quality management system by demonstrating

their conformance to the ISO 9001:2000 standard.

▪ The major advantage of this standard is that it achieves a better understanding and

consistency of all quality practices throughout the organization. In addition, it


strengthens the customer’s confidence in the product.

▪ This standard follows a plan-do-check-act (PDCA) cycle, which includes a set of

activities that are listed below.


26
18 June 2022
PDCA

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

▪ Check: Measures whether the activities for establishing quality management


according to the requirements are accomplished. In addition, it monitors the
processes and takes corrective actions to improve them.

▪ Act: Initiates activities which constantly improve processes in the


organization.
27
18 June 2022
▪ An appraisal examines processes to determine their strengths and

weaknesses in an organization.

▪ The appraisal used in an organization evaluates the internal processes

(series of procedures occurring in the organization) for establishing or


updating process improvement.

▪ To conduct an appraisal, a scheme known as SCAMPI was developed by

the Software Engineering Institute (SEI).

▪ SCAMPI - Standard CMMI Appraisal Method for Process Improvement

28
18 June 2022
29
18 June 2022
▪ The objectives of SCAMPI are listed below.

1. To identify strengths and weaknesses of existing processes in the


organization

2. To specify an integrated appraisal method for internal process


improvement

3. To act as a motivation for initiating and focusing on software process


improvement.
30
18 June 2022
▪ SCAMPI is an appropriate tool for benchmarking within the organization. This

process emphasizes a rigorous method that is capable of achieving high


accuracy and reliability of appraisal results. The major characteristics of
classes ‘A’, ‘B’, and ‘C’ are listed in Table.

31
18 June 2022
▪ The organization’s software process capability is assessed by a group of

individuals known as the assessment team, which generates findings and


provides ratings according to the CMM (Capability Maturity Model).

▪ These findings are collected from questionnaires, document reviews and

interviews with the managers of the organization.

▪ Thus, the primary goal of CBA IPI is to provide an actual picture of the

existing processes in an organization.

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

in order to prioritize software improvement plans and focus on software


improvements, which are beneficial to the organization.

33
18 June 2022
▪ To achieve this, the assessment team performs the following functions.

1. Provides data as a baseline to the organization in order to check its


software capability

2. Identifies issues that have an impact on the process improvement

3. Provides sufficiently complete findings to the organization.

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

▪ It defines a framework for assessing and promoting process improvement.

▪ The basic objectives of this approach are listed below.

1. To support evaluation of the process capability

2. To identify the strengths and weaknesses of the processes in the organization being
assessed

3. To support the accomplishment of goals in an organization by planning improved actions

4. To increase the effectiveness of the processes while implementing Standard requirements


in the organization. 37
18 June 2022
▪ There are various software development life cycle models defined and

designed which are followed during the software development process.

▪ These models are also referred as Software Development Process Models".

▪ Each process model follows a Series of steps unique to its type to ensure

success in the process of software development.

38
18 June 2022
1. Waterfall Model

2. Prototyping Model

3. Spiral Model

4. Incremental Model

5. Time boxing Model

6. Rapid application development Model

7. V Model

39
18 June 2022
➢Example of a Sequential model.

➢Software development activity is divided into different phases and each

phase consists of series of tasks and has different objectives.

➢Output of one phase becomes the input of the next phase.

➢It is mandatory for a phase to be completed before the next phase starts.

➢In short, there is no overlapping in Waterfall model.

➢Since the phases fall from higher level to lower level, like a waterfall,

It’s named as waterfall model. 40


18 June 2022
41
18 June 2022
42
18 June 2022
• Simple and easy to understand and use.

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

• Results are well documented.


43
18 June 2022
• Cannot adopt the changes in requirements

• It becomes very difficult to move back to the phase.

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

• Delivery of the final product is late as there is no prototype which is


demonstrated intermediately.

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

• Does not work for long and ongoing projects.


44
18 June 2022
▪ In the waterfall model, it is very important to take the sign off of

the deliverables of each phase.

▪ As of today most of the projects are moving with Agile and

Prototype models, Waterfall model still holds good for smaller


projects.

▪ If requirements are straightforward and testable, Waterfall model

will yield the best results.

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.

▪ Refers to building software application prototypes which displays the


functionality of the product under development, but may not actually hold
the exact logic of the original software.

▪ 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

coding can proceed, a throwaway prototype is built to understand


the requirements.

➢This prototype is developed based on the currently known

requirements. Prototype model is a software development model.

➢ 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

▪ Since in this methodology a working model of the system is provided, the

users get a better understanding of the system being developed.

▪ Errors can be detected much earlier.

▪ Quicker user feedback is available leading to better solutions.

▪ Missing functionality can be identified easily

49
18 June 2022
▪ Risk of insufficient requirement analysis owing to too much dependency
on the prototype.

▪ Users may get confused in the prototypes and actual systems.

▪ Practically, this methodology may increase the complexity of the system as


scope of the system may expand beyond original plans.

▪ Developers may try to reuse the existing prototypes to build the actual
system, even when it is not technically feasible.

▪ Special tools & techniques are required to build a prototype.

▪ 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

are broken down into multiple standalone modules of software development


cycle. Incremental development is done in steps from analysis design,
implementation, testing/verification, maintenance.

▪ 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

addressed, and supplementary features are added in the next increments.

▪ Once the core product is analyzed by the client, there is plan development

for the next increment.

54
18 June 2022
▪ System development is broken down into many mini development projects

▪ Partial systems are successively built to produce a final total system

▪ Highest priority requirement is tackled first

▪ Once the requirement is developed, requirement for that increment are

frozen

55
18 June 2022
▪ The software will be generated quickly during the software life cycle

▪ It is flexible and less expensive to change requirements and scope

▪ Throughout the development stages changes can be done

▪ This model is less costly compared to others

▪ A customer can respond to each building

▪ Errors are easy to be identified

56
18 June 2022
▪ It requires a good planning designing

▪ Problems might cause due to system architecture as such not all

requirements collected up front for the entire software lifecycle

▪ Each iteration phase is rigid and does not overlap each other

▪ Rectifying a problem in one unit requires correction in all the units and

consumes a lot of time

57
18 June 2022
▪ Requirements of the system are clearly understood

▪ When demand for an early release of a product arises

▪ When software engineering team are not very well skilled or trained

▪ When high-risk features and goals are involved

▪ Such methodology is more in use for web application and product based

companies

58
18 June 2022
▪ Initially proposed by Boehm in 1980s.

▪ It is a combination of iterative development process model and waterfall


model with a very high emphasis on risk analysis.

▪ It provides the potential for rapid development of incremental versions of the


software.

▪ It allows incremental releases of the product or incremental refinement


through each iteration around the spiral.

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

▪ In the subsequent spirals as the product matures, identification of system

requirements, subsystem requirements and unit requirements are all done in


this phase.

▪ This phase also includes understanding the system requirements by

continuous communication between the customer and the system analyst.

▪ 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

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.

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.

▪ Flexibility in Requirements: Change requests in the Requirements at later phase can


be incorporated accurately by using this model.

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

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

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

▪ Difficulty in time management: As the number of phases is unknown at the


start of the project, so time estimation is very difficult.
67
18 June 2022
▪ When the project is large.

▪ Where the software needs continuous risk evaluation.

▪ Requirements are a bit complicated and require continuous


clarification.

▪ Software requires significant changes.

▪ Where enough time frame is their to get end user feedback.

▪ Where releases are required to be frequent.


68
18 June 2022
▪ RAD is a linear sequential software development process model that

emphasizes a concise development cycle using an element based


construction approach.

▪ If the requirements are well understood and described, and the project scope

is a constraint, the RAD process enables a development team to create a fully


functional system within a concise time period.

69
18 June 2022
▪ RAD (Rapid Application Development) is a concept that products can be

developed faster and of higher quality through:


▪ Gathering requirements using workshops or focus groups

▪ Prototyping and early, reiterative user testing of designs

▪ The re-use of software components

▪ A rigidly paced schedule that refers design improvements to the next

product version

▪ Less formality in reviews and other team communication

70
18 June 2022
71
18 June 2022
▪ 1.Business Modelling:

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

72
18 June 2022
▪ 2. Data Modelling:

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

73
18 June 2022
▪ 3. Process Modelling:

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

74
18 June 2022
▪ 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.

75
18 June 2022
▪ When the system should need to create the project that modularizes in a

short span time (2-3 months).

▪ When the requirements are well-known.

▪ When the technical risk is limited.

▪ When there's a necessity to make a system, which modularized in 2-3 months

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.

▪ In this model, changes are adoptable.

▪ Each phase in RAD brings highest priority functionality to the customer.

▪ It reduced development time.

▪ It increases the reusability of features.

77
18 June 2022
▪ It required highly skilled designers.

▪ All application is not compatible with RAD.

▪ For smaller projects, we cannot use the RAD model.

▪ On the high technical risk, it's not suitable.

▪ Required user involvement.

78
18 June 2022
▪ In time boxing model, development is done iteratively as in the iterative
enhancement model.

▪ Each iteration is done in a timebox of fixed duration.

▪ . The functionality to be developed is adjusted to fit the duration of the timebox.

▪ 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

▪ Has predictable delivery times

▪ Overall product release and marketing can be better planned

▪ Makes time a non-negotiable parameter and helps focus attention on

schedule

▪ Prevents requirements bloating

▪ Overall dev time is still unchanged

81
18 June 2022
▪ Multiple iterations executing in parallel

▪ Can reduce the average completion time by exploiting parallelism

▪ For parallel execution, can borrow pipelining concepts from hardware

▪ This leads to Pipelined Timeboxing Process Model

▪ Development is done iteratively in fixed duration time boxes

▪ Each time box divided in fixed stages

▪ Each stage performs a clearly defined task that can be done independently

▪ Each stage approximately equal in duration

▪ There is a dedicated team for each stage

▪ When one stage team finishes, it hands over the project to the next team 18 June 2022
82
▪ Advantages:

▪ Shortened delivery times,

▪ other adv of iterative,

▪ distr. Execution

▪ Disadvantages:

▪ Larger teams,

▪ proj mgmt is harder,

▪ high synchronization needed,

▪ CM is harder
83
18 June 2022
▪ Applicability

▪ When short delivery times

▪ When architecture is stable

▪ Flexibility in feature grouping

▪ For larger heavily managed teams

84
18 June 2022
▪ Emphasizes the concept of “Verification and Validation”.

▪ In each step there will be a corresponding testing phase that will be

validating such a process.

▪ It is also considered to be an extended form of Waterfall Model since one

step cannot be done without the completion of a previous process first.

▪ 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:

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

87
18 June 2022
▪ 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.

88
18 June 2022
▪ 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.

▪ 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

▪ An actual implementation of a code.

▪ Coding will be done based on the design of the aforementioned components

and modules.

▪ After the coding has been done. A V-Model will process to do the testing in

reverse order going from Unit Testing → Integration Testing → System


Testing and Acceptance Testing

▪ Thus complete a V-like shape cycle of Verification (Down), Coding (Joint) and

Validation (Up) with the planning of Validation being done simultaneously


with the verification phase. 18 June 2022
90
▪ Unit Testing:

▪ 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

isolated from the rest of the codes/ units.

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

and communicate among themselves.

▪ System Testing:

▪ System Tests Plans are developed during System Design Phase.

▪ Unlike Unit and Integration Test Plans, System Tests Plans are composed by

the client’s business team.

▪ System Test ensures that expectations from an application developer are met.
92
18 June 2022
▪ Acceptance Testing:

▪ Acceptance testing is related to the business requirement analysis part.

▪ It includes testing the software product in user atmosphere.

▪ Acceptance tests reveal the compatibility problems with the different

systems, which is available within the user atmosphere.

▪ It conjointly discovers the non-functional problems like load and

performance defects within the real user atmosphere.

93
18 June 2022
▪ When the requirement is well defined and not ambiguous.

▪ 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 sample technical resources are

available with essential technical expertise.

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.

▪ Avoids the downward flow of the defects.

▪ Works well for small plans where requirements are easily understood

▪ Disadvantages

▪ Very rigid and least flexible.

▪ Not a good for a complex project.

▪ 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

▪ A maturity level is a well-defined evolutionary plateau toward achieving a

mature software process.

▪ Two frameworks that have been used by various organizations to improve

their process are

▪ Capability Maturity Model

▪ Quality Improvement Paradigm and GQM

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.

▪ The concept of introducing changes in small increments based on the current


state of the process has been captured in the Capability Maturity Model
(CMM) framework.

97
18 June 2022
98
18 June 2022
▪ Basic project controls for ensuring that activities are being done properly

and that the project plan is being adhered to are missing.

▪ In crisis the project plans and development processes are abandoned in

favor of a code-and-test type of approach.

▪ The process capability is unpredictable as the process constantly changes.

▪ Organizations at this level can benefit most by improving project

management, quality assurance, and change control.

99
18 June 2022
▪ Policies for managing a software project and procedures to implement those

policies exist.

▪ characteristics of a process at this level are:

▪ project commitments are realistic and based on past experience with similar

projects,

▪ cost and schedule are tracked and problems resolved when they arise,

▪ formal configuration control mechanisms are in place, and

▪ software project standards are defined and followed.

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

criteria, methodologies for performing the step, and verification mechanisms


for the output of the step.

▪ In this process both the development and management processes are formal.

101
18 June 2022
▪ Quantitative goals exist for process and products.

▪ Data is collected from software processes, which is used to build models to

characterize the process.

▪ Due to the models built, the organization has a good insight in the process

and its deficiencies.

▪ The results of using such a process can be predicted in quantitative terms.

102
18 June 2022
▪ The focus of the organization is on continuous process improvement.

▪ Data is collected and routinely analyzed to identify areas that can be

strengthened to improve quality or productivity.

▪ New technologies and tools are introduced and their effects measured in an

effort to improve the performance of the process.

▪ Best software engineering and management practices are used throughout

the organization.

103
18 June 2022
▪ Does not specify levels or what areas to focus on for improvement.

▪ It gives a general method for improving a process, essentially implying that

what constitutes improvement of a process depends on the organization to


which the process belongs and its objectives.

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

▪ An organization must specify its goals before measuring" anything. Then


these goals should be translated to specific data along with a framework to
evaluate the data collected.

▪ Software metrics are quantifiable measures that could be used to measure


different characteristics of a software system or the software development
process. 106
18 June 2022
▪ GQM is a top-down approach that starts from the objectives and works its

way down to the metrics needed.

▪ The QIP and GQM have been used successfully by many organizations to

improve their processes.

107
18 June 2022
108
18 June 2022

You might also like