Unit 2. Software Process Primitives and Process Management Frameworks
Unit 2. Software Process Primitives and Process Management Frameworks
MANAGEMENT
Unit 2. Software Process
Primitives and Process
Management Frameworks
Prepared By:
BIJAY MISHRA
(बिजय मिश्र)
biizay@gmail.com
@jijibisha
UNIT 2. Software Process Primitives and Process
Management Frameworks - 14 Hrs.
PRIMARY OBJECTIVES
Establishing the project's software scope and boundary conditions, including an
operational concept, acceptance criteria, and a clear understanding of what is and is not
intended to be in the product
Discriminating the critical use cases of the system and the primary scenarios of operation
that will drive the major design trade-offs
Demonstrating at least one candidate architecture against some of the primary scenarios
Estimating the cost and schedule for the entire project (including detailed estimates for
the elaboration phase)
Estimating potential risks (sources of unpredictability)
Life-Cycle Phases
Inception Phase
ESSENTIAL ACTIVITIES:
Formulating the scope of the project (capturing the requirements and operational
concept in an information repository)
Synthesizing the architecture (design trade-offs, problem space ambiguities, and
available solution-space assets are evaluated)
Planning and preparing a business case (alternatives for risk management, iteration
planes, and cost/schedule/profitability trade-offs are evaluated)
Life-Cycle Phases
Inception Phase
PRIMARY OBJECTIVES
Baselining the architecture as rapidly as practical (establishing a configuration-
managed snapshot in which all changes are rationalized, tracked, and maintained)
Baselining the vision
Baselining a high-fidelity plan for the construction phase
Demonstrating that the baseline architecture will support the vision at a reasonable
cost in a reasonable time
Life-Cycle Phases
Elaboration Phase
ESSENTIAL ACTIVITIES :
Elaborating the vision (establishing a high-fidelity understanding of the critical
use cases that drive architectural or planning decisions)
Elaborating the process and infrastructure (establishing the construction
process, the tools and process automation support)
Elaborating the architecture and selecting components (lessons learned from
these activities may result in redesign of the architecture)
Life-Cycle Phases
Elaboration Phase
PRIMARY OBJECTIVES
Minimizing development costs by optimizing resources and avoiding unnecessary
scrap and rework
Achieving adequate quality as rapidly as practical
Achieving useful versions (alpha, beta, and other test releases) as rapidly as
practical
Life-Cycle Phases
Construction Phase
ESSENTIAL ACTIVITIES :
Resource management, control, and process optimization
Complete component development and testing against evaluation criteria
Assessment of the product releases against acceptance criteria of the vision
PRIMARY OBJECTIVES
Achieving user self-supportability
Achieving stakeholder concurrence that deployment baselines are complete and
consistent with the evaluation criteria of the vision
Achieving final product baselines as rapidly and cost-effectively as practical
Life-Cycle Phases
Transition Phase
ESSENTIAL ACTIVITIES :
Synchronization and integration of concurrent construction increments into consistent
deployment baselines
Deployment-specific engineering (cutover, commercial packaging and production, sales
rollout kit development, field personnel training)
Assessment of deployment baselines against the complete vision and acceptance
criteria in the requirements set
EVALUATION CRITERIA
Is the user satisfied?
Are actual resource expenditures versus planned expenditures acceptable?
2.2 Various Elements of the Software Process
(Management, Engineering and Pragmatics)
Artifacts of the Process
• To make the development of a complete software system
manageable, distinct collections of information are organized into
artifact sets.
• Artifact represents cohesive information that typically is developed
and reviewed as a single entity.
• Life-cycle software artifacts are organized into five distinct sets that
are roughly partitioned by the underlying language of the set:
management (ad hoc textual formats), requirements (organized text
and models of the problem space), design (models of the solution
space), implementation (human-readable programming language
and associated source files), and deployment (machine-process able
languages and associated files).
Artifacts of the Process
THE ARTIFACT SETS
Management Set
Planning Artifacts Operational Artifacts
1.Work breakdown structure 5.Release descriptions
2.Bussines case 6.Status assessments
3.Release specifications 7.Software change order database
4.Software development plan 8.Deployment documents
9.Environment
Artifacts of the Process
Management Set
REQUIREMENTS SET
Requirements artifacts are evaluated, assessed, and measured through a combination of the
following:
Analysis of consistency with the release specifications of the management set
Analysis of consistency between the vision and the requirements models
Mapping against the design, implementation, and deployment sets to evaluate the consistency
and completeness and the semantic balance between information in the different sets
Analysis of changes between the current version of requirements artifacts and previous versions
(scrap, rework, and defect elimination trends)
Subjective review of other dimensions of quality
Artifacts of the Process
Engineering Set
DESIGN SET
UML notation is used to engineer the design models for the solution. The design set
contains varying levels of abstraction that represent the components of the solution space
(their identities, attributes, static relationships, dynamic interactions). The design set is
evaluated, assessed, and measured through a combination of the following:
Analysis of the internal consistency and quality of the design model
Analysis of consistency with the requirements models
Translation into implementation and deployment sets and notations (for example,
traceability, source code generation, compilation, linking) to evaluate the consistency and
completeness and the semantic balance between information in the sets
Analysis of changes between the current version of the design model and previous
versions (scrap, rework, and defect elimination trends)
Subjective review of other dimensions of quality
Artifacts of the Process
Engineering Set
IMPLEMENTATION SET
The implementation set includes source code (programming language notations) that represents the
tangible implementations of components (their form, interface, and dependency relationships).
Implementation sets are human-readable formats that are evaluated, assessed, and measured through
a combination of the following:
Analysis of consistency with the design models
Translation into deployment set notations (for example, compilation and linking) to evaluate the
consistency and completeness among artifact sets
Assessment of component source or executable files against relevant evaluation criteria through
inspection, analysis, demonstration, or testing
Execution of stand-alone component test cases that automatically compare expected results with
actual results
Analysis of changes between the current version of the implementation set and previous versions
(scrap, rework, and defect elimination trends)
Subjective review of other dimensions of quality
Artifacts of the Process
Engineering Set
DEPLOYMENT SET
The deployment set includes user deliverables and machine language notations, executable software,
and the build scripts, installation scripts, and executable target specific data necessary to use the product
in its target environment.
Deployment sets are evaluated, assessed, and measured through a combination of the following:
Testing against the usage scenarios and quality attributes defined in the requirements set to evaluate
the consistency and completeness and the~ semantic balance between information in the two sets
Testing the partitioning, replication, and allocation strategies in mapping components of the
implementation set to physical resources of the deployment system (platform type, number,
network topology)
Testing against the defined usage scenarios in the user manual such as installation, user-oriented
dynamic reconfiguration, mainstream usage, and anomaly management
Analysis of changes between the current version of the deployment set and previous versions (defect
elimination trends, performance changes)
Subjective review of other dimensions of quality
Artifacts of the Process
Management and Engineering Set
Most of today's software development tools map closely to one of the five artifact
sets.
Management: scheduling, workflow, defect tracking, change management,
documentation, spreadsheet, resource management, and presentation tools
Requirements: requirements management tools
Design: visual modeling tools
Implementation: compiler/debugger tools, code analysis tools, test coverage
analysis tools, and test management tools
Deployment: test coverage and test automation tools, network management tools,
commercial components (operating systems, GUIs, RDBMS, networks, middleware),
and installation tools.
ARTIFACT EVOLUTION OVER THE LIFE CYCLE
Each state of development represents a certain amount of precision in the final system description. Early in
the life cycle, precision is low and the representation is generally high. Eventually, the precision of
representation is high and everything is specified in full detail. Each phase of development focuses on a
particular artifact set. At the end of each phase, the overall system state will have progressed on all sets, as
illustrated in Figure below:
TEST ARTIFACTS
The test artifacts must be developed concurrently with the product from
inception through deployment.
Testing is a full-life-cycle activity, not a late life-cycle activity.
The test artifacts are communicated, engineered, and developed within the
same artifact sets as the developed product.
The test artifacts are implemented in programmable and repeatable formats
(as software programs).
The test artifacts are documented in the same way that the product is
documented.
Developers of the test artifacts use the same tools, techniques, and training as
the software engineers developing the product.
TYPES OF TEST ARTIFACTS
Design set. A test model for non-deliverable components needed to test the product
baselines is captured in the design set. These components include such design set artifacts
as a seismic event simulation for creating realistic sensor data; a "virtual operator" that can
support unattended, after-hours test cases; specific instrumentation suites for early
demonstration of resource usage; transaction rates or response times; and use case test
drivers and component stand-alone test drivers.
Deployment set. Executable versions of test components, test drivers, and data files are
provided.
Artifacts of the Process
Management Artifacts
The management set includes several artifacts that capture intermediate results and
ancillary information necessary to document the product/process legacy, maintain the
product, improve the product, and improve the process.
Business Case
The business case artifact provides all the information necessary to determine whether the
project is worth investing in. It details the expected revenue, expected cost, technical and
management plans, and backup data necessary to demonstrate the risks and realism of the
plans. The main purpose is to transform the vision into economic terms so that an
organization can make an accurate ROI assessment. The financial forecasts are evolutionary,
updated with more accurate forecasts as the life cycle progresses. Figure 6-4 provides a
default outline for a business case.
Artifacts of the Process
Management Artifacts
Artifacts of the Process
Management Artifacts
STATUS ASSESSMENTS
Status assessments provide periodic snapshots of project health and status, including the software
project manager's risk assessment, quality indicators, and management indicators. Typical status
assessments should include a review of resources, personnel staffing, financial data (cost and revenue),
top 10 risks, technical progress (metrics snapshots), major milestone plans and results, total project or
product scope & action items
ENVIRONMENT
An important emphasis of a modern approach is to define the development and maintenance
environment as a first-class artifact of the process. A robust, integrated development environment must
support automation of the development process. This environment should include requirements
management, visual modeling, document automation, host and target programming tools, automated
regression testing, and continuous and integrated change management, and feature and defect
tracking.
Artifacts of the Process
Management Artifacts
DEPLOYMENT
A deployment document can take many forms. Depending on the project, it could include several
document subsets for transitioning the product into operational status. In big contractual efforts in
which the system is delivered to a separate maintenance organization, deployment artifacts may
include computer system operations manuals, software installation manuals, plans and procedures
for cutover (from a legacy system), site surveys, and so forth. For commercial software products,
deployment artifacts may include marketing plans, sales rollout kits, and training courses.
Most of the engineering artifacts are captured in rigorous engineering notations such as UML, programming
languages, or executable machine codes. Three engineering artifacts are explicitly intended for more general
review, and they deserve further elaboration.
VISION DOCUMENT
The vision document provides a complete vision for the software system under development and. supports
the contract between the funding authority and the development organization. A project vision is meant to be
changeable as understanding evolves of the requirements, architecture, plans, and technology. A good vision
document should change slowly. Figure 6-9 provides a default outline for a vision document.
Artifacts of the Process
Engineering Artifacts
ARCHITECTURE DESCRIPTION
The architecture description provides an organized view of the software architecture under development. It
is extracted largely from the design model and includes views of the design, implementation, and
deployment sets sufficient to understand how the operational concept of the requirements set will be
achieved. The breadth of the architecture description will vary from project to project depending on many
factors. Figure 6-10 provides a default outline for an architecture description.
Artifacts of the Process
Engineering Artifacts
People want to review the information but don't have access to the
tools.
It is not very common for the development organization to be fully tooled; it is
extremely rare that the/other stakeholders have any capability to review the
engineering artifacts on-line. Consequently, organizations are forced to exchange
paper documents. Standardized formats (such as UML, spreadsheets, Visual Basic,
C++, and Ada 95), visualization tools, and the Web are rapidly making it economically
feasible for all stakeholders to exchange information electronically.
Artifacts of the Process
Pragmatic Artifacts
• The most critical technical product of a software project is its architecture: the
infrastructure, control, and data interfaces that permit software components to
cooperate as a system and software designers to cooperate efficiently as a team.
• When the communications media include multiple languages and intergroup literacy
varies, the communications problem can become extremely complex and even
unsolvable.
• If a software development team is to be successful, the inter project
communications, as captured in the software architecture, must be both accurate
and precise
Model-Based Software Architectures
A Management Perspective
The number of views and the level of detail in each view can vary widely. The importance of software
architecture and its close linkage with modern software development processes can be summarized
as follows:
Achieving a stable software architecture represents a significant project milestone at which the
critical make/buy decisions should have been resolved.
Architecture representations provide a basis for balancing the trade-offs between the problem
space (requirements and constraints) and the solution space (the operational product).
The architecture and process encapsulate many of the important (high-payoff or high-risk)
communications among individuals, teams, organizations, and stakeholders.
Poor architectures and immature processes are often given as reasons for project failures.
A mature process, an understanding of the primary requirements, and a demonstrable
architecture are important prerequisites for predictable planning.
Architecture development and process definition are the intellectual steps that map the problem
to a solution without violating the constraints; they require human innovation and cannot be
automated.
Model-Based Software Architectures
A Technical Perspective
An architecture framework is defined in terms of views that are abstractions of the UML
models in the design set. The design model includes the full breadth and depth of
information. An architecture view is an abstraction of the design model; it contains only the
architecturally significant information. Most real-world systems require four views: design,
process, component, and deployment.
The model which draws on the foundation of architecture developed at Rational Software
Corporation and particularly on Philippe Kruchten’s concepts of software architecture :
Architecture Description
Document
An architecture is described through several views, Design view
which are extracts of design models that capture the Process view
significant structures, collaborations, and behaviors. Use case view
Component view
Deployment view
Other views (optional)
Use Case
View
Design Component
View Process View
Deployment
View
View
Model-Based Software Architectures
A Technical Perspective
The use case view describes how the system's critical (architecturally
significant) use cases are realized by elements of the design model. It
is modeled statically using use case diagrams, and dynamically using
any of the UML behavioral diagrams.
The design view describes the architecturally significant elements of
the design model. This view, an abstraction of the design model,
addresses the basic structure and functionality of the solution. It is
modeled statically using class and object diagrams, and dynamically
using any of the UML behavioral diagrams.
Model-Based Software Architectures
A Technical Perspective
The process view addresses the run-time collaboration issues involved in executing the
architecture on a distributed deployment model, including the logical software network
topology (allocation to processes and threads of control), interprocess communication, and
state management. This view is modeled statically using deployment diagrams, and
dynamically using any of the UML behavioral diagrams.
The component view describes the architecturally significant elements of the implementation
set. This view, an abstraction of the design model, addresses the software source code
realization of the system from the perspective of the project's integrators and developers,
especially with regard to releases and configuration management. It is modeled statically
using component diagrams, and dynamically using any of the UML behavioral diagrams.
The deployment view addresses the executable realization of the system, including the
allocation of logical processes in the distribution view (the logical software topology) to
physical resources of the deployment network (the physical system topology). It is modeled
statically using deployment diagrams, and dynamically using any of the UML behavioral
diagrams.
2.4 Software Process Workflow
and Iteration Workflow
Workflows of the Process
Software Process Workflows
The term WORKFLOWS is used to mean a thread of cohesive and mostly sequential activities.
Workflows are mapped to product artifacts There are seven top-level workflows:
Management workflow: controlling the process and ensuring win conditions for all
stakeholders
Environment workflow: automating the process and evolving the maintenance
environment
Requirements workflow: analyzing the problem space and evolving the requirements
artifacts
Design workflow: modeling the solution and evolving the architecture and design
artifacts
Implementation workflow: programming the components and evolving the
implementation and deployment artifacts
Assessment workflow: assessing the trends in process and product quality
Deployment workflow: transitioning the end products to the user
Workflows of the Process
Software Process Workflows
Workflows of the Process
Software Process Workflows
Four Basic Key Principles:
1. Architecture-first approach: implementing and testing the architecture must precede
full-scale development and testing and must precede the downstream focus on
completeness and quality of the product features.
2. Iterative life-cycle process: the activities and artifacts of any given workflow may
require more than one pass to achieve adequate results.
3. Roundtrip engineering: Raising the environment activities to a first-class workflow is
critical; the environment is the tangible embodiment of the project’s process and
notations for producing the artifacts.
4. Demonstration-based approach: Implementation and assessment activities are initiated
nearly in the life-cycle, reflecting the emphasis on constructing executable subsets of the
involving architecture.
Workflows of the Process
Iteration Workflows
Management
Requirements
Design
Implementation
Assessment
Deployment
Environment: evolving the software change order database to reflect all new baselines and
changes to existing baselines for all product, test, and environment components
Requirements: analyzing the baseline plan, the baseline architecture, and the baseline
requirements set artifacts to fully elaborate the use cases to be demonstrated at the end of
this iteration and their evaluation criteria; updating any requirements set artifacts to reflect
changes necessitated by results of this iteration's engineering activities
Design: evolving the baseline architecture and the baseline design set artifacts to elaborate
fully the design model and test model components necessary to demonstrate against the
evaluation criteria allocated to this iteration; updating design set artifacts to reflect changes
necessitated by the results of this iteration's engineering activities
Workflows of the Process
Iteration Workflows
Assessment: evaluating the results of the iteration, including compliance with the
allocated evaluation criteria and the quality of the current baselines; identifying any
rework required and determining whether it should be performed before deployment of
this release or allocated to the next release; assessing results to improve the basis of the
subsequent iteration's plan
Management Management
Requirements Requirements
Design Design
Implementation Implementation
Assessment Assessment
Deployment Deployment
Transition Phase
Management
Requirements
Design
Implementation
Assessment
Deployment
Workflows of the Process
Iteration vs. Increment
It is important to have visible milestones in the life cycle , where various stakeholders
meet to discuss progress and planes.
The purpose of this events is to:
Synchronize stakeholder expectations and achieve concurrence on the requirements, the
design, and the plan.
Synchronize related artifacts into a consistent and balanced state
Three types of joint management reviews are conducted throughout the process:
1. Major milestones. These system wide events are held at the end of each
development phase. They provide visibility to system wide issues, synchronize the
management and engineering perspectives, and verify that the aims of the phase
have been achieved.