Professional Documents
Culture Documents
Cheng
R
R
Advanced Software
Engineering
Dr. Cheng
Overview of Software Engineering
and Development Processes!
CSE870!
R
R
FYI!
Professor in CSE!
Here at MSU for > 20 years!
Software Engineering and Network Systems (SENS) Lab!
Digital Evolution (DEVOLab)!
BEACON: NSF Science and Technology Center (Evolution in Action)!
High-assurance systems!
Model-driven engineering!
Autonomic (self-adaptive) systems!
Recently, also working in following areas:!
Evolutionary-based computing!
Systems Biology!
Work extensively with industrial collaborators (e.g., Ford, GM,
Continental Automotive, Motorola, BAE Systems, Siemens)!
R
R
R
R
R
R
Questions addressed by
Software Engineering"
R
R
R
R
Objectives of Course!
R
R
Tentative Topics!
Requirements Engineering!
Unified Modeling Language (UML)!
Architectural Styles!
Design Patterns!
Security!
Aspect-Oriented Programming!
(Search-based Software Engineering)!
(Software Product Lines)!
CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering
R
R
Administrative Work!
Background Survey!
Initial Assessment!
Tentative Evaluation Mechanisms:!
Exams (2)!
40 %!
Homework/Design
Exercises!
25 %!
Mini-Project(s)!
35 %!
R
R
PAUSE!
10
R
R
Historical Perspective!
R
R
R
R
s/w costs
h/w costs
Time
R
R
R
R
R
R
R
R
New Scale!
Ultra-Large Scale SW-Intensive Systems
Healthcare Infrastructure
Ultra-Large-Scale Systems
Linda Northrop, ICSE 2007
17
R
R
New Scale!
Intelligent Transportation and Vehicle Systems
Ultra-Large-Scale Systems
Linda Northrop, ICSE 2007
18
R
R
R
R
Adaptation mechanisms:!
Application level!
Middleware level!
10
R
R
R
R
11
R
R
R
R
Definition: What?!
Development: How?!
Maintenance: Managing change!
Umbrella Activities: Throughout lifecycle!
24
12
R
R
Definition!
R
R
25
Definition (cont.)!
Project planning!
Allocate
resources!
Estimate costs !
Define work tasks!
Define schedule!
System analysis!
Allocate system
resources to!
Hardware!
Software!
Users!
26
13
R
R
Development!
Software design!
User interface design!
High-level design!
Define modular components!
Define major data structures!
Detailed design!
Define algorithms and procedural detail!
R
R
27
Development (cont.)!
Coding!
Develop code for
each module!
Integration!
Combine modules!
System testing!
Unit testing!
28
14
R
R
Maintenance!
R
R
29
Umbrella Activities!
30
15
R
R
Development Process!!
R
R
31
Coding"
Testing"
Maintenance"
32
16
R
R
Requirements"
Quick Design"
Prototype"
Evaluate"
Design"
R
R
33
Improve morale!
Partially running system provides visibility into a project!
34
17
R
R
Planning
Risk Analysis
Customer
Evaluation
Engineering
R
R
35
Process Models!
36
18
R
R
Level 1: Initial!
Level 4: Managed!
ad hoc!
success depends on
people!
Level 5: Optimizing!
continuous process
improvement!
built-in process
improvement !
Level 2: Repeatable!
track cost, schedule,
functionality!
Level 3: Defined!
use standardized
processes!
R
R
37
Communication!
Between customer and
developer!
Poor problem definition
is largest cause of failed
software projects!
Project characteristics!
Novelty!
Changing requirements!
5 x cost during
development!
up to 100 x cost during
maintenance!
Hardware/software
configuration!
Security requirements!
Real time requirements!
Reliability requirements!
38
19
R
R
Personnel
characteristics!
(cont.)
Management issues!
Ability!
Prior experience!
Communication skills!
Team cooperation!
Training!
Realistic goals!
Cost estimation!
Scheduling!
Resource allocation!
Quality assurance!
Version control!
Contracts!
Identification!
Acquisition!
R
R
39
Summary!
40
20
R
R
Bottom Line!
Need to !
Improve software quality!
Reduce software costs/risks!
41
21