SE Unit-1 Meterial
SE Unit-1 Meterial
UNIT-I
INTRODUCTION:
Software Engineering Process paradigms
Project management Process and Project Metrics
Software estimation
Empirical estimation models
Planning
Risk analysis
Software project scheduling
1 Page
1. Requirements analysis and definition: The system’s services, constraints, and goals
are established by consultation with system users. They are then defined in detail and serve as a
system specification.
2. System and software design: The systems design process allocates the requirements
to either hardware or software systems by establishing an overall system architecture. Software
design involves identifying and describing the fundamental software system abstractions and
their relationships.
3. Implementation and unit testing: The software design is realized as a set of programs or
program units. Unit testing involves verifying that each unit meets its specification.
4. Integration and system testing: The individual program units or programs are integrated and
tested as a complete system to ensure that the software requirements have been met. After
testing, the software system is delivered to the customer.
5. Operation and maintenance :The system is installed and put into practical use.
Maintenance involves correcting errors which were not discovered in earlier stages of the life
cycle, improving the implementation of system units and enhancing the system’s services as new
requirements are discovered.
Disadvantages:
Real projects rarely follow the sequential flow since they are always iterative
The model requires requirements to be explicitly spelled out in the beginning, which is
often difficult
A working model is not available until late in the project time span
2. THE INCREMENTAL PROCESS MODEL
Linear sequential model is not suited for projects which are iterative in nature
Incremental model suits such projects
Used when initial requirements are reasonably well-defined and compelling need to
provide limited functionality to users quickly and then refine and expand on that
functionality in later releases
It combines elements of waterfall model in an iterative fashion.
The incremental model applies linear sequences in a staggered ashion as
calendar time progresses.Each linear sequence provides deliverable increments of software.For
ex word processing sotware developed sing incremental paradigm might deliver basic file
management,editing,and document production functions in 1 st increment ;more sophisticated
editing and document production capabilities in 2 nd increment;spelling and grammar checking in
4 Page
Construction
Component reuse
Team # 2 automatic code
generation
Communication Modeling testing
Business modeling
Data modeling
Process modeling
Construction
Planning Team # 1 Component reuse
automatic code
generation
testing
Modeling
Business modeling Deployment
Data modeling integration
Process modeling delivery
feedback
Construction
Component reuse
automatic code
generation
testing
12
DIS-ADVANTAGES
Problems in RAD
Requires a number of RAD teams
Requires commitment from both developer and customer for rapid-fire completion of
activities otherwise it fails
If system cannot be modularized properly project will fail.
Not suited when technical risks are high
4. PROTOTYPING
Mock up or model( throw away version) of a software product
Used when customer defines a set of objective but does not identify input,output,
or processing requirements
Developer is not sure of:
• efficiency of an algorithm
• adaptability of an operating system
• human/machine interaction
Begins with requirement gathering
Identify whatever requirements are known
Outline areas where further definition is mandatory
A quick design occur
6
Prototype is turned to satisfy the needs of customer,while at the same time enabling
developer to better understand hat needs to be done.
Ideally prototype serves as a mechanism for identifying software requirements.
Disadvantages:
In a rush to get it working, overall software quality or long term maintainability
are generally overlooked
The developer often makes implementation compromises in order to get a prototype
working quickly.An inappropriate OS or PL may be used simply because it is available
and known;an inefficient algorithm may be implemented simply to demonstrate
capability.After a time,developer may become comfortable with these choices and forget
all the reasons why they were inappropriate.
5. Spiral model
This is a model proposed by boehm it is an evolutionary model which combines the best
feature of the classical life cycle and the iterative nature of prototype model
Include new element : Risk element
Starts in middle and continually visits the basic tasks of communication,
planning,modeling,construction and deployment
Using spiral model,software is developed in a series of evoltionary releases.During early
iterations,the release might be a model or prototype.During later iterations increasinly
more complete versions of engineered system are produced
Realistic approach to the development of large scale system and software
Unlike other process models that end when software is delivered,the spiral model can be
adapted to apply through out the life of computer software.Therefore the first circuit
around the spiral represent a “concept development project” which starts at the core of
the spiral and contines for multiple iterations until concept development is complete.If
7 Page
through a number of iterations around the spiral.Later,a circuit around spiral might be
used to represent a “product enhancement project”.The spiral remains operative until the
software is retired.
It is difficult to convince customers that the evolutionary approach is controllable.
20
-------------------------------------------xxxxxxxxxxxxxxxxxxxxxx---------------------------------------
2. Explain the project management process and project metrics?
Process metrics are collected across all projects and over long periods of time. Their aim is to
provide set of process indicators that lead to long term software process improvement
Project Metrics enable a software project manager to
1. Assess status of an ongoing project
2. Track potential risks
3. Uncover problem areas before they go critical
4. Adjust workflow
5. Evaluate project teams ability to control quality
8
Page
Software Measurement
Software measurement can be categorized as
Direct Measurement
Direct measure of software process include cost and effort
Direct measure of product includes lines of code, Execution speed, memory size, defects
per reporting time.
Indirect Measurement
Indirect measure examines the quality of software product itself(e.g. :-functionality,
complexity, efficiency, reliability and maintainability)
Reasons for measurement
To gain baseline for comparison with future assessment
To determine status with respect to plan
To predict the size, cost and duration estimate
To improve the product quality and process improvement
The metrics in software Measurement are
1. Size oriented metrics
2. Function oriented metrics
3. Object oriented metrics
4. Web based application metric
1. Size oriented metrics:
It totally concerned with the measurement of software.
A software company maintains a simple record for calculating the size of the software.
9
It includes
Page
$ per LOC
pages of documentation per KLOC
errors per person-month
Errors per review hour
LOC per person-month
$ per page of documentation
2. Function Oriented Metrics:
Measures the functionality derived by the application
The most widely used function oriented metric is Function point
Function point is independent of programming language
Typical Function-oriented metrics
Errors per FP (thousand lines of code), defects per FP, $ per FP, pages of documentation per FP,
FP per person-month
3. Object-Oriented Metrics:
Relevant for object oriented programming
Based on the following
Number of scenario scripts (use-cases)
Number of key classes Key classes are highly independent components that are defined early in
object-oriented analysis
Number of support classes required to implement the system but are not immediately related
to the problem domain
Average number of support classes per key class (analysis class)
Number of subsystems an aggregation of classes that support a function that is visible to the
end-user of a system
4. Web Engineering Project Metrics :
Measures that can be collected are
Number of static Web pages the end-user has no control over the content displayed on
the page
Number of dynamic Web pages end-user actions result in customized content
displayed on the page
Number of internal page links (internal page links are pointers that provide a hyperlink
to some other Web page within the WebApp
10
Number of persistent data objects As the number of persistent data objects grows the
Page
related software engineering activities, cost and effort estimation can be performed in a stepwise
fashion. Empirical estimation models can be used to complement decomposition techniques and
offer a potentially valuable estimation approach in their own. A model is based on experience
(historical data) and takes the form
d = f (vi)
where d is one of a number of estimated values (e.g., effort, cost, project duration)
and vi are selected independent parameters (e.g., estimated LOC or FP).
Automated estimation tools implement one or more decomposition techniques or
empirical models and provide an attractive option for estimating.
In such systems, the characteristics of the development organization (e.g., experience,
environment) and the software to be developed are described.
Cost and effort estimates are derived from these data.
Each of the viable software cost estimation options is only as good as the historical data
used to seed the estimate. If no historical data exist, costing rests on a very shaky
foundation.
--------------------------------xxxxxxxxxxxxxxxxxxxxxxx-------------------------------------------
4. Explain the software empirical estimation models?
The empirical data that support most estimation models are derived from a
limited sample of projects. For this reason, no estimation model is appropriate for all classes of
software and in all development environments. Therefore, you should use the results obtained
from such models judiciously.
An estimation model should be calibrated to reflect local conditions.
The model should be tested by applying data collected from completed projects, plugging the
data into the model, and then comparing actual to predicted results. If agreement is poor, the
model must be tuned and retested before it can be used.
1. The Structure of Estimation Models :
A typical estimation model is derived using regression analysis on data collected from
past software projects. The overall structure of such models takes the form [Mat94]
E = A+B* (ev)C
where A, B, and C are empirically derived constants, E is effort in person-months, and
ev is the estimation variable (either LOC or FP). the majority of estimation models have some
form of project adjustment component that enables E to be adjusted by other project
characteristics Among the many LOC-oriented estimation models proposed in the literature are
E =5.2 *(KLOC)0.91 Walston-Felix model
12
The object point is an indirect software measure that is computed using counts of the number of
(1) screens (at the user interface), (2) reports, and (3) components.
The object point count is adjusted:
NOP = (object points) *[(100 -%reuse)/100]
Where NOP is defined as new object points.
general software reuse is to be applied, the percent of reuse (%reuse).
“Productivity rate” must be derived and presents the productivity rate
PROD =NOP/person-months
for different levels of developer experience and development environment maturity. Once the
13
productivity rate has been determined, an estimate of project effort is computed using
Page
Very Very
Developer's experience/capability Low Nominal High
low high
Very Very
Environment maturity/capability Low Nominal High
low high
PROD 4 7 13 25 50
Product size risks associated with the overall size of the software to be built or modified.
Business impact risks associated with constraints imposed by management or the
marketplace.
Customer characteristics risks associated with the sophistication of the customer and
the developer's ability to communicate with the customer in a timely manner.
Process definition risks associated with the degree to which the software process has
been defined
Development environment risks associated with the availability and quality of the tools
to be used to build the product.
Technology to be built risks associated with the complexity of the system to be built and
the "newness" of the technology that is packaged by the system.
Staff size and experience risks associated with the overall technical and project
experience of the software engineers who will do the work.
Risk Components and Drivers
The risk components are defined in the following manner.
Performance risk—the degree of uncertainty that the product will meet its requirements
and be fit for its intended use.
Cost risk—the degree of uncertainty that the project budget will be maintained.
Support risk—the degree of uncertainty that the resultant software will be easy to
correct, adapt, and enhance.
Schedule risk—the degree of uncertainty that the project schedule will be maintained
and that the product will be delivered on time.
4. Risk Projection
It estimates the impact of risk on the project and the product
Risk projection, also called risk estimation, attempts to rate each risk in two ways
The likelihood or probability that the risk is real
The consequences of the problems associated with the risk, should it occur.
The project planner, along with other managers and technical staff, performs Three risk
projection activities
establish a scale that reflects the perceived likelihood of a risk
delineate the consequences of the risk
estimate the impact of the risk on the project and the product, note the overall accuracy
16
Impact values
Catastrophic-1 Critical-2 Marginal-3 Negligible-4
A project team begins by listing all risks. This can be accomplished with the help of the risk item
checklists Each risk is categorized in the second column. The probability of occurrence of each
risk is entered in the next column of the table. The probability value for each risk can be
estimated by team members individually. Next, the impact of each risk is assessed.
Once the first four columns of the risk table have been completed, the table is sorted by
probability and by impact. High-probability, high-impact risks percolate to the top of the table,
and low-probability risks drop to the bottom. This accomplishes first-order risk prioritization.
17 Page
The column labeled RMMM contains a pointer into a Risk Mitigation, Monitoring and
Management Plan or alternatively, a collection of risk information sheets developed for all risks
that lie above the cutoff.
Assessing Risk Impact
The overall risk exposure, RE, is determined using the following relationship
RE = P x C
Where
P is the probability of occurrence for a risk, and
C is the cost to the project should the risk occur
For example, assume that the software team defines a project risk in the following manner:
Risk identification. Only 70 percent of the software components scheduled for reuse will, in
fact, be integrated into the application.
Risk probability. 80% (likely).
Risk impact. 60 reusable software components were planned. If only 70 percent can be used, 18
components would have to be developed from scratch (in addition to other custom software that
has been scheduled for development). Since the average component is 100 LOC and local data
indicate that the software engineering cost for each LOC is $14.00,
the overall cost (impact) to develop the components would be 18 x 100 x 14 = $25,200.
Risk exposure. RE = 0.80 x 25,200 ~=$20,200.
5. Risk Refinement
One way to do this is to represent the risk in condition-transition-consequence (CTC).
Using the CTC format for the reuse risk we can write:
This general condition can be refined in the following manner:
Subcondition 1. Certain reusable components were developed by a third party with no
knowledge of internal design standards.
Subcondition 2. The design standard for component interfaces has not been solidified and may
not conform to certain existing reusable components.
Subcondition 3. Certain reusable components have been implemented in a language that is not
supported on the target environment.
6. Risk Mitigation Monitoring and Management
Its goal is to assist project team in developing a strategy for dealing with risk
If a software team adopts a proactive approach to risk, avoidance is always the best strategy.
18
This is achieved by developing a plan for risk mitigation. For example, assume that high staff
Page
turnover is noted as a project risk, r1. Based on past history and management intuition, the
likelihood, l1, of high turnover is estimated to be 0.70 percent, and the impact, x1, is projected at
level 2.
To mitigate this risk, project management must develop a strategy for reducing turnover.
Among the possible steps to be taken are
Meet with current staff to determine causes for turnover
Mitigate those causes that are under your control before the project starts.
Once the project commences, assume turnover will occur and develop techniques
to ensure continuity when people leave.
Organize project teams so that information about each development activity is
widely dispersed.
Define work product standards and establish mechanisms to be sure that all
models and documents are developed in a timely manner.
Conduct peer reviews of all work
Assign a backup staff member for every critical technologist.
As the project proceeds, risk monitoring activities commence
In the case of high staff turnover, the following factors can be monitored:
General attitude of team members based on project pressures.
The degree to which the team has jelled.
Interpersonal relationships among team members.
Potential problems with compensation and benefits.
The availability of jobs within the company and outside it.
In addition to monitoring these factors, the project manager should monitor the effectiveness of
risk mitigation steps. For example, a risk mitigation step noted here called
Risk management and contingency planning assumes that mitigation efforts have failed and
that the risk has become a reality. Continuing the example, the project is well underway and a
number of people announce that they will be leaving. If the mitigation strategy has been
followed, backup is available, information is documented, and knowledge has been dispersed
across the team.
In addition, the project manager may temporarily refocus resources to those functions that are
fully staffed, enabling newcomers who must be added to the team to “get up to speed.” Those
individuals who are leaving are asked to stop all work and spend their last weeks in “knowledge
transfer mode.”
19
It is important to note that RMMM steps incur additional project cost. For example, spending the
Page
7. RMMM PLAN
1)Risk Avoidance(mitigation) Proactive planning for risk avoidance. This is achieved by
developing a plan for risk mitigation.
2)Risk Monitoring what factors can we track that will enable us to determine if the risk is
becoming more or less likely?
Assessing whether predicted risk occur or not
Ensuring risk aversion steps are being properly applied
Collection of information for future risk analysis
Determine which risks caused which problems
--------------------------------------xxxxxxxxxxxxxxxxxxx------------------------------------------
7. Explain the Project Scheduling?
1. Basic Principles
Compartmentalization The project must be compartmentalized into a number of manageable
activities and tasks. To accomplish compartmentalization, both the product and the process are
refined.
Interdependency The interdependency of each compartmentalized activity or task must be
determined. Some tasks must occur in sequence, while others can occur in parallel. Some
activities cannot commence until the work product produced by another is available. Other
activities can occur independently.
Time allocation Each task to be scheduled must be allocated some number of work units (e.g.,
person-days of effort). In addition, each task must be assigned a start date and a completion date
that are a function of the interdependencies and whether work will be conducted on a full-time or
part-time basis.
Effort validation Every project has a defined number of people on the software team. As time
allocation occurs, you must ensure that no more than the allocated number of people has been
scheduled at any given time. For example, consider a project that has three assigned software
engineers (e.g., three person-days are available per day of assigned effort4). On a given day,
seven concurrent tasks must be accomplished. Each task requires 0.50 person-days of effort.
More effort has been allocated than there are people to do the work.
Defined responsibilities Every task that is scheduled should be assigned to a specific team
member.
Defined outcomes Every task that is scheduled should have a defined outcome.
20
Defined milestones Every task or group of tasks should be associated with a project milestone.
Page
A milestone is accomplished when one or more work products has been reviewed for quality and
has been approved.
E
o
td to Development time
Tmin = 0.75T d
“If we fall behind schedule, we can always add more programmers and catch up later in the
project”. The Putnam-Norden-Rayleigh (PNR) Curve5 provides an indication of the relationship
between effort applied and delivery time for a software project.
3. Effort Distribution
A recommended distribution of effort across the software process is often referred to as the
40–20–40 rule. Forty percent of all effort is allocated to frontend analysis and design. A similar
percentage is applied to back-end testing. You can correctly infer that coding (20 percent of
effort) is deemphasized. A range of 20 to 25 percent of effort is normally applied to software
design. If software is human rated (i.e., software failure can result in lossof life), even higher
percentages are typical.
Important Questions
1. Explain the Software Engineering Process paradigms?(2017)
2. Explain the project management process and project metrics?
3. Explain the software estimation?(2017)
4. Explain the software empirical estimation models?
5. Explain the Software Project Planning?
6. Explain the Risk Analysis?
7. Explain the Project Scheduling?
21 Page