SPM 1-5 Unit's Sir Book Final
SPM 1-5 Unit's Sir Book Final
SPM 1-5 Unit's Sir Book Final
Department Vision
To produce professional, ethical and globally competent graduates by imparting quality
education in the field of Computer Science & Engineering with capabilities to solve a wide
range of complex scientific, technological and societal problems.
Department Mission
M1: To educate students to be effective problem-solvers and life-long learners in
technical, innovative and entrepreneurial skills.
M2: To impart quality and value based education and contribute towards the
advancement of computing, science and technology to raise satisfaction level of all
stakeholders.
M3: To establish a continuous Industry Institute Interaction, participation,
collaboration to contribute skilled IT Engineers.
PEO1: Graduates able to solve wide range of computing related problems by applying
the knowledge of Mathematics and innovative algorithms.
PEO2: Graduates pursue advanced degrees with a dedication for lifelong learning and
use their skills in an ethical & professional manner.
PEO3: To be able to adapt to the evolving technical challenges and changing career
opportunities.
CO1 Build static web pages using HTML 5 elements APPLY (L4)
CO-PO MAPPING:
COURSE PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12
CO1
CO2
CO3
CO4
CO5
CO-PSO MAPPING
COURSE PSO1 PSO2
Subject Code :R203105B
Teaching Methodologies:
GB - Glass Board
PC: Personal Computer
PPT - Power Point Presentation
CO-PO
Mapping
Subject Code : R203105B
CO MARKS %
MARKS %
C01 10 33.3
I.REMEMBER 10 33.3
C02 15 50
II.UNDERSTAND 20 66.7
CO3 05 16.7
BLOOMS TAXONOMY
Q.No. QUESTION MARKS CO
LEVEL
Explain checkpoints of the process
CO3
1. 10 EVALUATE(BTL5)
in software project management?
a) Write about briefly process
CO4
automation in Software project 05 CREATE(BTL6)
development?
2.
b) Write a Short notes on
CO4
a) quality indicators b) 05
EVALUATE(BTL5)
Management indicators
EVALUATE(BTL5)
a) Explain the architecture of
05 CO5
Devops?
3. b) Explain briefly about agile
05 CO5 REMEMBER(BTL6)
methodology?
Subject Code : R203105B
1a) Defination 1M
List the types of checkpoints 2M
Diagram of checkpoints 2M
Explanation of three checkpoints 5M
BLOOMS TAXONOMY
Q.No. QUESTION MARKS CO
LEVEL
Explain checkpoints of the process
CO3
1. 10 REMEMBER(BTL5)
in software project management?
a) Write about briefly process
CO4
automation in Software project 05 UNDERSTAND(BTL6)
development?
2.
b) Write a Short notes on
CO4 REMEMBER(BTL5)
a) quality indicators b) 05
Management indicators
a) Explain the architecture of
05 CO5 UNDERSTAND(BTL5)
Devops?
3. b) Explain briefly about agile
05 CO5 UNDERSTAND(BTL6)
methodology?
% MARKS %
CO MARKS
I.REMEMBER 15 50
C03 10 33.3
===========================================================================
===========================================================================
6. With reference to waterfall model, each phase must be completed before the ___ can begin
and there is no overlapping in the phases
8. In the basic waterfall model, There are two essential steps common to
the development of computer programs
a) Requirements
b) Design
c) Coding
d) Testing
9. The best thing about software is its?
a) Flexibility b) adoptability
C) Compatability d) All of the above
10. Finding and fixing a software problem after delivery costs ------ times
more than finding and fixing the problem in early design phases
a) 50 b) 10 c) 100 d)20
a) Micro Process
b) Meta Process
c) Macro Process
d) None Process
22. Achieving useful versions (alpha, beta, and other test releases) as
rapidly as practical is one of the primary objectives of -------- phase.
a) Inception b) elaboration c) construction d)transistion
24. The entire ------------set is a test artifact because it is the basis of all
assessment activities across the life cycle
a) Design b) Requirement c) deployment d) artifact
Engineering stage is decomposed into two distinct phases, inception and elaboration, and the
production stage into construction and transition. These four phases of the life-cycle process
are loosely mapped to the conceptual framework of the spiral model as shown in below.
Inception Phase:-
By using this phase to achieve concurrence among stakeholders on the life-
cycle objectives for the project. Get agreement from the stack holders on the objective of the
project.
a) Primary Objectives:-
Establishing the project scope and boundary conditions, including an operational
concept, acceptance criteria, and a clear understanding of what is planned and un
planed in the product.
To determine the cost schedule of the entire project.
To verify one candidate architecture against some of the primary sequence of events.
To separate the critical use cases of the system and the primary sequence of events of
the system operation
To evaluate potential risks (sources of unpredictability)
b) Essential Activities:-
Whether all stakeholders agree on the scope definition and cost and schedule
estimates?
Are requirements understood, as evidenced by the fidelity of the critical use cases?
Determine whether the estimation of cost and schedule, priorities, risks, and
development processes conveyable?
Whether the depth and breadth of an architecture prototype demonstrate the
preceding criteria?
Elaboration phase :-
It is one of the most critical phase among all 4 phases. At the end of this
phase, the "engineering" is considered complete and project faces its estimation: the decision
is made whether or not commit to the production phase.
a) Primary Objectives
To determine the architecture in such a way that all changes can be monitored and managed
To Base line the vision.
To determine the base line architecture will support the vision at a valid cost in a valid time
The Base line a high- constancy plan for the construction phase
b) Essential Activities
Construction Phase :-
This phase represents a production process, in which emphasis is placed
on managing resources and controlling operations to optimize costs, schedules, and quality. All
the components are integrated into the application and tested.
a) Primary Objectives:-
Whether the product baseline is fully developed to be used in the user community?
Whether the product baseline is sufficiently stable to be used in user community?
Does the stakeholders ready for transition to the user community?
Are actual resource expenditures v/s planned expenditures acceptable?
Transition Phase:-
The transition phase is entered when a baseline is mature enough to be
deployed in the end-user domain. This phase include any of 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
The transition phase concludes when the deployment baseline has achieved the complete
vision.
a) Primary Objectives:-
Achieving user self-supportability
Achieving stakeholder concurrence that deployment baselines are complete and
consistent with the evaluation criteria of the vision
Achieving fast and cost-effective baselines for the final product
b) Essential Activities:-
Synchronization and integration of concurrent construction increments into consistent
deployment baselines
Deployment-specific engineering
Evaluating the deployment baselines against the acceptance criteria and the vision.
c) Evaluation Criteria:-
Is the user satisfied?
Are actual resource expenditures versus planned expenditures acceptable?
II) Artifacts of the process
1) The Artifact Sets:-
An artifact is a tangable result of the software process. It may be written documents
(description, specification, design, plan, etc..) software modules (products ,tools,test data) or
process definition.
The artifact sets are set of related artifacts. There are 2 kinds of artifacts. They are
Management artifacts
Engineering artifacts
Elaboration phase: - It is much greater depth in requirements, much more breadth in the
design set, and further work on implementation and deployment issues.
Transition phase:- we can achieving consistency and completeness of the deployment set in
the context of the other sets.
Management artifacts
Management Artifacts includes over all condition (or) situation to confirm and ensure that
instructional technology project gets done. It contains various activities that capture
intermediate results and supporting information and data that are essential to document the
end-product/process legacy, maintain the end-product, increase quality of product, and also
increases performance of the process. Some types of Management Artifacts. They are
1) Business Case:-
The business case generally provides confirmation for initiating project, task,
and program. This confirmation is simply based on the estimated cost, risks and issues and
evaluated business benefits and savings to be gained.
A business case is good if describes problems and issues, determines all the
possible options to address it, and gives permission to the decision-makers to decide which of
the course of the action will be best for organization. The main goal of business case to
convert vision into economic teams so that organization can develop exact and accurate ROI
(Return on Investment) assessment.
2) Software Development Plan (SDP):-
Software development plan aims to lay out whole plan
which is necessary and required in order to develop, modify, and upgrade software system. It
provides 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.
3) Work Breakdown Structure (WBS):-
Work breakdown structure is deliverable-oriented breakdown
of project into component of small size. WBS is created and developed to establish similar
understanding of scope of project.It is hierarchical tree structure that layout project and
simply breaks it down into smaller and manageable portions or components
4) Software Change Order Database :-
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.
5) Release Specification:-
Release specifications generally mean tests and limits against that which
raw material, intermediate and end product are accurately measured just before use or
release.
Two important forms of requirements in release specifications are Vision Statement
(captures contract between development group and buyer) and Evaluation Criteria
(management-oriented requirements that can be showed and represented using use cases,
use cases realizations, etc).
6) Deployment:- –
It is simply application code as it runs on production: build,combined, 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.
7) Environment:- –
Automation of development process needs and important to get supported by
robust development environment.
It must include following points:
Vision Document:-
The vision document provides a complete vision for the software system under devel-
opment and supports the contract between the funding authority and the development
organization. A project vision is means changeable as understanding to get the requirements,
architecture, plans, and technology. A good vision document should change slowly. It provides
a default outline for a vision document.
Architecture Description :-
An architecture description is collection of artifacts that document an architecture that
includes an organized view of software architecture under development. It is generally taken
and extracted from design model and also contains views of design, implementation, and
deployment sets. In Architecture description, architecture views are generally key artifacts.
Software User Manual :-
Pragmatic Artifacts
People simply want to review data or information but sometimes don’t be able to
understand language of 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 derived; 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.
Design view includes basic structure and functionality of solution.process view contains
runtime collaboration.component view includes architecture elements in implementation set
and deployement view is the executable understanding of the architecture.
b) Management perspective:-
To understand management architecture, first we have to
understand three different aspects of architecture. They are
It provides a basis for balancing trade-off between problem and solution spaces.
Architecture and process encapsulate communication among stakeholders. Poor architecture
and immature process are causing of project failures.
Requirements: It includes critical use cases, system-level quality objectives, and priority
relationships among features and qualities
Design: Names, attributes, structures, behaviors, groupings, and relationships of significant
classes and components
Implementation: This phase mainly focus on source component inventory and bill of
materials (number, name, purpose, cost) of all primitive components
Deployment: Executable components sufficient to demonstrate the critical use cases and the
risk associated with achieving the system qualities
Workflows:-
The workflow refers to the series of sequential tasks those are performed to
achieve certain goal. Each workflow step is defined by three parameters i.e input,
transformation, and output. In workflow process a series of actions are performed to achieve a
business outcome.
Process workflows:-
The process workflows lead the software developments in a linear way by
performing series of sequential tasks.
Software development includes 7 types of workflows. They are
1. Management workflow –
Some of the essential steps of controlling process are carried out in
management workflow. The artifacts include Software Development Plan (SDP), business
case, and vision etc.Ensuring win win condition for stake holders in terms of developing,
executing and implementing software project.
2. Environment workflow – Automating the process preparing the maintenance.
3. Requirements workflow – Analyzing the problem space for identifying/understanding the
problems and finding a solution. Elaborate the use case to be understand and developed.
4. Design workflow – develop the architecture and Modeling the solution
5. Implementation workflow – In this workflow we can develop new components,
implementation and deployment artifacts
6. Assessment workflow – Assessing the trends in process, evaluate results of iteration,
identify rework and Product quality
7. Deployment workflow – The process of delivering the end products to the user.
Major milestones are system-wide event that is performed at the end of each phase of
development.
These milestones can be used in various process models. These are providing visibility to
system-wide issues.
It helps to integrate management and engineering point of view.
It helps in verifying that target or goal of each phase has been achieved successfully or not.
They are used to achieve concurrence among every stakeholder in present state of project.
It also helps in make sure consistency between different artifacts.
Minor Milestones:-
Minor milestones are also called as micro milestones. They are simply
monitoring points that project manager generally uses to maintain control of activities of each
day. Minor milestones are iteration-focused events that are conducted to review data or
content of iteration in detailed manner. They generally divide elapsed time between major
milestones into short time intervals. This is done to give confidence to us that major
milestones will be achieved.
Status Assessments:-
Life-Cycle Objective Milestone: These milestones occur 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.
Life- Cycle Architecture Milestone: These milestones occur at the end of the elaboration
phase. Primary goal is to demonstrate an executable architecture to all stakeholders. A more
detailed plan for the construction phase is presented for approval. Critical issues relative to
requirements and the operational concept are addressed.
Initial Operational Capability Milestone: These milestones occur late in the construction
phase. The goals are to assess the readiness of the software to begin the transition into
customer / user sites and to authorize the start of acceptance testing.
Product Release Milestone: Occur 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 and software quality
metrics are reviewed to determine whether quality is sufficient for transition to the support
organization.
MINOR MILESTONES:-
For most iterations, which have a one-month to six-month duration, only
two minor milestones are needed: the iteration readiness review and the iteration assessment
review.
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 satisfied its evaluation
criteria, to review iteration results, to review qualification test results (if part of the iteration),
to determine the amount of rework to be done, and to review the impact of the iteration
results on the plan for subsequent iterations.
The format and content of these minor milestones tend to be highly dependent on the project
and the organizational culture. Figure 9-4 identifies the various minor milestones to be
considered when a project is being planned.
PERIODIC STATUS ASSESSMENTS
Periodic status assessments are management reviews
conducted at regular intervals (monthly, quarterly) to address progress and quality indicators,
ensure continuous attention to project dynamics, and maintain open communications among
all stakeholders.
Periodic status assessments serve as project snapshots. While the period may vary, the
recurring event forces the project history to be captured and documented. Status assessments
provide the following:
Objective data derived directly from on-going activities and evolving product
configurations
Periodic status assessments are crucial for focusing continuous attention on the evolving
health of the project and its dynamic priorities. They force the software project manager to
collect and review the data periodically, force outside peer review, and encourage
dissemination of best practices to and from other stakeholders.
Iterative Process Planning:- Work breakdown structures, planning guidelines, cost
and schedule estimating, Iteration planning process, Pragmatic planning.
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.
A WBS is simply a hierarchy of elements that decomposes the project plan into the
discrete work tasks. A WBS provides the following information structure:
Many parameters can drive the decomposition of work into distinct tasks: product
subsystems, components, functions, organizational units, life-cycle phases, even geographies.
Most systems have first-level decomposition by subsystem. Subsystems are then decomposed
into their components, one of which is typically the software.
A default WBS consistent with the process framework (phases, workflows, and artifacts) is
shown in Figure 1-2. This recommended structure provides one example of how the elements
of the process framework can be integrated into a plan. It provides a framework for estimating
the costs and schedules of each element, allocating them across a project organization, and
tracking expenditures.
The structure shown is intended to be merely a starting point. It needs to be tailored to the
specifics of a project in many ways.
The WBS decomposes the character of the project and maps it to the life cycle, the budget,
and the personnel. Reviewing a WBS provides insight into the important attributes, priorities,
and structure of the project plan. Another important attribute of a good WBS is that the
planning fidelity inherent in each element is commensurate with the current life-cycle phase
and project state. Figure 1-3 illustrates this idea.
Figure 1-2 Default work breakdown structure
Management
AA Inception phase management
AAA Business case development
AAB Elaboration phase release specifications
AAC Elaboration phase WBS specifications
AAD Software development plan
AAE Inception phase project control and status assessments
AB Elaboration phase management
ABA Construction phase release specifications
ABB Construction phase WBS baselining
ABC Elaboration phase project control and status assessments
AC Construction phase management
ACA Deployment phase planning
ACB Deployment phase WBS baselining
ACC Construction phase project control and status assessments
AD Transition phase management
ADA Next generation planning
ADB Transition phase project control and status assessments
B Environment
BA Inception phase environment specification
BB Elaboration phase environment baselining
BBA Development environment installation and administration
BBB Development environment integration and custom toolsmithing
BBC SCO database formulation
BC Construction phase environment maintenance
BCA Development environment installation and administration
BCB SCO database maintenance
BD Transition phase environment maintenance
BDA Development environment maintenance and administration
BDB SCO database maintenance
BDC Maintenance environment packaging and transition
C Requirements
CA Inception phase requirements development
CCA Vision specification
CAB Use case modeling
CB Elaboration phase requirements baselining
CB Elaboration phase requirements baselining
CBA Vision baselining
CBB Use case model baselining
CC Construction phase requirements maintenance
CD Transition phase requirements maintenance
D Design
DA Inception phase architecture prototyping
DB Elaboration phase architecture baselining
DBA Architecture design modeling
DBB Design demonstration planning and conduct
DBC Software architecture description
DC Construction phase design modeling
DCA Architecture design model maintenance
DCB Component design modeling
DD Transition phase design maintenance
E Implementation
EA Inception phase component prototyping
EB Elaboration phase component implementation
EBA Critical component coding demonstration integration
EC Construction phase component implementation
ECA Initial release(s) component coding and stand-alone testing
ECB Alpha release component coding and stand-alone testing
ECC Beta release component coding and stand-alone testing
ECD Component maintenance
F Assessment
FA Inception phase assessment
FB Elaboration phase assessment
FBA Test modeling
FBB Architecture test scenario implementation
FBC Demonstration assessment and release descriptions
FC Construction phase assessment
FCA Initial release assessment and release description
FCB Alpha release assessment and release description
FCC Beta release assessment and release description
FD Transition phase assessment
FDA Product release assessment and release description
G Deployment
GA Inception phase deployment planning
GB Elaboration phase deployment planning
GC Construction phase deployment
GCA User manual baselining
GD Transition phase deployment
GDA Product transition to user
CBA Vision base lining Figure 1-3 Evolution of planning fidelity in the WBS over the life cycle
Inception Elaboration
Transition Construction
2) PLANNING GUIDELINES :-
Software projects span a broad range of application domains. It
is valuable but risky to make specific planning recommendations independent of project
context. Project-independent planning advice is also risky. There is the risk that the guidelines
may pe adopted blindly without being adapted to specific project circumstances. Two simple
planning guidelines should be considered when a project plan is being initiated or assessed.
The first guideline, detailed in Table 1-1, prescribes a default allocation of costs among the
first-level WBS elements. The second guideline, detailed in Table 1-2, prescribes the allocation
of effort and schedule across the lifecycle phases.
Management 10%
Environment 10%
Requirement 10%
Design 15%
Implementation 25%
Assessment 25%
Deployment 5%
Total 100%
These two planning approaches should be used together, in balance, throughout the life
cycle of the project.
During the engineering stage, the top-down perspective will dominate because there is
usually not enough depth of understanding nor stability in the detailed task sequences to
perform credible bottom-up planning.
During the production stage, there should be enough precedent experience and planning
fidelity that the bottom-up planning perspective will dominate.
Top-down approach should be well tuned to the project-specific parameters, so it should
be used more as a global assessment technique
Figure 1-4 Planning balance throughout the life cycle
Micro level task estimation for Macro level task estimation for
engineering artifacts maintenance of engineering artifacts
Coarse grained variance analysis of actual Fine grained variance analysis of actual vs
vs planned expenditures planned expenditures
Construction iterations. Most projects require at least two major construction iterations:
an alpha release and a beta release.
Transition iterations. Most projects use a single iteration to transition a beta release into
the final product.
The general guideline is that most projects will use between four and nine iterations. The
typical project would have the following six-iteration profile:
One iteration in inception: an architecture prototype
Two iterations in elaboration: architecture prototype and architecture baseline
Two iterations in construction: alpha and beta releases
One iteration in transition: product release
A very large or unprecedented project with many stakeholders may require additional
inception iteration and two additional iterations in construction, for a total of nine iterations.
5) PRAGMATIC PLANNING:-
Even though good planning is more dynamic in an iterative process, doing it accurately is
far easier. While executing iteration N of any phase, the software project manager must be
monitoring and controlling against a plan that was initiated in iteration N - 1 and must be
planning iteration N + 1. The art of good project· management is to make trade-offs in the
current iteration plan and the next iteration plan based on objective results in the current
iteration and previous iterations. Aside from bad architectures and misunderstood
requirements, inadequate planning (and subsequent bad management) is one of the most
common reasons for project failures. Conversely, the success of every successful project can
be attributed in part to good planning.
A project's plan is a definition of how the project requirements will be transformed into'
a product within the business constraints. It must be realistic, it must be current, it must be a
team product, it must be understood by the stakeholders, and it must be used. Plans are not
just for managers. The more open and visible the planning process and results, the more
ownership there is among the team members who need to execute it. Bad, closely held plans
cause attrition. Good, open plans can shape cultures and encourage teamwork.
UNIT-IV
UNIT- IV
Project Organizations and Responsibilities: Line-of-Business Organizations, Project
Organizations,evolution of Organizations.
Process Automation: Automation Building blocks, The Project Environment.
Project Control and Process instrumentation: The seven core Metrics, Management
indicators, quality indicators, life cycle expectations, pragmatic Software Metrics, Metrics
automation
Organizations occupied in software Line-of-Business need to support projects with the infrastructure
necessary to use a common process.
Project organizations need to allocate artifacts & responsibilities across project team to ensure a
balance of global (architecture) & local (component) concerns.
The organization must evolve with the WBS & Life cycle concerns.
Software lines of business & product teams have different motivation.
Software lines of business are motivated by return of investment (ROI), new business identifier,
market change & profitability.
Project teams are motivated by the cost, Schedule&quality of specific deliverables
1) Line-Of-Business Organizations:-
The main features of default organization are as follows.
Responsibility for process definition & maintenance is specific to a symmetric line of business.
Responsibility for process automation is an organizational role & is equal in importance to the
process definition role.
Organizational role may be fulfilled by a single individual or several different teams.
Software Engineering Process Authority (SEPA):-
Responsible for exchanging the information and project guidance to or from the project
practitioners.
Maintain current assessment of organization process maturity.
Help in initiate and periodically estimate project processes.
Responsible for process definition and maintainence.
2) Project organizations:-
The default project organization and maps project-level roles and
responsibilities. This structure can be tailored to the size and circumstance of the specific project
organization.
The main feature of the default organization is as follows:
The project management team is an active participant, responsible for producing as well as
managing. Project management is not a spectator sport.
The architecture team is responsible for real artifacts and for the integration of components,
not just for staff functions.
The development team owns the component construction and maintenance activities.
Quality is every one job. Each team takes responsibility for a different quality perspective.
Management Team:-
This is active participant in an organization and is in charge of producing as well
as managing. As the software attributes, such as Schedules, costs, functionality and quality are
interrelated to each other, negotiation among multiple stakeholders is required and these are carried
out by the software management team.
Responsibilities:
Effort planning
Conducting the plan
Adapting the plan according to the changes in requirements and design
Resource management
Stakeholders satisfaction
Risk management
Assignment or personnel
Project controls and scope definition
Quality assurance
Software Architecture Team:
The software architecture team performs the tasks of integrating the components, creating
real artifacts etc.
It promotes team communications and implements the applications with a system-wide
quality.
The success of the development team is depends on the effectiveness of the architecture team
along with the software management team controls the inception and elaboration phases of a life-
cycle.
The architecture team must have:
Domain experience to generate an acceptable design and use-case view.
Software technology experience to generate an acceptable process view, component and
development views.
Responsibilities:
System-level quality i.e., performance, reliability and maintainability.
Requirements and design trade-offs.
Component selection
Technical risk solution
Initial integration
Software Development Team:
The Development team is involved in the construction and maintenance
activities. It is most application specific team. It consists of several sub teams assigned to the groups
of components requiring a common skill set. The skill set include the following:
Commercial component: specialists with detailed knowledge of commercial components central to a
system's architecture.
Database: specialists with experience in the organization, storage, and retrieval of data.
Graphical user interfaces: specialists with experience in the display organization; data presentation,
and user interaction.
Operating systems and networking: specialists with experience in various control issues arises due to
synchronization, resource sharing, reconfiguration, inter object communications, name space
management etc.
Domain applications: Specialists with experience in the algorithms, application processing, or
business rules specific to the system.
Responsibilities:
The exposure of the quality issues that affect the customer‟s expectations.
Metric analysis.
Verifying the requirements.
Independent testing.
Configuration control and user development.
Building project infrastructure.
Software Assessment Team:
This team is involved in testing and product activities in parallel with the ongoing development.
It is an independent team for utilizing the concurrency of activities.
The use-case oriented and capability-based testing of a process is done by using two artifacts:
Release specification ( the plan and evaluation criteria for a release)
Release description (the results of a release)
Responsibilities:
The exposure of the quality issues that affect the customer‟s expectations.
Metric analysis.
Verifying the requirements.
Independent testing.
Configuration control and user development.
Building project infrastructure.
EVOLUTION OF ORGANIZATIONS:-
Metaprocess (Line of business): The automation support for this level is called an infrastructure.
Macroproces (project): The automation support for a project’s process is called an environment.
Microprocess (iteration): The automation support for generating artifacts is generally called a tool.
Management: Software cost estimation tools and WBS tools are useful for generating the planning
artifacts. For managing against a plan, workflow management tools and a software project control
panel that can maintain an on-line version of the status assessment are advantageous.
Environment: Configuration management and version control are essential in a modern iterative
development process. (change management automation that must be supported by the environment.
Requirements: Conventional approaches decomposed system requirements into subsystem
requirements, subsystem requirements into component requirements, and component requirements
into unit requirements.
The ramifications of this approach on the environment‟s support for requirements management are
twofold:
1. The recommended requirements approach is dependent on both textual and model-based
representations
2. Traceability between requirements and other artifacts needs to be automated.
Design: The primary support required for the design workflow is visual modeling, which is used for
capturing design models, presenting them in human-readable format, and translating them into
source code. Architecture-first and demonstration-based process is enabled by existing architecture
components and middleware.
Implementation: The implementation workflow relies primarily on a programming environment
(editor, compiler, debugger, and linker, run time) but must also include substantial integration with
the change management tools, visual modeling tools, and test automation tools to support
productive iteration.
Assessment and Deployment: To increase change freedom, testing and document production must
be mostly automated. Defect tracking is another important tool that supports assessment: It provides
the change management instrumentation necessary to automate metrics and control release
baselines. It is also needed to support the deployment workflow throughout the life cycle.
There are four important environment disciplines that are critical to management context &
the success of a modern iterative development process.
Change Management
Change management is as critical to iterative processes as planning.
Tracking changes in the technical artifacts is crucial to understanding the true technical
progress trends and quality trends toward delivering an acceptable end product or interim release.
In a modern process-in which requirements, design, and implementation set artifacts are
captured in rigorous notations early in the life cycle and are evolved through multiple generations-
change management has become fundamental to all phases and almost all activities.
The basic fields of the SCO are title, description, metrics, resolution, assessment and disposition.
a) Title. The title is suggested by the originator and is finalized upon acceptance by the configuration
control board.
b) Description: The problem description includes the name of the originator, date of origination, CCB-
assigned SCO identifier, and relevant version identifiers of related support software.
c) Metrics: The metrics collected for each sea are important for planning, for scheduling, and for
assessing quality improvement. Change categories are type 0 (critical bug), type 1 (bug), type 2
(enhancement), type 3 (new feature), and type 4 (other)
d) Resolution: This field includes the name of the person responsible for implementing the change,
the components changed, the actual metrics, and a description of the change.
e) Assessment: This field describes the assessment technique as either inspection, analysis,
demonstration, or test. Where applicable, it should also reference all existing test cases and new test
cases executed, and it should identify all different test configurations, such as platforms, topologies,
and compilers.
f) Disposition: The SCO is assigned one of the following states by the CCB:
Configuration Baseline
A configuration baseline is a named collection of software components and supporting
documentation that is subject to change management and is upgraded, maintained, tested, statused
and obsolesced as a unit.
There are general1y two classes of baselines:
1. external product releases and
2. internal testing releases.
Infrastructures:-
Organization‟s infrastructure provides the organization capital assets, including two key
artifacts:
a) a policy that captures the standards for project software development processes, and
b) an environment that captures an inventory of tools.
Organization Policy
The organization policy is usually packaged as a handbook that defines the life cycle and the
process primitives (major milestones, intermediate artifacts, engineering repositories, metrics, roles
and responsibilities). The handbook provides a general framework for answering the following
questions:
– What gets done? (activities and artifacts)
– When does it get done? (mapping to the life-cycle phases and milestones)
– Who does it? (team roles and responsibilities)
• How do we know that it is adequate? (Checkpoints, metrics and standards of performance).
Organization Environment
Some of the typical components of an organization‟s automation building blocks are as follows:
• Standardized tool selections, which promote common workflows and a higher ROI on training.
• Standard notations for artifacts, such as UML for all design models, or Ada 95 for all custom-
developed, reliability-critical implementation artifacts.
• Tool adjuncts such as existing artifact templates (architecture description, evaluation criteria,
release descriptions, status assessment) or customizations.
• Activity templates (iteration planning, major milestone activities, configuration control boards).
Stakeholder Environments
• An on-line environment accessible by the external stakeholders allows them to participate in the
process as follows:
– Accept and use executable increments for hands-on evaluation.
– Use the same on-line tools, data and reports that the software development organization uses to
manage and monitor the project.
– Avoid excessive travel, paper interchange delays, format translations, paper and shipping costs and
other overhead costs.
• There are several important reasons for extending development environment resources into certain
stakeholder domains.
– Technical artifacts are not just paper.
– Reviews and inspections, breakage/rework assessments, metrics analyses and even beta testing can
be performed independently of the development team.
– Even paper documents should be delivered electronically to reduce production costs and turn
around time.
Project Control and Process Instrumention: Seven Core Metrics, Management Indicators, Quality Indicators, Life
Cycle Expectations Pragmatic Software Metrics, Metrics Automation. Tailoring the process: Process Discriminates.
The primary themes of a modern software development process tackle the central management issues of complex
software:
• Getting the design right by focusing on the architecture first
• Managing risk through iterative development
• Reducing the complexity with component based techniques
• Making software progress and quality tangible through instrumented change management
• Automating the overhead and bookkeeping activities through the use of round-trip engineering and integrated
environments
The goals of software metrics are to provide the development team and the management team with the following:
• An accurate assessment of progress to date
• Insight into the quality of the evolving software product
• A basis for estimating the cost and schedule for completing the product with increasing accuracy over time.
Seven core metrics are used in all software projects. Three are management indicators and four are quality indicators.
a) Management Indicators
Work and progress (work performed over time)
Budgeted cost and expenditures (cost incurred over time)
Staffing and team dynamics (personnel changes over time)
b) Quality Indicators
Change traffic and stability (change traffic over time)
Breakage and modularity (average breakage per change over time)
Rework and adaptability (average rework per change overtime)
Mean time between failures (MTBF) and maturity (defect rate over time)
57
The seven core metrics are based on common sense and field experience with both successful and unsuccessful metrics
programs. Their attributes include the following:
They are simple, objective, easy to collect, easy to interpret and hard to misinterpret.
Collection can be automated and non intrusive.
They provide for consistent assessment throughout the life cycle and are derived from the evolving product
baselines rather than from a subjective assessment.
They are useful to both management and engineering personnel for communicating progress and quality in a
consistent format.
They improve fidelity across the life cycle.
MANAGEMENT INDICATORS
There are three fundamental sets of management metrics; technical progress, financial status staffing progress. By
examining these perspectives, management can generally assess whether a project is on budget and on schedule. The
management indicators recommended here include standard financial status based on an earned value system, objective
technical progress metrics tailored to the primary measurement criteria for each major team of the organization and staff
metrics that provide insight into team dynamics.
QUALITY INDICATORS
The four quality indicators are based primarily on the measurement of software change across evolving baselines of
engineering data (such as design models and source code).
59
Breakage and Modularity
Breakage is defined as the average extent of change, which is the amount of software baseline that needs rework (in
SLOC, function points, components, subsystems, files, etc).
Modularity is the average breakage trend over time. For a healthy project, the trend expectation is decreasing or stable
60
LIFE CYCLE EXPECTATIONS
There is no mathematical or formal derivation for using the seven core metrics. However, there were specific reasons for
selecting them:
The quality indicators are derived form the evolving product rather than from the artifacts.
They provide insight into the waster generated by the process. Scrap and rework metrics are a standard
measurement perspective of most manufacturing processes.
They recognize the inherently dynamic nature of an iterative development process. Rather than focus on the
value, they explicitly concentrate on the trends or changes with respect to time.
The combination of insight from the current value and the current trend provides tangible indicators for
management action.
Measuring is useful, but it doesn‟t do any thinking for the decision makers. It only provides data to help them ask the
right questions, understand the context, and make objective decisions.
The basic characteristics of a good metric are as follows:
1. It is considered meaningful by the customer, manager and performer. Customers come to software engineering
providers because the providers are more expert than they are at developing and managing software. Customers will
accept metrics that are demonstrated to be meaningful to the developer.
2. It demonstrates quantifiable correlation between process perturbations and business performance. The only real
organizational goals and objectives are financial: cost reduction, revenue increase and margin increase.
3. It is objective and unambiguously defined: Objectivity should translate into some form of numeric representation
(such as numbers, percentages, ratios) as opposed to textual representations (such as excellent, good, fair, poor).
Ambiguity is minimized through well understood units of measurement (such as staff-month, SLOC, change,
function point, class, scenario, requirement), which are surprisingly hard to define precisely in the software
engineering world.
4. It displays trends: This is an important characteristic. Understanding the change in a metric‟s value with respect to
time, subsequent projects, subsequent releases, and so forth is an extremely important perspective, especially for
today‟s iterative development models. It is very rare that a given metric drives the appropriate action directly.
5. It is a natural by-product of the process: The metric does not introduce new artifacts or overhead activities; it is
derived directly from the mainstream engineering and management workflows.
61
6. It is supported by automation: Experience has demonstrated that the most successful metrics are those that are
collected and reported by automated tools, in part because software tools require rigorous definitions of the data
they process.
METRICS AUTOMATION
There are many opportunities to automate the project control activities of a software project. For managing against a
plan, a software project control panel (SPCP) that maintains an on-line version of the status of evolving artifacts
provides a key advantage.
To implement a complete SPCP, it is necessary to define and develop the following:
Metrics primitives: indicators, trends, comparisons, and progressions.
A graphical user interface: GUI support for a software project manager role and flexibility to support other roles
Metric collection agents: data extraction from the environment tools that maintain the engineering notations .for the
various artifact sets.
Metrics data management server: data management support for populating the metric displays of the GUI and
storing the data extracted by the agents.
Metrics definitions: actual metrics presentations for requirements progress (extracted from requirements set
artifacts), design progress (extracted from design set artifacts), implementation progress (extracted from
implementation set artifacts), assessment progress (extracted from deployment set artifacts), and other progress
dimensions (extracted from manual sources, financial management systems, management artifacts, etc.)
Actors: typically, the monitor and the administrator
Specific monitors (called roles) include software project managers, software development team leads, software
architects, and customers.
Monitor: defines panel layouts from existing mechanisms, graphical objects, and linkages to project data; queries
data to be displayed at different levels of abstraction
Administrator: installs the system; defines new mechanisms, graphical objects, and linkages; archiving functions;
defines composition and decomposition structures for displaying multiple levels of abstraction.
62
In this case, the software project manager role has defined a top-level display with four graphical objects.
1. Project activity Status: the graphical object in the upper left provides an overview of the status of the top-level
WBS elements. The seven elements could be coded red, yellow and green to reflect the current earned value status.
(In Figure they are coded with white and shades of gray). For example, green would represent ahead of plan,
yellow would indicate within 10% of plan, and red would identify elements that have a greater than 10% cost or
schedule variance. This graphical object provides several examples of indicators: tertiary colors, the actual
percentage, and the current first derivative (up arrow means getting better, down arrow means getting worse).
2. Technical artifact status: the graphical object in the upper right provides an overview of the status of the evolving
technical artifacts. The Req light would display an assessment of the current state of the use case models and
requirements specifications. The Des light would do the same for the design models, the Imp light for the source
code baseline and the Dep light for the test program.
3. Milestone progress: the graphical object in the lower left provides a progress assessment of the achievement of
milestones against plan and provides indicators of the current values.
4. Action item progress: the graphical object in the lower right provides a different perspective of progress, showing
the current number of open and close issues.
63
The following top-level use case, which describes the basic operational concept of an SPCP, corresponds to a monitor
interacting with the control panel:
Start the SPCP. The SPCP starts and shows the most current information that was saved when the user last used
the SPCP.
Select a panel preference. The user selects from a list of previously defined default panel preference. The SPCP
displays the preference selected.
Select a value or graph metric. The user selects whether the metric should be displayed for a given point in time or
in a graph, as a trend. The default for trends is monthly.
Select to superimpose controls. The user points to a graphical object and requests that the control values for that
metric and point in time be displayed.
Drill down to trend. The user points to a graphical object displaying a point in time and drills down to view the
trend for the metric.
Drill down to point in time. The user points to a graphical object displaying a trend and drills down to view the
values for the metric.
Drill down to lower levels of information. The user points to a graphical object displaying a point in time and
drills down to view the next level of information.
Drill down to lower level of indicators. The user points to a graphical object displaying an indicator and drills
down to view the breakdown of the next level of indicators.
PROCESS DISCRIMINATES
In tailoring the management process to a specific domain or project, there are tow dimensions of discriminating factors:
technical complexity and management complexity.
The Figure illustrates discriminating these tow dimensions of process variability and shows some example project
applications. The formality of reviews, the quality control of artifacts, the priorities f concerns and numerous other
process instantiation parameters are governed by the point a project occupies in these two dimensions.
64
Figure summarizes the different priorities along the two dimensions.
Scale
There are many ways to measure scale, including number of source lines of code, number of function points,
number of use cases, and number of dollars. From a process tailoring perspective, the primary measure of scale
is the size of the team. As the headcount increases, the importance of consistent interpersonal communications
becomes paramount. Otherwise, the diseconomies of scale can have a serious impact on achievement of the
project objectives.
A team of 1 (trivial), a team of 5 (small), a team of 25 (moderate), a team of 125 (large), a team of 625 (huge),
and so on. As team size grows, a new level of personnel management ins introduced at roughly each factor of 5.
This model can be sued to describe some of the process differences among projects of different sizes.
Trivial-sized projects require almost no management overhead (planning, communication, coordination,
progress assessment, review, administration).
Small projects (5 people) require very little management overhead, but team leadership toward a common
objective is crucial. There is some need to communicate the intermediate artifacts among team member.
Moderate-sized projects (25 people) require moderate management overhead, including a dedicated software
project manager to synchronize team workflows and balance resources.
Large projects (125 people) require substantial management overhead including a dedicated software project
manager and several subproject managers to synchronize project-level and subproject-level workflows and to
balance resources.Project performance is dependent on average people, for two reasons:
65
a) There are numerous mundane jobs in any large project, especially in the overhead workflows.
b) The probability of recruiting, maintaining and retaining a large umber of exceptional people is small.
Huge projects (625 people) require substantial management overhead, including multiple software project
managers an many subproject managers to synchronize project-level and subproject-level workflows and to
balance resources.
66
sorts of development processes, feature set, time to market, budget and quality can all be freely traded off and changed
with very little overhead.
Process Maturity
The process maturity level of the development organization, as defined by the software engineering Institute‟s capability
maturity model is another key driver of management complexity. Managing a mature process (level 3 or higher) is far
simpler than managing an immature process (level 1 and 2). Organizations with a mature process typically have a high
level of precedent experience in developing software and a high level of existing process collateral that enables
predictable planning and execution of the process. Tailoring a mature organization‟s process for a specific project is
generally a straight forward task.
Architectural Risk
The degree of technical feasibility demonstrated before commitment to full-scale production is an important dimension
of defining a specific project‟s process. There are many sources of architectural risk. Some of the most important and
recurring sources are system performance (resource utilization, response time, throughput, accuracy), robustness to
change (addition of new features, incorporation of new technology, adaptation to dynamic operational conditions) and
67
system reliability (predictable behavior, fault tolerance). The degree to which these risks can bed eliminated before
construction begins can have dramatic ramifications in the process tailoring.
Domain Experience
The development organization‟s domain experience governs its ability to converge on an acceptable architecture in a
minimum number of iterations. An organization that has built five generations of radar control switches may be able to
converge on adequate baseline architecture for a new radar application in two or three prototype release iterations. A
skilled software organization building its first radar application may require four or five prototype releases before
converging on an adequate baseline.
The following list elaborates some of the key differences in discriminators of success.
Design is key in both domains. Good design of a commercial product is a key differentiator in the marketplace
and is the foundation for efficient new product releases. Good design of a large, complex project is the
foundation for predictable, cost-efficient construction.
Management is paramount in large projects, where the consequences of planning errors, resource allocation
errors, inconsistent stakeholder expectations and other out-of-balance factors can have catastrophic
consequences for the overall team dynamics. Management is far less important in a small team, where
opportunities for miscommunications are fewer and their consequences less significant.
Deployment plays a far greater role for a small commercial product because there is a broad user base of diverse
individuals and environments.
69
UNIT-V
DevOps Architecture:- Unit - V
Development and operations both play essential roles in order to deliver the
applications. The deployment comprises analyzing the requirements, designing,
developing, and testing of the software components or frameworks.
DevOps architecture is used for the applications located on the cloud platform and
large distributed applications. Agile Development is used in the DevOps
architecture so that integration and delivery can be contiguous.
When the development and operations team works separately from each other,
then it is time-consuming to design, test, and deploy. And if the terms are not in
sync with each other, then it may cause a delay in the delivery. So DevOps enables
the teams to change their shortcomings and increases productivity. Below are the
various components that are used in the DevOps architecture:
1) Build:- with DevOps, the usage of cloud, sharing of resources comes into the
picture, and the build is dependent upon the user's need
2) Code:- Git enables the code to be used, which ensures writing the code for
business, helps to track changes, getting notified about the reason behind the
difference in the actual and the expected output, and if necessary reverting to the
original code developed. The code can be appropriately arranged in files, folders,
etc. And they can be reused.
3) Test:- The application will be ready for production after testing. In the case of
manual testing, it consumes more time in testing and moving the code to the
output. The testing can be automated, which decreases the time for testing so
that the time to deploy the code to production can be reduced as automating the
running of the scripts will remove many manual steps.
4) Plan:- DevOps use Agile methodology to plan the development. With the
operations and development team in sync, it helps in organizing the work to plan
accordingly to increase productivity.
5) Monitor:- Continuous monitoring is used to identify any risk of failure. Also, it
helps in tracking the system accurately so that the health of the application can be
checked. The monitoring becomes more comfortable with services where the log
data may get monitored through many third-party tools such as Splunk.[ this tool
is used to searches and indexes log files and helps organizations derive insights
from the data]
6) Deploy:- Many systems can support the scheduler for automated deployment.
The cloud management platform enables users to capture accurate insights and
view the optimization scenario, analytics on trends by the deployment of
dashboards.
7) Operate:- DevOps changes the way traditional approach of developing and
testing separately. The operation team interacts with developers, and they come
up with a monitoring plan which serves the IT and business requirements.
8) Release:- Deployment to an environment can be done by automation. But
when the deployment is made to the production environment, it is done by
manual triggering. Many processes involved in release management commonly
used to do the deployment in the production environment manually to lessen the
impact on the customers.
Orchestration tools
1) Jenkins:-
2) Git
It is a version control system, and it lets teams collaborate
on a project at the same time. Developers can track
changes in their files, as well as improve the product
regularly. Git is widely popular among tech companies.
Many companies consider it is a must-have for their tech
professionals.
You can save different versions of your code on Git. You can use GitHub for holding
repositories as well. GitHub allows you to connect Slack with your on-going projects so
your team can easily communicate regarding the project.
3) Bamboo:-
Bamboo is similar to Jenkins as it helps you in automating your delivery
pipeline. The difference is of their prices. Jenkins is free, but Bamboo is not.
4) Kubernetes:-
Kubernetes deserves a place on this
DevOps tools list for obvious reasons. First, it is a
fantastic container orchestration platform. Second, it
has taken the industry by storm.
When you have many containers to take care of,
scaling the tasks becomes immensely challenging.
Kubernetes helps you in solving that problem by
automating the management of your containers.
It is an open-source platform. Kubernetes can let you scale your containers without
increasing your team. As it is an open-source platform, you don’t have to worry about
access problems. You can use public cloud infrastructure or hybrid infrastructure to
your advantage. The tool can also self-heal containers. This means it can restart failed
containers, kills not-responding containers, and replaces containers.
5) Vagrant:-
Because it works on local systems, your team members won’t have to give up their
existing technologies or operating systems. Vagrant’s enhanced development
environments certainly make DevOps easier for your team. That’s why we have kept it
in our DevOps tools list.
6) Splunk:-
Splunk makes machine data more accessible and valuable. It enables your
organization to use the available data in a better fashion. With its help, you can easily
monitor and analyze the available data and act accordingly.
7)Sumologic:-
Sumologic is a popular CI platform for DevSecOps. It enables
organizations to develop and secure their applications on the cloud. It can detect
Indicators of Compromise quickly, which lets you investigate and resolve the threat
faster.
Its real-time analytics platform helps organizations in using data for predictive analysis. For
monitoring and securing your cloud applications, you should choose Sumologic. Because of its
power of the elastic cloud, you can scale it infinitely (in theory).
DevOps Pipeline
A pipeline in software engineering team is a set of automated processes which allows DevOps
professionals and developer to reliably and efficiently compile, build, and deploy their code to
their production compute platforms.The most common components of a pipeline in DevOps are
build automation or continuous integration, test automation, and deployment automation.
A pipeline consists of a set of tools which are classified into the following categories such as:
Source control
Build tools
Containerization
Configuration management
Monitoring
Continuous delivery (CD) is the process that allows operation engineers and developers to deliver
bug fixes, features, and configuration change into production reliably, quickly, and sustainably.
Continuous delivery offers the benefits of code delivery pipelines, which are carried out that can
be performed on demand.
Coding – code development and review, source code management tools, code merging
Building – continuous integration tools (like Jenkins), build status
Testing – continuous testing tools (like QuerySurge, Selenium, Cucumber, JMeter) that
provide feedback on business risks
Packaging – artifact repository, application pre-deployment staging
Releasing – change management, release approvals, release automation
Configuring – infrastructure configuration and management, infrastructure as
code tools
Monitoring – applications performance monitoring, end-user experience
1. Continuous Development:
This stage involves committing code to version control tools such as Git or SVN for maintaining
the different versions of the code, and tools like Ant, Maven, Gradle for building/packaging the
code into an executable file that can be forwarded to the QAs for testing.
2. Continuous Integration:
The stage is a critical point in the whole DevOps Lifecycle. It deals with integrating the
different stages of the DevOps lifecycle and is, therefore, the key in automating the whole
DevOps Process.
3. Continuous Deployment:
In this stage the code is built, the environment or the application is containerized and is
pushed onto the desired server. The key processes in this stage are Configuration
Management, Virtualization, and Containerization.
4. Continuous Testing:
The stage deals with automated testing of the application pushed by the developer. If there is
an error, the message is sent back to the integration tool, this tool, in turn, notifies the
developer of the error, If the test was a success, the message is sent to Integration-tool which
pushes the build on the production server.
5. Continuous Monitoring:
The stage continuously monitors the deployed application for bugs or crashes. It can also be
set up to collect user feedback. The collected data is then sent to the developers to improve
the application.
DevOps adoption in projects
Technology aspects
The adoption of technology is an important aspect of many projects, including those related
to DevOps. Some of the key technology aspects to consider when implementing DevOps
practices include:
1. Cloud computing: Cloud computing provides a scalable and flexible infrastructure for
DevOps projects, enabling organizations to quickly provision and manage resources as
needed. It also enables the use of technologies like containers and serverless computing,
which can help to streamline the development and deployment process.
2. Automation tools: DevOps requires the use of automation tools for tasks such as code
builds, testing, and deployment. There are many tools available for DevOps automation,
including Jenkins, GitLab, and Ansible, among others.
3. Containerization: Containers provide a lightweight and portable way to package and
deploy applications. Technologies like Docker and Kubernetes are commonly used in
DevOps projects to enable containerization and orchestration of containers.
4. Infrastructure as code: Infrastructure as code (IaC) is a practice that involves defining
infrastructure using code. This enables DevOps teams to manage infrastructure in a
consistent and repeatable way, and to treat infrastructure as a versioned artifact.
5. Monitoring and observability: DevOps requires continuous monitoring and
observability of applications and infrastructure to detect and resolve issues quickly.
Tools like Prometheus and Grafana can be used for monitoring, while distributed tracing
tools like Jaeger and Zipkin can be used for observability.
6. Security: Security is an important consideration in any DevOps project. Technologies like
security scanning tools, vulnerability management tools, and penetration testing tools
can help to ensure that applications and infrastructure are secure
Agiling capabilities
Agile capabilities refer to an organization's ability to effectively adopt and implement agile
methodologies and practices in their software development process. Agile is a mindset and a
methodology that focuses on delivering value to customers through iterative and incremental
development, with a focus on collaboration, flexibility, and continuous improvement. Agile
capabilities are therefore critical to the success of any DevOps project, as DevOps also relies
on a collaborative and iterative approach to software development. Here are some key
aspects of agile capabilities that organizations need to focus on when adopting DevOps
practices:
1. Agile mindset: The agile mindset is a key aspect of agile capabilities. It involves a
willingness to embrace change, a focus on delivering value to customers, and a
commitment to continuous improvement. The agile mindset is a culture that values
teamwork, collaboration, and open communication. Organizations need to foster an agile
mindset throughout their teams to effectively adopt DevOps practices.
2. Agile methodologies: Agile methodologies like Scrum, Kanban, and XP provide a
framework for agile development. These methodologies help teams to prioritize work, manage
work in progress, and continuously improve the development process. Organizations need
to select the appropriate agile methodology that aligns with their business needs and the
nature of their project.
3.Agile practices
Agile practices like user stories, sprint planning, and retrospectives help teams to
collaborate, communicate, and deliver high-quality software. User stories help to capture
requirements in a customer-centric way, while sprint planning helps to organize work into
manageable chunks. Retrospectives provide an opportunity to reflect on the development
process and make improvements.
4. Agile tools: Agile tools like Jira, Trello, and GitLab can help teams to manage their work and
collaborate effectively. These tools provide a platform for managing work in progress, tracking
progress, and communicating with team members.
5. Continuous delivery: Continuous delivery is an agile practice that involves continuously
integrating and testing code changes, and deploying those changes to production quickly
and frequently. This requires an agile approach to development, where teams work in
small increments and focus on delivering value to customers.
6. Continuous improvement: Continuous improvement is a core tenet of both agile and
DevOps. Teams need to continuously reflect on their work and make improvements to their
processes, tools, and practices. This involves an agile mindset, where teams are willing to
experiment, learn from their mistakes, and make changes to improve the software
delivery process
Tool stack implementation
A tool stack is a collection of software tools that are used together to support a particular
process or workflow. In the context of DevOps, a tool stack is a set of tools that are used to
support the software development and deployment process. Implementing a tool stack is a
critical aspect of DevOps adoption, as it enables teams to automate tasks, streamline
workflows, and improve collaboration. Here are some key considerations when implementing
a DevOps tool stack:
1. Tool selection: The first step in implementing a DevOps tool stack is to select the
appropriate tools. There are many tools available for different aspects of the DevOps
workflow, such as source code management, continuous integration and delivery, testing,
monitoring, and collaboration. It's important to select tools that are compatible with each
other and can integrate seamlessly to support the end-to-end software delivery process.
2. Tool integration: Once the appropriate tools have been selected, they need to be
integrated to create a cohesive tool stack. This involves configuring the tools to work together
and automating the workflow between them. Integration is critical to achieving the benefits
of DevOps, such as faster delivery, higher quality, and improved collaboration.
3. Tool adoption: After the tool stack has been implemented, it's important to encourage
adoption by the development and operations teams. This involves providing training, support,
and documentation to ensure that everyone understands how to use the tools effectively.
Adoption is critical to achieving the benefits of DevOps, as it ensures that the tool stack is used
to its full potential.
4. Tool optimization: Finally, it's important to optimize the tool stack over time. This
involves regularly reviewing the tool stack to identify areas for improvement and making
changes to the tools or processes as necessary. Optimization is critical to ensuring that
the DevOps tool stack continues to support the evolving needs of the development and
operations teams.
The Key Principles of Scrum in Project Management:-
The six principles are: Empirical Process Control, Self-Organization, Time-Boxing, Value-Based
Prioritization, Iterative Development, and Collaboration.
1)Empirical Process Control:-
This principle is the first and most important principle underlying the
“scrum” method, and is actually made up of three sub-principles that should guide you when
implementing it. The three key aspects included in Process Control are:
Transparency – the idea here is that universal visibility of a project, as well as its progress, will
decrease the risk of misunderstandings and mistakes.
Inspection – whatever you’re developing, be it a product or a service, to inspecting it at
different stages of the project cycle. This will ensure that whatever you’re developing remains
closely aligned with your original brief.
Adaption – a good project management methodology will be sensitive to change and scrum
allows team members to make significant changes in between sprints.
2) Self-Organization:-
In the context of scrums, the principle of self-organization is key to
ensuring that team members take responsibility and ownership for the project they’re working
on. The self-organization is that it makes team members care and the bigger a team's
emotional investment, the more likely they are to see success.
This principle also affects assessment – self-organizing teams can be critical of themselves and
the team’s performance without the need for input from leadership.
3) Time-Boxing
Time-boxing is a part of the scrum method in which strict time limits are
enforced in various ways throughout a project. Most of the time, this means running
“sprints” – one to four-week periods of intense focus on a single task or collection of tasks.
Some teams sprint for slightly longer, others for shorter – it really depends on what product or
service you're developing.
But it's not just for sprints – implementing time-boxing wherever you can, including in
meetings, will ensure that your project stays on track for its delivery date.
4) Value-Based Prioritization:-
Prioritizing the completion of the right tasks in the right time
frame is a key part of every working person’s life, whether they’re in the midst of a project or
not.However, teams implementing the scrum method prioritize value overall – specifically, by
trying to create the maximal business value in the shortest amount of time. This is all about
delivering the highest quality product or service as quickly as possible.
5) Iterative Development:-
“Iterative” projects are broken down into smaller chunks, or
iterations, such that one large project becomes a series of smaller subprojects that are easier
to focus on. These are the “sprints” in scrum.
The “development” part of this phrase refers to what teams can learn from each
sprint/iteration, and how those lessons can then be applied to future iterations, creating a
constant cycle of improvement.
6) Collaboration:-
The final core pillar of the scrum approach is collaboration. It’s vital that
all team members working on a project are aware of what others are working on, and have a
close relationship with the project stakeholders, who ultimately need to be satisfied with the
end product.
Collaboration is distinct from other related concepts, like cooperation, in that collaboration
relies on the collective inputs of multiple team members and the mutual development of such
ideas – cooperation simply means working on the same project .
Scrum Process
Scrums have key characteristics that make them what they are – it’s not simply the process of
getting into small teams and performing “sprints.” A typical scrum cycle will include:
Sprint planning – this usually takes place before a project and involves creating a general
strategy for how scrums will function, who will play the role of scrum master, and various
other decisions that have to be made before any work can take place.
The daily scrum – a short, daily meeting that gives scrum masters and project managers the
chance to touch base with team members and make quick adaptions before the workday
commences.
The sprint – a short, one to four-week burst of intense focus on specific tasks within a project,
with the entire team focused on the short-term goal of completing the designated jobs for
that sprint.
The sprint review – a conversation between the scrum team and the project stakeholders
where feedback can be taken and modifications to the product or service can be made.
The sprint retrospective – a “bigger picture” review where changes to the workings or
structure of the scrum can be discussed and debated. Did work run as smoothly as it could
have done? If not, the retrospective is where you can air your concerns.
Key components in Devops life cycle process:-
1) Continuous development:-
The first component of a DevOps lifecycle is continuous development,
during which the team concentrates on planning and programming the software. This
component encourages regular and continuous updates. As a result, the team can deliver code
to customers as soon as they finish writing and testing it. This is possible because, typically,
continuous development simplifies the development process by breaking it down into smaller
development cycles.
2) Continuous integration:-
In software engineering, continuous integration (CI) is the practice that allows
tech organisations to automate the integration of code changes that several contributors
developed. As a result, they can easily create a single software project that's functional and
includes all necessary adjustments. In addition to this, it also enables clients to provide
feedback that contributors can use when they're about to incorporate new features into
applications. In many instances, this is the most intense stage of the DevOps process, as the
most changes can happen throughout its duration.
3) Continuous testing:-
Another key component of DevOps is continuous testing, which is a form of
software testing that contributors and team members perform at every stage of the
development lifecycle. The primary goal for this process is the assessment of the quality of the
software. Typically, development teams do this by identifying any bugs and errors in the code.
A major element of this DevOps stage is quality analysis (QA), which allows the team to test
the software's usability. The QA process also tells them if the software meets the key
specifications and client requirements.
4) Continuous deployment:-
Continuous deployment (CD) is a process that aims to validate if
the contributors implemented the correct changes and if these changes are stable enough for
a software release. Thanks to this component, developers can address any code and software
issues quickly and hassle-free. It also makes their work more accurate, as CD eliminates the
need for scheduling releases. To improve the CD stage, it's important that organisations
maintain high levels of consistency between development, staging and production
environments.
5) Continuous monitoring:-
Continuous monitoring is an operational stage during which developers identify
any grey areas in the software. This phase also gives them enough time and resources to
enhance the overall efficiency of the application. During the monitoring stage, they also
address and eliminate any system errors, ensuring full functionality, availability and security of
the software.
6) Continuous feedback:-
In DevOps, continuous feedback is the process of regularly evaluating
the effects of each software release and creating reports that help the development team
improve their future releases. Effective feedback is almost immediate and entire teams and
departments can receive it at the same time. The way in which an organisation processes
client or expert feedback can impact its corporate image and simply help the development
team improve the way in which they fix code errors and implement adjustments to
applications. Continuous feedback also helps companies improve employee engagement and
productivity.
7) Continuous operations:-
Continuous operations are the last component of the DevOps lifecycle
whose primary goal is to help developers eliminate or at least significantly reduce the need for
planned downtime, including scheduled maintenance. There are various elements that they
can incorporate to make that possible, such as A/B testing and aiming for small and frequent
releases. Thanks to continuous operations, organisations can maintain the same productivity
and efficiency levels, regardless of any events of disruption.
Old Question
Papers
Code No: R203105B R20 SET - 1
./
; 1$$ # 8 ) $ ) $# ! $ + ,
- $ - # " $ ! # + ,
+( *
< * $ $ !3 $ # $ + ,
$ !
- * = ). 3 $ = ). $) ! $ + ,
./
' * /> $3 ? ! $ + ,
- $ $ $ # = ). + ,
' #'
|''|'|''|''|''|||'|| www.manaresults.co.in
Code No: R203105B
R2031011
R2031051
R203105A R20 SET - 2
./
; $ $ # $ 8 : + ,
-$
- () ) + ,
#
+( *
< * ) # $ $ ! ) $ + ,
$ !3 4 /> $3
- $ $ # = ). + ,
./
' * $ $ !3 $ # $ + ,
$ !
- () # # ) # = ). + ,
!
|''|'|''|''|''|||'|| www.manaresults.co.in
' #'
Code No: R203105B
R2031011
R2031051
R203105A R20 SET - 3
( , -
!" #$ % ! & '$($) ' (
./
5 $ $ ) # $ - + ,
- () ) ) # + ,
+(
6 A $ # # 8 B + ,
C #!
- $ ! # ) + ,
./
7 * #$ 3 $ $ #$ + ,
- * - 3 4 # + ,
$ 3
+( *
1$$ # 8 ) $ ) $# ! $ + ,
- * / 3 $ + ,
./
; $ -$ # # +'5
$ #- : ,
+( *
< * #) $ # /> 3 $ + ,
- * # ! # = ). 3 $ + ,
./
' * $ $ !3 $ # $ + ,
$ !
- * ## - $ = ). 3() + ,
$ # = ).
' #'
|''|'|''|''|''|||'|| www.manaresults.co.in
Code No: R2031011
R2031051
R203105A
R203105B R20 SET - 43
- () # # $ $ # + ,
./
5 $ ! -8 ) # 1 + ,
$ -
- () # # # $ + ,
+(
6 $ ! # ) + ,
- = - - 1 $ -$ ! $ $ + ,
$ $
./
7 = -$ ! # ) # ) +'5
#$ ,
+( *
= - $ # #$ + ,
- * # + ,
# 8 3 $
./
; 1$$ # 8 ) $ ) $# ! $ + ,
- () ) + ,
#
+( *
< 4 /> ## # $ 3 $ + ,
- 4 $$ ! 8 $ + ,
= ). 3 $
./
' * $ % # = ). + ,
# !3
- # - # # = ). + ,
|''|'|''|''|''|||'|| www.manaresults.co.in
' #'