course introduction and overviewtddc93/timetable/1introduction-4.pdf · 2008-08-26 · 1 course...
Post on 26-Jun-2020
4 Views
Preview:
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