Processmodels

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 12

For example, project planning is one of eight process areas defined by the

CMMI for the "project management" category.

Other process areas defined for "project management" include: project monitoring
and control, supplier agreement management, integrated project management for
IPPD, risk management, integrated teaming, integrated supplier management, and
quantitative project management.

The specific goals (SG) and the associated specific practices (SP) defined for
project planning are

SG 1 Establish estimates

SP 1 . 1 - 1 Estimate the scope of the project

SP 1 .2- 1 Establish estimates of work product and task attributes

SP 1.3-1 Define project life cycle

SP 1.4-1 Determine estimates of effort and cost

SG 2 Develop a Project Plan

SP 2.1-1 Establish the budget and schedule

SP 2.2- 1 Identify project risks

SP 2.3-1 Plan for data management

SP 2.4-1 Plan for project resources

SP 2.5-1 Plan for needed knowledge and skills

SP 2.6-1 Plan stakeholder involvement

SP 2.7-1 Establish the project plan

SG 3 Obtain commitment to the plan

SP 3.1-1 Review plans that affect the project


SP 3.2-1 Reconcile work and resource levels

SP 3.3-1 Obtain plan commitment

In addition to specific goals and practices, the CMMI also defines a set of five
generic goals and related practices for each process area. Each of the five generic
goals corresponds to one of the five capability levels.

To achieve a particular capability level, the generic goal for that level and the
generic practices that correspond to that goal must be achieved.

To illustrate, the generic goals (GG) and practices (GP) for the project planning
process area are :

GG 1 Achieve specific goals

GP 1.1 Perform base practices

GG 2 Institutionalize a managed process

GP 2.1 Establish an organizational policy

GP 2.2 Plan the process

GP 2.3 Provide resources

GP 2.4 Assign responsibility

GP 2.5 Train people

GP 2.6 Manage configurations

GP 2.7 Identify and involve relevant stakeholders

GP 2.8 Monitor and control the process

GP 2.9 Objectively evaluate adherence

GP 2.10 Review status with higher level management

GG 3 Institutionalize a defined process


GP 3. 1 Establish a defined process

GP 3.2 Collect improvement information

GG 4 Institutionalize a quantitatively managed process

GP 4.1 Establish quantitative objectives for the process

GP 4.2 Stabilize subprocess performance

GG 5 Institutionalize an optimizing process

GP 5. 1 Ensure continuous process improvement

GP 5.2 Correct root causes of problems

The staged CMMI model defines the same process areas, goals, and practices as
the continuous model. The primary difference is that the staged model defines five
maturity levels, rather than five capability levels. To achieve a maturity level, the
specific goals and practices associated with a set of process areas must be
achieved. The relationship between maturity levels and process areas is shown in
Figure 2.4.
Software Development Life Cycle (SDLC)
The software development life cycle (SDLC) is a structured process that is
used to design, develop, and test good-quality software. SDLC, or software
development life cycle is a methodology that defines the entire procedure of
software development step-by-step. The goal of the SDLC life cycle model is to
deliver high-quality, maintainable software that meets the user’s requirements.
SDLC in software engineering models outlines the plan for each stage so that
each stage of the software development model can perform its task efficiently to
deliver the software at a low cost within a given time frame that meets users’
requirements.

SDLC stands for software development life cycle. It is a process followed for
software building within a software organization. SDLC consists of a precise
plan that describes how to develop, maintain, replace, and enhance specific
software. The life cycle defines a method for improving the quality of software
and the all-around development process.
Stages of the Software Development Life Cycle Model
SDLC specifies the task(s) to be performed at various stages by a software
engineer or developer. It ensures that the end product is able to meet the
customer’s expectations and fits within the overall budget. Hence, it’s vital for a
software developer to have prior knowledge of this software development
process.
SDLC Cycle represents the process of developing software. SDLC framework
includes the following steps:

The stages of SDLC are as follows:


Stage1: Planning and requirement analysis
Requirement Analysis is the most important and necessary stage in SDLC.
The senior members of the team perform it with inputs from all the stakeholders
(The primary stakeholders in a typical corporation are its investors, employees,
customers, and suppliers)and domain experts or SMEs(Small and midsize
enterprises) in the industry.
Planning for the quality assurance requirements and identifications of the risks
associated with the projects is also done at this stage.
Business analyst and Project organizer set up a meeting with the client to gather all
the data like what the customer wants to build, who will be the end user, what is
the objective of the product. Before creating a product, a core understanding or
knowledge of the product is very necessary.
For Example, A client wants to have an application which concerns money
transactions. In this method, the requirement has to be precise like what kind of
operations will be done, how it will be done, in which currency it will be done, etc.
Once the required function is done, An analysis is complete once the possibility of
a product's growth has been examined. In case of any ambiguity, a signal is set up
for further discussion.
Once the requirement is understood, the SRS (Software Requirement
Specification) document is created. The developers should thoroughly follow this
document and also should be reviewed by the customer for future reference.
Stage2: Defining Requirements
After the requirement analysis is completed, the following step is to describe and
document the software requirements and obtain project stakeholders' approval.
This is accomplished through "SRS"- Software Requirement Specification
document which contains all the product requirements to be constructed and
developed during the project life cycle.
Stage3: Designing the Software
The knowledge of the software project's needs, analysis, and design will all be
revealed in this phase. This phase is the result of the previous two, such as
requirement collection and client input.
Stage4: Developing the project
In this phase of SDLC, the actual development begins, and the programming is
built. The implementation of design begins concerning writing code. Developers
have to follow the coding guidelines described by their management and
programming tools like compilers, interpreters, debuggers, etc. are used to develop
and implement the code.
Stage5: Testing
After the code is generated, it is tested against the requirements to make sure that
the products are solving the needs addressed and gathered during the requirements
stage.
During this stage, unit testing, integration testing, system testing, acceptance
testing are done.
Stage6: Deployment
Once the software is certified, and no bugs or errors are stated, then it is deployed.
Then based on the assessment, the software may be released as it is or with
suggested enhancement in the object segment.
After the software is deployed, then its maintenance begins.
Stage7: Maintenance
Once when the client starts using the developed systems, then the real issues come
up and requirements to be solved from time to time.
This procedure where the care is taken for the developed product is known as
maintenance.

