course introduction and overviewtddc93/timetable/1introduction-4.pdf · 2008-08-26 · 1 course...

11
1 Course Introduction and Overview Lecture 1 Kristian Sandahl Department of Computer and Information Science Linköping University, Sweden [email protected] Software Engineering TDDC88-theory/TDDC93 Autumn 2008 2 Part I Definition and role of SE Part II A life cycle model Kristian Sandahl [email protected] Who am I Gotland Småland Linköping Naval HQ Protein purification Ericsson 3 Part I Definition and role of SE Part II A life cycle model Kristian Sandahl [email protected] Who are you? TDDC93 4 ECTS Software Engineering Theory Y-program D-program C-program IT-progam Theory 4hp TDDC88 12 hp/ECTS Labs 2hp Project 6hp Theory 4hp Software Engineering I-program Ii-program Master students Exchange students SVP 4 Part I Definition and role of SE Part II A life cycle model Kristian Sandahl [email protected] Agenda - What will you learn today? Part I – Definition and role of software engineering Part II – A life cycle model

Upload: others

Post on 26-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Course Introduction and OverviewTDDC93/timetable/1Introduction-4.pdf · 2008-08-26 · 1 Course Introduction and Overview Lecture 1 Kristian Sandahl Department of Computer and Information

1

Course Introduction

and OverviewLecture 1

Kristian Sandahl

Department of Computer and Information Science

Linköping University, Sweden

[email protected]

Software Engineering

TDDC88-theory/TDDC93

Autumn 2008

2

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Who am I

Gotland Småland Linköping

Naval HQ Protein purification Ericsson

3

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Who are you?

TDDC934 ECTS

Software Engineering TheoryY-program

D-program

C-program

IT-progamTheory

4hp

TDDC8812 hp/ECTS

Labs

2hp

Project

6hp Theory

4hp

Software Engineering I-program

Ii-program

Master students

Exchange students

SVP

4

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Agenda - What will you learn today?

Part I – Definition and role of

software engineering

Part II – A life cycle model

Page 2: Course Introduction and OverviewTDDC93/timetable/1Introduction-4.pdf · 2008-08-26 · 1 Course Introduction and Overview Lecture 1 Kristian Sandahl Department of Computer and Information

2

5

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Part I

Definition and role of Software Engineering

6

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

A typical Software Project

How the customer explained it

7

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

A typical Software Project

How the project leader understood it

8

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

A typical Software Project

How the analyst designed it

Page 3: Course Introduction and OverviewTDDC93/timetable/1Introduction-4.pdf · 2008-08-26 · 1 Course Introduction and Overview Lecture 1 Kristian Sandahl Department of Computer and Information

3

9

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

A typical Software Project

How the programmer wrote it

10

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

A typical Software Project

How the business consultant described it

11

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

A typical Software Project

How the project was documented

12

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

A typical Software Project

What operations installed

Page 4: Course Introduction and OverviewTDDC93/timetable/1Introduction-4.pdf · 2008-08-26 · 1 Course Introduction and Overview Lecture 1 Kristian Sandahl Department of Computer and Information

4

13

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

A typical Software Project

How the customer was billed

14

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

A typical Software Project

How it was supported

15

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

A typical Software Project

Finally, what the customer really needed

16

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Why do we need SE?

� Frequent failures:

� Space shuttle

� Nike

� Denver airport

� LA airport

Charette, R.N. (2005) Why Software

Fails, IEEE Spectrum, September 2005

Geppert, L (2004) Lost Radio Contact Leaves

Pilots On Their Own, IEEE Spectrum, Nov 2004

Page 5: Course Introduction and OverviewTDDC93/timetable/1Introduction-4.pdf · 2008-08-26 · 1 Course Introduction and Overview Lecture 1 Kristian Sandahl Department of Computer and Information

5

17

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Beehive Exercise

10 minutes beehive!1. Discuss in pairs

� Why is it hard to communicate about

software?

� Why do we read about frequent software

failures

� What can we do about it?

List at least 4 problems/solutions

2. Write on the whiteboard

� Go down to the whiteboard and write

down a problem / a solution

18

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Software Engineering

� Application of systematic, disciplined, quantifiable approach to

software development, operation and maintenance of software. (IEEE-Std.)

19

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Challenges to SE

� Different types of software:� criticality

� # users

� # developers

� # platforms

� risk

� cost

� There will be changes� degrading performance

� maintenance account for 70% of life cycle cost

� Everyone want the latest technology

� Increased demands for software with:� high quality� high complexity

� delivered promptly� low price

� Different types of knowledge:

� Understanding customers

� Understanding users

� Managing projects and people

� Communication

� Staffing

� Design at many levels

� Programming tools

� Components

