Introduction to Software Engineering (2/2) -...

22
CS550 Intro. to SE Spring 2007 Introduction to Software Introduction to Software Engineering (2/2) Engineering (2/2) Moonzoo Kim Moonzoo Kim CS Division, EECS Dept. CS Division, EECS Dept. KAIST KAIST (slides from CS550 (slides from CS550 06 taught by 06 taught by prof prof . D. . D. Bae Bae ) )

Transcript of Introduction to Software Engineering (2/2) -...

Page 1: Introduction to Software Engineering (2/2) - swtv.kaist.ac.krswtv.kaist.ac.kr/courses/cs550-07/se_intro2.pdf · CS550 Intro. to SE Spring 2007 Introduction to Software Engineering

CS550 Intro. to SE Spring 2007

Introduction to Software Introduction to Software Engineering (2/2)Engineering (2/2)

Moonzoo KimMoonzoo KimCS Division, EECS Dept.CS Division, EECS Dept.

KAISTKAIST

(slides from CS550 (slides from CS550 ‘‘06 taught by 06 taught by profprof. D. . D. BaeBae))

Page 2: Introduction to Software Engineering (2/2) - swtv.kaist.ac.krswtv.kaist.ac.kr/courses/cs550-07/se_intro2.pdf · CS550 Intro. to SE Spring 2007 Introduction to Software Engineering

2CS550 Intro. to SE Spring 2007

Software Development ProcessSoftware Development Process

A SW Development Framework for SW with High AssuranceA SW Development Framework for SW with High Assurance

Formalrequire-

mentSpec.

Formalsystem

modeling

Model analysis/

verification

Model-assisted

codegeneration

Model-basedtesting

Runtimemonitoring

andchecking

SystemSystemdesigndesign

RequirementRequirementanalysisanalysis

Design Design analysisanalysis

ImplementImplement--ationation

TestingTesting MonitoringMonitoring

Page 3: Introduction to Software Engineering (2/2) - swtv.kaist.ac.krswtv.kaist.ac.kr/courses/cs550-07/se_intro2.pdf · CS550 Intro. to SE Spring 2007 Introduction to Software Engineering

3CS550 Intro. to SE Spring 2007

Sources of Errors in S/W Sources of Errors in S/W DevelopmentsDevelopments

Functionality &Misunderstanding

15%

Documentation& Others 35%

Coding30%

Logic design& Misunderstanding20%

Page 4: Introduction to Software Engineering (2/2) - swtv.kaist.ac.krswtv.kaist.ac.kr/courses/cs550-07/se_intro2.pdf · CS550 Intro. to SE Spring 2007 Introduction to Software Engineering

4CS550 Intro. to SE Spring 2007

Ex. Requirement on Ex. Requirement on RRetail Chain etail Chain Management SoftwareManagement Software

Find ambiguous points in the following Find ambiguous points in the following requirementrequirement

If the sales for the current month are below If the sales for the current month are below the target sales, then a report is to be printed, the target sales, then a report is to be printed,

unless the difference between target sales and unless the difference between target sales and actual sales is less than half of the difference actual sales is less than half of the difference between target sales and actual sales in the between target sales and actual sales in the previous month previous month or if the difference between target sales and actual or if the difference between target sales and actual sales for the current month is under 5 percent.sales for the current month is under 5 percent.

Page 5: Introduction to Software Engineering (2/2) - swtv.kaist.ac.krswtv.kaist.ac.kr/courses/cs550-07/se_intro2.pdf · CS550 Intro. to SE Spring 2007 Introduction to Software Engineering

5CS550 Intro. to SE Spring 2007

Scope of S/W EngineeringScope of S/W Engineering

Historical AspectsHistorical AspectsEconomic AspectsEconomic AspectsMaintenance AspectsMaintenance AspectsSpecification & Design AspectsSpecification & Design AspectsTeam Programming AspectsTeam Programming Aspects

Page 6: Introduction to Software Engineering (2/2) - swtv.kaist.ac.krswtv.kaist.ac.kr/courses/cs550-07/se_intro2.pdf · CS550 Intro. to SE Spring 2007 Introduction to Software Engineering