Software process models

Software processes are the activities for designing, implementing, and testing a
software system.

A software process model is an abstract representation of the development


process.

The models specify the stages and order of a process.

This is a representation of the order of activities of the process and


the sequence in which they are performed.

A model will define the following:

 The tasks to be performed


 The input and output of each task
 The pre and post-conditions for each task
 The flow and sequence of each task
The goal of a software process model is to provide guidance for
controlling and coordinating the tasks to achieve the end product and
objectives as effectively as possible.

There are many kinds of process models for meeting different requirements. We
refer to these as SDLC models (Software Development Life Cycle models). The
most popular and important SDLC models are as follows:

 Perspective models
 Waterfall model
 Incremental process model
 Evolutionary process models
 unified process models
 specialized process models
 Agile modeling

Types of software process models

There are multiple kinds of software process models that each meet different
requirements.

1.Prescriptive Process Model

•Defines a distinct set of activities, actions, tasks, milestones, and work products
that are required to engineer high-quality software
•The activities may be linear, incremental, or evolutionary
These models are called as "prescriptive" because they prescribe a set of process
elements— framework activities, software engineering actions, tasks, work
products, quality assurance, and change control mechanisms for each project. Each
process model also prescribes a workflow—that is, the manner in which the
process elements are interrelated to one another. All software process models can
accommodate the generic framework activities.
There are three types of prescriptive process models. They are:

a. The Waterfall Model


b. Incremental Process model

c. RAD model

1. The Waterfall Model

 The waterfall model is the oldest paradigm for software engineering.


 The waterfall model is also called as 'Linear sequential model' or 'Classic
life cycle model'.
 In this model, each phase is fully completed before the beginning of the next
phase.
 This model is used for the small projects.
 In this model, feedback is taken after each phase to ensure that the project is on
the right path.
 Testing part starts only after the development is complete.
 Requires customer patience because a working version of the program doesn't
occur until the final phase
 Problems can be somewhat alleviated in the model through the addition of
feedback loops
 It has several phases: Software development that begins with customer
specification of requirements and progresses through planning, modeling,
construction, and deployment
 As the name implies, you must finish every stage of software development one
by one.
 It makes this model relatively rigid since you must plan and schedule all tasks
beforehand.
 The waterfall is easy to manage if your project requirements are clear.


Advantages of waterfall model
 The waterfall model is simple and easy to understand, implement, and use.
 All the requirements are known at the beginning of the project, hence it is easy
to manage.
 It avoids overlapping of phases because each phase is completed at once.
 This model works for small projects because the requirements are understood
very well.
 This model is preferred for those projects where the quality is more important
as compared to the cost of the project.

Disadvantages of the waterfall model
 This model is not good for complex and object oriented projects.
 It is a poor model for long projects.
 The problems with this model are uncovered, until the software testing.
 The amount of risk is high.

Incremental Process model


 The incremental model combines the elements of waterfall model
and they are applied in an iterative fashion.
 The first increment in this model is generally a core product.
 Each increment builds the product and submits it to the customer
for any suggested modifications.
 The next increment implements on the customer's suggestions and
add additional requirements in the previous increment.
 This process is repeated until the product is finished.
For example, the word-processing software is developed using the
incremental model.

Advantages of incremental model


 This model is flexible because the cost of development is low and initial
product delivery is faster.
 It is easier to test and debug during the smaller iteration.
 The working software generates quickly and early during the software life
cycle.
 The customers can respond to its functionalities after every increment.
Disadvantages of the incremental model
 The cost of the final product may cross the cost estimated initially.
 This model requires a very clear and complete planning.
 The planning of design is required before the whole system is broken into small
increments.
 The demands of customer for the additional functionalities after every
increment causes problem during the system architecture.

3. RAD model

 RAD is a Rapid Application Development model.


 Using the RAD model, software product is developed in a short period of time.
 The initial activity starts with the communication between customer and
developer.
 Planning depends upon the initial requirements and then the requirements are
divided into groups.
 Planning is more important to work together on different modules.
The RAD model consist of following phases:

1. Business Modeling
 Business modeling consist of the flow of information between various functions
in the project.
 For example what type of information is produced by every function and which
are the functions to handle that information.
 A complete business analysis should be performed to get the essential business
information.
2. Data modeling
 The information in the business modeling phase is refined into the set of
objects and it is essential for the business.
 The attributes of each object are identified and define the relationship between
objects.
3. Process modeling
 The data objects defined in the data modeling phase are changed to fulfil the
information flow to implement the business model.
 The process description is created for adding, modifying, deleting or retrieving
a data object.
4. Application generation
 In the application generation phase, the actual system is built.
 To construct the software the automated tools are used.
5. Testing and turnover
 The prototypes are independently tested after each iteration so that the overall
testing time is reduced.
 The data flow and the interfaces between all the components are are fully
tested. Hence, most of the programming components are already tested.

You might also like