You are on page 1of 9

1

Explain any five activities involved in project management.


Ans) Project Management Activities
Project Management is composed of several different types of activities such
as:
1) Planning the work or objectives: A manager must decide what
objectives are to be achieved, what resources are required to achieve the
objectives, how and when the resources are to be acquired and how the
objectives are achieved.
2) Assessing and controlling risk (or Risk Management): Risk is
associated with several issues. It can be technical risk, methodology risk and
financial risk etc. Manager need to plan from the starting of the project, to
handle unexpected or sudden occurrence of risks.
3) Estimating resources: Resource estimation is another crucial task to the
project manager. A resource can be software, hardware, human personnel,
capital etc. Resource estimation involves the planning of required resources
for the given tasks in the given period of time. Optimum utilization of these
resources is the ultimate goal of manager.
4) Allocation of resources and assigning tasks: This involves
identification of task and allocation of required resources to fulfill the given
task. For example, identification of skilled personal to solve the given task.
5) Organizing the work: Organizing involves clear lines of authority and
responsibility for groups of activities that achieve the goals of the enterprise.
6) Acquiring human resources (staffing): Staffing deals with hiring
personnel, which involves recruiting, compensating, developing and
promoting employees.
7) Directing activities: Directing involves leading subordinates. The goal of
directing is to guide the subordinates and to understand and identify the
organizational structure and goals of the enterprise.
8) Controlling project execution: Controlling consists of measuring and
correcting activities to ensure the goals are achieved. Controlling requires
the measurement against plans and taking corrective action when
development occurs.
9) Tracking and reporting progress: After assigning the tasks to the team
members, it is essential to track and monitor the work progress. The work
progress is documented at regular intervals.

10) Forecasting future trends in the project: The project must be


designed to facilitate extensibility of new features in the forth coming days.
This is very crucial task of manager or designer. Designers have to keep this
point in mind, while designing architecture for the system.
11) Quality Management: Satisfying the customer requirements is called
quality. Quality reflects in many ways. It can be through functionality,
performance and external factors like portability etc. So the project manager
needs to implement different quality management techniques from the
analysis phase itself.
2
Define software cost estimation process. Why it is required?
Ans) Software Cost Estimation
Software project management begins with a set of activities that are
collectively called project planning. Before the project can begin, the
manager and the software team must estimate the work to be done, the
resources that will be required, and the time that will elapse from start to
finish. Whenever estimates are made, we look into the future and accept
some degree of uncertainty as a matter of course.
Useful techniques for time and effort estimation do exist. Process and project
metrics can provide historical perspective and powerful input for the
generation of quantitative estimates. Past experience (of all people involved)
can aid immeasurably as estimates are developed and reviewed. Because
estimation lays a foundation for all other project planning activities and
project planning provides the road map for successful software engineering,
we would be ill-advised to embark without it.
Steps for Estimation
Lets discuss various steps involved in cost estimation.
Step 1: Establish Objectives
Key the estimating objectives to the needs for decision making
information.
Balance the estimating accuracy objectives for the various system
components of the cost estimates.
Re-examine estimating objectives as the process proceeds, and modify
them where appropriate.
Step 2: Plan for Required Data and Resources
If we consider the software cost-estimation activity as a mini project, then we
automatically cover this problem by generating a project plan at an early

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

software or underlying database. As one might presume, manual software


testing is laborintensive and slow.
There are some things for which manual software testing is appropriate,
including:

User interface or usability testing

Exploratory/ad hoc testing (where testers do not follow a script, but


rather testers explore the application and use their instincts to find
bugs)
Testing areas of the application which experience a lot of change.
User acceptance testing (often, this can also be automated)

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.

The reengineering paradigm shown in the figure is a cyclical model. This


means that each of the activities presented as a part of the paradigm may
be revisited.
For any particular cycle, the process can terminate after any one of
these activities.
1. Inventory analysis: Every software organization should have an
inventory of all applications.
2. Document Restructuring: Weak documentation is the trademark of
many legacy systems.
3. Reverse engineering: The term reverse engineering has its origins in
the hardware world.
4. Code restructuring: The most common type of reengineering
(actually, the use of the term reengineering is questionable in this
case) is code restructuring.
5. Data restructuring: A program with weak data architecture will be
difficult to adapt and enhance.
6. Forward engineering: In an ideal world, applications would be rebuilt
using an automated reengineering engine.

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.

You might also like