6CS550 Intro. to SE Spring 2007

Historical AspectsHistorical Aspects

1967, A NATO group coined the term " Software 1967, A NATO group coined the term " Software Engineering"Engineering"1968, NATO conference concluded that software 1968, NATO conference concluded that software engineering should use the philosophies and paradigms engineering should use the philosophies and paradigms of established of established engineering disciplinesengineering disciplines, to solve the , to solve the problem of software crisisproblem of software crisis

Page 7: Introduction to Software Engineering (2/2) - swtv.kaist.ac.krswtv.kaist.ac.kr/courses/cs550-07/se_intro2.pdf · CS550 Intro. to SE Spring 2007 Introduction to Software Engineering

7CS550 Intro. to SE Spring 2007

Economic AspectsEconomic Aspects

Relationship between computer science and software Relationship between computer science and software engineering engineering

cfcf: chemistry and chemical engineering: chemistry and chemical engineering

Software engineer is intended in only those techniques Software engineer is intended in only those techniques which make sound which make sound economic senseeconomic sense, while computer , while computer scientists investigate a variety of ways of producing scientists investigate a variety of ways of producing software, some good and some badsoftware, some good and some bad

Page 8: Introduction to Software Engineering (2/2) - swtv.kaist.ac.krswtv.kaist.ac.kr/courses/cs550-07/se_intro2.pdf · CS550 Intro. to SE Spring 2007 Introduction to Software Engineering

8CS550 Intro. to SE Spring 2007

Maintenance AspectsMaintenance Aspects

Maintenance67 %

Requirements 3%Specification 4%

Planning 2%

Module coding 5%

Module Testing 7%

Integration 6%

Design 6%

Page 9: Introduction to Software Engineering (2/2) - swtv.kaist.ac.krswtv.kaist.ac.kr/courses/cs550-07/se_intro2.pdf · CS550 Intro. to SE Spring 2007 Introduction to Software Engineering

9CS550 Intro. to SE Spring 2007

Specification and Design AspectsSpecification and Design Aspects

0 50 100 150 200 250

Requirements

Specification

Planning

Design

Implementation

Integration

Maintenance

Approximate relative cost to detect and correct a fault

Page 10: Introduction to Software Engineering (2/2) - swtv.kaist.ac.krswtv.kaist.ac.kr/courses/cs550-07/se_intro2.pdf · CS550 Intro. to SE Spring 2007 Introduction to Software Engineering

10CS550 Intro. to SE Spring 2007

Team Programming AspectTeam Programming Aspect

ParnasParnas, "Multi, "Multi--person construction of person construction of multiversionmultiversionsoftware."software."

Programming : personal activityProgramming : personal activityS/W engineering : team activityS/W engineering : team activity

Page 11: Introduction to Software Engineering (2/2) - swtv.kaist.ac.krswtv.kaist.ac.kr/courses/cs550-07/se_intro2.pdf · CS550 Intro. to SE Spring 2007 Introduction to Software Engineering

11CS550 Intro. to SE Spring 2007

Team Programming Aspect (Cont.) Team Programming Aspect (Cont.) (From programming to (From programming to swsw engineering)engineering)

Programming in early daysProgramming in early daysThe problem is well understood.The problem is well understood.Mostly scientific applications.Mostly scientific applications.By a person, who is an expert in that area.By a person, who is an expert in that area.User = programmer = maintainerUser = programmer = maintainer

User and programmer separationUser and programmer separationUser: specify the problem(tasks)User: specify the problem(tasks)Programmer: interpret and translate into codeProgrammer: interpret and translate into code

Page 12: Introduction to Software Engineering (2/2) - swtv.kaist.ac.krswtv.kaist.ac.kr/courses/cs550-07/se_intro2.pdf · CS550 Intro. to SE Spring 2007 Introduction to Software Engineering

12CS550 Intro. to SE Spring 2007

Team Programming Aspect (Cont.)Team Programming Aspect (Cont.)

Team project started in late 1960'sTeam project started in late 1960'sIBM360 Operating systemIBM360 Operating systemSoftware crisis observedSoftware crisis observed``Software Engineering'' coined``Software Engineering'' coined

