Unit 1 Requirement Analysis: Unit 1 Software Project Management
Unit 1 Requirement Analysis: Unit 1 Software Project Management
Unit 1 Requirement Analysis: Unit 1 Software Project Management
Unit 1
Software Project Management
Software project management is the art and science of planning and leading
software projects. It is a sub-discipline of project management in which software projects are
planned, monitored and controlled.
Project execution
What Is a Requirement?
Although many definitions of software requirements have been used throughout the years, the
one provided by requirements engineering authors Dorfman and Thayer (1990) is quite
workable:
o A software capability needed by the user to solve a problem to achieve an objective
o A software capability that must be met or possessed by a system or system component
to satisfy a contract, standard, specification, or other formally imposed documentation
Requirements Management
Requirements analysis
Requirements analysis encompasses those tasks that go into determining the needs
or conditions to meet for a new or altered product, taking account of the possibly conflicting
requirements of the various stakeholders, such as beneficiaries or users.
1) Analyzing the Problem, we develop a set of techniques the team can use to
gain a proper understanding of the problem that a new software system is
intended to solve.
2) Understanding User Needs, we introduce a variety of techniques the team can
use to elicit requirements from the system users and stakeholders.
3) Defining the System, we describe the initial process by which the team
converts an understanding of the problem and the user's needs to the initial
definition of a system that will address those needs.
4) Managing Scope, we arm the team with the ability to do a better job of
managing the scope of the project.
5) Refining the System Definition, we help the team organize the requirements
information. Further, we introduce a set of techniques the team can use to
elaborate on the system definition, or refine it to a level suitable to drive
design and implementation, so that the entire extended team knows exactly
what kind of system it is building.
6) Building the Right System, we cover some of the more technical aspects of
design assurance, verification, validation testing, and change management,
and we show how traceability can be used to help ensure a quality outcome.
The Organization of Software Teams
(2) Delivering on time and on budget. (Of course, we believe that this is an obvious cause-
and-effect relationship!)
The last few years have seen an unprecedented increase in the power of the tools and
technologies that software developers use to build today's enterprise applications. As the
productivity of the software development environment has increased, it should now be easier
than ever before to develop systems that satisfy real business needs. However, the data
demonstrates that we remain challenged in our ability to truly understand and to satisfy these
needs. The resulting systems do not fit the needs of the users and stakeholders as well as
could have been reasonably expected. The consequences of this mismatch are inadequate
economic reward for the customers and developers of the system, dissatisfied users, and
career challenges. It seems obvious, therefore, that an incremental investment in an analysis
of the problem will produce handsome rewards downstream. The goal of this team skill is to
provide guidelines for problem analysis and to define specific goals for this skill in
application development.
There are variety of techniques to gain an understanding of the real problem and its
real causes. One such technique is "root cause" analysis, which is a systematic way of
uncovering the root, or underlying, cause of an identified problem or a symptom of a
problem. There are certain methods for identifying the problem behind the problem. They are
• Fishbone diagram
• Pareto analysis
Effectively solving any complex problem typically involves satisfying the needs of a
diverse group of stakeholders. Stakeholders will typically have varying perspectives on the
problem and various needs that must be addressed by the solution.
System boundary
as part of the planning process, and many may even cause us to reconsider the technological
approach we have initially envisioned. A variety of sources of constraints must be
considered. These include schedule, return on investment, budget for labour and equipment,
environmental issues, operating systems, databases, hosts and client systems, technical issues,
political issues within the organization, purchased software, company policies and
procedures, choices of tools and languages, personnel or other resource constraints, and a
host of other considerations. These constraints may be given to us before we even begin ("No
new hardware"), or we may have to actively elicit them.
Systems engineering(SE)
Operations
• Performance
• Test
• Manufacturing
• Cost and Schedule
• Training and Support
• Disposal
Systems engineering integrates all the disciplines and specialty groups into a team
effort forming a structured development process that proceeds from concept to production to
Software Project Management Page 7
Unit 1 Requirement Analysis
operation. Systems engineering considers both the business and the technical needs of all
customers with the goal of providing a quality product that meets the needs of the user.
Depending on their application, tools are used for various stages of the systems
engineering process:
1) Know the problem, know the customer, and know the consumer.
2) Use effectiveness criteria based on needs to make the system decisions.
3) Establish and manage requirements.
4) Identify and assess alternatives so as to converge on a solution.
5) Verify and validate requirements and solution performance.
6) Maintain the integrity of the system.
7) Use an articulated and documented process.
8) Manage against a plan.
This list identifies some pragmatic systems engineering principles. In point of fact, however,
a subset of the systems engineering discipline is based on another process, the successive
decomposition of complex systems into simpler ones.
Using models
Models play important and diverse roles in systems engineering. A model can be defined
in several ways, including.
• An abstraction of reality designed to answer specific questions about the real world
• An imitation, analogue, or representation of a real world process or structure; or
• A conceptual, mathematical, or physical tool to assist a decision maker.