Software Engneering Module 2 Notes
Software Engneering Module 2 Notes
CML
Module 2 Topics
1. Management: Functions
2. Project planning - Software productivity -Productivity metrics
3. Cost estimation - COCOMO & COCOMO II
4. Project control - Work breakdown structures, Gantt charts, PERT charts - Dealing with
deviations
5. Team organization - centralized, de-centralized, mixed - An assessment of organizations
6. Risk management
7. Configuration Management
8. Introduction to project management and planning CASE tools.
1. Management: Functions
1.1 Management Functions
i.
ii.
iii.
The main job of Management is to enable a group of people to work towards a common goal.
iv.
Management Functions can be broadly divided into these interrelated activities, the goal of which is to
achieve effective group work :1. Planning
2. Organizing
3. Staffing
4. Directing
5. Controlling
1. Planning
Planning involves determining the flow of information, people and products within the organization.
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 objective are to be achieved.
2. Organizing
Organizing involves the establishment of clear lines of authority and responsibility for groups of activities
that achieve achieve the goals of the enterprise.
Organizing is necessary at the level of small group.
Choice of organizational structure affects the efficiency of enterprise.
3. Staffing
Staffing deals with hiring personnel for the positions that are identified by the organizational structure.
Staffing involves defining the requirements for personnel; recruiting and compensating , developing and
promoting employees.
4. Directing
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:1
Prepared By: Merin Mary Philip
CML
Goal of directing is to guide the subordinates to undersatand and identify with the organizational structure and
goals of the enterprise.
Directing involves leading subordinates.
5. Controlling
Controlling consists of measuring and correcting activities to ensure that goals are achieved.
Controlling requires the measurement of performance against plans and taking corrective action when
deviations occur.
2. Project planning
Software project planning encompasses five major activities:1. Estimation
2. Scheduling
3. risk analysis
4. quality management planning
5. change management planning
Estimation determines how much money, effort, resources, and time it will take to build a specific system
or product
The software team first estimates
o The work to be done
o The resources required
o The time that will elapse from start to finish
Then they establish a project schedule that
o Defines tasks and milestones
o Identifies who is responsible for conducting each task
o Specifies the inter-task dependencies
Task Set for Project Planning:1. Establish project scope
2. Determine feasibility
3. Analyze risks
4. Define required resources
a. Determine human resources required
b. Define reusable software resources
c. Identify environmental resources
5. Estimate cost and effort
a. Decompose the problem
b. Develop two or more estimates using different approaches
c. Reconcile the estimates
6. Develop a project schedule
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:2
Prepared By: Merin Mary Philip
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:3
Prepared By: Merin Mary Philip
CML
1. Human Resources
The planner begins by evaluating scope and selecting the skills required to complete development. Both
organizational
position
(e.g.,
manager,
senior
software
engineer)
and
specialty
(e.g.,
telecommunications, database, client/server) are specified. For relatively small projects (one personyear or less), a single individual may perform all software engineering tasks, consulting with specialists
as required.
2. Reusable Software Resources
Component-based software engineering (CBSE) emphasizes reusabilitythat is, the creation and reuse
of software building blocks. Such building blocks, often called components, must be cataloged for easy
reference, standardized for easy application, and validated for easy integration. Bennatan suggests four
software resource categories that should be considered as planning proceeds:
Off-the-shelf components-Existing software that can be acquired from a third party or that has been
developed internally for a past project. COTS (commercial off-the-shelf) components are purchased
from a third party, are ready for use on the current project, and have been fully validated.
Full-experience components-Existing specifications, designs, code, or test data developed for past
projects that are similar to the software to be built for the current project. Members of the current
software team have had full experience in the application area represented by these components.
Therefore, modifications required for full-experience components will be relatively low-risk.
Partial-experience components- Existing specifications, designs, code, or test data developed for past
projects that are related to the software to be built for the current project but will require substantial
modification. Members of the current software team have only limited experience in the application
area represented by these components. Therefore, modifications required for partial-experience
components have a fair degree of risk.
New components-Software components that must be built by the software team specifically for the
needs of the current project.
3. Environmental Resources
The environment that supports the software project, often called the software engineering environment
(SEE), incorporates hardware and software. Hardware provides a platform that supports the tools
(software) required to produce the work products that are an outcome of good software engineering
practice.
3. Estimation of Project Cost and Effort
The accuracy of a software project estimate is predicated on
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:4
Prepared By: Merin Mary Philip
CML
o The degree to which the planner has properly estimated the size (e.g., KLOC) of the product to be built
o The ability to translate the size estimate into human effort, calendar time, and money
o The degree to which the project plan reflects the abilities of the software team
o The stability of both the product requirements and the environment that supports the software
engineering effort
Project Estimation Approaches are:a) Decomposition techniques
o These take a "divide and conquer" approach
o Cost and effort estimation are performed in a stepwise fashion by breaking down a project into major
functions and related software engineering activities.
b) Empirical estimation models
o Offer a potentially valuable estimation approach if the historical data used to seed the estimate is
good
4. Develop a project schedule
Software project scheduling is an activity that distributes estimated effort across the planned project
duration by allocating the effort to specific software engineering tasks. It is important to note, however, that the
schedule evolves over time. During early stages of project planning, a macroscopic schedule is developed. This
type of schedule identifies all major software engineering activities and the product functions to which they are
applied. As the project gets under way, each entry on the macroscopic schedule is refined into a detailed
schedule. Here, specific software tasks (required to accomplish an activity) are identified and scheduled.
principles guide software project scheduling:
I.
II.
III.
Time allocation-Each task to be scheduled must be allocated some number of work units.
IV.
Effort validation-Every project has a defined number of staff members. As time allocation occurs, the
project manager must ensure that no more than the allocated number of people have been scheduled at any
given time.
V.
Defined responsibilities-Every task that is scheduled should be assigned to a specific team member.
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:5
Prepared By: Merin Mary Philip
VI.
VII.
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:6
Prepared By: Merin Mary Philip
CML
Interpretation-The evaluation of metrics in an effort to gain insight into the quality of the
representation
Feedback-Recommendations derived from the interpretation of product metrics and passed on to
the software development team.
Attributes of Effective Software Metrics
Attributes of Effective Software Metrics are:Simple and computable- It should be relatively easy to learn how to derive the metric, and its
computation should not demand inordinate effort or time
Empirically and intuitively persuasive- The metric should satisfy the engineers intuitive
notions about the product attribute under consideration
Consistent and objective- The metric should always yield results that are unambiguous.
Consistent in the use of units and dimensions- The mathematical computation of the metric
should use measures that do not lead to bizarre combinations of units.
Programming language independent- Metrics should be based on the analysis model, the
design model, or the structure of the program itself.
An effective mechanism for high-quality feedback- The metric should lead to a higher-quality
end product.
DIFFERENT KINDS OF PRODUCTIVITY METRICS ARE:1. Metrics for Requirements Model (Analysis Model)
Metrics for Requirements Model are:(i) Function Point-based metrics
1) Use the function point as a normalizing factor or as a measure of the size of the specification.
2) First proposed by Albrecht in 1979
3) Can be used effectively as a means for measuring the functionality delivered by a system
4) Derived using an empirical relationship based on
i. Countable (direct) measures of the softwares information domain.
ii. Assessments of the softwares complexity
5) Information domain values are defined in the following manner:
i. number of external inputs (EIs)
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:7
Prepared By: Merin Mary Philip
CML
the
number
of
function
points
(FP)
2)
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:8
Prepared By: Merin Mary Philip
CML
3)
4)
Is performance critical?
5)
6)
7)
Does the on-line data entry require the input transaction to be built over multiple screens or
operations?
8)
9)
10)
11)
12)
13)
14)
Is the application designed to facilitate change and for ease of use by the user?
Example
SafeHome security Software
The SafeHome security function enables the homeowner to configure the security system when it
is installed, monitors all sensors connected to the security system, and interacts with the
homeowner through the Internet, a PC, or a control panel. During installation, the SafeHome PC
is used to program and configure the system. Each sensor is assigned a number and type, a
master password is programmed for arming and disarming the system, and telephone number(s)
are input for dialing when a sensor event occurs.When a sensor event is recognized, the software
invokes an audible alarm attached to the system. After a delay time that is specified by the
homeowner during system configuration activities, the software dials a telephone number of a
monitoring service, provides information about the location, reporting the nature of the event that
has been detected. The telephone number will be redialed every 20 seconds until a telephone
connection is obtained. The homeowner receives security information via a control panel, the
PC, or a browser, collectively called an interface. The interface displays prompting messages and
system status information on the control panel, the PC, or the browser window.
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:9
Prepared By: Merin Mary Philip
CML
Figure:- Data flow diagram evaluated to determine the key measures required for computation of
the function point metric
number of user inputs - password, panic button, and activate/deactivate
number of user outputs - messages and sensor status
number of user inquiries - zone inquiry and sensor inquiry
number of files - system configuration file
number of external interfaces - test sensor, zone setting, activate/deactivate, and alarm alert
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:10
Prepared By: Merin Mary Philip
CML
Past data indicates that one FP translates into 60 lines of code (an object-oriented language
is to be used)
12 FPs are produced for each person-month of effort.
Assume:
Past projects have found an average of three errors per function point during analysis
design reviews.
Four errors per function point during unit and integration testing.
These data can help software engineers assess the completeness of their review and testing
activities.
(ii)
Specification metrics
b. used as an indication of quality by measuring number of requirements by type.
c. A list of characteristics that can be used to assess the quality of the analysis model and the
corresponding requirements specification:
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:11
Prepared By: Merin Mary Philip
CML
where nu is the number of unique function requirements, ni is the number of inputs (stimuli)
defined or implied by the specification, and ns is the number of states specified. The Q2 ratio
measures the percentage of necessary functions that have been specified for a system.
g. we must consider the degree to which requirements have been validated:
Q3 = nc/[nc + nnv ]
where nc is the number of requirements that have been validated as correct and nnv is the
number of requirements that have not yet been validated.
2. Metrics for design Model
Fan out: the number of modules immediately subordinate to the module i, that is, the
number of modules directly invoked by module i
Structural complexity
S(i) = f2out(i), where fout(i) is the fan out of module i
Data complexity
D(i) = v(i)/[fout(i) + 1], where v(i) is the number of input and output variables that
are passed to and from module i
System complexity
C(i) = S(i) + D(i)
As each of these complexity values increases, the overall architectural complexity of the
system also increases. This leads to greater likelihood that the integration and testing effort will
also increase .
Shape complexity- size = n + a, where n is the number of nodes and a is the number of arcs.
Allows different program software architectures to be compared in a straightforward manner
Connectivity density (i.e., the arc-to-node ratio) , r = a/n . It may provide a simple
indication of the coupling in the software architecture. size = 17 + 18 = 35
depth = the longest path from the root (top) node to a leaf node. For the architecture shown in
Figure 19.5, depth = 4. width = maximum number of nodes at any one level of the architecture.
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:12
Prepared By: Merin Mary Philip
3.
CML
Testing metrics fall into two broad categories: (1) metrics that attempt to predict the likely
number of tests
required at various testing levels and (2) metrics that focus on test coverage for a given
component. For example, the number of tests associated with the human/computer interface can
be estimated by (1) examining the number of transitions (TR) contained in the state transition
representation of the HCI and evaluating the tests required to exercise each transition; (2)
examining the number of data objects (OB) that move across the interface, and (3) the number of
data elements that are input or output.
4.
Metrics designed explicitly for maintenance activities have been proposed. IEEE suggests a
software maturity index (SMI) that provides an indication of the stability of a software product
(based on changes that occur for each release of the product). The following information is
determined:
MT = the number of modules in the current release
Fc = the number of modules in the current release that have been changed
Fa = the number of modules in the current release that have been added
Fd = the number of modules from the preceding release that were deleted in the current release
The software maturity index is computed in the following manner:
SMI = [MT -(Fa + Fc + Fd)]/MT
-------------------------------------------------------------------------------------------------------------------------
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:13
Prepared By: Merin Mary Philip
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:14
Prepared By: Merin Mary Philip
CML
little experience and stringent requirements for such aspects as interfacing and reliability. These
systems have tight constraints from the environment (software, hardware, and people). Examples
are embedded avionics systems and real-time command systems. The semidetached systems fall
between these two types. Examples of semidetached systems include developing a new operating
system (OS), a database management system (DBMS), and a complex inventory management
system. The constants a and b for different systems are given in Table 3.1.
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:15
Prepared By: Merin Mary Philip
CML
Step 3
The final effort estimate, E, is obtained by multiplying the initial estimate by the EAF:
E = EAF * Ei
Example
Suppose, a system for office automation must be designed. From the requirements, it was clear that there
would be four major modules in the system: data entry, data update, query, and report generator. It is also clear
from the requirements that project will fall in the organic category. The sizes for the different modules and the
overall system were estimated to be as follows:
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:16
Prepared By: Merin Mary Philip
CML
From the requirements, the ratings of the different cost driver attributes were assessed. These ratings, along
with their multiplying factors, are:
All other factors had a nominal rating. From these, the effort adjustment factor (EAF) is
EAF=1.15 * 1.06 * 1.13 * 1.17 =1.61.
The initial effort estimate for the project is obtained from the relevant equations. We have:Ei = 3.2*31.05 = 10.14 PM.( Ei = a * (KDLOC) b, since project is organic in nature a=3.2 and b=1.05)
Using the EAF, the adjusted effort estimate is
E =1.61 * 10.14 = 16.3 PM (E=EAF * Ei)
COCOMO II (Constructive Cost Model II)
COCOMO II is actually a hierarchy of estimation models that address the following areas:
i.
Application composition model. Used during the early stages of software engineering, when
prototyping of user interfaces, consideration of software and system interaction, assessment of
performance, and evaluation of technology maturity are paramount.
ii.
Early design stage model. Used once requirements have been stabilized and basic software
architecture has been established.
iii.
Like all estimation models for software, the COCOMO II models require sizing information.
Three different sizing options are available as part of the model hierarchy: object points, function points, and
lines of source code.
Like function points , 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
(3) components likely to be required to build the application.
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:17
Prepared By: Merin Mary Philip
CML
Each object instance (e.g., a screen or report) is classified into one of three complexity levels (i.e., simple,
medium, or difficult) using criteria suggested by Boehm. In essence, complexity is a function of the number
and source of the client and server data tables that are required to generate the screen or report and the
number of views or sections presented as part of the screen or report.
Once complexity is determined, the number of screens, reports, and components are weighted according to
Table 5.1. The object point count is then determined by multiplying the original number of object instances
by the weighting factor in Table 5.1 and summing to obtain a total object point count.
When component-based development or general software reuse is to be applied, the percent of reuse (%reuse)
is estimated and the object point count is adjusted:
NOP = (object points) x [(100 - %reuse)/100]
where NOP is defined as new object points.
To derive an estimate of effort based on the computed NOP value, a productivity rate must be derived.
Table 5.2 presents the productivity rate, PROD = NOP/person-month.
For different levels of developer experience and development environment maturity.Once the productivity
rate has been determined, an estimate of project effort can be derived as
estimated effort = NOP/PROD
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:18
Prepared By: Merin Mary Philip
CML
-----------------------------------------------------------------------------------------------------------------------------Project control - Work breakdown structures, Gantt charts, PERT charts - Dealing with deviations
5.1 Project Control
The purpose of controlling a project is to monitor the progress of the activities against the plans.
Another aspect of control is to detect, deviations from the plan are occuring so that corrective action
may be taken.
5.2 Work breakdown structures (TASK NETWORK)
WBS is used as a basis for a number of processes in particular to produce the subsidiary plans of the
Project Management Plan.
The WBS is a deliverable-oriented hierarchy of decomposed project components that organises and
defines the total scope of the project.
The WBS is a representation of the detailed project scope statement that specifies the work to be
accomplished by the project.
The elements comprising the WBS assist the stakeholders in viewing the end product of the project.
The work at the lowest-level WBS component is estimated, scheduled, and tracked.
Work Breakdown Structures are also known as Task Network. The task network is a useful mechanism
for depicting intertask dependencies and determining the critical path.
Individual tasks and subtasks have interdependencies based on their sequence.
A task network, also called an activity network, is a graphic representation of the task flow for a project.
It is sometimes used as the mechanism through which task sequence and dependencies are input to an
automated project scheduling tool. In its simplest form (used when creating a macroscopic schedule),
the task network depicts major software engineering tasks.
Figure 7.3 shows a schematic task network for a concept development project. Figure 7. 4 shows an
Example task Network. Figure 7.5 shows an Example Task Network with Critical Path Marked. It
depicts task length, sequence, concurrency, and dependency. Points out inter-task dependencies to help
the manager ensure continuous progress toward project completion.
The details of critical path are:
A single path leading from start to finish in a task network.
It contains the sequence of tasks that must be completed on schedule if the project as a whole is to be
completed on schedule.
It also determines the minimum duration of the project.
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:19
Prepared By: Merin Mary Philip
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:20
Prepared By: Merin Mary Philip
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:21
Prepared By: Merin Mary Philip
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:22
Prepared By: Merin Mary Philip
CML
March 7
build
scanner
Jan 1
start
Jan 3
design
March 7
build
parser
Nov 14
integration
and testing
March 7
build code
generator
finish
Mar 17+
March 7
write
manual
Figure 5.3 PERT chart for the compiler project.
Salient features of PERT chart are:i.
ii.
It shows the interrelationship among the tasks in the project and identifies the critical path of the
project.
iii.
It exposes all possible parallelism in the activities and thus helps in allocating resources.
iv.
v.
PERT provide quantitative tools that allow the software planner to:(1)determine the critical paththe chain of tasks that determines the duration of the project.
(2)establish most likely time estimates for individual tasks by applying statistical models.
(3)calculate boundary times that define a time "window" for a particular task.
Boundary time calculations can be very useful in software project scheduling. Slippage in the design of one
function, for example, can retard further development of other functions. Riggs describes important
boundary times that may be discerned from a PERT or CPM network:
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:23
Prepared By: Merin Mary Philip
CML
(1) the earliest time that a task can begin when all preceding tasks are completed in the shortest
possible time.
(2) the latest time for task initiation before the minimum project completion time is delayed.
(3) the earliest finishthe sum of the earliest start and the task duration.
(4) the latest finishthe latest start time added to task duration.
(5) the total floatthe amount of surplus time or leeway allowed in scheduling tasks so that the
network critical path is maintained on schedule. Boundary time calculations lead to a
determination of critical path and provide the manager with a quantitative method for evaluating
progress as tasks are completed.
Both PERT and CPM have been implemented in a wide variety of automated tools that are available for
the personal computer. Such tools are easy to use and make the scheduling methods described
previously available to every software project manager.
5.5 Dealing with deviations
Dealing with deviation deals with deviation from the project plan.
The manager should consult the chart at frequent intervals during the project to evaluate its status.
No matter how the deviations from the schedule are detected, the manager must decide how to handle them.
In activities where production is limited by raw human labor, it is usual to try to get back on schedule by
adding people or increasing overtime for existing people.
The manager has to examine the requirements and remove the ones that are not absolutely necessary.
Cutting out unecessary requirements is called requirements scrubbing.
-------------------------------------------------------------------------------------------------------------------------------Team organization - centralized, de-centralized, mixed - An assessment of organizations
Team organization structure is used to structure the communication patterns among members of a team.
Traditional team organization is hierarchical with a manager supervising a group or groups of groups.
Other organizations have been tried in software engineering with some success.
Kinds of Team Organization are:1. Controlled Centralized(CC) or Chief-programmer team
2. Democratic decentralized (DD)
3. Controlled decentralized (CD) or Mixed Control Team Organization
1. Controlled Centralized(CC) or Chief-programmer team
i.
CML
ii.
Top-level problem solving and internal team coordination are managed by a team leader.
iii.
iv.
v.
Chief programmer
Librarian
Programmers
Specialists
CML
This software engineering team has no permanent leader. Rather, "task coordinators are appointed for
short durations and then replaced by others who may coordinate different tasks."
(a )
(b )
Figure 2(a) Management Structure of Democratic decentralized team and 2(b) communication pattern in DD team
This software engineering team has a defined leader who coordinates specific tasks and secondary
leaders that have responsibility for subtasks.
ii.
iii.
iv.
CML
v.
vi.
Communication decentralized among each set of individuals, peers, and their immediate supervisors
vii.
Problem solving remains a group activity, but implementation of solutions is partitioned among
subgroups by the team leader.
viii.
Communication among subgroups and individuals is horizontal. Vertical communication along the
control hierarchy also occurs.
Proj ect mana ger
Se nio r en gi nee rs
Ju ni or e ngi ne ers
(a )
(b )
Figure 3(a) Management structure of Mixed control team (b) communication pattern in Mixed control team
1.1
An assessment of organizations
We must content with the following general considerations:1. No team organization is appropriate for all tasks.
2. Decentralized control is best when communication is necessary to achieve a good solution
3. Centralized control best when development speed is key and problem is well understood.
4. An appropriate organization limits the amount of communication to what is necessary to achieve the
goalsno more and no less.
5. An appropriate organization may have to take acount goals other than speed of development.
-------------------------------------------------------------------------------------------------------------------------------Risk management
A risk is a potential problem it might happen and it might not. Conceptual definition of risk: Risk concerns future happenings
Uncertainty the risk may or may not happen, that is, there are no 100% risks (those,
instead, are called constraints)
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:27
Prepared By: Merin Mary Philip
CML
Loss the risk becomes a reality and unwanted consequences or losses occur
The team then flies into action in an attempt to correct the problem rapidly (fire fighting)
Primary objective is to avoid risk and to have a contingency plan in place to handle
unavoidable risks in a controlled and effective manner.
CML
A list containing a set of risk component and drivers and their probability of occurrence.
Categories of risk or Components of risk:
Performance Risk
The degree of uncertainty that the product will meet its requirement and be fit for its
intended use.
Cost Risk(CU)
The degree of uncertainty that the project budget will be maintained.
Support Risk
The degree of uncertainty that whether the project is easy to correct, adapt and enchance.
Schedule Risk
The degree of uncertainty that the project schedule will be maintained and that the product
will be delivered on time.
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:29
Prepared By: Merin Mary Philip
CML
Risk
Category
Size estimate
Probability
Impact (1-4)
PS
60%
PS
30%
BU
40%
ST
30%
DE
80%
RMMM
may be
significantly low
Larger number of
users than
planned
End users resist
system
Staff
inexperienced
Lack of training
on tools
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:30
Prepared By: Merin Mary Philip
CML
Once the first four columns are completed, the table is sorted by probability and by
impact. High probability, high-impact risks are now the top entries in the table and lowprobability risks drop to the bottom. A cutoffline is drawn horizontally which implies
that risks above the line will be given further attention.
e. RMMM All risks that lie above cutoff line should be managed. The column labeled
RMMM contains a pointer to a Risk Mitigation, Monitoring, and Management Plan.
RMMM are risk information sheets developed for risks that lie above cutoff line. Entries
in RMMM sheets are:Risk Information Sheet
RISK ID
DATE
PROBABILTY
IMPACT
DESCRITION OF RISK
REFINEMENT/ CONTEXT
MITIGATION/MONITORING
MANAGEMENT/CONTIGENECY PLAN
CURRENT STATUS
List all risks in the first column (by way of the help of the risk item checklists)
Assess the impact of each risk based on an averaging of the four risk components to determine
an overall impact value
Draw a horizontal cutoff line in the table that indicates the risks that will be given further
attention.
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:31
Prepared By: Merin Mary Philip
CML
b. Its scope This combines the severity of the risk (how serious was it) with its overall distribution
(how much was affected)
c. Its timing This considers when and for how long the impact will be felt
The overall risk exposure formula is RE = P x C
a. P = the probability of occurrence for a risk
b. C = the cost to the project should the risk actually occur
Example
a. P = 80% probability that 18 of 60 software components will have to be developed
b. C = Total cost of developing 18 components is $25,000
c. RE = .80 x $25,000 = $20,000
4. Risk Mitigation, Monitoring, and Management
An effective strategy for dealing with risk must consider three issues
a. Risk mitigation (i.e., avoidance)
b. Risk monitoring
c. Risk management and contingency planning
Risk mitigation (avoidance) is the primary strategy and is achieved through a plan
d. Example: Risk of high staff turnover
During risk monitoring, the project manager monitors factors that may provide an indication of whether
a risk is becoming more or less likely
Risk management and contingency planning assume that mitigation efforts have failed and that the risk
has become a reality.
-----------------------------------------------------------------------------------------------------------------------
Configuration Management
Software configuration management (SCM) is an umbrella activity that is applied throughout the software
process. Because change can occur at any time, SCM activities are developed to (1) identify change, (2)
control change, (3) ensure that change is being properly implemented, and (4) report changes. Elements of a
Configuration Management System are:1. Configuration elements
a. A set of tools coupled with a file management (e.g., database) system that enables access
to and management of each software configuration item.
2. Process elements
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:32
Prepared By: Merin Mary Philip
CML
Figure:- Elements of a Configuration Management System are:1. Identification of objects in the Software Configuration
To control and manage software configuration items, each must be separately named and then organized
using an object-oriented approach. Two types of objects can be identified basic objects and aggregate
objects.
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:33
Prepared By: Merin Mary Philip
CML
2. Change Control
3. Change control is a procedural activity that ensures quality and consistency as changes are made to a
configuration object. A change request is submitted to a configuration control authority, which is
usually a change control board (CCB)
a. The request is evaluated for technical merit, potential side effects, overall impact on
other configuration objects and system functions, and projected cost in terms of money,
time, and resources.
An engineering change order (ECO) is issued for each approved change request
a. Describes the change to be made, the constraints to follow, and the criteria for review
and audit.
4. Version Control Task
Version control is a set of procedures and tools for managing the creation and use of multiple
occurrences of objects in the SCM repository. Required version control capabilities
a. An SCM repository that stores all relevant configuration objects
b. A version management capability that stores all versions of a configuration object (or
enables any version to be constructed using differences from past versions)
c. A make facility that enables the software engineer to collect all relevant configuration
objects and construct a specific version of the software
d. Issues tracking (bug tracking) capability that enables the team to record and track the
status of all outstanding issues associated with each configuration object.
5. Configuration Auditing
Configuration auditing is an SQA activity that helps to ensure that quality is maintained as changes are
made. It complements the formal technical review and is conducted by the SQA group. A configuration
audit ensures that
The correct CSCIs (by version) have been incorporated into a specific build
That all documentation is up-to-date and consistent with the version that has been built
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:34
Prepared By: Merin Mary Philip
CML
CML
CML
2. The Product
We must examine the product and the problem it is intended to solve at the very beginning of the project. The
topics discussed under product are:2.1 Software Scope
2.2 Problem Decomposition
3. The Process
The generic phases that characterize the software processdefinition, development and supportare
applicable to all software.
3.1 Melding the Product and the Process
Project planning begins with the melding of the product and the process. Each function to be engineered by
the software team must pass through the set of framework activities that have been defined for a software
organization. Assume that the organization has adopted the following set of framework activities:__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:37
Prepared By: Merin Mary Philip
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:38
Prepared By: Merin Mary Philip
CML
Once the process model has been chosen, the common process framework (CPF) is adapted to it. In every
case, the CPFcustomer communication, planning, risk analysis, engineering, construction and release,
customer evaluationcan be fitted to the paradigm. Process decomposition commences when the project
manager asks, How do we accomplish this CPF activity? For example, a small, relatively simple
project might require the following work tasks for the customer communication activity:
1. Develop list of clarification issues.
2. Meet with customer to address clarification issues.
3. Jointly develop a statement of scope.
4. Review the statement of scope with all concerned.
5. Modify the statement of scope as required.
4. The Project
In order to manage a successful software project, we must understand what can go wrong and how to do it right.
Ten signs that indicate that an information systems project is in jeopardy:
1. Software people dont understand their customers needs.
2. The product scope is poorly defined.
3. Changes are managed poorly.
4. The chosen technology changes.
5. Business needs change [or are ill-defined].
6. Deadlines are unrealistic.
7. Users are resistant.
8. Sponsorship is lost [or was never properly obtained].
9. The project team lacks people with appropriate skills.
10. Managers [and practitioners] avoid best practices and lessons learned.
How does a manager act to avoid the problems just noted? A five-part commonsense approach to software
projects:
1. Start on the right foot. This is accomplished by working hard (very hard) to understand the problem that
is to be solved and then setting realistic objects and expectations for everyone who will be involved in the
project. It is reinforced by building the right team and giving the team the autonomy, authority, and
technology needed to do the job.
2. Maintain momentum. Many projects get off to a good start and then slowly disintegrate. To maintain
momentum, the project manager must provide incentives to keep turnover of personnel to an absolute
minimum, the team should emphasize quality in every task it performs, and senior management
should do everything possible to stay out of the teams way.
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:39
Prepared By: Merin Mary Philip
CML
3. Track progress. For a software project, progress is tracked as work products (e.g., specifications, source
code, sets of test cases) are produced and approved (using formal technical reviews) as part of a quality
assurance activity. In addition, software process and project measures can be collected and used to assess
progress against averages developed for the software development organization.
4. Make smart decisions. In essence, the decisions of the project manager and the software team should be to
keep it simple. Whenever possible, decide to use commercial off-the-shelf software or existing software
components, decide to avoid custom interfaces when standard approaches are available, decide to identify and
then avoid obvious risks, and decide to allocate more time than you think is needed to complex or risky tasks.
5. Conduct a postmortem analysis. Establish a consistent mechanism for extracting lessons learned for each
project. Evaluate the planned and actual schedules, collect and analyze software project metrics, get feedback
from team members and customers, and record findings in written form.
THE W5HH PRINCIPLE
WWWWWHH principle, after a series of questions that lead to a definition of key project characteristics and
the resultant project plan:
1. Why is the system being developed? The answer to this question enables all parties to assess the validity
of business reasons for the software work. Stated in another way, does the business purpose justify the
expenditure of people, time, and money?
2. What will be done, by when? The answers to these questions help the team to establish a project schedule
by identifying key project tasks and the milestones that are required by the customer.
3. Who is responsible for a function? Earlier in this chapter, we noted that the role and responsibility of each
member of the software team must be defined. The answer to this question helps accomplish this.
4. Where are they organizationally located? Not all roles and responsibilities reside within the software team
itself. The customer, users, and other stakeholders also have responsibilities.
5. How will the job be done technically and managerially? Once product scope is established, a management
and technical strategy for the project must be defined.
6. How much of each resource is needed? The answer to this question is derived by developing estimates
based on answers to earlier questions.
-------------------------------------------------------------------------------------------------------------------------------9.2 Planning CASE tools
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:40
Prepared By: Merin Mary Philip
CML
At the high end of the integration spectrum is the integrated project support environment (IPSE). Standards for each of
the building blocks described previously have been created. CASE tool vendors use IPSE standards to build tools that will be
compatible with the IPSE and therefore compatible with one another.
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:41
Prepared By: Merin Mary Philip
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:42
Prepared By: Merin Mary Philip
CML
14
15
16
17
18
19
20
21
22
23
24
The models contain a representation of data, function, and behavior (at the analysis level) and characterizations of
data, architectural, component-level, and interface design.
PRO/SIM tools
PRO/SIM (prototyping and simulation) tools provide the software engineer with the ability to predict the behavior
of a real-time system prior to the time that it is built.
In addition, these tools enable the software engineer to develop mock-ups of the real-time system, allowing the
customer to gain insight into the function, operation and response prior to actual implementation.
Interface design and development tools
Interface design and development tools are actually a tool kit of software components (classes) such as menus,
buttons, window structures, icons, scrolling mechanisms, device drivers, and so forth.
Prototyping tools
A variety of different prototyping tools can be used.
Screen painters enable a software engineer to define screen layout rapidly for interactive applications.
A variety of fourth generation tools have prototyping features.
Programming tools
The programming tools category encompasses the compilers, editors, and debuggers that are available to support
most conventional programming languages.
Web development tools
The activities associated with Web engineering are supported by a variety of tools for WebApp development.
These include tools that assist in the generation of text, graphics, forms, scripts, applets, and other elements of a
Web page.
Integration and testing tools
In their directory of software testing tools, Software Quality Engineering defines the following testing tools categories:a) Data acquisitiontools that acquire data to be used during testing.
b) Static measurementtools that analyze source code without executing test cases.
c) Dynamic measurementtools that analyze source code during execution.
d) Simulationtools that simulate function of hardware or other externals.
e) Test managementtools that assist in the planning, development, and control of testing.
f) Cross-functional toolstools that cross the bounds of the preceding categories.
Static analysis tools
Static testing tools assist the software engineer in deriving test cases.
Three different types of static testing tools are used in the industry: code based testing tools, specialized testing languages,
and requirements-based testing tools.
a) Code-based testing tools accept source code (or PDL) as input and perform a number of analyses that
result in the generation of test cases.
b) Specialized testing languages (e.g., ATLAS) enable a software engineer to write detailed test
specifications that describe each test case and the logistics for its execution.
c) Requirements-based testing tools isolate specific user requirements and suggest test cases (or classes of
tests) that will exercise the requirements.
Dynamic analysis tools
Dynamic testing tools interact with an executing program, checking path coverage, testing assertions about the value of
specific variables, and otherwise instrumenting the execution flow of the program. Dynamic tools can be either intrusive or
nonintrusive.
Test management tools
Test management tools are used to control and coordinate software testing for each of the major testing steps.
Tools in this category manage and coordinate regression testing, perform comparisons that ascertain differences
between actual and expected output, and conduct batch testing of programs with interactive human/computer
interfaces.
Client/server testing tools
The c/s environment demands specialized testing tools that exercise the graphical user interface and the network
communications requirements for client and server.
Reengineering tools
The reengineering tools category can be subdivided into the following functions:
o Reverse engineering to specification tools take source code as input and generate graphical structured
analysis and design models, where-used lists, and other design information.
o Code restructuring and analysis tools analyze program syntax, generate a control flow graph, and
automatically generate a structured program.
o On-line system reengineering tools are used to modify on-line database systems.
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING
Page No:43
Prepared By: Merin Mary Philip