Академический Документы
Профессиональный Документы
Культура Документы
Objectives
• Software productivity
• Estimation techniques
• Algorithmic cost modelling
• Project duration and staffing
Fundamental estimation questions
Algorithmic A m odel based on historical cost information that relates some software
cost modelling metric (usually its size) to the project cost is used. An estimate is made
of that metric and the model predicts the effort required.
Expert Several experts on the proposed software development techniques and
judgement the application domain are consulted. They each estimate the projec t
cost. These estimates are compared and discussed. The estimation
process iterates until an agreed estimate is reac hed.
Estimation by This technique is applicable when other projects in the same application
analogy domain have been completed. The cost of a new project is estimated by
analogy with these completed projects. Myers (Myers 1989) gives a
very clear description of this approach.
ParkinsonÕs ParkinsonÕsLaw states that work expands to fill the time avail able. The
Law cost is determined by avail able resources rather than by objective
assessment. If the software has to be delivered in 12 months and 5
people are available, the effort required is estimated to be 60 person-
months.
Pricing to win The software cost is estimated to be whatever the customer has
available to spend on the projec t. The estimated effort depends on the
customerÕs b udget and not on the software functionality.
Pricing to win
• Cost
• Effort
• Time
Motivation
• Effort Equation
– PM = C * (KDSI)n (person-months)
• where PM = number of person-month
• C = a constant,
• KDSI = thousands of "delivered source
instructions" (DSI) and
• n = a constant.
Productivity
• Productivity equation
– (DSI) / (PM)
• where PM = number of person-month
• Schedule equation
– TDEV = C * (PM)n (months)
• where TDEV = number of months estimated for
software development.
• Total Development Time Equation values
(TDEV)
Average Staffing
Effort
Size Table
Development Time
Lines of Code
Estimation Process
Number of Use Case Number of Personnel
12. Number of decisions (if, case statements) summed over each routine
or method
13. Lines of Code, summed over each routine or method
Project Size – Metrics(.)
• Function Points
– FP=UFP*(0.65+0.01*DI)= 55*(0.65+0.01*30)=52.25
Mode a b
• Architectural transformation
– This is a more radical approach to software
change then maintenance as it involves making
significant change to the architecture of the
system.
• Software re-engineering
– This is different from other strategies in that no
new functionality is added to the system.
– System re-engineering may involve some
structural modifications but dose not usually
involves major architectural change.
Types of Software Maintenance
Software Maintenance
functionality
software
addition or
adaption
modification
(18%)
(65%)
• Corrective,
• Adaptive,
• Perfective,
• Inspection.
Types of Maintenance
• Corrective:
• Adaptive:
• Perfective:
• Inspection:
• Risk Management
• Change Management
• Version Control
• Configuration Management
What is risk?
Undesirable outcome.
Missed opportunity.
Anatomy of a risk
Probability of occurrence
Risk
Identify risks
Track risks
Identification: Quantification
Adapted from Managing Risk: Methods for Software Systems Development by Elaine M. Hall, Addison-Wesley 1998
Analysis: Documentation
Header
Assessment
Statement Brief description of risk
Action Plan Context When, where, how, why
Analysis Impact on project
Tracking
Resolution
Planning/Tracking: Documentation
Header
Assessment Scenario What would happen?
Header
Assessment
Action Plan Software Engineer Signature
2: Risks are usually recorded, tracked and handled as they are discovered
Common
Risks
Checklists
Standard
Risk
Risk Template
Ranking Risk
Database
RiskTemplate With
Mgt. Statistics
Plan
Template
Software risks
Risk Affects Description
Staff turnover Project Experienced staff will leave the project before it is finished.
Management change Project There will be a change of organisational management with
different priorities.
Hardware unavailability Project Hardware that is essential for the projec t will not be
deli vered on schedule.
Requirements change Project and There will be a larger number of changes to the
product requirements than anticipated.
Specification delays Project and Specifications of essential interfaces are not available on
product schedule
Size underestimate Project and The size of the system has been underestimated.
product
CAS E tool under- Product CAS E tools which support the project do not perform as
performance anticipated
Technology change Business The underlying technology on which the system is built is
superseded by new technology.
Product competition Business A competitive product is marketed before the system is
completed.
The risk management process
Risks and risk types
Risk type Possible risks
Technology The database used in the system canno t process as many transactions per second
as expected.
Software components that should b e reused contain defects that limit their
func tionality.
People It is impossible to recruit staff with the skills required.
Key staff are ill and unava ilable at critical times.
Requi red training for staff is not av ailable.
Organ isational The organ isation is restructured so that different manag ement are responsible for
the project.
Organ isational financial problems force reductions in the project budge t.
Tools The code generated by CASE tools is inefficient.
CASE tools canno t be integrated.
Requi rements Changes to requirements that require major design rewo rk are proposed.
Customers fail to unde rstand the impact of requirements change s.
Estimation The time required to deve lop the software is unde restimated.
The rate of defect repair is underestimated.
The size of the software is unde restimated.
Risk analysis (i)
Risk Strategy
Organ isational Prepar e a b riefing document for senior manage ment
financ ial problems showing how th e project is making a v ery important
contribution to the goals of the bus iness.
Recruitment Alert customer of potential difficulties and the
problems possibility of delays, inves tigate buying- in
components.
Staff illness Reorganise team so that there is more ove rlap o f work
and people therefore understand e ach other’s jobs.
Defective Replace potentially defective components with bough t-
components in components of known reliability.
Risk management strategies (ii)
Risk Strategy
Requi rements Derive traceability information to assess requirements
chang es chang e impac t, maximise information hiding in the
design.
Organ isational Prepar e a b riefing document for senior manage ment
restructuring showing how th e project is making a v ery important
contribution to the goals of the bus iness.
Database Inves tigate the possibility of buy ing a higher-
performanc e performanc e database.
Unde restimated Inves tigate buying in components, inve stigate use of a
deve lopment time program generator
Risk indicators
116
What is Version Control?
• Terms
– VCS, CVS, SVN, RCS
• A versioned backup system
– Restore project to a previous, working state
• A synchronized control system
– You can’t edit the same files I am editing
– Well, not without making sure it works
What is Version Control?
• SubVersion (SVN)
is a version control system
Why version control?
• Scenario 1:
– Your program is working
– You change “just one thing”
– Your program breaks
– You change it back
– Your program is still broken--why?
119
Why version control? (part 2)
120
Version control for teams
• Scenario:
– You change one part of a program--it works
– Your co-worker changes another part--it works
– You put them together--it doesn’t work
– Some change in one part must have broken something
in the other part
– What were all the changes?
121
Teams (part 2)
• Scenario:
– You make a number of improvements to a class
– Your co-worker makes a number of different
improvements to the same class
• How can you merge these changes?
122
What does it look like?
Commit my
changes so “OK” or “Your files are out of date”
everyone can
see them
“OK”
Create a
separate
version: “Release
1.0.joe” for local “OK”
testing
Release “OK”
1.5-Joe
causes
injuries!
133
Create :Create a new, empty
repository.
134
Checkout : Create a working
copy.
135
Commit
136
Log message
137
Update
138
Update
140
Edit : Modify a file.
141
Delete :Delete a file or directory.
142
Rename: Rename a file or
directory.
143
Move :Move a file or directory.
144
Status
146
Revert
147
Log: Show the history of
changes to the repository.
149
Branch : Create another line of
development.
150
Merge : Apply changes from one
branch to another.
151
Resolve :Handle conflicts
resulting from a merge.
152
Lock : Prevent other people
from modifying a file.
153
How Versions are Stored
◼ Reverse delta
◼ Mixed delta
Version Control Models (1/3)
Problems:
◼ Forget to unlock
◼ Deadlock
Figure from svn-
book
Version Control Models (3/3)
158
jDiff
159
jDiff
160
sccs
161
CVS
162
Create a Repository
• Determine Structure
• Determine Permissions
Import or Checkout
• Checkout:
• receives a copy of an entire project from the SVN server
• (source files, project & make files, resource files, etc.)
• Update:
• receives copies of individual files or folders on the server
and merges them with your current copy (locally)
• Commit:
• sends an updated file (your local copy) to the SVN server where it is
incorporated into the original project database; a new version number is
assigned not the entire project
• Add:
• notifies SVN of a new file or folder that needs to be added to the existing
project (only if SVN is aware of a file, can you commit the file)
Further Considerations
Client
Client Server
Client
Subversion Client-Server VCS
Peer
Peer
Peer
SOFTWARE
CONFIGURATION MANAGEMENT (SCM)
What is Configuration
Management?
• To manage:
– Many people working on the same code.
– Projects delivered in several releases
(builds).
– Rapid evolution of software and hardware.
– Project surveillance:
• i.e. project’s status, bugs, features, etc.
– Concurrent support and development.
– Stress time requirements of projects.
What Are The Changes?
changes in
business requirements
changes in
technical requirements
changes in
user requirements other
documents
software models
Project
Plan
data
Test
code
184
The Software Configuration
programs documents
The pieces
data
185
SCM Elements
reporting
configuration auditing
version control
change control
identification
SCIs
188
Software Process Improvement
(SPI)
Review
SPI IS
– PROCESS TO IMPROVE SOFTWARE
– DEVELOPED BY SE
– IDENTIFIES STEPS PRODUCT MUST GO THROUGH
– APPLICABLE THROUGHOUT SOFTWARE LIFE
CYCLE
Capability Maturity Model (CMM)
Review
Identifies
• Maturity Levels
• Key Process Areas
• Key Elements
KEY PROCESS AREAS (KPAs)
As Defined by
SOFTWARE ENGINEERING INSTITUTE (SEI)
“SOFTWARE ENGINEERING AND MANAGEMENT PRACTICES”
LEVEL 1 - INITIAL
LEVEL 2 -REPEATABLE
REQUIREMENTS PROJECT SUBCONTRACT SOFTWARE SOFTWARE
PROJECT QUALITY
MANAGEMENT TRACKING & MANAGEMENT CONFIGURATION
PLANNING ASSURANCE
OVERSIGHT MANAGEMENT
LEVEL 3 - DEFINED
LEVEL 4 - MANAGED
PROCESS
MEASUREMENT QUALITY
& MANAGEMENT
ANALYSIS
LEVEL 5 - OPTIMIZING
DEFECT PROCESS
TECHNOLOGY CHANGE
PREVENTION INNOVATION MANAGEMENT
System Modification Scenario (SMS)
Review
PROBLEM CHANGE
CHANGE/ (PTR) (SCR) FUNCTIONAL REQUIREMENTS
PROBLEM DOCUMENTATION INITIATION, REQ’MENTS ANALYSIS SPECIFICATION
DEFINITION & REVIEW, DEFINITION PREPARATION & IMPACT
DISPOSITION APPROVAL, ANALYSIS
& RANKING
CHANGE DEVELOPMENT
System/Subsystem
DETAILED Design UNIT CODE
Release SYSTEM DETAILED & COMPUTER DETAILED DETAILED &
DOCUMENTATION SAT SQT SIT UT
Planning DEFINITION SOFTWARE UNIT UNIT
MODIFICATION DEFINITION SPECIFICATIONS DEFINITION DEFINITION TEST(UT)
DEVELOPMENT
IDENTIFICATION CONTROL
STATUS
ACCOUNTING AUDIT
Configuration Identification
IDENTIFICATION
IDENTIFICATION
The first function of
CM:
A/P A/R
CHAPTER 1 SECTION 1
CHAPTER n SECTION n
ADD
UPDATE
DELETE
Configuration Control
Second Function of
Configuration Management CONTROL
STATUS
ACCOUNTING
Configuration Audit
Fourth Function of Configuration
Management
• Verifies SCR
• Verifies each CI conforms to required
specifications
• Types of Audit
– Configuration
–Functional Configuration
–Physical Configuration
– Internal AUDIT
Software configuration
management activities are
planned.
CMM SCM
Activities to support Goal 1
PROBLEM CHANGE
CHANGE/ (PTR) (SCR) FUNCTIONAL REQUIREMENTS
PROBLEM DOCUMENTATION INITIATION, REQ’MENTS ANALYSIS SPECIFICATION
DEFINITION & REVIEW, DEFINITION PREPARATION & IMPACT
DISPOSITION APPROVAL, ANALYSIS
& RANKING
CHANGE DEVELOPMENT
System/Subsystem
DETAILED Design UNIT CODE
Release SYSTEM DETAILED & COMPUTER DETAILED DETAILED &
DOCUMENTATION SAT SQT SIT UT
Planning DEFINITION SOFTWARE UNIT UNIT
MODIFICATION DEFINITION SPECIFICATIONS DEFINITION DEFINITION TEST(UT)
DEVELOPMENT
RELEASE POST
EXECUTION EXECUTION EXECUTION IMPLEMEN- RELEASE
& & & TATION IMPLEMEN-
CERTIFICATION CERTIFICATION CERTIFICATION TATION
SCM Plan
• Defines:
– What SCM activities are to be accomplished
– How SCM activities are to be accomplished
– Who is responsible for performing SCM activities
– When SCM activities are to be accomplished
– What resources are required to accomplish SCM
activities
– When the SCM Plan shall be reviewed, updated and
approved
S C M P
CM Terminology
P S C
C RELEASE
T C C
I
R R O
S
C • Formalizes change request
R
• Identifies affected components
• Defines the change requirements
• Provides the associated Software Change
Specification (SCS).
• Impacts Configuration Items (CI)
– One CI or Many CIs
– Requires a CCO
PTR / SCR Process Overview
C C
C identifies
I
O
P S
T change
C resolution
R R
C C
C identifies
close/ I
no change O
TEST DISCREPANCY REPORT (TDR)
• Identifies:
C
C • Configuration Item (CI) impacted
O
– a CCO addresses only one CI
C
I
• Is a separate single item of the Software
• Is controlled
• Examples:
– Functional Descriptions, Software Code, Test
Entities, Standard Operating Procedures,
Training Manuals, Etc..
Release
RELEASE
S C
C C C
R O I
Typical SCR - CCO - CI Relationship
S C
C C C
R O I
C
C
O
C
C C
O I
C
S C
C O
R C
C C
O I
stored
SCIs
extracted
SCM SCIs
controls
BASELINES :
System Specification
Software Requirements
Design Specification
Source Code
Test Plans/Procedures/Data
Operational System
222
Software Baseline Library
Data model
Design specification
data design
architectural design
module design
interface design
Component N
interface description
algorithm description
Test specification PDL
test plan
test procedure
test cases
Source code
224
Effective SCM Benefits
• Changes to Configuration Items are:
– properly documented and approved
– based on agreed upon requirements
– traced through design and development
– fully integrated and tested
– implemented into a quality release
– well arranged throughout system’s life cycle
• Status is easily determined at any time
• Facilitates correction action, if required
Configuration Management’s First Role
in the SMS
CHANGE INITIATION PHASE
Purpose: Define, record and track the initial actions to begin the
cycle of change to an AIS by defining the problem or change and
creating a Problem Trouble Report (PTR) or a System Change
Request (SCR).
Subphases:
• Problem (PTR) Documentation & Disposition
• Change (SCR) Initiation, Review, Approval, & Ranking
Configuration Management’s Second
Role in the SMS
CHANGE APPROVAL AND PLANNING PHASE
Subphases:
• Release Planning
Configuration Management’s Third
Role in the SMS
CHANGE DEVELOPMENT PHASE
Subphases:
• Release Planning
• System/Subsystem Design & CSU Specifications Development
• Unit Coding & Unit Testing Tracking and Oversight
• Software Integration Test (SIT) Execution and Certification
• Software Qualification Test (SQT) Execution and Certification
• Software Acceptance Test (SAT) Execution and Certification
Configuration Management’s Final Role
in the SMS
CHANGE IMPLEMENTATION PHASE
Subphases:
• Release Implementation
SCM Repository
Project
Management
p ro j e ct e st im at e s Cont ent
p ro j e ct sch e d u le
SCM re q u ire m e n t s
Pro j e ct Plan
ch an g e re q u e st s Document s SCM/ SQA Plan
ch an g e re p o rt s
Sy st e m Sp e c
SQA re q u ire m e n t s
Re q u ire m e n t s Sp e c
p ro j e ct re p o rt s/ au d it re p o rt s
De sig n Do cu m e n t
p ro j e ct m e t rics
Te st Plan an d Pro ce d u re
231 Su p p o rt d o cu m e n t s
Use r m an u al
Repository Features
• Versioning.
– saves all of these versions to enable effective management of
product releases and to permit developers to go back to previous
versions
• Dependency tracking and change management.
– The repository manages a wide variety of relationships among the
data elements stored in it.
• Requirements tracing.
– Provides the ability to track all the design and construction
components and deliverables that result from a specific
requirement specification
• Configuration management.
– Keeps track of a series of configurations representing specific
project milestones or production releases. Version management
provides the needed versions, and link management keeps track
of interdependencies.
• Audit trails.
232
– establishes additional information about when, why, and by whom
changes are made.
SCM – How it is accomplished?
Version control
developer evaluates
235
Change Control Process-II
assign people to SCIs
check-out SCIs
Change
Requests SQA
Plan
SCIs
SCM Audit
238
Status Accounting
Change
Change Reports
Requests ECOs
SCIs
Status Accounting
Reporting
239
SCM for Web Engineering-I
• Content.
– A typical WebApp contains a vast array of content—text, graphics, applets,
scripts, audio/video files, forms, active page elements, tables, streaming data,
and many others.
– The challenge is to organize this sea of content into a rational set of
configuration objects and then establish appropriate configuration control
mechanisms for these objects.
• People.
– Because a significant percentage of WebApp development continues to be
conducted in an ad hoc manner, any person involved in the WebApp can
(and often does) create content.
240
SCM for Web Engineering-II
• Scalability.
– As size and complexity grow, small changes can have far-reaching and
unintended affects that can be problematic. Therefore, the rigor of
configuration control mechanisms should be directly proportional to
application scale.
• Politics.
– Who assures that quality control processes have been followed before
information is published to the site?
– Who is responsible for making changes?
– Who assumes the cost of change?
241
Change Management for WebApps-I
classify t he
request ed change
make changes
design, const ruct , t est
publish t o WebApp
243