� Testing

� Quality assurance

� Business

� Risk management

� Technology assessment

� ......

20

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Studying SE theory

� Reading about concepts and methods derived from

experience

� Almost everything have their pros and cons

� Quite little is based on mathematical theory

� Requires disciplined plan for reading different sources

Page 6: Course Introduction and OverviewTDDC93/timetable/1Introduction-4.pdf · 2008-08-26 · 1 Course Introduction and Overview Lecture 1 Kristian Sandahl Department of Computer and Information

6

21

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Studying SE theory

Your job

� Find central concepts and methods over the entire field

� Study their applicability, pros and cons

� Practice analysing and

designing small examples

� Participate in examination

� Ask me questions

� Give me suggestions for

further improvement

My job

� Account for the most central concepts in lectures

� Set things in context

� Discuss industrial relevance

� Arrange examination

� Answer your questions

� Listen to feed-back:

� Muddy-card

� Personal communication

� Student’s evaluation

[email protected] 0706-68 19 57 3B:470

22

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Mail me

23

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Ambition level

� You will know enough to communicate easily with

professional software engineers

� You will have the basic knowledge to start generating

your own experience already in student projects

� You will have a curious, but critical, attitude towards existing and new methods

24

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Part II

Contents of a Software Life Cycle

Page 7: Course Introduction and OverviewTDDC93/timetable/1Introduction-4.pdf · 2008-08-26 · 1 Course Introduction and Overview Lecture 1 Kristian Sandahl Department of Computer and Information

7

25

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Scope of a software life-cycle model

Idea Software Product

Usage Operation & maintenance Replacement

26

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Model of a life-cycle

Time

Abstraction

Carolthe customer

Dianathe developer

27

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Requirements

Requirements

Elicitation

Collect user

requirement

Analyze

Understand

Specify

Document

Validate

Check that it matches

user requirements

28

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Requirements

Requirements

Functional requirements A required behavior or functionE.g. "delete material items"

Non-Functional requirementsQuality requirements

E.g. performance, scalability, usabilitymaintainability, etc.

Page 8: Course Introduction and OverviewTDDC93/timetable/1Introduction-4.pdf · 2008-08-26 · 1 Course Introduction and Overview Lecture 1 Kristian Sandahl Department of Computer and Information

8

29

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Requirements and Acceptance Test

Requirements Acceptance Test(Release testing)

Validate Requirements, Verify Specification

30

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

System Design

Requirements Acceptance Test(Release testing)

Validate Requirements, Verify Specification

System Design(Architecture,

High-level Design)

Decompose into sub-systems or modules

• Well-defined interfaces

• High level of abstraction

Module 1 Module 2

Module 3

Architecture styles, e.g.

• Client-server

• Layered Models

• Pipes and Filters

31

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

System and Module Design

Requirements Acceptance Test(Release testing)

Validate Requirements, Verify Specification

System Design(Architecture,

High-level Design)

Module Design(Program Design,

Detailed Design)

Unified Modeling Language (UML)

Use a standardized way to model system

graphically

Design Patterns

Reuse design solution that has worked before

32

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Testing

Requirements Acceptance Test(Release testing)

Validate Requirements, Verify Specification

System Design(Architecture,

High-level Design)

Module Design(Program Design,

Detailed Design)

System Testing(Integration testing of modules)

Implementationof Units (classes, procedures,

functions)

Unit testing

Verify Implementation

Module Testing(Integration testing of units)

Verify Module Design

Page 9: Course Introduction and OverviewTDDC93/timetable/1Introduction-4.pdf · 2008-08-26 · 1 Course Introduction and Overview Lecture 1 Kristian Sandahl Department of Computer and Information

9

33

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Testing

Requirements Acceptance Test(Release testing)

Validate Requirements, Verify Specification

System Design(Architecture,

High-level Design)

Module Design(Program Design,

Detailed Design)

System Testing(Integration testing of modules)

Implementationof Units (classes, procedures,

functions)

Unit testing

Verify Implementation

Module Testing(Integration testing of units)

Verify Module Design

Integration testing

• Dependencies between modules

Approaches

• Top-down (need stubs)• Bottom-up (need drivers)

• Sandwich

• Big-bag

Module 1 Module 2

Module 3

34

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Verify System Design

Supporting Processes

Requirements Acceptance Test(Release testing)

Validate Requirements, Verify Specification

System Design(Architecture,

High-level Design)

Module Design(Program Design,

Detailed Design)

System Testing(Integration testing of modules)

Implementationof Units (classes, procedures,

functions)

Unit testing

Verify Implementation

Module Testing(Integration testing of units)

Verify Module Design

35

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Verify System Design

Inspection

Requirements Acceptance Test(Release testing)

