SPM Unit 3 Handout Final
SPM Unit 3 Handout Final
7. Model Based Software Architectures Achieving stable software architecture represents a significant
project milestone at which the critical make/buy decisions should
7.1 Architecture : A Management Perspective have been resolved.
Architecture representations provide a basis for balancing the
The most critical technical product of a software project is its trade-offs between the problem space (requirements and
architecture: the infrastructure, control, and data interfaces that permit constraints) and the solution space (the operational product).
software components to cooperate as a system and software designers to The architecture and process encapsulate many of the important
cooperate efficiently as a team. When the communications media include (high-payoff or high-risk) communications among individuals,
multiple languages and intergroup literacy varies, the communications teams, organizations, and stakeholders.
problem can become extremely complex and even unsolvable. If a Poor architectures and immature processes are often given as
software development team is to be successful, the inter project reasons for project failures.
communications, as captured in the software architecture, must be both A mature process, an understanding of the primary requirements,
accurate and precise. and a demonstrable architecture are important prerequisites for
predictable planning.
From a management perspective, there are three different aspects of Architecture development and process definition are the
architecture. They are : intellectual steps that map the problem to a solution without
violating the constraints; they require human innovation and
1. An architecture (the intangible design concept) is the design of a cannot be automated.
software system this includes all engineering necessary to specify
a complete bill of materials. 7.2 Architecture : A Technical Perspective
2. An architecture baseline (the tangible artifacts) is a slice of
information across the engineering artifact sets sufficient to An architecture framework is defined in terms of views that are
satisfy all stakeholders that the vision (function and quality) can abstractions of the UML models in the design set. The design model
be achieved within the parameters of the business case (cost, includes the full breadth and depth of information. An architecture view
profit, time, technology, and people). is an abstraction of the design model; it contains only the architecturally
3. An architecture description (a human-readable representation of significant information. Most real-world systems require four views:
an architecture, which is one of the components of an architecture design, process, component, and deployment. The purposes of these
baseline) is an organized subset of information extracted from the views are as follows :
design set model(s). The architecture description communicates
how the intangible concept is realized in the tangible artifacts. Design : describes architecturally significant structures and
functions of the design model
The number of views and the level of detail in each view can vary widely.
Process : describes concurrency and control thread relationships
The importance of software architecture and its close linkage with
among the design, component, and deployment views
modern software development processes can be summarized as follows :
Component : describes the structure of the implementation set
Deployment : describes the structure of the deployment set
The following figure summarizes the artifacts of the design set, including The requirements model addresses the behavior of the system as seen by
the architecture views and architecture description : its end users, analysts, and testers. This view is modeled statically using
use case and class diagrams, and dynamically using sequence,
collaboration, state chart, and activity diagrams.
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.
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.
Figure : Architecture, an organized and abstracted view into the design
models
The following table shows the allocation of artifacts and the emphasis of 8.2 Iteration Workflows
each workflow in each of the life-cycle phases of inception, elaboration,
construction, and transition : Iteration consists of a loosely sequential set of activities in various
proportions, depending on where the iteration is located in the
development cycle. Each iteration is defined in terms of a set of allocated
usage scenarios. An individual iteration's workflow, illustrated in the
figure below, generally includes the following sequence:
Iterations in the inception and elaboration phases focus on management. An iteration represents the state of the overall architecture and the
Requirements, and design activities. Iterations in the construction phase complete deliverable system. An increment represents the current
focus on design, implementation, and assessment. Iterations in the progress that will be combined with the preceding iteration to from the
transition phase focus on assessment and deployment. The following next iteration. The following figure, an example of a simple development
figure shows the emphasis on different activities across the life cycle : life cycle, illustrates the differences between iterations and increments :
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.
2. Minor milestones. These iteration-focused events are conducted
to review the content of an iteration in detail and to authorize
continued work.
3. Status assessments. These periodic events provide management
with frequent and regular insight into the progress being made.
The four major milestones occur at the transition points between life-
cycle phases. They can be used in many different process models,
including the conventional waterfall model. In an iterative model, the
major milestones are used to achieve concurrence among all stakeholders
on the current state of the project. Different stakeholders have very
different concerns :
Customers : schedule and budget estimates, feasibility, risk
assessment, requirements understanding, progress, product line
compatibility
Users : consistency with requirements and usage scenarios,
potential for accommodating growth, quality attributes
Architects and systems engineers : product line compatibility,
requirements changes, trade-off analyses, completeness and
consistency, balance among risk, quality, and usability Table : The general status of plans, requirements, and products across the
major milestones
Life-Cycle Objectives Milestone The following details refer to the default agendas for the life-cycle
architecture milestone :
The life-cycle objectives milestone occurs at the end of the inception
phase. The goal is to present to all stakeholders a recommendation on
how to proceed with development, including a plan, estimated cost and
schedule, and expected benefits and cost savings. A successfully
completed life-cycle objectives milestone will result in authorization from
all stakeholders to proceed with the elaboration phase.
Initial Operational Capability Milestone The format and content of these minor milestones tend to be highly
dependent on the project and the organizational culture. The following
The initial operational capability milestone occurs late in the construction figure identifies the various minor milestones to be considered when a
phase. The goals are to assess the readiness of the software to begin the project is being planned :
transition into customer/user sites and to authorize the start of
acceptance testing. Acceptance testing can be done incrementally across
multiple iterations or can be completed entirely during the transition
phase is not necessarily the completion of the construction phase.
The product release milestone occurs at the end of the transition phase.
The goal is to assess the completion of the software and its transition to
the support organization, if any. The results of acceptance testing are
reviewed, and all open issues are addressed. Software quality metrics are
reviewed to determine whether quality is sufficient for transition to the
support organization.
A mechanism for openly addressing, communicating, and 10. Iterative Process Planning
resolving management issues, technical issues, and project risks
Objective data derived directly from on-going activities and Introduction
evolving product configurations
A mechanism for disseminating process, progress, quality trends, Like software development, project planning requires an iterative
practices, and experience information to and from all process. Like software, a plan is an intangible piece of intellectual
stakeholders in an open forum property to which all the same concepts must be applied. Plans have an
engineering stage, during which the plan is developed, and a production
Periodic status assessments are crucial for focusing continuous attention stage, when the plan is executed. Plans must evolve as the understanding
on the evolving health of the project and its dynamic priorities. They force evolves of the problem space and the solution space. Planning errors are
the software project manager to collect and review the data periodically, just like product errors : The sooner in the life cycle they are resolved, the
force outside peer review, and encourage dissemination of best practices less impact they have on project success.
to and from other stakeholders.
10.1 Work Breakdown Structures
The default content of periodic status assessments should include the
topics identified in the following table : A good work breakdown structure and its synchronization with the
process framework are critical factors in software project success.
Development of a work breakdown structure dependent on the project
management style, organizational culture, customer preference, financial
constraints, and several other hard-to-define, project-specific parameters.
financial data, schedule data, organizational efficiencies, cost trends, AD Transition phase management
productivity trends, or quality trends across multiple projects. ADA Next generation planning
ADB Transition phase project control and status assessments
10.1.2 Evolutionary Work Breakdown Structures B Environment
BA Inception phase environment specification
An evolutionary WBS should organize the planning elements around the BB Elaboration phase environment baselining
process framework rather than the product framework. The basic BBA Development environment installation and administration
recommendation for the WBS is to organize the hierarchy as follows : BBB Development environment integration and custom
toolsmithing
First-level WBS elements are the workflows (management, BBC SCO database formulation
BC Construction phase environment maintenance
environment, requirements, design, implementation, assessment,
BCA Development environment installation and administration
and deployment).
BCB SCO database maintenance
Second-level elements are defined for each phase of the life
BD Transition phase environment maintenance
cycle (inception, elaboration, construction, and transition).
BDA Development environment maintenance and
Third-level elements are defined for the focus of activities that administration
produce the artifacts of each phase. BDB SCO database maintenance
BDC Maintenance environment packaging and transition
A default WBS consistent with the process framework (phases, C Requirements
workflows, and artifacts) is shown as below : CA Inception phase requirements development
CCA Vision specification
A Management CAB Use case modeling
AA Inception phase management CB Elaboration phase requirements baselining
AAA Business case development CBA Vision baselining
AAB Elaboration phase release specifications CBB Use case model baselining
AAC Elaboration phase WBS specifications CC Construction phase requirements maintenance
AAD Software development plan CD Transition phase requirements maintenance
AAE Inception phase project control and status assessments D Design
AB Elaboration phase management DA Inception phase architecture prototyping
ABA Construction phase release specifications DB Elaboration phase architecture baselining
ABB Construction phase WBS baselining DBA Architecture design modeling
ABC Elaboration phase project control and status DBB Design demonstration planning and conduct
assessments DBC Software architecture description
AC Construction phase management DC Construction phase design modeling
ACA Deployment phase planning DCA Architecture design model maintenance
ACB Deployment phase WBS baselining DCB Component design modeling
ACC Construction phase project control and status DD Transition phase design maintenance
assessments
Figure : Evolution of planning fidelity in the WBS over the life cycle Table : Default distributions of effort and schedule by phase
1. The lowest level WBS elements are elaborated into detailed tasks
2. Estimates are combined and integrated into higher level budgets
and mile- stones.
3. Comparisons are made with the top-down budgets and schedule
milestones.
10.4 The Iteration Planning Process Two iterations in elaboration : architecture prototype and
architecture baseline
Planning is concerned with defining the actual sequence of intermediate Two iterations in construction : alpha and beta releases
results. An evolutionary build plan is important because there are always One iteration in transition : product release
adjustments in build content and schedule as early conjecture evolves
into well-understood project circumstances. Iteration is used to mean a A very large or unprecedented project with many stakeholders may
complete synchronization across the project, with a well-orchestrated require additional inception iteration and two additional iterations in
global assessment of the entire project baseline. construction, for a total of nine iterations.
Inception iterations. The early prototyping activities integrate the 10.5 Pragmatic Planning
foundation components of a candidate architecture and provide
an executable framework for elaborating the critical use cases of Even though good planning is more dynamic in an iterative process, doing
the system. This frame-work includes existing components, it accurately is far easier. While executing iteration N of any phase, the
commercial components, and custom prototypes sufficient to software project manager must be monitoring and controlling against a
demonstrate a candidate architecture and sufficient requirements plan that was initiated in iteration N - 1 and must be planning iteration
understanding to establish a credible business case, vision, and N + 1. The art of good project management is to make trade-offs in the
software development plan. current iteration plan and the next iteration plan based on objective
Elaboration iterations. These iterations result in architecture, results in the current iteration and previous iterations. Aside from bad
including a complete framework and infrastructure for execution. architectures and misunderstood requirements, inadequate planning
Upon completion of the architecture iteration, a few critical use (and subsequent bad management) is one of the most common reasons
cases should be demonstrable: (1) initializing the architecture, (2) for project failures. Conversely, the success of every successful project
injecting a scenario to drive the worst-case data processing flow can be attributed in part to good planning.
through the system (for example, the peak transaction throughput
or peak load scenario), and (3) injecting a scenario to drive the A project's plan is a definition of how the project requirements will be
worst-case control flow through the system (for example, transformed into' a product within the business constraints. It must be
orchestrating the fault-tolerance use cases). realistic, it must be current, it must be a team product, it must be
Construction iterations. Most projects require at least two major understood by the stakeholders, and it must be used. Plans are not just
construction iterations: an alpha release and a beta release. for managers. The more open and visible the planning process and
Transition iterations. Most projects use a single iteration to results, the more ownership there is among the team members who need
transition a beta release into the final product. to execute it. Bad, closely held plans cause attrition. Good, open plans can
shape cultures and encourage teamwork.
The general guideline is that most projects will use between four and nine
iterations. The typical project would have the following six-iteration
profile :