Professional Documents
Culture Documents
stage. The mini plan includes an early set of notes on the why, what, when,
who, where, how, how much, and whereas of your estimating activity.
Step 3: Pin Down Software Requirements
It is important to have a set of software specifications that are as
unambiguous as possible (subject to qualifications with respect to our
estimating objectives).
Step 4: Work Out as Much Details as Feasible
"As feasible" here means "as is consistent with our cost-estimating
objectives.
Step 5: Use Several Independent Techniques and Sources
None of the alternative techniques for software cost estimation is better than
the others from all aspects, their strengths and weaknesses are
complementary.
Step 6: Compare and Iterate Estimates
The most valuable aspect of using several independent cost-estimation
techniques is the opportunity to investigate why they give different
estimates.
Step 7: Follow-up
Once a software project is started, it is essential to gather data on its actual
costs and progress and compare these to the estimates because of: Software
estimating inputs are imperfect (sizing estimates, cost driver ratings).
3
Define risk assessment. Explain the elements of risk Assessment
and risk control.
Ans) Risk Assessment
Risk assessment involves estimating the level of risk estimating the
probability of an event occurring and the magnitude of effects if the event
does occur. Essentially risk assessment lies at the heart of risk management,
because it assists in providing the information required to respond to a
potential risk.
Risk assessment may be the most important step in the risk management
process, and may also be the most difficult and prone to error. Once risks
have been identified and assessed, the steps to properly deal with them are
much more programmatically.
Risk Assessment has three elements:
1. Identify Uncertainties
Explore the entire project plans and look for areas of uncertainty.
2. Analyze Risks
Specify how those areas of uncertainty can impact the performance of
the project, either in duration, cost or meeting the users' requirements.
3. Prioritize Risks
Establish which of those Risks should be eliminated completely,
because of potential extreme impact, which should have regular
management attention, and which are sufficiently minor to avoid
detailed management attention.
Risk Control has three elements, as follows:
1. Mitigate Risks
Take whatever actions are possible in advance to reduce the effect of
Risk. It is better to spend money on mitigation than to include
contingency in the plan.
2. Plan for Emergencies
For all those Risks which are deemed to be significant, have an
emergency plan in place before it happens.
3. Measure and Control
Track the effects of the risks identified and manage them to a
successful conclusion.
4
Mention and explain different types of Software Testing.
Ans) Types of Software Testing
There are two basic methods of performing software testing:
1) Manual testing
2) Automated testing
Manual testing
As the name would imply, manual software testing is the process of an
individual or individuals manually testing software. This can take the form of
navigating user interfaces, submitting information, or even trying to hack the
The time commitment involved with manual software testing is one of its
most significant drawbacks. The time needed to fully test the system will
typically range from weeks to months. Variability of results depending on
who is performing the tests can also be a problem. For these reasons, many
companies look to automation as a means of accelerating the software
testing process while minimizing the variability of results.
Automated testing
Automated software testing is the process of creating test scripts that can
then be run automatically, repetitively, and through much iteration. Done
properly, automated software testing can help to minimize the variability of
results, speed up the testing process, increase test coverage (the number of
different things tested), and ultimately provide greater confidence in the
quality of the software being tested.
There are, however, some things for which automated software testing is not
appropriate. These include:
End user usability testing is not typically a good candidate for
automated testing.
Tests which will not be run more than a couple of times are typically
not a good candidate for automated testing, since the payoff of in test
automation comes after many test executions.
Tests for areas of the application which experience a lot of change are
also not a good candidate for automation since this can lead to
substantial maintenance of test automation scripts. Such areas of the
application may be more effectively tested manually.
It is important to note that test automation is software, and just like the
software you are building for internal or external customers, it must be well
architected.
5
What is the role of software reengineering?
Ans) Legacy software was developed to support business functions within
the traditionally vertical organization structure. Thus, organizations have
software to support marketing, manufacturing, etc.
Software reengineering can capture the software design information. Using
new tools and techniques, this design information can be broken up into
functionally cohesive chunks. These chunks are then analyzed and regrouped
around the newly identified key business process. This regrouping is termed
re-aggregation.
Notice that in many ways, this sounds a lot like the process of translating
process-oriented software to object-oriented software. Software should
reflect a meta-model of the real world. In the past, organizations attempted
to force their software to conform to a structure that did not match the real
world as understood by the eventual users of the software. This often caused
communications problems between software designers and users. Now, with
object-oriented analysis and BPR, organizations are re-aligning their software
(and organizational structure) so that they correspond to real-world objects
(and processes).
Reengineering takes time; it costs significant amounts of money; and it
absorbs resources that might be otherwise occupied on immediate concerns.
For all of these reasons, reengineering is not accomplished in a few months
or even a few years. Reengineering of information systems is an activity that
will absorb information technology resources for many years. Thats why
every organization needs a pragmatic strategy for software reengineering. A
workable strategy is encompassed in a reengineering process model.
6
Explain the Role of Closure Analysis.
Ans) Project Closure Analysis
Project closure analysis is the key to learning from the past so as to provide
future improvements. To achieve this goal, it must be done carefully in an
atmosphere of safety so that lessons can be captured and used to improve
the process and future projects. Before we describe the details of the closure
analysis report, we briefly discuss the role of closure analysis and its
implementation.
The Role of Closure Analysis
The objective of a postmortem or closure analysis is "to determine what went
right, what went wrong, what worked, what did not, and how it could be
made better the next time. Relevant information must be collected from the
project, primarily for use by future projects. That is, the purpose of having an
identified completion analysis activity, rather than simply saying, "The
project is done," is not to help this project but rather to improve the
organization by leveraging the lessons learned. This type of learning can be
supported effectively by analysis of data from completed projects. This
analysis is also needed to understand the performance of the process on this
project, which in turn is needed to determine the process capability.
As noted earlier, the data obtained during the closure analysis are used to
populate the process database (PDB). The data from the PDB can be used
directly by subsequent projects for planning purposes. This information is
also used in computing the process capability, which is used by projects in
planning and for analyzing trends.
The amount of raw data collected in a project can be quite large. For
example, a project involving five people and lasting for 25 weeks will have
125 entries for weekly effort, data for about 250 defects (assuming about
0.05 defects injected per person-hour), data on many change requests,
various outputs, and so on. Clearly, these data will be of limited use unless
they are analyzed and presented within a proper framework and at a suitable
level of abstraction. Closure analysis aims to accomplish this goal.
After data analysis and extraction of all lessons learned from the analyses,
the results should be packaged so that they can be used by others
(packaging is the last step in the quality improvement paradigm).
Furthermore, to leverage this information, project processes must be
constructed so that their execution requires the effective use of data. It can
be argued, however, that even if others do not learn from the packaged
information, the project personnel will have consolidated their experience
and will carry the lessons learned from the analysis into future projects. In
other words, a closure analysis is useful even if others do not directly gain
from it.