course introduction and overviewtddc93/timetable/1introduction-4.pdf · 2008-08-26 · 1 course...
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](https://reader033.vdocuments.us/reader033/viewer/2022060404/5f0ee3d17e708231d4417028/html5/thumbnails/1.jpg)
1
Course Introduction
and OverviewLecture 1
Kristian Sandahl
Department of Computer and Information Science
Linköping University, Sweden
Software Engineering
TDDC88-theory/TDDC93
Autumn 2008
2
Part I
Definition and role of SE
Part II
A life cycle model
Kristian Sandahl
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
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
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](https://reader033.vdocuments.us/reader033/viewer/2022060404/5f0ee3d17e708231d4417028/html5/thumbnails/2.jpg)
2
5
Part I
Definition and role of SE
Part II
A life cycle model
Kristian Sandahl
Part I
Definition and role of Software Engineering
6
Part I
Definition and role of SE
Part II
A life cycle model
Kristian Sandahl
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
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
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](https://reader033.vdocuments.us/reader033/viewer/2022060404/5f0ee3d17e708231d4417028/html5/thumbnails/3.jpg)
3
9
Part I
Definition and role of SE
Part II
A life cycle model
Kristian Sandahl
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
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
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
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](https://reader033.vdocuments.us/reader033/viewer/2022060404/5f0ee3d17e708231d4417028/html5/thumbnails/4.jpg)
4
13
Part I
Definition and role of SE
Part II
A life cycle model
Kristian Sandahl
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
A typical Software Project
How it was supported
15
Part I
Definition and role of SE
Part II
A life cycle model
Kristian Sandahl
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
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](https://reader033.vdocuments.us/reader033/viewer/2022060404/5f0ee3d17e708231d4417028/html5/thumbnails/5.jpg)
5
17
Part I
Definition and role of SE
Part II
A life cycle model
Kristian Sandahl
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
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
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
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](https://reader033.vdocuments.us/reader033/viewer/2022060404/5f0ee3d17e708231d4417028/html5/thumbnails/6.jpg)
6
21
Part I
Definition and role of SE
Part II
A life cycle model
Kristian Sandahl
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
Mail me
23
Part I
Definition and role of SE
Part II
A life cycle model
Kristian Sandahl
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
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](https://reader033.vdocuments.us/reader033/viewer/2022060404/5f0ee3d17e708231d4417028/html5/thumbnails/7.jpg)
7
25
Part I
Definition and role of SE
Part II
A life cycle model
Kristian Sandahl
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
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
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
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](https://reader033.vdocuments.us/reader033/viewer/2022060404/5f0ee3d17e708231d4417028/html5/thumbnails/8.jpg)
8
29
Part I
Definition and role of SE
Part II
A life cycle model
Kristian Sandahl
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
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
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
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](https://reader033.vdocuments.us/reader033/viewer/2022060404/5f0ee3d17e708231d4417028/html5/thumbnails/9.jpg)
9
33
Part I
Definition and role of SE
Part II
A life cycle model
Kristian Sandahl
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
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
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
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](https://reader033.vdocuments.us/reader033/viewer/2022060404/5f0ee3d17e708231d4417028/html5/thumbnails/10.jpg)
10
37
Part I
Definition and role of SE
Part II
A life cycle model
Kristian Sandahl
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
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
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
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](https://reader033.vdocuments.us/reader033/viewer/2022060404/5f0ee3d17e708231d4417028/html5/thumbnails/11.jpg)
11
41
Part I
Definition and role of SE
Part II
A life cycle model
Kristian Sandahl
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
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