CPSC 410 Introduction - University of British Columbia

Download Report

Transcript CPSC 410 Introduction - University of British Columbia

CPSC 410
ADVANCED
SOFTWARE ENGINEERING
TERM I - 2011
Dr. Eric Wohlstadter
(some slides from Emmerson Murphy-Hill and Gail Murphy)
Today
High level motivation
Review syllabus
Course Topics
2
DEFECT COSTS

The US Department of Commerce estimates that
software defects cost the US economy $60 Billion
per year
Infoworld, June 2002
Scale
LOC Windows NT
100000000
10000000
1000000
7/15/92
1/31/93
8/19/93
3/7/94
9/23/94
4/11/95
10/28/95
5/15/96
12/1/96
6/19/97
LOC Firefox Browser
100000
10000
1000
1/1/95
4/11/95
7/20/95
10/28/95
2/5/96
5/15/96
8/23/96
12/1/96
3/11/97
6/19/97
CPSC 410 Topics
Module 1: Software Architecture
 Design
for large, multi-component, distributed systems
Module 2: Software Verification
 Bug
finding and code quality
10
7/20/2015
Course Format
Lectures and Activities
Schedule will be on the web (www.ugrad.cs.ubc.ca/~cs410)
Readings
handed out in class
Group project with 2 mandatory review sessions
to be attended by all group members
Midterm and final
11
7/20/2015
Group Project
Hands-on experience building a significant application in a
group of 4 people
Interactive Web application with a Social Networking aspect
Precise purpose of application is of your own choosing
More about project on Friday
12
7/20/2015
Grading
Project:
40%
Midterm
30%
Final
30%
13
7/20/2015
Contract
Participate in the group project
Use the newsgroup! Link is on webpage
I’ll get slides I use on the web the morning of class
You come to class and participate
Challenge the TAs and I so that you (and we!) really
understand the concepts
14
7/20/2015
Expectations
Academic honesty
I expect you to behave honorably
Do not take credit for work that you didn’t do
We may run comparison tools on artifacts turned in
See http://www.science.ubc.ca/students/new/conduct
Respect others in class
15
7/20/2015
Why Software Architecture?
Computer applications
Level of
abstraction
?
Software Architecture
Design Patterns
Source Code
16
7/20/2015
Level of
formality
What is missing?

What about packages?

What about libraries?

What about networks?

What about distributed systems?
17
7/20/2015
What is Software Architecture?
Practical definition

“The set of principal design decisions made about a
system” – Taylor et al.
More formal treatment given by architectural style

A set of components

A set of connectors

A set of constraints specifying the appropriate
composition of components and connectors
18
7/20/2015
Basic Styles we already know

Procedural Style
 components:
Functions
 connectors: Function Calls
 constraints: none, but hierarchical breakdown with
localized recursion is recommended

Object-Oriented Style
 components:
Classes
 connectors: Aggregation, Inheritance, etc…
 constraints: Usually multiple implementation inheritance
is forbidden
19
7/20/2015
Next few lectures

Finish the reading by Monday

More reading handed out Friday
 Don’t
get behind!

Project description on Friday

Continue Intro. to Software Architecture on Monday
20
7/20/2015