Question Bank SPM
Question Bank SPM
Question Bank SPM
SPM
1. What do you understand by software project planning? What are the various planning
objectives? Also discuss various types of project plans with suitable example.
2. Management Spectrum
3. SPM framework
4. Decision Process
4. What you understand by work break structure (WBS)? What are the various types of
WBS? What is the role of WBS directory and what the contents of it? Explain.
5. 1) What is the difference between the project life cycle and product life cycle?
Discuss.
6. What do you mean by project scheduling? What are the scheduling objectives? How to
build the project schedule?
7. What is the significance of project monitoring and control? What are the various
dimensions of project monitoring and control? Does monitoring and control affect the
project schedule? Discuss.
1) Code Review
2) Error Tracking
10. 1) what is software testing? What are software testing objectives? Discuss various
types of testing in detail.
11. 1) what is the difference between testing principles and testing strategies? Discuss.
2) Explain the term statistical quality assurance and clean room process.
13. What do you understand by software configuration management (SCM)? What are
various software configuration items and tasks? Discuss with suitable example.
15. What is the role of a software project management tool? Describe any software project
management tool in detail.
16. Explain Software Project Planning, giving its various objectives. Also discuss the
structure of a software project Management plan in detail.
17. 1) Explain why the intangibility of software system possess special problems for
Software Project management?
18. What do you mean by the software project estimation? Give various estimation models.
Describe any one of the estimation model using suitable examples.
19. 1) What do you understand by the activity network and the Gantt chart? Draw the
activity, network and Gantt chart representations for the following table that indicates the
various tasks involved in completing a software project, the corresponding activities, and
the estimated effort for each task in person-months:
a) WBS
b) CPM
20. What do you mean by earned value analysis and earned value indicators? Discuss
various earned value indicators with examples.
21. Discuss error tracking with examples. Does it affect the SPM schedule? Explain.
22. Describe the difference between verification and validation. Do both make use of test
case design methods and testing strategies?
24. What is the difference between a software configuration management audit and a formal
technical review? Can their functions be folded into one review? What are the pros and
cons?
1) CASE Tools
2) Risk Monitoring
27. Draw hierarchical organization of various project elements. Discuss each element in
brief giving examples.
28 write down various components and their content in the vision and scope document of a
project.
28. Planning is the most important activity in the overall Software Project Management.
Comment on this statement.
29. What is cost benefit analysis? In context to cost benefit analysis, define the following
term precisely.
30. The status of cash flow for four projects is given in the following table. (-ve figures at
the end of year 0 represent initial investment).
Cash flow for four projects (figure are end of year totals in rupees)
0 -100,000 -1,000,000 -100,000 -120,000
1 10,000 200,000 30,000 30,000
2 10,000 200,000 30,000 30,000
3 10,000 200,000 30,000 30,000
4 20,000 200,000 30,000 30,000
5 100,000 300,000 30,000 75,000
On the basis of data, calculate various terms (Q.29) above. You may assume discount rate
to be as 10%.
31. 1) what is cash flow forecasting? Draw cash flow for a typical product life cycle.
2) Explain why discounted cash flow technique provides better criteria for project
selection than net profit or return on investment.
32. List various methods of estimation. Discuss the alb retch function point count method
for estimation of function points. Show that the complexity adjustment factor (CAF) adjusts
the unadjusted value of function point(UFP) to +- 35%.
33. Discuss the COCOMO hierarchy of estimation models in details. How these model
differ from the dynamic estimation models.
35. Statistical quality assurance is done by carrying out a sequence of steps involving
collection and classification of errors during all phases of development of the software and
following Pareto’s principle. using this methodology derive expression for Error Index
which acts as an indicator of the quality.
36. Consider the following information about a one year project.
I) what is the cost variance, schedule variance, Cost Performance Index (CPI), and
Schedule Performance Index (SPI) for the project?
II) How is the project doing? Is it ahead of schedule or behind the schedule? Is it
under budget or over budget?
III) Use the CPI to calculate the estimate at completion (EAC) for this project. Is the
project performing better or worse than planned??
IV) Use the schedule performance index to estimate how long it will take to finish
the project.
Solution of Question Bank
Q) What do you understand by software configuration management (SCM)? What are
various software configuration items and tasks? Discuss with suitable example?
Answer.
A discipline applying technical and administrative direction and surveillance to: identify
and document the functional and physical characterstics of a configuration item, control
changes to those record an report and report change processing and implementation status
and verify compliance with specified requirements. Software configuration item are defined
as information that is created as a part of the software engineering process. In the extreme a
SCI could be considered to be a single section of a large classification or one test case in a
large suite of tests.
If a change were made to the source code object, the interrelationships enable a software
engineer to determine what other object and (SCIs) might be affected.
SCI TASKS: There are four procedure that must be defined for each software project to
ensure that a second SCM process is implemented. They are:
1) Configuration indentification
2) Configuration control.
An audit often is called a technical code walkthrough or review. The typical scenario finds
a developer inviting his technical lead, a database administrator and one or more peers to a
meeting to review a set of source modules prior to production implementation.
Code walkthrough is an informal code analysis technique. Each member selects some test
cases and simulates execution of the by hand.
The main objectives of the audit is to discover the algorithm and logical errors in the code.
Benefits of Audits:
Disadvantages of audit:
Volumes of data.
Deleted code.
Distribution/ logistics.
Manual Efforts.
Lack of consistency.
Developers are reluctant to be involved.
Q. What is software testing? What are software testing objectives? Discuss various
types of testing in detail.
Answer.
SOFTWARE TESTING
Regression testing
Regression testing focuses on finding defects after a major code change has occurred.
Specifically, it seeks to uncover software regression, or old bugs that have come back. Such
regressions occur whenever software functionality that was previously working correctly
stops working as intended. Typically, regressions occur as an unintended consequence of
program changes, when the newly developed part of the software collides with the
previously existing code. Common methods of regression testing include re-running
previously run tests and checking whether previously fixed faults have re-emerged. The
depth of testing depends on the phase in the release process and the risk of the added
features. They can either be complete, for changes added late in the release or deemed to be
risky, to very shallow, consisting of positive tests on each feature, if the changes are early
in the release or deemed to be of low risk.
Acceptance testing
1. A smoke test is used as an acceptance test prior to introducing a new build to the
main testing process, i.e. before integration or regression.
2. Acceptance testing performed by the customer, often in their lab environment on
their own hardware, is known as User Acceptance Testing (UAT). Acceptance
testing may be performed as part of the hand-off process between any two phases of
development.
Alpha testing
Beta testing
Beta testing comes after alpha testing and can be considered a form of external User
Acceptance Testing Versions of the software, known as beta versions are released to a
limited audience outside of the programming team. The software is released to groups of
people so that further testing can ensure the product has few faults or bugs. Sometimes, beta
versions are made available to the open public to increase the feedback field to a maximal
number of future users.
Correctness testing
Black-box testing
The black-box approach is a testing method in which test data are derived from the
specified functional requirements without regard to the final program structure. It is
also termed data-driven, input/output driven or requirements-based testing. Because
only the functionality of the software module is of concern, black-box testing also
mainly refers to functional testing -- a testing method emphasized on executing the
functions and examination of their input and output data. The tester treats the
software under test as a black box -- only the inputs, outputs and specification are
visible, and the functionality is determined by observing the outputs to
corresponding inputs. In testing, various inputs are exercised and the outputs are
compared against specification to validate the correctness. All test cases are derived
from the specification. No implementation details of the code are considered.
White-box testing
There are many techniques available in white-box testing, because the problem of
intractability is eased by specific knowledge and attention on the structure of the software
under test. The intention of exhausting some aspect of the software is still strong in white-
box testing, and some degree of exhaustion can be achieved, such as executing each line of
code at least once (statement coverage), traverse every branch statements (branch
coverage), or cover all the possible combinations of true and false condition predicates.
Reliability testing
Security testing
Software quality, reliability and security are tightly coupled. Flaws in software can be
exploited by intruders to open security holes. With the development of the Internet,
software security problems are becoming even more severe.
Many critical software applications and services have integrated security measures against
malicious attacks. The purpose of security testing of these systems include identifying and
removing software flaws that may potentially lead to security violations, and validating the
effectiveness of security measures. Simulated security attacks can be performed to find
vulnerabilities.
Answer.
Testing automation
Software testing can be very costly. Automation is a good way to cut down time and cost.
Software testing tools and techniques usually suffer from a lack of generic applicability and
scalability. The reason is straight-forward. In order to automate the process, we have to
have some ways to generate oracles from the specification, and generate test cases to test
the target software against the oracles to decide their correctness. Today we still don't have
a full-scale system that has achieved this goal. In general, significant amount of human
intervention is still needed in testing. The degree of automation remains at the automated
test script level.
The problem is lessened in reliability testing and performance testing. In robustness testing,
the simple specification and oracle: doesn't crash, doesn't hang suffices. Similar simple
metrics can also be used in stress testing.
Testing is potentially endless. We can not test till all the defects are unearthed and removed
-- it is simply impossible. At some point, we have to stop testing and ship the software. The
question is when.
Realistically, testing is a trade-off between budget, time and quality. It is driven by profit
models. The pessimistic and unfortunately most often used approach is to stop testing
whenever some or any of the allocated resources -- time, budget, or test cases -- are
exhausted. The optimistic stopping rule is to stop testing when either reliability meets the
requirement, or the benefit from continuing testing cannot justify the testing cost. This will
usually require the use of reliability models to evaluate and predict reliability of the
software under test. Each evaluation requires repeated running of the following cycle:
failure data gathering -- modeling -- prediction. This method does not fit well for ultra-
dependable systems, however, because the real field failure data will take too long to
accumulate.
There are an abundance of software testing tools exist. The correctness testing tools are
often specialized to certain systems and have limited ability and generality. Robustness and
stress testing tools are more likely to be made generic.
NuMega's Boundschecker Rational's Purify. They are run-time checking and debugging
aids. They can both check and protect against memory leaks and pointer problems.
Ballista COTS Software Robustness Testing Harness .The Ballista testing harness is an full-
scale automated robustness testing tool. The first version supports testing up to 233 POSIX
function calls in UNIX operating systems. The second version also supports testing of user
functions provided that the data types are recognized by the testing server. The Ballista
testing harness gives quantitative measures of robustness comparisons across operating
systems. The goal is to automatically test and harden Commercial Off-The-Shelf (COTS)
software against robustness failures.
Answer.
This article explores the various aspects of Software Project Planning and Scheduling.
Project planning is an aspect of Project Management, which comprises of various
processes. The aim of theses processes is to ensure that various Project tasks are well
coordinated and they meet the various project objectives including timely completion of the
project
Objectives:Why is it important?
“If you fail to plan, you plan to fail.”
Project planning is crucial to the success of the Project.
Careful planning right from the beginning of the project can help to avoid costly mistakes.
It provides an assurance that the project execution will accomplish its goals on schedule and
within budget.
Typically Project Planning can include the following types of project Planning:
1) Project Scope Definition and Scope Planning
2) Project Activity Definition and Activity Sequencing
3) Time, Effort and Resource Estimation
4) Risk Factors Identification
5) Cost Estimation and Budgeting
6) Organizational and Resource Planning
7) Schedule Development
8) Quality Planning
9) Risk Management Planning
10) Project Plan Development and Execution
11) Performance Reporting
12) Planning Change Management
13) Project Rollout Planning
2) Quality Planning:
The relevant quality standards are determined for the project. This is an important aspect of
Project Planning. Based on the inputs captured in the previous steps such as the Project
Scope, Requirements, deliverables, etc. various factors influencing the quality of the final
product are determined. The processes required to deliver the Product as promised and as
per the standards are defined.
6) Schedule Development:
The time schedule for the project can be arrived at based on the activities, interdependence
and effort required for each of them. The schedule may influence the cost estimates, the
cost benefit analysis and so on.
Project Scheduling is one of the most important task of Project Planning and also the most
difficult tasks. In very large projects it is possible that several teams work on developing the
project. They may work on it in parallel. However their work may be interdependent.
Popular Tools can be used for creating and reporting the schedules such as Gantt Charts
Each of the Project tasks and activities are periodically monitored. The team and the
stakeholders are informed of the progress. This serves as an excellent communication
mechanism. Any delays are analyzed and the project plan may be adjusted accordingly
Answer.
In software engineering, software configuration management (SCM) is the task of
tracking and controlling changes in the software. Configuration management practices
include revision control and the establishment of baselines.
SCM concerns itself with answering the question "Somebody did something, how can one
reproduce it?" Often the problem involves not reproducing "it" identically, but with
controlled, incremental changes. Answering the question thus becomes a matter of
comparing different results and of analysing their differences. Traditional configuration
management typically focused on controlled creation of relatively simple products. Now,
implementers of SCM face the challenge of dealing with relatively minor increments under
their own control, in the context of the complex system being developed. According to
another simple definition: Software Configuration Management is how you control the
evolution of a software project.
Baseline – a set of specifications or work products that has been formally reviewed
and agreed on, which thereafter serves as the basis for further development, and
which can be changed only through change control procedures. Typically defined
for each project life-cycle phase
Q. What is the difference between a software configuration management audit and a formal
technical review? Can their functions be folded into one review?
Answer.
To ensure that the change has been properly implemented following steps are carried out
(1) formal technical reviews and
(2) the software configuration audit
The formal technical review focuses on the technical correctness of the configuration
object that has been modified. The reviewers assess the SCI to determine consistency with
other SCIs, omissions, or potential side effects. A formal technical review should be
conducted for all but the most trivial changes.
A software configuration audit complements the formal technical review by assessing a
configuration object for characteristics that are generally not considered during review.
The audit asks and answers the following questions:
1. Has the change specified in the ECO been made? Have any additional modifications
been incorporated?
2. Has a formal technical review been conducted to assess technical correctness?
3. Has the software process been followed and have software engineering standards been
properly applied?
4. Has the change been "highlighted" in the SCI? Have the change date and change author
been specified? Do the attributes of the configuration object reflect the change?
5. Have SCM procedures for noting the change, recording it, and reporting it been
followed?
6. Have all related SCIs been properly updated?
In some cases, the audit questions are asked as part of a formal technical review.
However, when SCM is a formal activity, the SCM audit is conducted separately by the
quality assurance
group.
Configuration status reporting (sometimes called status accounting) is an SCM task that
answers the following questions: (1) what happened? (2) Who did it? (3) When did it
happen? (4) What else will be affected?
Configuration status reporting plays a vital role in the success of a large software
development project. When many people are involved, it is likely that "the left hand not
knowing what the right hand is doing" syndrome will occur.
Two developers may attempt to modify the same SCI with different and conflicting intents.
A software engineering team may spend months of effort building software to an obsolete
hardware specification. The person who would recognize serious side effects for a
proposed change is not aware that the change is being made. CSR helps to eliminate the
problems by improving communication among all people involved.
Q. What is the difference b/w Product Life Cycle and Project Life Cycle?
Answer.
The product life cycle represents the amount of revenue a product generates over time, from
its inception to the point where it is discontinued.
1) development
2) introduction
3) growth,
4) maturity
5) decline
In the development stage, the product isn't yet being sold, so there is no revenue. During
introduction, sales are small as people begin to try the product. Sales will increase during
the growth phase, peak during maturity, and eventually decline as the market shifts or better
alternatives become available. There is no set time span for a given stage; the entire cycle
may last only months or a product like the refrigerator may remain in the maturity phase for
decades.
A project life cycle measures the work that goes into a project from beginning to end. The
phases in product life cycle are
1) initiation
2) planning
3) Execution
4) Closure
During initiation, a business case and goals are created, and resources are assigned. During
planning, the team researches solutions to reach the project goals and creates a plan and
timeline to complete the project. Execution involves following each step on the project plan
and adjusting as necessary along the way. Finally, in the closure phase, the project's final
details are wrapped up and deliverable items like final reports are given to the appropriate
parties.
Q. Differences between the Two
Answer.
A product life cycle is a conceptual map of where a product's sales are and where they may
be headed. However, it has no comment on what to do with the product. If a company
believes its product is entering the decline phase, it will probably create a plan to either
rejuvenate the product or cease production, but that is not inherent in the product life cycle.
By contrast, a project life cycle is all about action. A project life cycle maps out the steps
needed to complete a project with specific targeted results.
A product life cycle talks about the various stages a product goes through before it actually
declines on the other hand the project life cycle is the set of activities that you need to
complete to finish the project. This means that the stages in the product life cycle are
controlled by external factors like entry of competitors, the cost structure, customer
response etc but project life cycle is controlled by the one who is carrying it out. All
products go through the same stages, some progress quickly while others do so slowly. The
steps in the project life cycle can be delayed or skipped but this is not possible in the
product life cycle. Generally people try to speed up the project and complete it as early as
possible while they try to slow down the product life cycle stages.
Strategies
Remember that the product life cycle concept has limitations. Not every product follows a
smooth, predictable bell curve from introduction to decline. A product may appear to be in
the decline phase and enjoy a return to the maturity phase due to a competitor exiting the
market or a successful project rejuvenation strategy. With regards to project life cycle
management, things tend to be much more clearly defined, but watch out for "scope creep."
This is the tendency for projects to continually grow in breadth to the point where they
never actually get completed.
Generally, a project life cycle is contained within one or more product life cycles.
Answer.
• Cocomo
• Cosysmo
• Function points
• Wideband Delphi
Function Point Analysis was developed first by Allan J. Albrecht in the mid 1970s. It
was an attempt to overcome difficulties associated with lines of code as a measure of
software size, and to assist in developing a mechanism to predict effort associated with
software development.
Since it is common for computer systems to interact with other computer systems, a
boundary must be drawn around each system to be measured prior to classifying
components. This boundary must be drawn according to the user’s point of view. In short,
the boundary indicates the border between the project or application being measured and
the external applications or user domain. Once the border has been established, components
can be classified, ranked and tallied.
External Inputs (EI) - is an elementary process in which data crosses the boundary from
outside to inside. This data may come from a data input screen or another application. The
data may be used to maintain one or more internal logical files. The data can be either
control information or business information. If the data is control information it does not
have to update an internal logical file. The graphic represents a simple EI that updates 2
ILF's (FTR's).
External Outputs (EO) - an elementary process in which derived data passes across the
boundary from inside to outside. Additionally, an EO may update an ILF. The data creates
reports or output files sent to other applications. These reports and files are created from
one or more internal logical files and external interface file. The following graphic
represents on EO with 2 FTR's there is derived information (green) that has been derived
from the ILF's
External Inquiry (EQ) - an elementary process with both input and output components
that result in data retrieval from one or more internal logical files and external interface
files. The input process does not update any Internal Logical Files, and the output side does
not contain derived data. The graphic below represents an EQ with two ILF's and no
derived data.
Internal Logical Files (ILF’s) - a user identifiable group of logically related data that
resides entirely within the applications boundary and is maintained through external inputs.
External Interface Files (EIF’s) - a user identifiable group of logically related data that is
used for reference purposes only. The data resides entirely outside the application and is
maintained by another application. The external interface file is an internal logical file for
another application.
After the components have been classified as one of the five major components (EI’s, EO’s,
EQ’s, ILF’s or EIF’s), a ranking of low, average or high is assigned. For transactions (EI’s,
EO’s, EQ’s) the ranking is based upon the number of files updated or referenced (FTR’s)
and the number of data element types (DET’s). For both ILF’s and EIF’s files the ranking is
based upon record element types (RET’s) and data element types (DET’s). A record
element type is a user recognizable subgroup of data elements within an ILF or EIF. A data
element type is a unique user recognizable, non recursive, field.
Each of the following tables assists in the ranking process (the numerical rating is in
parentheses). For example, an EI that references or updates 2 File Types Referenced
(FTR’s) and has 7 data elements would be assigned a ranking of average and associated
rating of 4. Where FTR’s are the combined number of Internal Logical Files (ILF’s)
referenced or updated and External Interface Files referenced.
EI Table
For both ILF’s and EIF’s the number of record element types and the number of data
elements types are used to determine a ranking of low, average or high. A Record Element
Type is a user recognizable subgroup of data elements within an ILF or EIF. A Data
Element Type (DET) is a unique user recognizable, non recursive field on an ILF or EIF.
The counts for each level of complexity for each type of component can be entered into a
table such as the following one. Each count is multiplied by the numerical rating shown to
determine the rated value. The rated values on each row are summed across the table,
giving a total value for each type of component. These totals are then summed across the
table, giving a total value for each type of component. These totals are then summoned
down to arrive at the Total Number of Unadjusted Function Points.
The value adjustment factor (VAF) is based on 14 general system characteristics (GSC's)
that rate the general functionality of the application being counted. Each characteristic has
associated descriptions that help determine the degrees of influence of the characteristics.
The degrees of influence range on a scale of zero to five, from no influence to strong
influence. The IFPUG Counting Practices Manual provides detailed evaluation criteria for
each of the GSC'S, the table below is intended to provide an overview of each GSC.
Once all the 14 GSC’s have been answered, they should be tabulated using the IFPUG
Value Adjustment Equation (VAF) --
The final Function Point Count is obtained by multiplying the VAF times the Unadjusted
Function Point (UAF).
FP = UAF * VAF
Q. Describe the following:-
Answer.
PROBLEM STATEMENT-
2-MANAGEMENT SPECTRUM
People
Product
Process
Project
PEOPLE
PRODUCT
PROCESS
Communication
Planning
Modeling
Construction
Deployment
PROJECT
3-DECISION PROCESS
Answer.
Introduction
The Capability Maturity Model (CMM) is a
theoretical process capability maturity model.
The CMM was originally developed as a tool for objectively
assessing the ability of government contractors'processes to
perform a contracted software project. For this reason, it has
been used extensively for avionics software and government
projects around the world. The 5-Level structure of the CMM
can be illustrated by the diagram below (Figure 1).
Figure 1: Diagram of the CMM
Q. What is the difference b/w Product Life Cycle and Project Life
Cycle?
Answer.
Product Life Cycle
The product life cycle represents the amount of revenue a product generates
over time, from its inception to the point where it is discontinued.
1) development
2) introduction
3) growth,
4) maturity
5) decline
In the development stage, the product isn't yet being sold, so there is no
revenue. During introduction, sales are small as people begin to try the
product. Sales will increase during the growth phase, peak during maturity,
and eventually decline as the market shifts or better alternatives become
available. There is no set time span for a given stage; the entire cycle may last
only months or a product like the refrigerator may remain in the maturity
phase for decades.
A project life cycle measures the work that goes into a project from beginning
to end. The phases in product life cycle are
1) initiation
2) planning
3) Execution
4) Closure
During initiation, a business case and goals are created, and resources are
assigned. During planning, the team researches solutions to reach the project
goals and creates a plan and timeline to complete the project. Execution
involves following each step on the project plan and adjusting as necessary
along the way. Finally, in the closure phase, the project's final details are
wrapped up and deliverable items like final reports are given to the
appropriate parties.