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

Post on 26-Jun-2020

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Course Introduction

and OverviewLecture 1

Kristian Sandahl

Department of Computer and Information Science

Linköping University, Sweden

krisa@ida.liu.se

Software Engineering

TDDC88-theory/TDDC93

Autumn 2008

2

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

krisa@ida.liu.se

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

krisa@ida.liu.se

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

krisa@ida.liu.se

Agenda - What will you learn today?

Part I – Definition and role of

software engineering

Part II – A life cycle model

2

5

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

krisa@ida.liu.se

Part I

Definition and role of Software Engineering

6

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

krisa@ida.liu.se

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

krisa@ida.liu.se

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

krisa@ida.liu.se

A typical Software Project

How the analyst designed it

3

9

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

krisa@ida.liu.se

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

krisa@ida.liu.se

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

krisa@ida.liu.se

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

krisa@ida.liu.se

A typical Software Project

What operations installed

4

13

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

krisa@ida.liu.se

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

krisa@ida.liu.se

A typical Software Project

How it was supported

15

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

krisa@ida.liu.se

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

krisa@ida.liu.se

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

5

17

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

krisa@ida.liu.se

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

krisa@ida.liu.se

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

krisa@ida.liu.se

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

krisa@ida.liu.se

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

6

21

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

krisa@ida.liu.se

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

krisa@ida.liu.se 0706-68 19 57 3B:470

22

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

krisa@ida.liu.se

Mail me

23

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

krisa@ida.liu.se

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

krisa@ida.liu.se

Part II

Contents of a Software Life Cycle

7

25

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

krisa@ida.liu.se

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

krisa@ida.liu.se

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

krisa@ida.liu.se

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

krisa@ida.liu.se

Requirements

Requirements

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

Non-Functional requirementsQuality requirements

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

8

29

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

krisa@ida.liu.se

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

krisa@ida.liu.se

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

krisa@ida.liu.se

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

krisa@ida.liu.se

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

9

33

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

krisa@ida.liu.se

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

krisa@ida.liu.se

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

krisa@ida.liu.se

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

krisa@ida.liu.se

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

10

37

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

krisa@ida.liu.se

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

krisa@ida.liu.se

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

krisa@ida.liu.se

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

krisa@ida.liu.se

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

11

41

Part I

Definition and role of SE

Part II

A life cycle model

Kristian Sandahl

krisa@ida.liu.se

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

krisa@ida.liu.se

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

top related