Validate Requirements, Verify Specification

System Design(Architecture,

High-level Design)

Module Design(Program Design,

Detailed Design)

System Testing(Integration testing of modules)

Implementationof Units (classes, procedures,

functions)

Unit testing

Verify Implementation

Module Testing(Integration testing of units)

Verify Module Design

Inspection

Formal Inspection

• Reviewing with a defined process• Aim at finding defects

• Works in practice

36

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Verify System Design

Software Life Cycles, Configuration Mgm.

Requirements Acceptance Test(Release testing)

Validate Requirements, Verify Specification

System Design(Architecture,

High-level Design)

Module Design(Program Design,

Detailed Design)

System Testing(Integration testing of modules)

Implementationof Units (classes, procedures,

functions)

Unit testing

Verify Implementation

Module Testing(Integration testing of units)

Verify Module Design

Software Life Cycles and Configuration

Management

V-model

Waterfall model

Iterative models

Configuration Management (CM)

Keep track of versions. Used the wrong code-base.

R R R

Page 10: Course Introduction and OverviewTDDC93/timetable/1Introduction-4.pdf · 2008-08-26 · 1 Course Introduction and Overview Lecture 1 Kristian Sandahl Department of Computer and Information

10

37

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Verify System Design

Software Quality Management

Requirements Acceptance Test(Release testing)

Validate Requirements, Verify Specification

System Design(Architecture,

High-level Design)

Module Design(Program Design,

Detailed Design)

System Testing(Integration testing of modules)

Implementationof Units (classes, procedures,

functions)

Unit testing

Verify Implementation

Module Testing(Integration testing of units)

Verify Module Design

Lecture 12 - Software Quality Management

Different qualities

• Quality of product

• Quality of process• Quality in a business environment

38

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Verify System Design

Software Life Cycles, Configuration Mgm.

Requirements Acceptance Test(Release testing)

Validate Requirements, Verify Specification

System Design(Architecture,

High-level Design)

Module Design(Program Design,

Detailed Design)

System Testing(Integration testing of modules)

Implementationof Units (classes, procedures,

functions)

Unit testing

Verify Implementation

Module Testing(Integration testing of units)

Verify Module Design

Project Management

Time plan

Milestones Time-budget

Resources Calendar-time

Activities

- Minimize

- Transfer - Accept

Risk Management

Identify Analyze Plan

• Resource management• Time-buffer

• Internal milestones - keep track

probability - consequence

39

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

A Software Life-cycle

Requirements

System Design(Architecture,

High-level Design)

Module Design(Program Design,

Detailed Design)

Implementationof Units (classes, procedures,

functions)

Unit testing

Module Testing(Integration testing of units)

System Testing(Integration testing of modules)

Acceptance Test(Release testing)

Validate Requirements, Verify Specification

Verify System Design

Verify Module Design

Verify Implementation

Project Management, Software Quality Assurance (SQA), Supporting Tools, Education

Maintenance

40

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

A Software Life-cycle Model

Which part will we talk about today?

Requirements

System Design(Architecture,

High-level Design)

Module Design(Program Design,

Detailed Design)

Implementationof Units (classes, procedures,

functions)

Unit testing

Module Testing(Integration testing of units)

System Testing(Integration testing of modules)

Acceptance Test(Release testing)

Validate Requirements, Verify Specification

Verify System Design

Verify Module Design

Verify Implementation

Project Management, Software Quality Assurance (SQA), Supporting Tools, Education

Maintenance

Page 11: Course Introduction and OverviewTDDC93/timetable/1Introduction-4.pdf · 2008-08-26 · 1 Course Introduction and Overview Lecture 1 Kristian Sandahl Department of Computer and Information

11

41

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Theory Lecture Plan

L1 - Course Introduction and Overview

L2 - Project Management

L3 - Requirements

L4 - Acceptance Testing and Quality Factors

L5 - Design Patterns

L6 - UML

L7 - System Design and Architecture

L8 - Testing Theory

L9 - Testing in Practice

L10 - Inspection

L11 - Software Life Cycles and Configuration Management

L12 - Software Quality Management

L13 - Course Summary, Exam examples, Questions

L1 - Course Introduction and Overview

42

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

[email protected]

Summary - What have we learned today?

Requirements

System Design(Architecture,

High-level Design)

Module Design(Program Design,

Detailed Design)

Implementationof Units (classes, procedures,

functions)

Unit testing

Module Testing(Integration testing of units)

System Testing(Integration testing of modules)

Acceptance Test(Release testing)

Validate Requirements, Verify Specification

Verify System Design

Verify Module Design

Verify Implementation

Project Management, Software Quality Assurance (SQA), Supporting Tools, Education

Maintenance