Software Engineering Acknowledgments: Everyone!
Software Engineering Acknowledgments: Everyone!
Software Engineering
CSE470
(Spring 2002)
Instructor:
Dr. W. McUmber
[email protected]
3100 EB
G. Coombs
L. Dillon
M. Heimdahl
R. Stephenson
National Science Foundation:
01-intro
01-intro
Improve quality
Reduce costs
01-intro
To improve maintainability
01-intro
Historical Perspective
So..
Everyone!
01-intro
01-intro
s/w costs
Time
01-intro
01-intro
hardware
01-intro
Course project
Optimizing compiler
01-intro
10
MS Word, Excel
H/W advances
Rising expectations
Feature explosion
11
01-intro
12
aging software
Ariane Missile
Therac
01-intro
01-intro
Overview of Course
Structure of Course
15
01-intro
14
16
Software Engineering
A Brief Introduction
01-intro
17
Definition: What?
Development: How?
01-intro
18
Definition
Definition
Coding
Requirements
Application domain
Required functionality
Required performance
User interface
Testing
Design
19
01-intro
01-intro
Definition (cont.)
Development
Project planning
System analysis
Allocate resources
Estimate costs
Define work tasks
Define schedule
Allocate system
resources to
Hardware
Software
Users
Software design
High-level design
Detailed design
21
01-intro
Coding
Combine modules
module
System testing
Unit testing
01-intro
22
Maintenance
Integration
01-intro
Development (cont.)
20
23
New hardware
01-intro
24
Umbrella Activities
Maintenance
Development
Defintiion
of components
25
01-intro
Whats a Methodology or
Process Model
80
70
60
50
40
30
20
10
0
Cost
Delivery
Testing
Code
Requirements
Design
27
01-intro
26
01-intro
01-intro
Requirements
Requirements
Design
Quick Design
Prototype
Coding
Evaluate
Testing
Design
Maintenance
01-intro
29
01-intro
30
Planning
Improve morale
Customer
Evaluation
31
01-intro
subprocesses
Level 1: Initial
Level 4: Managed
Level 5: Optimizing
Level 2: Repeatable
32
Engineering
01-intro
Process Models
*
Risk Analysis
Level 3: Defined
continuous process
improvement
built-in process improvement
33
01-intro
Communication
Project characteristics
01-intro
Novelty
Changing requirements
Personnel characteristics
Hardware/software
configuration
Security requirements
Real time requirements
Reliability requirements
34
01-intro
Ability
Prior experience
Communication skills
Team cooperation
Training
Management issues
35
Identification
Acquisition
01-intro
(cont.)
Realistic goals
Cost estimation
Scheduling
Resource allocation
Quality assurance
Version control
Contracts
36
Summary
Definition (what)
Development (how)
Maintenance (change)
Bottom Line
Need to
Improve software quality
Reduce software costs/risks
37
01-intro
01-intro
38
Systems Engineering
01-intro
39
Customer
goals;
constraints
Allocate
functions to
system elements
Problem solving
01-intro
01-intro
40
assured?)
Itemize
Functions
Analyze
Functions
41
01-intro
42
Hardware and
Hardware Engineering
understanding of problem)
test
results
Well defined
01-intro
43
Hardware and
Hardware Engineering
Hardware Engineering
Characteristics:
44
01-intro
skip
01-intro
45
Software and
Software Engineering
Application_Software:
Definition phase:
01-intro
47
scope of project,
risk,
resource identification
cost and schedule estimates
System Software:
46
01-intro
Requirements Specification
48
Development Phase:
Modularity Criteria:
Design
Design Specification
Coding (appropriate programming language or CASE tool)
Testing software:
Testing Plan
49
01-intro
Uses Relation
*
M1
50
01-intro
Design Issues
M3
M2
M5
M6
M4
M7
M8
Mx
51
01-intro
01-intro
Design Heuristics
*
Reduce complexity
Reduce redundancy
Improve consistency
01-intro
52
53
54
Design Postprocessing
Design Postprocessing
*
Documentation is
critical
Data structures
description
Module Foo
;kskf;ldskfs;dfsdf
sdfjs;fjsldfksfd
skdjflsdjfsfjsdf
j3098wodfjsldfjs
sdfjslkdfjsldkfjsldkfjsdf
sdjflsdfjslkdfjslkdfj
sdjfsldfjsldkfjsldf
sjdflksjdfljkwruswdfusdf
sdhjsldfhsdfsldfjs
\98sf7sd89vhjsdvsdaofusd0f
sdhjsdfhskdjfhskdf
sdjfslhfkwfhiahjalsfjd
sdhfskdfhskdfjsfdk
sdhfksdjfhksdjfhskdf
shdfksdhfksdjfksdf
sdfkjhfjsdhfksdfhskdf
Interface
description
Pre-conditions
Design restrictions
Post-conditions
01-intro
55
01-intro
Narrative
Perform Review
56
Design Optimization
Objectives:
01-intro
57
10