Documente Academic
Documente Profesional
Documente Cultură
SEMESTER SIXTH
SUBJECT CODE & NAME BT0092, Software Project
Management
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.
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.
12) Issues solving: An issue can be a conflict among the team members, sudden increase in
the attrition rate of employees, sudden drop in rupee value etc. Based on the issues, proper
corrective action need to be taken to ensure the smooth working of the system.
13) Defect prevention: A defect is a flaw in the system. It is more serious than an error. A
defect occurs because of improper design, poor quality etc. A thorough testing is needed before
and after implementation of the product, to avoid the defects.
14) Project Closure meet: Project closure describes the overall project details. The details can
be conveyed through closure reports. Ex. Performance reports, testing reports and project
completion reports.
15) Controlling: 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.
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:
Identify Uncertainties
Explore the entire project plans and look for areas of uncertainty.
Analyze Risks
Specify how those areas of uncertainty can impact the performance of the project, either in
duration, cost or meeting the users' requirements.
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.
In the same way, Risk Control has three elements, as follows:
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.
For all those Risks which are deemed to be significant, have an emergency plan in place before
it happens.
Track the effects of the risks identified and manage them to a successful conclusion.
Figure 7.2 shows various risk management activities.
Que4. Mention and explain different types of Software Testing.
Functionality testing to verify the proper functionality of the software, including validation of
system and business requirements, validation of formulas and calculations, as well as testing of
user interface functionality.
Forced error testing, or attempting to break and fix the software during testing so that
customers do not break it in production.
Compatibility testing to ensure that software is compatible with various hardware platforms,
operating systems, other software packages, and even previous releases of the same software.
Performance testing to see how well software performs in terms of the speed of computations
and responsiveness to the enduser.
Scalability testing to ensure that the software will function well as the number of users and
size of databases increase.
Stress testing to see how the system performs under extreme conditions, such as a very
large number of simultaneous users.
Usability testing to ensure that the software is easy and intuitive to use.
Application security testing to make sure that valuable and sensitive data cannot be accessed
inappropriately or compromised under concerted attack.
In some cases, there may even have to be other types of testing such as regulatory
compliance testing, depending on the type of software and intended industry.
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:
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 wellarchitected. A good test automation
architecture, such as a keyword-driven testing framework, will reduce the overall cost of
ownership of your test automation by minimizing maintenance expense and increasing the
number of automated tests, allowing your organization to run more tests (and achieve higher
quality) for the same investment of time and money.
Before you can start rebuilding, it would seem reasonable to inspect the house. To determine
whether it is in need of rebuilding, you (or a professional inspector) would create a list of criteria
so that your inspection would be systematic.
Before you tear down and rebuild the entire house, be sure that the structure is weak. If the
house is structurally sound, it may be possible to remodel without rebuilding (at much lower
cost and in much less time).
Before you start rebuilding, be sure you understand how the original was built. Take a peek
behind the walls. Understand the wiring, the plumbing, and the structural internals. Even if you
trash them all, the insight youll gain will serve you well when you start construction.
If you begin to rebuild, use only the most modern, long-lasting materials. This may cost a bit
more now, but it will help you to avoid expensive and time-consuming maintenance later.
If you decide to rebuild, be disciplined about it. Use practices that will result in high quality
today and in the future.
Although these principles focus on the rebuilding of a house, they apply equally well to the
reengineering of computer-based systems and applications.
To implement these principles, we apply software reengineering process model that defines six
activities, shown in figure 10.1. In some cases, these activities occur in a linear sequence, but
this is not always the case. For example, it may be that reverse engineering (understanding the
internal workings of a program) may have to occur before document restructuring can
commence.
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.