Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

1.4the Software Process

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 6

The Software Process

• A process is a collection of activities, actions, and tasks that are


performed when some work product is to be created.
• An activity strives to achieve a broad objective
(e.g., communication with stakeholders) and is applied regardless of the
application domain, size of the project, complexity of the effort, or degree of
rigor with which software engineering is to be applied.

• An action (e.g., architectural design) encompasses a set of tasks that


produce a major work product (e.g., an architectural design model).

• A task focuses on a small, but well-defined objective (e.g., conducting a


unit test) that produces a tangible outcome.
• In the context of software engineering, a process is not a rigid
prescription for how to build computer software. Rather, it is an
adaptable approach that enables the people doing the work (the
software team) to pick and choose the appropriate set of work actions
and tasks. The intent is always to deliver software in a timely manner
and with sufficient quality to satisfy those who have sponsored its
creation and those who will use it.
• A process framework establishes the foundation for a
complete software engineering process by identifying a
small number of framework activities that are
applicable to all software projects, regardless of their
size or complexity. In addition, the process framework
encompasses a set of umbrella activities that are
applicable across the entire software process. A generic
process framework for software engineering
encompasses five activities:
• Communication.
• Planning
• Modeling.
• Construction
• Deployment
• These five generic framework activities can be used during
the development of small, simple programs, the creation of
large Web applications, and for the engineering of large,
complex computer-based systems.

• For many software projects, framework activities are


applied iteratively as a project progresses. That is,
communication, planning, modeling, construction,
• and deployment are applied repeatedly through a number
of project iterations.
• Each project iteration produces a software increment that
provides stakeholders with a subset of overall software
features and functionality. As each increment is produced,
the software becomes more and more complete. Software
engineering process framework activities are
complemented by a number of umbrella activities.
• Typical umbrella activities include:
• Software project tracking and control—allows the
software team to assess progress against the project
plan and take any necessary action to maintain the
schedule.
• Risk management—assesses risks that may affect the
outcome of the project or the quality of the product.
• Software quality assurance—defines and conducts the
activities required to ensure software quality.
• Technical reviews—assesses software engineering
work products in an effort to uncover and remove
errors before they are propagated to the next activity.
• Measurement—defines and collects process, project, and product
measures that assist the team in delivering software that meets
stakeholders’ needs; can be used in conjunction with all other framework
and umbrella activities.

• Software configuration management—manages the effects of change


throughout the software process.

• Reusability management—defines criteria for work product reuse


(including software components) and establishes mechanisms to achieve
reusable components.

• Work product preparation and production—encompasses the activities


required to create work products such as models, documents, logs, forms,
and lists.
• Prescriptive process models
Stress detailed definition, identification, and
application of process activities and tasks. Their
intent is to improve system quality, make projects
more manageable, make delivery dates and costs
more predictable, and guide teams of software
engineers as they perform the work required to
build a system.
• Agile process models emphasize project “agility”
and follow a set of principles that lead to a more
informal (but, proponents argue, no less
effective) approach to software process. These
process models are generally characterized as
“agile” because they emphasize maneuverability
and adaptability.

You might also like