Process Framework Model and Phases in Software Development
Process Framework Model and Phases in Software Development
1
d) Construction: combines code generation and the testing required
uncovering errors in the code.
e) Deployment: deliver the product to the customer who evaluates the
delivered product and provides feedback.
The task set that best accommodates the needs of the project and the
characteristics of the team is chosen.
Framework activities
Task sets
Task
SQA points
Umbrella Activities
2
a) Software project tracking and control: allows the team to assess progress
against the project plan and take necessary action to maintain schedule.
b) Risk Management: Assesses the risks that may affect the outcome of the
project or the quality.
SEI CMM can be used two ways: capability evaluation and software process
assessment.
3
The results of capability evaluation indicates the likely contractor
performance if the contractor is awarded a work. Therefore, the results of
software process capability assessment can be used to select a contractor.
SEI CMM classifies software development industries into the following five
maturity levels.
The different levels of SEI CMM have been designed so that it is easy for an
organization to slowly build its quality system starting from scratch.
4
responsibilities. The processes though defined, the process and
product qualities are not measured.
5
These organizations need to operate more efficiently at the lower levels of
maturity. For example, they need to practice effective project management,
reviews, configuration management, etc.
ISO 9000 is a series of three standards: ISO 9001, ISO 9002, and ISO 9003.
The ISO 9000 series of standards is based on the premise that if a proper
process is followed for production, then good quality products are bound to
follow automatically.
The types of industries to which the different ISO standards apply are as
follows:
d) ISO 9000 certification points out the weak points of an organization and
recommends remedial action.
e) ISO 9000 sets the basic framework for the development of an optimal
process and Total Quality Management (TQM).
7
b) Proper plans should be prepared and then progress against these plans
should be monitored.
Software life cycle models describe phases of the software cycle and the
order in which those phases are executed.
Each phase produces deliverables required by the next phase in the life
cycle.
The testing team follows Software Testing Life Cycle (STLC) which is
similar to the development cycle followed by the development team.
8
There are following six phases in every Software development life cycle
model:
The testing team follows the Software Testing Life Cycle and
starts the Test Planning phase after the requirements analysis is
completed.
2) Design:
9
In this phase the system and software design is prepared from
the requirement specifications which were studied in the first
phase.
In this phase the testers comes up with the Test strategy, where
they mention what to test, how to test.
3) Implementation / Coding:
4) Testing:
10
After the code is developed it is tested against the
requirements to make sure that the product is actually
solving the needs addressed and gathered during the
requirements phase.
5) Deployment:
Once those changes are made or the bugs are fixed then
the final deployment will happen.
6) Maintenance:
11
Once when the customers starts using the developed
system then the actual problems comes up and needs
to be solved from time to time.
REQUIREMENTS
DISCOVERY
12
REQUIREMENTS
REQUIREMENTS
CLASSIFICATION AND
SPECIFICATION
ORGANIZATION
REQUIREMENTS
PRIORTIZATION AND
NEGOTIATION
1. Requirements discovery:
13
3. Requirements prioritization and negotiation
4. Requirements specification
The requirements are documented and input into the next round of
the spiral.
1. Stakeholders often don’t know what they want from a computer system
except in the most general terms.
14
5. The economic and business environment in which the analysis takes place
is dynamic. It inevitably changes during the analysis process.
2.6.2 Interviews
15
o Closed interviews, where the stakeholder answers a pre-defined set of
questions.
o Open interviews, in which there is no pre-defined agenda.
It can be difficult to elicit domain knowledge through interviews for two
reasons:
o All application specialists use terminology and jargon that are specific
to a domain.
o Some domain knowledge is so familiar to stakeholders that they either
find it difficult to explain or they think it is so fundamental that it isn’t
worth mentioning.
Effective interviewers have two characteristics:
o They are open-minded, avoid pre-conceived ideas about the
requirements, and are willing to listen to stakeholders.
o They prompt the interviewee to get discussions going using a
springboard question, a requirements proposal, or by working together
on a prototype system.
2.6.3 Scenarios
16
Scenarios can be particularly useful for adding detail to an outline
requirements description.
They are descriptions of example interaction sessions. Each scenario usually
covers one or a small number of possible interactions.
Different forms of scenarios are developed and they provide different types
of information at different levels of detail about the system.
Scenario-based elicitation involves working with stakeholders to identify
scenarios and to capture details to be included in these scenarios.
Scenarios may be written as text, supplemented by diagrams, screen shots,
etc.
Alternatively, a more structured approach such as event scenarios or use
cases may be used.
2.6.4 Use cases
Use cases are a requirements discovery technique that were first introduced
in the objectory method and they have now become a fundamental feature of
the unified modeling language.
In their simplest form, a use case identifies the actors involved in an
interaction and names the type of interaction.
This is then supplemented by additional information describing the
interaction with the system.
The additional information may be a textual description or one or more
graphical models such as UML sequence or state charts.
Use cases are documented using a high-level use case diagram. The set of
use cases represents all of the possible interactions that will be described in
the system requirements.
17
Actors in the process, who may be human or other systems, are represented
as stick figures. Each class of interaction is represented as a named ellipse.
Lines link the actors with the interaction.
Use cases identify the individual interactions between the system and its
users or other systems.
Scenarios and use cases are effective techniques for eliciting requirements
from stakeholders who interact directly with the system.
Each type of interaction can be represented as a use case.
However, because they focus on interactions with the system, they are not as
effective for eliciting constraints or high-level business and nonfunctional
requirements or for discovering domain requirements.
2.6.5 Ethnography
18
2. Requirements that are derived from cooperation and awareness of
other people’s activities
Ethnographic studies can reveal critical process details that are often missed
by other requirements elicitation techniques.
However, because of its focus on the end-user, this approach is not always
appropriate for discovering organizational or domain requirements.
They cannot always identify new features that should be added to a system.
Ethnography is not, therefore, a complete approach to elicitation on its own
and it should be used to complement other approaches, such as use case
analysis.
Over the past two decades, a large number of analysis modeling methods
have been developed.
Investigators have identified analysis problems and their causes and have
developed a variety of notations and corresponding sets of heuristics to
overcome them.
Each analysis method has a unique point of view.
i. The information domain of a problem must be represented and
understood.
ii. The functions that the software is to perform must be defined.
iii. The behavior of the software must be represented.
19
iv. The models that depict information function and behavior must be
partitioned in a manner that uncovers details in a layered fashion.
v. The analysis process should move from essential information
toward implementation detail.
20
It helps get valuable feedback from the customer and helps software
designers and developers understand about what exactly is expected from
the product under development.
Prototype is a working model of software with some limited functionality.
The prototype does not always hold the exact logic used in the actual
software application and is an extra effort to be considered under effort
estimation.
Prototyping is used to allow the users evaluate developer proposals and try
them out before implementation. It also helps understand the requirements
which are user specific and may not have been considered by the developer
during product design.
Following is a stepwise approach explained to design a software prototype.
21
While, the workarounds are used to give the same
look and feel to the customer in the prototype
developed.
22
Horizontal prototypes are used to get more information on the user interface
level and the business requirements. It can even be presented in the sales
demos to get business in the market.
Vertical prototypes are technical in nature and are used to get details of the
exact functioning of the sub systems. For example, database requirements,
interaction and data processing loads in a given sub system.
Throwaway/Rapid Prototyping
Evolutionary Prototyping
23
o The prototype developed forms the heart of the future
prototypes on top of which the entire system is built.
Incremental Prototyping
Extreme Prototyping
25
d) Developers may try to reuse the existing prototypes to build the
actual system, even when it is not technically feasible.
e) The effort invested in building prototypes may be too much if it is
not monitored properly.
26