Solutions to software crisisSolutions to software crisisManagement techniquesManagement techniquesTeam organizationTeam organization

Chief programmer teamChief programmer teamDemocratic teamDemocratic teamHierarchical teamHierarchical team

Better languages and toolsBetter languages and toolsStandardsStandards==> Applying engineering approach==> Applying engineering approach

Page 13: Introduction to Software Engineering (2/2) - swtv.kaist.ac.krswtv.kaist.ac.kr/courses/cs550-07/se_intro2.pdf · CS550 Intro. to SE Spring 2007 Introduction to Software Engineering

13CS550 Intro. to SE Spring 2007

Team Programming Aspect (Cont.)Team Programming Aspect (Cont.)

Requirements in the programmingRequirements in the programming--inin--thethe--smallsmallGood programming skillGood programming skillSkilled in data structures and algorithmsSkilled in data structures and algorithmsFluent in programming languagesFluent in programming languages

Requirements in the programmingRequirements in the programming--inin--the large the large Needs communication skills and interpersonal skillsNeeds communication skills and interpersonal skillsBe familiar with design approachesBe familiar with design approachesBe able to translate vague requirements and desires into preciseBe able to translate vague requirements and desires into precisespec.spec.Be able to build and use a model of the applicationBe able to build and use a model of the applicationNeeds ability to schedule workNeeds ability to schedule work

Page 14: Introduction to Software Engineering (2/2) - swtv.kaist.ac.krswtv.kaist.ac.kr/courses/cs550-07/se_intro2.pdf · CS550 Intro. to SE Spring 2007 Introduction to Software Engineering

14CS550 Intro. to SE Spring 2007

Three Elements of S/W DevelopmentThree Elements of S/W Development

Technology Resources

Process

Quality/Productivity Quality/Productivity ImprovementImprovement

ProductProduct ProductProduct

ProductProduct

Page 15: Introduction to Software Engineering (2/2) - swtv.kaist.ac.krswtv.kaist.ac.kr/courses/cs550-07/se_intro2.pdf · CS550 Intro. to SE Spring 2007 Introduction to Software Engineering

CS550 Intro. to SE Spring 2007

Special Software Special Software Domain:Commercial Domain:Commercial

Electronics and Electronics and Embedded SystemEmbedded System

Page 16: Introduction to Software Engineering (2/2) - swtv.kaist.ac.krswtv.kaist.ac.kr/courses/cs550-07/se_intro2.pdf · CS550 Intro. to SE Spring 2007 Introduction to Software Engineering

16CS550 Intro. to SE Spring 2007

WhatWhat’’s Different About Embedded s Different About Embedded SystemsSystems

Embedded systems have different design constraints Embedded systems have different design constraints than general purpose systemsthan general purpose systems

Cost may matter more than speedCost may matter more than speedLong life cycle may dominate design decisionLong life cycle may dominate design decisionReliability/safety may constraint design choiceReliability/safety may constraint design choice

Because applications are often unique, software Because applications are often unique, software development may wait for hardware to become availabledevelopment may wait for hardware to become available

need for simulator/emulators/etcneed for simulator/emulators/etc

Time to market constraintsTime to market constraintsRapid redesign for changing form factorsRapid redesign for changing form factorsRapid redesign for changing control algorithmsRapid redesign for changing control algorithms

Page 17: Introduction to Software Engineering (2/2) - swtv.kaist.ac.krswtv.kaist.ac.kr/courses/cs550-07/se_intro2.pdf · CS550 Intro. to SE Spring 2007 Introduction to Software Engineering

17CS550 Intro. to SE Spring 2007

Software Characteristics by DomainSoftware Characteristics by Domain

Ordinary IT Software System(e.g. systems developed by Ordinary IT Software System(e.g. systems developed by SI organizations)SI organizations)

Size : Very LargeSize : Very LargeDomain consistency: LowDomain consistency: LowNew technology sensitivity: HighNew technology sensitivity: HighHardware dependency: Low Hardware dependency: Low TimeTime--toto--market pressure: Lowmarket pressure: Low

