02 2 Software Engineering
02 2 Software Engineering
5 6
9 10
Develop and use good engineering practices for adding another button to an alarm clock costs
building software. money during manufacturing of each piece
Make heavy use of reusable software the cost is manufacturer’s
components.
Use modern languages that support good adding a butting to a program may cost
software development practices, e.g., Ada95, something during software development (or not)
Java. consequence is more complex software
Use 4th generation languages. more difficult to use
But, almost everything is a two-edged sword. the user pays
z Consider long term tool maintenance.
z Right now, this is a major problem for NASA.
11 12
Software Myths Software Myths
Myth: It’s in the software. So, we can easily Myth: I can’t tell you how well we are doing until I get
change it. parts of it running.
z Reality: Requirements changes are a major cause of z Reality: Formal reviews of various types both can give good
software degradation. information and are critical to success in large projects.
Myth: The only deliverable that matters is working code.
Myth: We can solve schedule problems by
z Reality: Documentation, test history, and program configuration
adding more programmers. are critical parts of the delivery.
z Reality: Maybe. It increases coordination efforts and
Myth: I am a (super) programmer. Let me program it,
may slow things down.
and I will get it done.
Myth: While we don’t have all requirements in z Reality: A sign of immaturity. A formula for failure. Software
writing yet, we know what we want and can projects are done by teams, not individuals, and success
start writing code. requires much more than just coding.
z Reality: Incomplete up-
up-front definition is the major
cause of software project failures.
13 14
15 16
A Layered Technology Some Generic Engineering
Phases: Building
Tools System or information engineering (leading to
z Editors requirements)
z Design aids z Software project planning
z Compilers z Requirements analysis
z Computer Aided Software Engineering (CASE) z Development
Methods z Software design
z Includes standards (formal or informal) Coding
z May include conventions,
conventions, e.g., low level such as Testing
naming, variable, language construct use, etc.
Migration
z May involve design methodologies.
methodologies.
Maintenance
17 18
19 20
SEI Software Process Maturity Software Process Models
Model
Level 1: Initial -- The software process is characterized phases of problem
as ad hoc, and occasionally even chaotic. Few processes solving loop
defined.
Level 2: Repeatable -- Basic project management
processes established to track cost, schedule and
functionality.
Level 3: Defined -- Process for both management and
engineering is documented, standardized and integrated. problem solving
Level 4: Managed -- Detailed measures of the process applied recursively
and product quality collected. Both are quantitatively
understood and controlled.
Level 5: Optimizing -- Continuous process improvement
enabled by quantitative feedback and testing innovative
ideas.
SEI = Software Engineering Institute, CMU. 21 22
23 24
The Rapid Prototyping Model Evolutionary process models:
Incremental Model
25 26
27 28
Evolutionary Process Models: Other Models
Concurrent Development Model
Formal Methods
z Rigorous mathematical representation of
requirements
z Provides basis for automatic verification test
generation
Fourth Generation Techniques
z Use code generators to produce specific parts of
product
Process Technology
z Provides a variety of tools to aid software developers,
e.g., workload flow, configuration management,
quality assurance management, etc.
29 30
31 32
The Spectrum of Management People
Concerns
Effective Software management encompasses The Players -- It is important to recognize the
three main areas: different categories of people involved in a large
z People software project.
z Problem Senior Managers - who define business issues.
z Process Project Managers - who plan, motivate, organize
and control the practitioners
Practitioners - who deliver the technical skill that
are necessary to engineer the project
Customers - who specify the requirements
End users - who interact with the software once
it is released.
33 34
39 40
Project Coordination techniques Value and use of coordination
and communication techniques
Formal, impersonal approaches - software engineering
documents and deliverables, technical memos, project
milestones, schedules and control tools
Formal interpersonal procedures - quality assurance
activities - reviews and design and code inspections
Informal, interpersonal procedures - group meetings
Electronic communication - Email, bulletin boards, web
sites, extension and video conferences
Interpersonal network - discussions with those outside of
the project.
41 42
version
46
Measure -- Provides a quantitative indication of Use common sense and organizational sensitivity.
the extent, amount, dimensions, capacity, or Provide regular feedback to individuals and teams.
size of some product or process attribute (1000 Don’t use metrics to appraise individuals.
lines) Set clear goal and metrics.
Metrics -- A quantitative measure of the degree Never use metrics to threaten individuals or teams
to which a system, component, or process Problems != negative. These data are merely an
possesses a given attribute (40%) indicator for process improvement.
Don’t obsess on a single metric to the exclusion of other
Software Metrics -- refers to a broad range of important metrics.
measurements for computer software Do not rely on metrics to solve your problems.
Indicator -- a metric or combination of metrics Beware of people performing to metrics rather than
that provide insight into the software process, a product quality or safety.
software project, or the product itself. 47 48
Typical Causes of Product Measures of Software Quality:
Defects Correctness and Maintainability
Correctness is the degree to which the software
performs its required function. The most
common measure for correctness is defects per
KLOC
Maintainability is the ease that a program can be
corrected:
z adapted if the environment changes
z enhanced if the customer desires changes in
requirements
z based on the time-
time-oriented measure mean time to
change.
49 50
53 54
57 58
59 60
Software Project Estimation Software Project Estimation
Estimation critical -- software costs usually Precise estimation is difficult. So, make three
dominate project. estimates:
Categories of estimation techniques z optimistic
z Base estimates on similar projects z most likely
z Use simple decomposition (possibly in combination z pessimistic
with other methods
z Use one or more empirical models, I.e., Then combine as:
• For example # of people = LOC ÷(Duration*(LOC/PM))
61 62
65 66
Introduction Introduction
Risk management is a process that is used Robert Charette presented the following
extensively for various purposes conceptual definitions of risk:
z Recall earlier questions raised about safety, costs, z Risk concerns future happenings
etc. z Risk involves change, such as changes of mind,
According to “Webster’s Seventh New Collegiate opinion, action or places
Dictionary”, risk is defined as a: z Risk involves choice, and the uncertainty that choice
z “possibility of loss or injury” itself entails
z “the chance of loss or the perils to the subject matter Risk Characteristics :
of an insurance contract” and z uncertainty: may or may not happen
z “the degree of probability of such loss.” z loss: unwanted consequences
67 68
Introduction Types of risk strategies
73 74
75 76
Technology Risks: Process Risks
Does senior management support a written policy statement that
Is the technology to be built new to your
emphasizes a standard process for software development ?
organization? Is there a written description of the software process to be used?
used?
Does the SW interface with new or unproven Is the software process used for other projects ?
HW/SW? Is configuration management used to maintain consistency among
system/software requirements, design, code and test?
Do requirements demand creation of new Is a procedure followed for tracking subcontractor performance?
components ? Are facilitated application specification techniques used to aid in
communication between the customer and developer ?
Do requirements impose excessive performance
Are specific methods used for software analysis?
constraints ? Do you use specific method for data and architectural design?
Are software tools used to support the software analysis and
design?
Are tools used to create software prototypes?
Are quality/productivity metrics collected for all software projects?
projects?
77 78
79 80
Risk Components and Drivers Risk Identification Table
(U.S. Air Force guidelines)
COMPONENTS
Performance risk: the degree of uncertainty that
PERFORMANCE SUPPORT COST SCHEDULE
the product will meet its requirements and be fit CATEGORY
Failure to meet the requirements would Failure results in increased costs and
for its intended use 1 schedule delays with expected values in
result in mission failure excesss of $500k
CATASTROPHIC
Significant Nonresponsive or Significant financial Unachievable
degradation to
Cost risk: the degree of uncertainty that the 2 unsupportable shortages, budget
nonachievement of
technical performance software overrun likely delivery date
project budget will be maintained Failure to meet the requirements would Failure results in operational delays
1 degrade system performance to a point and/or increased costs with expected
where misssion success is questionable values of $100k to $500k
CRITICAL
Support risk:the degree of uncertainty that the Some reduction in Minor delays in Some shortage of Possible slippage in
2 software financial resources,
technical performance modifications possible overruns delivery date
software will be easy to correct, adapt, and Failure to meet the requirements would Cost, impacts, and/or recoverable
1 result in degradation of secondary schedule slips with expected value of $1
enhance MARGINAL misssion to $100K
Minimal to small Responsive Sufficient financial Realistic,
2 reduction in technical
Schedule risk: the degree of uncertainty that the performance software support resources achievable schedule
Failure to meet the requirements would Error in minor cost and/or schedule
1 create inconvenience or nonoperational impact with expected value of less than
NEGLIGIBLE
project schedule will be maintained impact $1k
No reduction in Easily supportable Possible budget Early achievable
2
technical performance software underrun delivery date
81 82
87 88
SEI Risk Management Paradigm Summary
89 90