PM Unit 2 Notes
PM Unit 2 Notes
Software architecture
In comparison, software architecture defines the overall structure and
organization of a software system or an application. It encompasses the high-
level design decisions, principles, and patterns that guide the development and
deployment of an application.
It focuses on strategic concerns such as system scalability, performance,
security, reliability, and maintainability. It outlines the relationships between
different components or modules, the flow of data, and the interaction between
various systems within the application
2.1.3 Types of Frameworks
.
Backend frameworks are used for server-side development, handling tasks such
as request processing, database integration, and business logic implementation.
They come with abstractions and tools to streamline the development process.
Express.js, a popular backend framework for Node.js, simplifies route
handling, middleware management, and API development.
These four phases of lifecycle process are loosely mapped to the conceptual framework of the
spiral model is as shown in the following table:
In the above figure the size of the spiral corresponds to the inactivity of the
project with respect to the breadth and depth of the artifacts that have been
developed.
This inertia manifests itself in maintaining artifact consistency, regression
testing, documentation, quality analyses, and configuration control.
Increased inertia may have little, or at least very straightforward, impact on
changing any given discrete component or activity.
However, the reaction time for accommodating major architectural changes,
major requirements changes, major planning shifts, or major organizational
perturbations clearly increases in subsequent phases.
2.3. Inception
Undertaking a feasibility study: Identify the essential issue your task will tackle
and whether your venture will convey an answer for that issue.
Assemble of the team: You need resources to execute any project. Before you can
make a project schedule, you need to create a project team with the skill sets and
experience that the project demands.
Recognizing project partners: Figure out whom the venture influences and what
their requirements might be.
Building up a business case: Use the above standards to think about the possible
expenses and advantages of the task to decide whether it pushes ahead.
Primary Objectives:
1) Establishing the project’s scope and boundary conditions.
2) Distinguishing the critical use cases of the system and the primary scenarios of
operation.
3) Demonstrating at least one candidate architecture against some of the primary
scenarios.
4) Estimating cost and schedule for the entire project.
5) Estimating potential risks.
Essential Activities:
1) Formulating the scope of the project.
UNIT-II
2) Synthesizing the architecture.
3) Planning and preparing a business case.
2.4. Elaboration
In the second phase of software project management, you will complete and
validate the project plan and the architectural design. Then, identify any risks and
manage them accordingly. You’ve already agreed to the project vision and requirements,
so you’ll follow these tasks to achieve the project goals:
Managing the risk. Understand how risk can be mitigated and managed.
Develop a playbook that covers probable risk areas and best-practice
response guidelines.
Modeling & design. Visualize or simulate the system and environment
models of the technology stack, product architecture, and the SDLC
UNIT-II
framework. The model considers all interactions between the system
components and appropriate external factors. Some of the popular SDLC
models include DevOps and Agile.
Executing the project plan. Assign the roles and responsibilities for teams,
managers, and employees. Identify the required tools and services, and
provision them through a systematic governance framework.
It is the most critical phase among the four phases.
Depending upon the scope, size, risk, and freshness of the project, an
executable architecture prototype is built in one or more iterations.
At most of the time the process may accommodate changes, the elaboration
phase activities must ensure that the architecture, requirements, and plans are
stable. And also the cost and schedule for the completion of the development
can be predicted within an acceptable range.
Primary Objectives
1. Base lining the architecture as rapidly as practical.
2. Base lining the vision.
3. Base lining a high-reliability plan for the
construction phase
4. Demonstrating that the baseline architecture will
support the
vision at a reasonable cost in a reasonable time.
Essential Activities
1 Elaborating the vision.
2 Elaborating the process and infrastructure.
3 Elaborating the architecture and selecting components.
2.5 Construction
Managing resource provision
The third phase of software project management deals directly with the development
process. Monitor the progress of the development process against the defined
requirements and user expectations—make sure you’re staying on track for timelines
and expectations. Here, you might also provide employees supporting the project
with any necessary training, education, and support.
Key tasks followed during this phase include:
UNIT-II
Designing the details. Describe how the documentation and architectural design
guides the development of software product components, builds, and features.
Explain the design patterns and follow them systematically.
Managing the quality. Identify the activities and the qualitative and quantitative
measures of software quality. Understand which metrics can be analyzed through
the software testing process to achieve high quality as intended.
Primary Objectives
Minimizing development costs.
Achieving adequate quality as rapidly as practical.
Achieving useful version (alpha, beta, and other releases) as rapidly as practical
Essential Activities
Resource management, control, and process optimization.
Complete component development and testing evaluation
criteria
Assessment of product release criteria of the vision
In the final phase of the software project management, you’ll validate the final product
build against all technical and business requirements. You’ll complete the necessary
artifacts and the development team must prepare for the next iteration of the software
UNIT-II
development cycle. You’ve already learned lessons from the first iteration, so apply these
to support continual improvement. Depending on the SDLC methodology you’re using,
you may release specific feature updates, components, or the complete product to end-
users.
Evolving. Describing how software development teams can transition to the next
iteration of the project. The iteration may produce a software build or a functioning feature
component, depending on the chosen SDLC framework.
Seeking feedback. Identify the opportunities and challenges you experienced
during prior iterations and apply the lessons in the next iteration of the SDLC. The DevOps
feedback loop is perfect for this. For organizations following Agile and DevOps SDLC
frameworks, the feedback process is an integral element of the SDLC process. In subsequent
iterations of the development process, there may be limited but ongoing improvements and
changes in requirements. Provisions for such changes should already be included during the
first three phases of the software project management model.
Closing the project. Success is measured following project completion. Project
managers are required to identify project performance and determine whether the project
goals were achieved within the agreed scope and constraints (time, cost, quality, other). Then,
document the project closure and conduct a and post-implementation reviews. Account for,
reallocate, or retrieve unused resources for future project implementations. Finally, debrief
the relevant teams on the project performance and evolution.
Transition Phase
Whenever a project is grown-up completely and to be deployed in the end-user
domain this phase is called transition phase. It includes the following activities:
1) Beta testing to validate the new system against user expectations
2) Beta testing and parallel operation relative to a legacy system it is replacing
3) Conversion of operational databases
4) Training of users and maintainers
Primary Objectives
1) Achieving user self-supportability
2) Achieving stakeholder concurrence
3) Achieving final product baseline as rapidly and cost-effectively as practical
Essential Activities
1) Synchronization and integration of concurrent construction increments into
consistent deployment baselines
2) Deployment-specific engineering
3) Assessment of deployment baselines against the complete vision and
acceptance criteria in the requirement set.
UNIT-II
Ref 2: https://www.geeksforgeeks.org/phases-of-project-management
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).The emergence of rigorous and more powerful engineering notations
for requirements and design artifacts that support architecture-first development was
a major technology advance. In particular, the Unified Modeling Language has evolved
into a suitable representation format, namely visual models with a well-specified
syntax and semantics for requirements and design artifacts. Visual modeling using
UML is a primitive notation for early life-cycle artifacts.
Artifacts of the life-cycle of software are generally organized and divided into two sets
i.e., Management set and Engineering set. These sets are further divided or partitioned by
underlying language of set. These artifact sets are shown below in diagram :
The management set captures the artifacts associated with process planning and execution.
These artifacts use ad hoc notations, including text, graphics, or whatever representation is
required to capture the "contracts" among project personnel (project management,
architects, developers, testers, marketers, administrators), among stakeholders (funding
authority, user, software project manager, organization manager, regulatory agency), and
between project personnel and stakeholders. Specific artifacts included in this set are the
UNIT-II
work breakdown structure (activity breakdown and finan cial tracking mechanism), the
business case (cost, schedule, profit expectations), the release specifications (scope, plan,
objectives for release baselines), the software development plan (project process
instance), the release descriptions (results of release baselines), the status assessments
(periodic snapshots of project progress), the software change orders (descriptions of discrete
baseline changes), the deployment documents (cutover plan, training course, sales
rollout kit), and the environment (hardware and software tools, process automation,
documentation, training collateral necessary to support the execution of the process described
in the software development plan and the production of the engineering artifacts).
Management set artifacts are evaluated, assessed, and measured through a combination of
the following:
Software development plan aims to lay out whole plan which is necessary and
required in order to develop, modify, and upgrade software system. It is ready-
made solution for managers for software development. It provides acquirer
insight and tool for checking processes that have to be followed for
development of software.
It simply indicates two things: Periodic updating and understanding and
approval by managers and practitioners alike.
For Iterative development process, primary task to manage change. A project can
iterate (perform repeatedly) more productively with large change freedom. This
change of freedom has been gained due to automation.
2.8.1.6 Deployment
The deployment includes numerous subsets of documents for transitioning
product into operational status. It is simply application code as it runs on
production: built, bundled, compiled, etc. It is process of putting artifact where it
is necessary and performing any tasks it needs so as to achieve its purpose. It can
also include computer system operations manuals, software installations manuals,
plans and procedures for cutover, etc.
2.8.1.7 Environment –
Automation of development process needs and important to get supported by
robust development environment. It must include following points :
Management of requirements.
Visual Modeling.
Automation of document.
Automated regression testing.
Tools of host and target programming.
Tracking of features and defects or errors
Ref 1: https://www.geeksforgeeks.org/management-artifacts-and-its-types
The engineering sets consist of the requirements set, the design set, the
implementation set, and the deployment set. The primary mechanism for
evaluating the evolving quality of each artifact set is the transitioning of
information from set to set, thereby maintaining a balance of understanding
UNIT-II
among the requirements, design, implementation, and deployment artifacts.
Each of these components of the system description evolves over time.
Structured text is used for the vision statement, which documents the
project scope that supports the contract between the funding authority and
the project team. Ad hoc formats may also be used for supplementary
specifications (such as regulatory requirements) and user mockups or other
prototypes that capture requirements. UML notation is used for engineering
representations of requirements models (use case models, domain models). The
requirements set are the primary engineering context for evaluating the other
three engineering artifact sets and is the basis for test cases.
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
2.9.2 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 models include enough structural and behavioral
information to ascertain a bill of materials (quantity and specification of
primitive parts and materials, labor, and other direct costs). Design model
information can be straightforwardly and, in many cases, automatically
translated into a subset of the implementation and deployment set artifacts.
Specific design set artifacts includes the design model, the test model, and the
software architecture description (an extract of information from the design
model that is pertinent to describing architecture).
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
UNIT-II
• 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
Because the level of automated analysis available on design models is currently
limited, human analysis must be relied on. This situation should change over the next
few years with the maturity of design model analysis tools that support metrics
collection, complexity analysis, style analysis, heuristic analysis, and consistency
analysis.
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
The term workflow means a thread of cohesive and mostly sequential activities.
In most of the cases a process is a sequence of activities why because of easy to
understand, represent, plan and conduct. But the simplistic activity sequences are not
UNIT-II
realistic why because it includes many teams, making progress on many artifacts that
must be synchronized, cross-checked, homogenized, merged and integrated. In order to
manage complex software’s the workflow of the software process is to be changed that
is distributed. Modern software process avoids the life-cycle phases like inception,
elaboration, construction and transition. It tells only the state of the project rather than a
sequence of activities in each phase. The activities of the process are organized in to
seven major workflows:
1) Management
2) Environment
3) Requirements
4) Design
5) Implementation
6) Assessment
7) Deployment
Table No.2.12.1 The ARTIFACTS and life-cycle emphases associated with each workflow
UNIT-II
WORKFLOW ARTIFACTS LIFE CYCLE PHASE EMPHASIS
I
It is always important to have visible mile• stones in the life cycle where various
stakeholders meet, face to face, to discuss progress and plans. The purpose of these events
is not only to demonstrate how well a project is per• forming but also to achieve the
following:
• Synchronize stakeholder expectations and achieve concurrence on three evolving
perspectives: the requirements, the design, and the plan
• Synchronize related artifacts into a con- sistent and balanced state
• Identify the important risks, issues, and out-of-tolerance conditions
Perform a global assessment for the whole life cycle, not just the current situation of an
individual perspective or intermediate product
Milestones must have well-defined expectations and provide tangible results. This does
not preclude the renegotiation of the milestone's objectives once the project has gained
further understanding of the trade-offs among the requirements, the design, and the plan.
Three types of joint management reviews are conducted throughout the process:
1. Major milestones. These systemwide events are held at the end of each
development phase. They provide visibility to systemwide issues, synchronize the
management and engineering perspectives, and verify that the aims of the phase have been
achieved. The most important major milestone is usually the event that transitions the
project from the elaboration phase into the construction phase. These are the system wide
events are held at the end of each development phase. They provide visibility to system
wide issues. Major milestones at the end of each phase use formal, stakeholder- approved
evaluation criteria and release descriptions. 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 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, tradeoff
analyses, completeness and consistency, balance among risk, quality and usability.
Developers: Sufficiency of requirements detail and usage scenario descriptions, frameworks
for component selection or development, resolution of development risk, product line
compatibility, sufficiency of the development environment.
Maintainers: sufficiency of product and documentation artifacts, understandability,
interoperability with existing systems, sufficiency of maintenance environment.
Others: regulatory agencies, independent verification and validation contractors, venture
capital investors, subcontractors, associate contractors, and sales and marketing teams.
2. Minor milestones. These iteration-focused events are conducted to review the
content of an iteration in detail and to authorize continued work. The format and content of
minor milestones are highly dependent on the project and the organizational culture. These
UNIT-II
are the iteration-focused events are conducted to review the content of an iteration in detail
and to authorize continued work. Minor milestones capture two artifacts: a release
specification and a release description. Minor milestones use informal, development-team-
controlled versions of these artifacts.
The number of iteration-specific, informal milestones needed depends on the content and
length of the iteration.
Iterations which have one-month to six-month duration have only two milestones are
needed: the iteration readiness review and iteration assessment review. For longer iterations
some other intermediate review points are added.
All iterations are not created equal . An iteration take different forms and priorities,
depending on where the project is in the life cycle.
Early iterations focus on analysis and design. Later iterations focus on completeness,
consistency, usability and change management.
Iteration Readiness Review: This informal milestone is conducted at the start of each
iteration to review the detailed iteration plan and the evaluation criteria that have been
allocated to this iteration.
Iteration Assessment Review: This informal milestone is conducted at the end of each
iteration to assess the degree to which the iteration achieved its objectives and to review
iteration results, test results, to determine amount of rework to be done, to review impact of
the iteration results on the plan for subsequent iterations.
3. Status assessments. These periodic events provide management with frequent and
regular insight into the progress being made Periodic status assessments are important for
focusing continuous attention on the evolving health of the project and its dynamic priorities.
These are periodic events provide management with frequent and regular insight into the
progress being made. These are management reviews conducted at regular intervals
(monthly, quarterly) to address progress and quality of project and maintain open
communication among all stakeholders. The main objective of this assessment is to
synchronize all Stakeholders expectations and also serve as project snapshots. Also provide,
A mechanism for openly addressing, communicating, and resolving management issues,
technical issues, and project risks.
A mechanism for broadcast process, progress, quality trends, practices, and experience
information to and from all stakeholders in an open forum. Objective data derived directly
from on-going activities and evolving product configurations.