Page 18: Introduction to Software Engineering (2/2) - swtv.kaist.ac.krswtv.kaist.ac.kr/courses/cs550-07/se_intro2.pdf · CS550 Intro. to SE Spring 2007 Introduction to Software Engineering

18CS550 Intro. to SE Spring 2007

Software Characteristics by DomainSoftware Characteristics by Domain

Commercial Software(e.g. systems developed by Commercial Software(e.g. systems developed by software vendors)software vendors)

Size : LargeSize : LargeDomain consistency: HighDomain consistency: HighNew technology sensitivity: HighNew technology sensitivity: HighHardware dependency: Low Hardware dependency: Low TimeTime--toto--market pressure: Moderatemarket pressure: Moderate

Page 19: Introduction to Software Engineering (2/2) - swtv.kaist.ac.krswtv.kaist.ac.kr/courses/cs550-07/se_intro2.pdf · CS550 Intro. to SE Spring 2007 Introduction to Software Engineering

19CS550 Intro. to SE Spring 2007

Software Characteristics by DomainSoftware Characteristics by Domain

Controller Systems/Automation SystemsController Systems/Automation SystemsSize : Medium Size : Medium Domain consistency: HighDomain consistency: HighNew technology sensitivity: LowNew technology sensitivity: LowHardware dependency: ModerateHardware dependency: ModerateTimeTime--toto--market pressure: Moderatemarket pressure: Moderate

Page 20: Introduction to Software Engineering (2/2) - swtv.kaist.ac.krswtv.kaist.ac.kr/courses/cs550-07/se_intro2.pdf · CS550 Intro. to SE Spring 2007 Introduction to Software Engineering

20CS550 Intro. to SE Spring 2007

Software Characteristics by DomainSoftware Characteristics by Domain

Embedded Systems /Commercial ElectronicsEmbedded Systems /Commercial ElectronicsSize : SmallSize : SmallDomain consistency: HighDomain consistency: HighNew technology sensitivity: HighNew technology sensitivity: HighHardware dependency: HighHardware dependency: HighTimeTime--toto--market pressure: Highmarket pressure: High

Page 21: Introduction to Software Engineering (2/2) - swtv.kaist.ac.krswtv.kaist.ac.kr/courses/cs550-07/se_intro2.pdf · CS550 Intro. to SE Spring 2007 Introduction to Software Engineering

21CS550 Intro. to SE Spring 2007

Software Engineering ApplicabilitySoftware Engineering Applicability

In general, Controller Systems/Automation Systems and In general, Controller Systems/Automation Systems and Embedded Systems /Commercial Electronics can give Embedded Systems /Commercial Electronics can give much higher rewards for software engineering activitymuch higher rewards for software engineering activity

Domain consistency is high and new technology sensitivity is lowDomain consistency is high and new technology sensitivity is lowEase of accumulating empirical dataEase of accumulating empirical dataHigh reusability in accumulated developments assets(e.g. High reusability in accumulated developments assets(e.g. requirements specification, domain model, test cases, modules)requirements specification, domain model, test cases, modules)Ease of continuous improvementEase of continuous improvement

Page 22: Introduction to Software Engineering (2/2) - swtv.kaist.ac.krswtv.kaist.ac.kr/courses/cs550-07/se_intro2.pdf · CS550 Intro. to SE Spring 2007 Introduction to Software Engineering

22CS550 Intro. to SE Spring 2007

General ObstaclesGeneral Obstacles

Hardware dependency is highHardware dependency is highSoftware development may wait for hardware to become Software development may wait for hardware to become availableavailable

Product line engineering may be helpfulProduct line engineering may be helpfulConfident testing environment is not supported even until Confident testing environment is not supported even until complete hardware is readycomplete hardware is ready

May need for effective simulator/emulator for testing May need for effective simulator/emulator for testing

TimeTime--toto--market pressure is highmarket pressure is highHigh schedule pressure causes difficulties in software High schedule pressure causes difficulties in software engineering activitiesengineering activities

Overcome the hardware dependency as much as possibleOvercome the hardware dependency as much as possibleSet up process to reduce redundant time consumptionSet up process to reduce redundant time consumptionAsset reuseAsset reuse