engineering 7893 software engineeringavardy/courses/se/notes/intro.pdf · object-oriented design...
TRANSCRIPT
Engineering 7893 Software Engineering
http://www.engr.mun.ca/˜avardy/courses/se
Instructor: Andrew Vardy
Spring 2005
Engineering 7893 Software Engineering – p.1/10
Admin
�
Evaluation: Project: 100% (part team, part individual)
Lectures: Monday, Wednesday, Friday, 10:00-10:50 EN-1000
Lab slot: Wednesday, 2:00-5:00 EN-3076
For meetings:TeamDesign review
Office hour: Wednesday, 2:00-5:00, or by appointment (or not)
Teaching assistant: Lori Hogan, lhogan AT engr.mun.ca
Web page: http://www.engr.mun.ca/˜avardy/courses/se
Required background:
Object-oriented programming (C++, Java,...)Project will be written in Java
Object-oriented design (UML, design patterns)
Engineering 7893 Software Engineering – p.2/10
Admin
�
Evaluation: Project: 100% (part team, part individual)
�
Lectures: Monday, Wednesday, Friday, 10:00-10:50 EN-1000
Lab slot: Wednesday, 2:00-5:00 EN-3076
For meetings:TeamDesign review
Office hour: Wednesday, 2:00-5:00, or by appointment (or not)
Teaching assistant: Lori Hogan, lhogan AT engr.mun.ca
Web page: http://www.engr.mun.ca/˜avardy/courses/se
Required background:
Object-oriented programming (C++, Java,...)Project will be written in Java
Object-oriented design (UML, design patterns)
Engineering 7893 Software Engineering – p.2/10
Admin
�
Evaluation: Project: 100% (part team, part individual)
�
Lectures: Monday, Wednesday, Friday, 10:00-10:50 EN-1000
�
Lab slot: Wednesday, 2:00-5:00 EN-3076
For meetings:TeamDesign review
Office hour: Wednesday, 2:00-5:00, or by appointment (or not)
Teaching assistant: Lori Hogan, lhogan AT engr.mun.ca
Web page: http://www.engr.mun.ca/˜avardy/courses/se
Required background:
Object-oriented programming (C++, Java,...)Project will be written in Java
Object-oriented design (UML, design patterns)
Engineering 7893 Software Engineering – p.2/10
Admin
�
Evaluation: Project: 100% (part team, part individual)
�
Lectures: Monday, Wednesday, Friday, 10:00-10:50 EN-1000
�
Lab slot: Wednesday, 2:00-5:00 EN-3076
�
For meetings:
TeamDesign review
Office hour: Wednesday, 2:00-5:00, or by appointment (or not)
Teaching assistant: Lori Hogan, lhogan AT engr.mun.ca
Web page: http://www.engr.mun.ca/˜avardy/courses/se
Required background:
Object-oriented programming (C++, Java,...)Project will be written in Java
Object-oriented design (UML, design patterns)
Engineering 7893 Software Engineering – p.2/10
Admin
�
Evaluation: Project: 100% (part team, part individual)
�
Lectures: Monday, Wednesday, Friday, 10:00-10:50 EN-1000
�
Lab slot: Wednesday, 2:00-5:00 EN-3076
�
For meetings:
�
Team
Design review
Office hour: Wednesday, 2:00-5:00, or by appointment (or not)
Teaching assistant: Lori Hogan, lhogan AT engr.mun.ca
Web page: http://www.engr.mun.ca/˜avardy/courses/se
Required background:
Object-oriented programming (C++, Java,...)Project will be written in Java
Object-oriented design (UML, design patterns)
Engineering 7893 Software Engineering – p.2/10
Admin
�
Evaluation: Project: 100% (part team, part individual)
�
Lectures: Monday, Wednesday, Friday, 10:00-10:50 EN-1000
�
Lab slot: Wednesday, 2:00-5:00 EN-3076
�
For meetings:
�
Team
�
Design review
Office hour: Wednesday, 2:00-5:00, or by appointment (or not)
Teaching assistant: Lori Hogan, lhogan AT engr.mun.ca
Web page: http://www.engr.mun.ca/˜avardy/courses/se
Required background:
Object-oriented programming (C++, Java,...)Project will be written in Java
Object-oriented design (UML, design patterns)
Engineering 7893 Software Engineering – p.2/10
Admin
�
Evaluation: Project: 100% (part team, part individual)
�
Lectures: Monday, Wednesday, Friday, 10:00-10:50 EN-1000
�
Lab slot: Wednesday, 2:00-5:00 EN-3076
�
For meetings:
�
Team
�
Design review
�
Office hour: Wednesday, 2:00-5:00, or by appointment (or not)
Teaching assistant: Lori Hogan, lhogan AT engr.mun.ca
Web page: http://www.engr.mun.ca/˜avardy/courses/se
Required background:
Object-oriented programming (C++, Java,...)Project will be written in Java
Object-oriented design (UML, design patterns)
Engineering 7893 Software Engineering – p.2/10
Admin
�
Evaluation: Project: 100% (part team, part individual)
�
Lectures: Monday, Wednesday, Friday, 10:00-10:50 EN-1000
�
Lab slot: Wednesday, 2:00-5:00 EN-3076
�
For meetings:
�
Team
�
Design review
�
Office hour: Wednesday, 2:00-5:00, or by appointment (or not)
�
Teaching assistant: Lori Hogan, lhogan AT engr.mun.ca
Web page: http://www.engr.mun.ca/˜avardy/courses/se
Required background:
Object-oriented programming (C++, Java,...)Project will be written in Java
Object-oriented design (UML, design patterns)
Engineering 7893 Software Engineering – p.2/10
Admin
�
Evaluation: Project: 100% (part team, part individual)
�
Lectures: Monday, Wednesday, Friday, 10:00-10:50 EN-1000
�
Lab slot: Wednesday, 2:00-5:00 EN-3076
�
For meetings:
�
Team
�
Design review
�
Office hour: Wednesday, 2:00-5:00, or by appointment (or not)
�
Teaching assistant: Lori Hogan, lhogan AT engr.mun.ca
�
Web page: http://www.engr.mun.ca/˜avardy/courses/se
Required background:
Object-oriented programming (C++, Java,...)Project will be written in Java
Object-oriented design (UML, design patterns)
Engineering 7893 Software Engineering – p.2/10
Admin
�
Evaluation: Project: 100% (part team, part individual)
�
Lectures: Monday, Wednesday, Friday, 10:00-10:50 EN-1000
�
Lab slot: Wednesday, 2:00-5:00 EN-3076
�
For meetings:
�
Team
�
Design review
�
Office hour: Wednesday, 2:00-5:00, or by appointment (or not)
�
Teaching assistant: Lori Hogan, lhogan AT engr.mun.ca
�
Web page: http://www.engr.mun.ca/˜avardy/courses/se
�
Required background:
Object-oriented programming (C++, Java,...)Project will be written in Java
Object-oriented design (UML, design patterns)
Engineering 7893 Software Engineering – p.2/10
Admin
�
Evaluation: Project: 100% (part team, part individual)
�
Lectures: Monday, Wednesday, Friday, 10:00-10:50 EN-1000
�
Lab slot: Wednesday, 2:00-5:00 EN-3076
�
For meetings:
�
Team
�
Design review
�
Office hour: Wednesday, 2:00-5:00, or by appointment (or not)
�
Teaching assistant: Lori Hogan, lhogan AT engr.mun.ca
�
Web page: http://www.engr.mun.ca/˜avardy/courses/se
�
Required background:
�
Object-oriented programming (C++, Java,...)
Project will be written in Java
Object-oriented design (UML, design patterns)
Engineering 7893 Software Engineering – p.2/10
Admin
�
Evaluation: Project: 100% (part team, part individual)
�
Lectures: Monday, Wednesday, Friday, 10:00-10:50 EN-1000
�
Lab slot: Wednesday, 2:00-5:00 EN-3076
�
For meetings:
�
Team
�
Design review
�
Office hour: Wednesday, 2:00-5:00, or by appointment (or not)
�
Teaching assistant: Lori Hogan, lhogan AT engr.mun.ca
�
Web page: http://www.engr.mun.ca/˜avardy/courses/se
�
Required background:
�
Object-oriented programming (C++, Java,...)
�
Project will be written in Java
Object-oriented design (UML, design patterns)
Engineering 7893 Software Engineering – p.2/10
Admin
�
Evaluation: Project: 100% (part team, part individual)
�
Lectures: Monday, Wednesday, Friday, 10:00-10:50 EN-1000
�
Lab slot: Wednesday, 2:00-5:00 EN-3076
�
For meetings:
�
Team
�
Design review
�
Office hour: Wednesday, 2:00-5:00, or by appointment (or not)
�
Teaching assistant: Lori Hogan, lhogan AT engr.mun.ca
�
Web page: http://www.engr.mun.ca/˜avardy/courses/se
�
Required background:
�
Object-oriented programming (C++, Java,...)
�
Project will be written in Java
�
Object-oriented design (UML, design patterns)
Engineering 7893 Software Engineering – p.2/10
Tentative Dates
Date Type Item
Wednesday, May 4 M Team Selection
Monday, May 23 D Simulator Preliminary Design
Wednesday, May 25 M Simulator Design Review
Monday, June 6 D Simulator Alpha Implementation
Friday, June 10 D Simulator Verification Plan
Friday, June 17 D Simulator Beta Implementation
Friday, June 24 D Simulator Verification Reports
Tuesday, June 28 D Controller Layer 1 Preliminary Design (team)
Wednesday, June 29 M Controller Layer 1 Design Review
Wednesday, July 6 D Controller Layer 2 Preliminary Design & Strategy (ind.)
Wednesday, July 20 D Competition and code submission
Wednesday, July 27 D Final revised design documents
Friday, July 29 D Team Assessment
M = Meeting, D = Deliverable
Engineering 7893 Software Engineering – p.3/10
Project Teams
� 3-5 members
Team selection based on survey:Please complete survey by 5:00 p.m., Tuesday,May 3 (bring to my office, EN-3030)
Choosers chosen by me
Team selection by choosers at 2:00pm., Wednesday,May 4 in EN-3030
You may form pairs yourself — We’ll try not to breakthem
Engineering 7893 Software Engineering – p.4/10
Project Teams
� 3-5 members
� Team selection based on survey:
Please complete survey by 5:00 p.m., Tuesday,May 3 (bring to my office, EN-3030)
Choosers chosen by me
Team selection by choosers at 2:00pm., Wednesday,May 4 in EN-3030
You may form pairs yourself — We’ll try not to breakthem
Engineering 7893 Software Engineering – p.4/10
Project Teams
� 3-5 members
� Team selection based on survey:
�
Please complete survey by 5:00 p.m., Tuesday,May 3 (bring to my office, EN-3030)
Choosers chosen by me
Team selection by choosers at 2:00pm., Wednesday,May 4 in EN-3030
You may form pairs yourself — We’ll try not to breakthem
Engineering 7893 Software Engineering – p.4/10
Project Teams
� 3-5 members
� Team selection based on survey:
�
Please complete survey by 5:00 p.m., Tuesday,May 3 (bring to my office, EN-3030)
� Choosers chosen by me
Team selection by choosers at 2:00pm., Wednesday,May 4 in EN-3030
You may form pairs yourself — We’ll try not to breakthem
Engineering 7893 Software Engineering – p.4/10
Project Teams
� 3-5 members
� Team selection based on survey:
�
Please complete survey by 5:00 p.m., Tuesday,May 3 (bring to my office, EN-3030)
� Choosers chosen by me
� Team selection by choosers at 2:00pm., Wednesday,May 4 in EN-3030
You may form pairs yourself — We’ll try not to breakthem
Engineering 7893 Software Engineering – p.4/10
Project Problem
� CTF — Capture the Flag
Simulator — Displays state of game fieldCommunicates with controllers via a well definedprotocolBehaviour is carefully constrained
Controller — Directs the movement of one team ofplayers
Queries the simulator about the state of the game
Sends requests to the simulator to manipulateplayers
Each team builds one of each
All simulator/controller pairs must be interoperable
Engineering 7893 Software Engineering – p.5/10
Project Problem
� CTF — Capture the Flag
�
Simulator — Displays state of game field
Communicates with controllers via a well definedprotocolBehaviour is carefully constrained
Controller — Directs the movement of one team ofplayers
Queries the simulator about the state of the game
Sends requests to the simulator to manipulateplayers
Each team builds one of each
All simulator/controller pairs must be interoperable
Engineering 7893 Software Engineering – p.5/10
Project Problem
� CTF — Capture the Flag
�
Simulator — Displays state of game field
� Communicates with controllers via a well definedprotocol
Behaviour is carefully constrainedController — Directs the movement of one team ofplayers
Queries the simulator about the state of the game
Sends requests to the simulator to manipulateplayers
Each team builds one of each
All simulator/controller pairs must be interoperable
Engineering 7893 Software Engineering – p.5/10
Project Problem
� CTF — Capture the Flag
�
Simulator — Displays state of game field
� Communicates with controllers via a well definedprotocol
� Behaviour is carefully constrained
Controller — Directs the movement of one team ofplayers
Queries the simulator about the state of the game
Sends requests to the simulator to manipulateplayers
Each team builds one of each
All simulator/controller pairs must be interoperable
Engineering 7893 Software Engineering – p.5/10
Project Problem
� CTF — Capture the Flag
�
Simulator — Displays state of game field
� Communicates with controllers via a well definedprotocol
� Behaviour is carefully constrained
�
Controller — Directs the movement of one team ofplayers
Queries the simulator about the state of the game
Sends requests to the simulator to manipulateplayers
Each team builds one of each
All simulator/controller pairs must be interoperable
Engineering 7893 Software Engineering – p.5/10
Project Problem
� CTF — Capture the Flag
�
Simulator — Displays state of game field
� Communicates with controllers via a well definedprotocol
� Behaviour is carefully constrained
�
Controller — Directs the movement of one team ofplayers
� Queries the simulator about the state of the game
Sends requests to the simulator to manipulateplayers
Each team builds one of each
All simulator/controller pairs must be interoperable
Engineering 7893 Software Engineering – p.5/10
Project Problem
� CTF — Capture the Flag
�
Simulator — Displays state of game field
� Communicates with controllers via a well definedprotocol
� Behaviour is carefully constrained
�
Controller — Directs the movement of one team ofplayers
� Queries the simulator about the state of the game
� Sends requests to the simulator to manipulateplayers
Each team builds one of each
All simulator/controller pairs must be interoperable
Engineering 7893 Software Engineering – p.5/10
Project Problem
� CTF — Capture the Flag
�
Simulator — Displays state of game field
� Communicates with controllers via a well definedprotocol
� Behaviour is carefully constrained
�
Controller — Directs the movement of one team ofplayers
� Queries the simulator about the state of the game
� Sends requests to the simulator to manipulateplayers
� Each team builds one of each
All simulator/controller pairs must be interoperable
Engineering 7893 Software Engineering – p.5/10
Project Problem
� CTF — Capture the Flag
�
Simulator — Displays state of game field
� Communicates with controllers via a well definedprotocol
� Behaviour is carefully constrained
�
Controller — Directs the movement of one team ofplayers
� Queries the simulator about the state of the game
� Sends requests to the simulator to manipulateplayers
� Each team builds one of each
� All simulator/controller pairs must be interoperable
Engineering 7893 Software Engineering – p.5/10
Controller — Split into two layers
� Layer 1: Interacts with Simulator and provides basefunctionality for Layer 2
Each team designs and implements Layer 1 as agroup
Layer 2: Uses Layer 1 services to implement a gamestrategy
i.e. This is the AI componentEach individual student designs and implementsLayer 2Layer 2 must plug in to your team’s Layer 1
Balance in functionality between layers is up to theteam
Engineering 7893 Software Engineering – p.6/10
Controller — Split into two layers
� Layer 1: Interacts with Simulator and provides basefunctionality for Layer 2
�
Each team designs and implements Layer 1 as agroup
Layer 2: Uses Layer 1 services to implement a gamestrategy
i.e. This is the AI componentEach individual student designs and implementsLayer 2Layer 2 must plug in to your team’s Layer 1
Balance in functionality between layers is up to theteam
Engineering 7893 Software Engineering – p.6/10
Controller — Split into two layers
� Layer 1: Interacts with Simulator and provides basefunctionality for Layer 2
�
Each team designs and implements Layer 1 as agroup
� Layer 2: Uses Layer 1 services to implement a gamestrategy
i.e. This is the AI componentEach individual student designs and implementsLayer 2Layer 2 must plug in to your team’s Layer 1
Balance in functionality between layers is up to theteam
Engineering 7893 Software Engineering – p.6/10
Controller — Split into two layers
� Layer 1: Interacts with Simulator and provides basefunctionality for Layer 2
�
Each team designs and implements Layer 1 as agroup
� Layer 2: Uses Layer 1 services to implement a gamestrategy
�
i.e. This is the AI component
Each individual student designs and implementsLayer 2Layer 2 must plug in to your team’s Layer 1
Balance in functionality between layers is up to theteam
Engineering 7893 Software Engineering – p.6/10
Controller — Split into two layers
� Layer 1: Interacts with Simulator and provides basefunctionality for Layer 2
�
Each team designs and implements Layer 1 as agroup
� Layer 2: Uses Layer 1 services to implement a gamestrategy
�
i.e. This is the AI component
�
Each individual student designs and implementsLayer 2
Layer 2 must plug in to your team’s Layer 1
Balance in functionality between layers is up to theteam
Engineering 7893 Software Engineering – p.6/10
Controller — Split into two layers
� Layer 1: Interacts with Simulator and provides basefunctionality for Layer 2
�
Each team designs and implements Layer 1 as agroup
� Layer 2: Uses Layer 1 services to implement a gamestrategy
�
i.e. This is the AI component
�
Each individual student designs and implementsLayer 2
�
Layer 2 must plug in to your team’s Layer 1
Balance in functionality between layers is up to theteam
Engineering 7893 Software Engineering – p.6/10
Controller — Split into two layers
� Layer 1: Interacts with Simulator and provides basefunctionality for Layer 2
�
Each team designs and implements Layer 1 as agroup
� Layer 2: Uses Layer 1 services to implement a gamestrategy
�
i.e. This is the AI component
�
Each individual student designs and implementsLayer 2
�
Layer 2 must plug in to your team’s Layer 1
� Balance in functionality between layers is up to theteam
Engineering 7893 Software Engineering – p.6/10
Project Evaluation
Item Marks
Simulator Preliminary Design 10
Simulator Alpha Implementation 5
Simulator Verification Plan 5
Simulator Beta Implementation 5
Simulator Verification Report 5
Controller Layer 1 Preliminary Design (team) 10
Controller Layer 2 Preliminary Design (ind.) 5
Competition 20
Final Design Document for Simulator and C1 (team) 20
Final Design Document for C2 (ind.) 5
Final Implementation for Simulator and C1 (team) 5
Final Implementation for C2 (ind.) 5
Engineering 7893 Software Engineering – p.7/10
Project Notes
� You will be verifying the simulators of other teams andwill be graded on how well you do at finding bugs inthem
Individual student marks will be adjusted from theteam mark based on peer-evaluation
Getting the code working is worth about 40% of theproject
Documentation is worth about 60%Design documentation (UML)Code documentation (javadoc)
Engineering 7893 Software Engineering – p.8/10
Project Notes
� You will be verifying the simulators of other teams andwill be graded on how well you do at finding bugs inthem
� Individual student marks will be adjusted from theteam mark based on peer-evaluation
Getting the code working is worth about 40% of theproject
Documentation is worth about 60%Design documentation (UML)Code documentation (javadoc)
Engineering 7893 Software Engineering – p.8/10
Project Notes
� You will be verifying the simulators of other teams andwill be graded on how well you do at finding bugs inthem
� Individual student marks will be adjusted from theteam mark based on peer-evaluation
� Getting the code working is worth about 40% of theproject
Documentation is worth about 60%Design documentation (UML)Code documentation (javadoc)
Engineering 7893 Software Engineering – p.8/10
Project Notes
� You will be verifying the simulators of other teams andwill be graded on how well you do at finding bugs inthem
� Individual student marks will be adjusted from theteam mark based on peer-evaluation
� Getting the code working is worth about 40% of theproject
� Documentation is worth about 60%
Design documentation (UML)Code documentation (javadoc)
Engineering 7893 Software Engineering – p.8/10
Project Notes
� You will be verifying the simulators of other teams andwill be graded on how well you do at finding bugs inthem
� Individual student marks will be adjusted from theteam mark based on peer-evaluation
� Getting the code working is worth about 40% of theproject
� Documentation is worth about 60%
�
Design documentation (UML)
Code documentation (javadoc)
Engineering 7893 Software Engineering – p.8/10
Project Notes
� You will be verifying the simulators of other teams andwill be graded on how well you do at finding bugs inthem
� Individual student marks will be adjusted from theteam mark based on peer-evaluation
� Getting the code working is worth about 40% of theproject
� Documentation is worth about 60%
�
Design documentation (UML)
�
Code documentation (javadoc)
Engineering 7893 Software Engineering – p.8/10
Lectures
� Less than the first half of the term
Topics taken (mostly) from Ghezzi et al
Software production processSoftware engineering principlesSoftware design (a little)VerificationProject specific (e.g. ideas for AI)
Engineering 7893 Software Engineering – p.9/10
Lectures
� Less than the first half of the term
� Topics taken (mostly) from Ghezzi et al
Software production processSoftware engineering principlesSoftware design (a little)VerificationProject specific (e.g. ideas for AI)
Engineering 7893 Software Engineering – p.9/10
Lectures
� Less than the first half of the term
� Topics taken (mostly) from Ghezzi et al
�
Software production process
Software engineering principlesSoftware design (a little)VerificationProject specific (e.g. ideas for AI)
Engineering 7893 Software Engineering – p.9/10
Lectures
� Less than the first half of the term
� Topics taken (mostly) from Ghezzi et al
�
Software production process
�
Software engineering principles
Software design (a little)VerificationProject specific (e.g. ideas for AI)
Engineering 7893 Software Engineering – p.9/10
Lectures
� Less than the first half of the term
� Topics taken (mostly) from Ghezzi et al
�
Software production process
�
Software engineering principles
�
Software design (a little)
VerificationProject specific (e.g. ideas for AI)
Engineering 7893 Software Engineering – p.9/10
Lectures
� Less than the first half of the term
� Topics taken (mostly) from Ghezzi et al
�
Software production process
�
Software engineering principles
�
Software design (a little)
�
Verification
Project specific (e.g. ideas for AI)
Engineering 7893 Software Engineering – p.9/10
Lectures
� Less than the first half of the term
� Topics taken (mostly) from Ghezzi et al
�
Software production process
�
Software engineering principles
�
Software design (a little)
�
Verification
�
Project specific (e.g. ideas for AI)
Engineering 7893 Software Engineering – p.9/10
Course Objectives
� Introduction to SE terms and practices
Practice in designing a reasonably large system
Exposure to team software development
Understanding of the software development process
Engineering 7893 Software Engineering – p.10/10
Course Objectives
� Introduction to SE terms and practices
� Practice in designing a reasonably large system
Exposure to team software development
Understanding of the software development process
Engineering 7893 Software Engineering – p.10/10
Course Objectives
� Introduction to SE terms and practices
� Practice in designing a reasonably large system
� Exposure to team software development
Understanding of the software development process
Engineering 7893 Software Engineering – p.10/10
Course Objectives
� Introduction to SE terms and practices
� Practice in designing a reasonably large system
� Exposure to team software development
� Understanding of the software development process
Engineering 7893 Software Engineering – p.10/10
Course Objectives
� Introduction to SE terms and practices
� Practice in designing a reasonably large system
� Exposure to team software development
� Understanding of the software development process
Engineering 7893 Software Engineering – p.10/10