Introduction To Software Engineering (2/2)
Introduction To Software Engineering (2/2)
Engineering (2/2)
Moonzoo Kim
CS Division, EECS Dept.
KAIST
CS550 Intro. to SE 2
Spring 2007
Sources of Errors in S/W
Developments
Functionality &
Logic design Misunderstanding
& Misunderstanding 15%
20%
Documentation
& Others 35%
Coding
30%
CS550 Intro. to SE 3
Spring 2007
Ex. Requirement on Retail Chain
Management Software
CS550 Intro. to SE 4
Spring 2007
Scope of S/W Engineering
Historical Aspects
Economic Aspects
Maintenance Aspects
Specification & Design Aspects
Team Programming Aspects
CS550 Intro. to SE 5
Spring 2007
Historical Aspects
CS550 Intro. to SE 6
Spring 2007
Economic Aspects
CS550 Intro. to SE 7
Spring 2007
Maintenance Aspects
Maintenance
67 %
Requirements 3%
Specification 4%
Planning 2%
Design 6%
Module coding 5%
Module Testing 7%
Integration 6%
CS550 Intro. to SE 8
Spring 2007
Specification and Design Aspects
Requirements
Specification
Planning
Design
Implementation
Integration
Maintenance
CS550 Intro. to SE 10
Spring 2007
Team Programming Aspect (Cont.)
(From programming to sw engineering)
Programming in early days
The problem is well understood.
Mostly scientific applications.
By a person, who is an expert in that area.
User = programmer = maintainer
CS550 Intro. to SE 11
Spring 2007
Team Programming Aspect (Cont.)
Team project started in late 1960's
IBM360 Operating system
Software crisis observed
``Software Engineering'' coined
Solutions to software crisis
Management techniques
Team organization
Chief programmer team
Democratic team
Hierarchical team
Better languages and tools
Standards
==> Applying engineering approach
CS550 Intro. to SE 12
Spring 2007
Team Programming Aspect (Cont.)
CS550 Intro. to SE 13
Spring 2007
Three Elements of S/W Development
Process
Technology Resources
Quality/Productivity
Improvement
Product
Product Product
CS550 Intro. to SE 14
Spring 2007
Special Software
Domain:Commercial
Electronics and
Embedded System
CS550 Intro. to SE
Spring 2007
What’s Different About Embedded
Systems
Embedded systems have different design constraints
than general purpose systems
Cost may matter more than speed
Long life cycle may dominate design decision
Reliability/safety may constraint design choice
Because applications are often unique, software
development may wait for hardware to become available
need for simulator/emulators/etc
Time to market constraints
Rapid redesign for changing form factors
Rapid redesign for changing control algorithms
CS550 Intro. to SE 16
Spring 2007
Software Characteristics by Domain
CS550 Intro. to SE 17
Spring 2007
Software Characteristics by Domain
CS550 Intro. to SE 18
Spring 2007
Software Characteristics by Domain
CS550 Intro. to SE 19
Spring 2007
Software Characteristics by Domain
CS550 Intro. to SE 20
Spring 2007
Software Engineering Applicability
CS550 Intro. to SE 21
Spring 2007
General Obstacles
CS550 Intro. to SE 22
Spring 2007