Professional Documents
Culture Documents
41 - CSE - SPM Notes PDF
41 - CSE - SPM Notes PDF
1
SOFTWARE PROJECT MANAGEMENT
1.UNIT – I
1.1 Introduction
Both involve creative work that directly contributes to the usefulness of the end product.
In order to manage and control all of the intellectual freedom associated with
software development, one must introduce several other ‘overhead’ steps, including
system requirements definition, software requirements definition, program design,
and testing. These steps supplement the analysis and coding steps.”
Enforced discipline
Suggested Changes ‘Then’ and ‘Now’ Point 1. “Program design” comes first.
Program designer looks at storage, timing, data. Very high level…First glimpse.
First concepts…
During analysis: program designer must then impose storage, timing, and
operational constraints to determine consequences.
Begin design process with program designers, not analysts and programmers
Design, define, and allocate data processing modes even if wrong. (allocate
functions, database design, interfacing, processing modes, i/o processing,
operating procedures…. Even if wrong!!)
Build an overview document – to gain a basic understanding of system for all
stakeholders.
Point 2: Document the Design
Development efforts required huge amounts of documentation – manuals for
everything
User manuals; operation manuals, program maintenance manuals, staff
user manuals, test manuals…
Most of us would like to ‘ignore’ documentation.
Each designer MUST communicate with various stakeholders: interface designers,
managers, customers, testers, developers, …..
Point 3: Do it twice.
History argues that the delivered version is really version #2Version 1, major
problems and alternatives are addressed – the ‘big cookies’ such as
communications, interfacing, data modeling, platforms, operational constraints,
other constraints. Plan to throw first version away sometimes…
Version 2, is a refinement of version 1 where the major requirements are
implemented. Version 1 often austere; Version 2 addressed shortcomings!
3
Point 4: Then: Plan, Control, and Monitor Testing.
Largest consumer of project resources (manpower, computing time, …) is
the test phase.
Phase of greatest risk – in terms of cost and schedule.
when alternatives are least available, and expenses are at a
Occurs last,
maximum.
phase that is shortchanged the most
Typically that
Employ a non-vested team of test specialists – not responsible for original design.
Employ visual inspections to spot obvious errors (code reviews, other technical
reviews and interfaces)
Test every logic path
Employ final checkout on target computer…..
4
1.2.1 Conventional Software Management Performance Or Boehm’s top 10 list about
conventional software management performance?
a. Finding and fixing a software problem after delivery costs 100 times more than
finding and fixing the problem in early design phases.
b. You can compress software development schedules 25% of nominal, but no more.
c. For every $1 you spend on development, you will spend $2 on maintenance.
d. Software development and maintenance costs are primarily a function of the
number of source lines of code.
e. Variations among people account for the biggest differences in software productivity.
f. The overall ratio of software to hardware costs is still growing. In 1955 it was 15:85;
in 1985, 85:15.
g. Only about 15% of software development effort is devoted to programming.
h. Walkthroughs catch 60% of the errors.
i. 80% of the contribution comes from 20% of contributors
The relationship among these parameters and the estimated cost can be
written as follows;:
Effort=(Personnel)(Environment)(quality)(size Process)
Modern Pracices: 2000 and late, software production. In this mostly 70% off-the-
shelf components perhaps as few as 30% of the components need to be custom
built. With advances in software technology and integrated production
environments, thse components-based systems can be produced very rapidly.
6
1.2.4 The predominant cost estimation process?
7
3. What is requirement analysis? ( May/June 2017)
Ans) Requirements analysis, also called requirements engineering, is the process of determining
User expectations for a new or Modified product. These features, called requirements, must be
Quantifiable, relevant and detailed. In software engineering, such Requirements are often called
Functional specifications. Requirements analysis is an important aspect of project management.
5. What are the two basic steps to build a program? Explain. (Dec-2016)
Ans) There are two essential steps common to the development of computer programs:
analysis and coding. In order to manage and control all of the intellectual freedom associated
with software development, one must introduce several other "overhead" steps, including
system requirements definition, software requirements definition, program design, and
testing.
8
1.4 Part B Questions
1. What are the risks in the waterfall model implemented in traditional way? ( May/June 2016)
2. What are the components of a good cost estimate, in practice? ( May/June 2016)
3. List and explain reasons why conventional software management does not perform
satisfactorily ( May/June 2017)
4. What are the five parameters related to software cost model? What is the
Relationship between these parameters? ( May/June 2017)
5. Describe the improvements done to the basic waterfall process that would eliminate
Most of the Development risks. (Dec-2016)
6. Describe in detail about the three generations of software development. (Dec-2016)
9
2. UNIT – II
2.1 Introduction
2.2 Improving the software economics
Five basic parameters of the software cost model:
1. Reducing the size or complexity of what needs to be developed
2. Improving the development process
3. Using more-skilled personnel and better teams
4. Using better environments
5. Trading off or backing off on quality thresholds
10
Reducing Software Product Size: Object Oriented
A ruthless focus on the development of a system that provides a well understood
collection of essential minimal characteristics.
The existence of a culture that is centered on results, encourages communication, but yet
is not afraid to fail.
The effective use of object-oriented
modeling The existence of a strong
architectural vision
The application of a well-managed and incremental development life cycle
Multiple-vendor incompatibility
11
Custom Complete change freedom Expensive, unpredictable development
development
Smaller, often simpler Unpredictable availability date
implementations
Undefined maintenance model
Often better performance
Often immature and fragile
Control of development and
enhancement Single-platform dependency
12
management engineers
Hiring skills. Few decisions are as important as hiring decisions. Placing the
right person in the right job seems obvious but is surprisingly hard to achieve.
Customer-interface skill. Avoiding adversarial relationships among stake-
holders is a prerequisite for success.
Decision-making skill. The jillion books written about management have
failed to provide a clear definition of this attribute. We all know a good leader
when we run into one, and decision-making skill seems obvious despite its
intangible definition.
Make quality #1. Quality must be quantified and mechanism put into place to
motivate its achievement.
High-quality software is possible. Techniques that have been demonstrated to
increase quality include involving the customer, prototyping, simplifying design,
conducting inspections, and hiring the best people.
Give products to customers early. No matter how hard you try to learn users’
needs during the requirements phase, the most effective way to determine real
needs is to give users a product and let them play with it.
Determine the problem before writing the requirements. When faced with
what they believe is a problem, most engineers rush to offer a solution. Before
you try to solve a problem, be sure to explore all the alternatives and don’t be
blinded by the obvious solution.
Evaluate design alternatives. After the requirements are agreed upon, you must
examine a variety of architectures and algorithms. You certainly do not want to
use an “architecture” simply because it was used in the requirements
specification.
Use an appropriate process model. Each project must select a process that
makes the most sense for that project on the basis of corporate culture, willingness to take risks,
application area, volatility of requirements, and the extent to which requirements are well
understood.
Use different languages for different phases. Our industry’s eternal thirst for
simple solutions to complex problems has driven many to declare that the best
development method is one that uses the same notation through-out the life
cycle. Why should software engineers use Ada for requirements, design, and
code unless Ada were optimal for all these phases?
Minimize intellectual distance. To minimize intellectual distance, the software’s
structure should be as close as possible to the real-world structure.
Put techniques before tools. An undisciplined software engineer with a tool
becomes a dangerous, undisciplined software engineer.
Get it right before you make it faster. It is far easier to make a working program
run than it is to make a fast program work. Don’t worry about optimization
15
during initial coding.
Inspect code. Inspecting the detailed design and code is a much better way to
find errors than testing.
Good management is more important than good technology. The best
technology will not compensate for poor management, and a good manager can
produce great results even with meager resources. Good management
motivates people to do their best, but there are no universal “right” styles of
management.
People are the key to success. Highly skilled people with appropriate
experience, talent, and training are key. The right people with insufficient tools,
languages, and process will succeed. The wrong people with appropriate tools,
languages, and process will probably fail.
Follow with care. Just because everybody is doing something does not make it
right for you. It may be right, but you must carefully assess its applicability to
your environment. Object orientation, measurement, reuse, process
improvement, CASE, prototyping-all these might increase quality, decrease cost,
and increase user satisfaction. The potential of such techniques is often oversold,
and benefits are by no means guaranteed or universal.
Take responsibility. When a bridge collapses we ask, “what did the engineers do
wrong?” Even when software fails, we rarely ask this. The fact is that in any
engineering discipline, the best methods can be used to produce awful designs,
and the most antiquated methods to produce elegant design.
Understand the customer’s priorities. It is possible the customer would tolerate
90% of the functionality delivered late if they could have 10% of it on time.
The more they see, the more they need. The more functionality (or
performance) you provide a user, the more functionality (or performance) the
user wants.
Plan to throw one away .One of the most important critical success factors is
whether or not a product is entirely new. Such brand-new applications,
architectures, interfaces, or algorithms rarely work the first time.
Design for change. The architectures, components, and specification techniques
you use must accommodate change.
Design without documentation is not design. I have often heard software
engineers say, “I have finished the design. All that is left is the documentation.”
Use tools, but be realistic. Software tools make their users more efficient.
Avoid tricks. Many programmers love to create programs with tricks- constructs
that perform a function correctly, but in an obscure way. Show the world how
smart you are by avoiding tricky code.
16
Encapsulate. Information-hiding is a simple, proven concept that results in
software that is easier to test and much easier to maintain.
Use coupling and cohesion. Coupling and cohesion are the best ways to
measure software’s inherent maintainability and adaptability.
Use the McCabe complexity measure. Although there are many metrics
available to report the inherent complexity of software, none is as intuitive and
easy to use as Tom McCabe’s.
Don’t test your own software. Software developers should never be the
primary testers of their own software.
Analyze causes for errors. It is far more cost-effective to reduce the effect of an
error by preventing it than it is to find and fix it. One way to do this is to analyze
the causes of errors as they are detected.
Realize that software’s entropy increases. Any software system that undergoes
continuous change will grow in complexity and become more and more
disorganized.
People and time are not interchangeable. Measuring a project solely by person-
months makes little sense.
Expert excellence. Your employees will do much better if you have high
expectations for them.
2.2.5 Explain The Principles of Modern Software Management? Top ten principles:
Base the process on an architecture-first approach: The architecturally
significant design decisions, and the life cycle plans before the resources are
committed for full scale development.
Establish an iterative life-cycle process: Today’s sophisticated software systems,
it is not possible to define the entire problem, design the entire solution, build
the software, the test the end product in sequence. An iterative process that
refines the problem understanding, an effective solution, and an effective plan
over several iterations encourages a balanced treatment to all objectives.
Component based development: A component is a cohesive set of preexisting
lines of code, either in source or executable format, with a defined interface and
behavior.
Change management environment: The dynamic of iterative development,
including concurrent workflows by different teams working on shared artifacts,
necessitates objectively controlled baselines.
Round trip engineering: it is the environment support necessary to automate
and synchronize engineering information in different formats. Change freedom
a necessity in an iterative process, and establishing an integrated environment is
crucial.
17
Model based notation: A model based approach supports the evolution of
semantically rich graphical and textual design notations
Objective quality control: It is the best assessment mechanisms are well defined
measures derived directly from the evolving engineering
Demonstration based approach: transitioning the current state of the product
artifacts into an executable demonstration of relevant scenarios stimulates
earlier convergence on integration
Evolving levels of detail: the evolution of project increments and generations
must be commensurate with the current level of understanding f the
requirements and architecture.
Configurable process: No single process is suitable for all software
developments. A pragmatic process framework must be configurable to a broad
spectrum of applications.
18
2.3 Part A Questions
19
6. Analyze the Davis principle “Use different languages for different phases”.
(Dec-2016)
Ans) Our industry’s main aim is to provide simple solutions to complex problems. In
order to Accomplish this goal choose different languages for different modules/phases
if required.
3. Explain how to reduce the software product size (or) complexity. (May/June 2017)
5. What are the key practices that improve overall software quality? Explain (Dec-2016)
20
3. UNIT-III
3.1 Introduction
3.2 The Life cycle phases
The engineering stage – driven by smaller teams doing design and synthesis activities
The production stage – driven by larger teams doing construction, test, and
deployment activities
21
In most conventional life cycles, the phases are named after the primary activity within each
phase: requirements analysis, design, coding, unit test, integration test, and system test.
Conventional software development efforts emphasized a mostly sequential process, in which
one activity was required to be complete before the next was begun.
Within an iterative process, each phase includes all the activities, in varying proportions.
Inception Phase:
Essential activities :
Elaboration Phase:
It is easy to argue that the elaboration phase is the most critical of the four phases. At the end
of this phase, the “engineering “is considered complete and the project faces its reckoning.
During the elaboration phase, an executable architecture prototype is built in one or more
iterations, depending on the scope, size, risk and novelty of the project.
Essential activities :
Elaborating the vision (establishing a high-fidelity understanding of the critical use cases
that drive architectural or planning decisions)
Elaborating the process and infrastructure (establishing the construction process, the
tools and process automation support)
Elaborating the architecture and selecting components (lessons learned from these
activities may result in redesign of the architecture)
Construction Phase:
All remaining components and application features are integrated into the application
All features are thoroughly tested
22
Essential activities :
Transition Phase:
The transition phase is entered when baseline is mature enough to be deployed in the
end-user domain. This phase could include beta testing, conversion of operational
databases, and training of users and maintainers.
Essential activities :
Evaluation Criteria:
Each of the four phases consists of one or more iterations in which some technical
capability is produced in demonstrable form and assessed against a set of the criteria.
The transition from one phase to the nest maps more to a significant business decision
than to the completion of specific software activity.
Life – cycle software artifacts are organized into five distinct sets that are roughly
partitioned by the underlying language of the set: management, requirements, design,
implementation, and deployment.
Management set:
The Management set captures the artifacts associated with process planning and
23
execution. Management artifacts are evaluated, assessed and measured through a
combination of the following:
b. Analysis of changes between the current version of the artifact and previous versions
c. Major milestone demonstrations of the balance among all artifacts and in particular,
the accuracy of the business case and vision artifacts.
The engineering sets consist of the requirements set, the design setk the
implementation set, and the deployment set.
costs. The software project manager must have insight into project costs
and how they are expended. If the WBS is structured improperly, it can drive the
evolving design in the wrong direction.
Business Case – provides all the information necessary to determine whether the project is
24
worth investing in. It details the expected revenue, expected cost, technical and management plans.
Release Specifications
Vision statement - which captures the contract between the development group and
the buyer.
Software Development Plan – the defining document for the project’s process. It must
comply with the contract, comply with the organization standards, evolve along with
the design and requirements.
Deployment – depending on the project, it could include several document subsets for
transitioning the product into operational status. It could also include computer system
operations manuals, software installation manuals, plans and procedures for cutover
etc.
requirements
management visual
modeling
document automation
25
3.2.4 Engineering Artifacts:
In general review, there are three engineering artifacts :
Vision document – supports the contract between the funding authority and the development
organization.
It is written from the user’s perspective, focusing on the essential features of the system.
It should contain at least two appendixes – the first appendix should describe the operational concept
using use cases, the second should describe the change risks inherent in the vision statement.
Architecture Description – it is extracted from the design model and includes views of
the design, implementation, and deployment sets sufficient to understand how the
operational concept of the requirements set will be achieved.
It should be written by members of the test team, who are more likely to understand
the user’s perspective than the development team.
It also provides a necessary basis for test plans and test cases, and for construction of
automated test suites.
26
From a management perspective, there are three different aspects of architecture:
Most real world systems require four views: design, process, component, and deployment.
The purposes of these views are as follows:
Design: describes architecturally significant structures and functions of the design
model. Process: describes concurrency and control thread relationships among the
design components, and deployment views.
Component: describes the structure of the
implementation set. Deployment: describes the
structure of the deployment set.
27
The use case view describes how the system’s critical use cases are realized by
elements of the design model. It is modeled statically using case diagrams, and
dynamically using any of the UML behavioral diagrams. The design view addresses the
basic structure and the functionality of the solution.
The process view addresses the run-time collaboration issues involved in executing the
architecture on a distributed deployment model, including the logical software network
topology, interprocess communicationand state management.
The deployment view addresses the executable realization of the system, including the
allocation of logical processes in the distribution view to physical resources of the
deployment network.
5. What are the two essential activities of transition phase? List. (Dec-2016)
Ans) Essential activities :
3. What are the primary objectives of the four phases of software life cycle? Discuss about them.
(May/June 2017)
5. What are the primary objectives and essential activities of construction phase? Discuss.
(Dec-2016)
30
4. UNIT-IV
4.1 Introduction
4.2.1 Explain in detail about the iteration workflows of the software process?
31
Management: Iteration planning to determine the content of the release and develop
the detailed plan for the iteration, assignment of work packages, or tasks, to the
development team.
Environment: evolving the software change order database to reflect all new baselines
and changes to existing baselines for all product, test and environment components
Requirements: analyzing the baseline plan, the baseline architecture, and the baseline
requirements set artifacts to fully elaborate the use cases to the demonstrated at the
end of the iteration and their evaluation criteria.
Design: Evolving the baseline architecture ad the baseline design set artifacts to
elaborate fully the design model and test model components necessary to demonstrate
against the evolution criteria allocated to this iteration.
32
Iteration emphasis across the life cycle
Three types of joint management reviews are conducted throughout the process:
1. Major milestones –provide visibility to system wide issues, synchronize the management and
engineering perspectives and verify that the aims of the phase have been achieved.
2. Minor milestones – iteration-focused events, conducted to review the content of iteration in
detail and to authorize continued work.
3. Status assessments – periodic events provide management with frequent and regular insight
into the progress being made.
33
MAJOR MILESTONES:
The four major milestones occur at the transition points between life-cycle phases. They can be
used in many different process models, including the conventional waterfall model. In an
iterative model, the major milestones are used to achieve concurrence among all stakeholders
on the current state of the project. Different stakeholders have very different concerns:
34
MINOR MILESTONES:
All iterations are not created equal. An iteration can take on very different forms and priorities,
depending on where the project is in the life cycle. Early iterations focus on analysis and design with
substantial elements of discovery, experimentation, and risk assessment. Later iterations focus much
more on completeness, consistency, usability, and change management.
35
Iteration readiness review: this informal milestone is conducted at the start of each iteration to
review the detailed iteration plan the evolution 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 of which the iteration achieved its objectives and satisfied its evaluation
criteria, to review iteration achieved its objectives and satisfied its evaluation criteria, to review
iteration results, to review qualification test results, to determine the amount of rework to be
done, and to review the impact of the iteration results on the plan for subsequent iterations.
Periodic stats assessments are management reviews conducted at regular intervals to address
progress and quality indicators, ensure continuous attention to project dynamics, and maintain open
communications among all stakeholders.
Objective data directly from on-going activities and evolving product configurations
A mechanism for disseminating process, progress quality trends, practices and experience
information to and from all stakeholders in an open forum.
The default content of periodic status assessments should include the topics indentified in the
following table.
28
29
4.2.3 Define WBS and explain in detail?
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:
The figure following shows the typical conventional WBS that has been
structured primarily around subsystems of its product architecture, the further
decomposed into the components of each subsystem.
Once this structure is ingrained in the WBS and then allocated to responsible
managers with budgets, schedules and expected deliverables, a concrete planning
foundation has been set that is difficult and expensive to change.
(SCAN FIG1)
2. Conventional WBS are prematurely decomposed, planned, and budgeted in wither too much or
too little detail:
Large software projects tend to be over planned and small projects tend to be under
planned. The WBS shown in the above figure is overly simplistic for most large scale systems,
where size or more levels of WBS elements are commonplace.
3. Conventional WBS are project-specific, and cross-project comparisons are usually difficult or
impossible:
30
Most organizations allow individual projects to define their own project-specific structure
tailored to the project manager’s style, the customer’s demands, or other project-specific
preferences.
Some of the following simple questions, which are critical to any organizational process
improvement program, cannot be answered by most project teams that use conventional WBS.
First level WBS elements are the workflows(Management, environment, requirement, design,
implementation, assessment, and deployment)
Second level elements are defined for each phase of the life cycle(inceptions, elaboration,
construction and transition)
Third level elements are defined for the focus of activities that produce the artifacts of each
phase.
A default WBS consistent with the process framework (phases, workflows, and artifacts)
is shown in the following figure
31
Organizational structure: projects that include subcontractors or span multiple
organizational entities may introduce constraints that necessitate different WBS
allocations.
Precedent experience: very few projects start with a clean state. Most of them
are developed as new generations of a legacy system or in the context of existing
organizational standards. It is important to accommodate these constraints to
ensure that new projects exploit the existing experience base and benchmarks of
project performance.
Software projects span a board 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 be
adopted blindly without being adapted to specific project circumstances. There is also the risk of
misinterpretation.
Two simple planning guidelines should be considered when a project plan is being initiated or
assessed.
The first guideline prescribes a default allocation of costs among the first-level WBS
elements.
The second guideline prescribes the allocation of effort and schedule across the life
cycle phases.
Given an initial estimate of total project cost and these two tables, developing a staffing
profile, and allocation of staff resources to reams, a top-level project schedule, and an initial
WBS with task budgets and schedules is relatively straightforward.
32
FIRST-LEVEL DEFAULT
WBS ELEMENT BUDGET
Management 10%
Environment 10%
Requirements 10%
Design 15%
Implementation 25%
Assessment 25%
Deployment 5%
Total 100%
The first guideline prescribes a default allocation of costs among the first-level WBS elements
The above table provides default allocations for budgeted costs of each first-level WBS
element. While these values are certain to vary across projects, this allocation provides a good
benchmark for assessing the plan by understanding the rationale for deviations from these guidelines.
An important point here is that this is cost allocation, not effort allocation. To avoid misinterpretation
two explanations are necessary
The cost of hardware and software assets that support the process automation
and development teams is also included in the environment element.
33
The second guideline prescribes the allocation of effort and schedule across the life-cycle phases
The above table provides guidelines for allocating effort and schedule across the life cycle
phases. Although these values can also vary widely depending on the specific constraints of an
application, they provide an average expectation across a spectrum of application domains.
The first is a forward-looking top-down approach. It starts with as understanding of the general
requirements and constraints, derives a macro –level budgets and intermediate milestones .
Forward-looking:
The software project manager partitions the estimate for the effort into a
top-level WBS, also partitions the schedule into major milestone dates
and partitions the effort into a staffing profile
Backward-looking:
1. The lowest level WBS elements are elaborated into detailed tasks, for which budgets
and schedules are estimated by the responsible WBS element manager.
2. Estimates are combined and integrated into higher level budgets and milestones.
34
3. Comparisons are made with the top-down budgets and schedule milestones. Gross
differences are assessed and adjustments are made in order to converge on agreement
between the top-down and the bottom-up estimates.
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.
During the production stage, these should be enough precedent experience and planning
fidelity that the bottom up planning perspective will dominate.
By then, the top-down approach should be well tuned to the project specific
parameters, so is should be used more as a global assessment technique. The following figure
shows this life cycle planning balance.
4.2.6 What are the types of responsibilities does the project organizations have? Line of
Business Organizations:
o Responsibility for process definition and maintenance is specific toa cohensive line
of business where process commonality makes sense. For example the process of
developing avionics software is different from the process used to develop office
applications.
35
o Responsibility for process automation, is an organizational role and its equal in
importance to the process definition role.
The project review authority (PRA) is the single individual responsible for ensuring that a
software project complies with all organizational and business unit software policies, practices,
and standards. The PRA reviews both the project’s conformance to contractual obligations and
the project’s organizational policy obligations. The customer monitors contract requirements,
contract milestones, contract deliverable, monthly management reviews, progress, quality,
cost, schedule and risk. The PRA reviews customer commitments as well as adherence to
organizational policies, organizational deliverables, and financial performance and other risks
and accomplishments.
36
project to use environment, and maintain organization-wide reusable assets. The SEEA rule is
necessary to achieve significant return on investment for a common process.
Infrastructure:
Project Administration:
Professional Development:
4.2.7 Explain in detail about Project Organizations and how it handle their teams?
A default project organization and maps project-level roles and responsibilities. The structure
can be tailored to the size and circumstances of the specific project organization. The main
features of the default organization are as follows.
The project management team is an active participant, responsible for producing as well
as managing.
The architecture team is responsible for real artifacts and for the integration of
components, not just for staff function.
The development team owns the component construction and maintenance activities.
Quality is everyone job, integrated into all activities and check points. Each team take
responsibility for a different quality perspective.
37
Software Management Team:
Most project are over constrained. Schedules, cost, functionality and quality
expectations are highly inter related and require continuous negotiation among multiple stake
holders who have different goals. The software management team carries the burden of
delivering with condition to all stake holders. The software management team takes ownership
of all aspects of quality.
The software architecture team is responsible for the architecture. This responsibility
encompasses the engineering necessary to specify a complete bill of materials for the software
and the engineering necessary to make significant make/ buy trade-offs so that all custom
components are elaborated to the extent that construction/assembly costs are highly
predictable.
In most projects, the inception and elaboration phases will be dominated by two distinct
teams: the software management team and the software architecture team. To succeed, the
architecture must include a fairly broad level of expertise, including the following:
38
Software development team:
The software development team is the most application specific group. In general, the
software development team comprise several sub teams dedicated to groups of components
that require a common skill set. The typical skill set include the following:
Commercial component:
Specialists with detail 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: specialist with experience in the execution of
multiple software objects on a network of hardware resources.
Domain applications: specialists with experience in the algorithms, application
processing.
39
The software development team is responsible for the quality of individual components,
including all component development, testing, and maintenance. Components tests
should be built as self-documented.
There are two reasons for using an independent team for software assessment. It
has to do with ensuring an independent quality perspective. A more important reason
for using an independent test team is to exploit the concurrency of activities.
The project organization represents the architecture of the team and needs to evolve
consistent with the project plan captured in the work breakdown structure. The following
figure illustrates how the team’s centre of gravity shifts over the life cycle, with about 50% of
the staff assigned to one set of activities in each phase
40
Inception team: an organization focused on planning, with enough support from the
other teams to ensure that the plans represent a consensus of all perspectives.
Construction team: a fairly balanced organization in which most of the activity resides
in the software development and software assessment teams
4.2.9 What are all the automation tools available for building blocks in software
process?
Many tools are available to automate the software development process. Most
of the core software development tools map closely to one of the process
workflows, as illustrated in the following figure. Each of the process workflows
has a distinct for automation support.
Management: there are many opportunities for automating the project planning
and control activities of the management work flows. Software cost estimating
tools and WBS tools are usual for generating the planning artifacts.
Design: the primary support required for the design work flow is visual modeling,
which is used for capturing design models, presenting them in human readable
format, and translating them into source code. An architecture first and
demonstration based process is enabled by existing architecture components and
middle ware.
Assessment and deployment: the assessment workflows require all the tools just
discussed as well as additional capabilities to support test automation and test
management. Defect tracking is another important that supports assessment.
How can we making scale between small scales project Vs large scale projects?
The lists elaborate some of the key differences in discriminators of success. None of
these process components is unimportant although some of them are more
important than others. ‘
Deployment plays a far greater role for a small commercial product because
there is a broad user base of diverse individuals and environments
42
Rank Large Complex Small
Project Commercial
Project
1 Management Design
2 Design Implementation
3 Requirements Deployment
4 Assessment Requirements
5 Environment Assessments
6 Implementation Management
7 Deployment Environment
Differences in workflow priorities between small and large projects
1. Briefly explain how iteration emphasis across the lifecycle. ( May/June 2016)
2. What are the four component teams in a default line of business organization and their
Responsibilities? (May/June 2016)
3. Briefly explain about iteration workflows (May/June 2017)
4. What are the sources of change? Why should change be made in a controlled?
Way? (May/June 2017)
5. Define workflow. Explain in detail about the seven top level software process
Workflows. (Dec-2016)
6.Explain briefly about the four major milestones that occur at the transition points between life
Cycle phases. (Dec-2016)
44
5. UNIT-V
5.1Introduction
INTERODUCTION: Software metrics are used to implement the activities and products
of the software development process. Hence, the quality of the software products and
the achievements in the development process can be determined using the software
metrics.
5.2.1 INDICATORS:
An indicator is a metric or a group of metrics that provides an understanding of the
software process or software product or a software project. A software engineer
assembles measures and produce metrics from which the indicators can be derived.
Two types of indicators are:
(i) Management indicators.
(ii) Quality indicators.
Management Indicators
The management indicators i.e., technical progress, financial status and staffing progress are
used to determine whether a project is on budget and on schedule. The management
indicators that indicate financial status are based on earned value system.
Quality Indicators
The quality indicators are based on the measurement of the changes occurred in software.
45
Seven core metrics related to project control:
The below figure shows expected progress for a typical project with three major
releases
Fig: work and progress
Budgeted cost and expenditures
This metric measures cost incurred over time. Budgeted cost is the planned expenditure profile
over the life cycle of the project. To maintain management control, measuring cost expenditures
over the project life cycle is always necessary. Tracking financial progress takes on an
organization - specific format. Financial performance can be measured by the use of an earned
value system, which provides highly detailed cost and schedule insight. The basic parameters of
an earned value system, expressed in units of dollars, are as follows:
Expenditure Plan - It is the planned spending profile for a project over its planned schedule.
Actual progress - It is the technical accomplishment relative to the planned progress underlying
the spending profile.
Actual cost: It is the actual spending profile for a project over its actual
schedule. Earned value: It is the value that represents the planned
cost of the actual progress. Cost variance: It is the difference between
the actual cost and the earned value.
Schedule variance: It is the difference between the planned cost and the earned value. Of all
parameters in an earned value system, actual progress is the most subjective
Assessment: Because most managers know exactly how much cost they have incurred and how
much schedule they have used, the variability 46 in making accurate assessments is centred in the
actual progress assessment. The default perspectives of this metric are cost per month, full-time
staff per month and percentage of budget expended.
Staffing and team dynamics
This metric measures the personnel changes over time, which involves staffing additions and
reductions over time. An iterative development should start with a small team until the risks in
the requirements and architecture have been suitably resolved. Depending on the overlap of
iterations and other project specific circumstances, staffing can vary. Increase in staff can slow
overall project progress as new people consume the productive team of existing people in
coming up to speed. Low attrition of good people is a sign of success. The default perspectives of
this metric are people per month added and people per month leaving. These three
management indicators are responsible for technical progress, financial status and staffing
progress.
This metric measures the change traffic over time. The number of software change orders
opened and closed over the life cycle is called change traffic. Stability specifies the relationship
between opened versus closed software change orders. This metric can be collected by change
type, by release, across all releases, by term, by components, by subsystems, etc.
48
The below figure shows stability expectation over a healthy project’s life cycle
SPCP:
To implement a complete SPCP, the following are necessary.
Metrics primitives - trends, comparisons and progressions
A graphical user interface.
Metrics collection agents
Metrics data management server
Metrics definitions - actual metrics presentations for requirements progress,
implementation progress, assessment progress, design progress and other progress
dimensions.
Actors - monitor and administrator.
Monitor defines panel layouts, graphical objects and linkages to project data. Specific monitors
called roles include software project managers, software development team leads, software
architects and customers. Administrator installs the system, defines new mechanisms, graphical
objects and linkages. The whole display is called a panel. Within a panel are graphical objects,
which are types of layouts such as dials and bar charts for information. Each graphical object
displays a metric. A panel contains a number of graphical objects positioned in a particular
geometric layout. A metric shown in a graphical object is labelled with the metric type, summary
level and insurance name (line of code, subsystem, server1). Metrics can be displayed in two
modes – value, referring to a given point in time and graph referring to multiple and consecutive
points in time. Metrics can be displayed with51 or without control values. A control value is an
existing expectation either absolute or relative that is used for comparison with a dynamically
changing metric. Thresholds are examples of control values.
The basic fundamental metrics classes are trend, comparison and progress.
The format and content of any project panel are configurable to the software project manager's
preference for tracking metrics of top-level interest. The basic operation of an SPCP can be described by
52
2.What are included in architecture baselines?(may/june-2017)
Ans) This service provides the organization an initial Enterprise Architecture (EA) Baseline.
An architecture baseline is the “as is” or “current” architecture. The architecture baseline
includes architecture assets from all architecture domains. ... Business policies, business
practices, and business processes.
6. What are the seven core metrics used for all software projects? Explain
(may/june-2017).
54