Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Ivan Marsic
Rutgers University
Course Information
Web: http://www.ece.rutgers.edu/~marsic/Teaching/SE
Lecture Notes:
http://www.ece.rutgers.edu/~marsic/books/SE
Textbooks (see more on the course website)
Bruegge & Dutoit: Object-Oriented Software Engineering: Using UML, Patterns and
Java, Third Edition, Prentice Hall, 2010. | ISBN 0-13-6061257
Miles & Hamilton: Learning UML 2.0, OReilly Media, 2006. ISBN: 0-596-00982-8
Teaching Assistant:
Swapnil Mhaske <smhaske@eden.rutgers.edu>
2
Team Projects
Form teams of 6 ( 1?) students
DEADLINE: Friday, January 25, 2013
After that, teams assigned randomly
Project Ideas:
http://www.ece.rutgers.edu/~marsic/books/SE/projects
No more than two (2) groups working on the
same project
One (1) new project allowed
Email your project idea ASAP, before proposal is due, for feedback
3
Personal Health Monitoring Devices
Available budget:
$500
To do:
1. Search the Web
for devices and apps
that you would like to
work with
2. Email the components
list with costs+websites
4
Project Deliverables
5
Team 1
Team
Team 2
Project
Team 3
Grading
Earned points
30 30 26 21 pts
pts pts 21 p pts
50 pts 12 p
30 35
pts pts
Project grade
100 70 100
Project Member Earned Adjusted Normalized
Team
grade ID points points points
M1,1 30 30 (30/35 * 100) = 86
T1 100% M1,2 30 30 (30/35 * 100) = 86
M1,3 30 30 (30/35 * 100) = 86
M2,1 21 (21 * 0.7) = 14.7 (14.7/35 * 100) = 42
T2 70%
M2,2 50 (50 * 0.7) = 35 100
M3,1 21 21 (19/35 * 100) = 60
M3,2 12 12 (12/35 * 100) = 34
T3 100%
M3,3 35 35 100
Introduction: Software is Complex
Complex complicated
Nailing Painting
Setting posts Cutting wood
[ 2 time units for unpainted; [ 5 time units for uncut wood;
[ 3 time units ] [ 2 time units ]
3 time units otherwise ] 4 time units otherwise ]
[ To answer, we need to bring the day names and the day numbers
into coordination, and for that we may need again a pen and
paper ]
The Role of Software Engg. (1)
A bridge from customer needs to programming implementation
Customer
Customer
Programmer
System-to-be
Environment
Software-to-be
User
11
Example: ATM Machine
Understanding the money-machine problem:
Communication link
Banks
remote
ATM machine
datacenter
Bank
customer
12
How ATM Machine Might Work
Domain model Domain Model
created with help
of domain expert
Transaction
How may I record
help you? Cash
Bookkeeper
Speakerphone Safe
Safe keeper
Phone
Window clerk
Datacenter
liaison
Dispenser
Banks
remote
datacenter 13
Customer
Cartoon Strip : How ATM Machine Works
A Enter B C Verify
account
D
your PIN
XYZ
Verify
this
account
Withdraw Dispense
H Dispensing!
$60 $60
Please take
your cash
14
Software Engineering Blueprints
Specifying software problems and solutions is
like cartoon strip writing
Unfortunately, most of us are not artists, so
we will use something less exciting:
UML symbols
However
15
Second Law of Software Engineering
16
Software Development Methods
Method = work strategy
The Feynman Problem-Solving Algorithm:
(i) Write down the problem (ii) think very hard, and (iii) write down
the answer.
Waterfall
Unidirectional, finish this step before moving to the next
Iterative + Incremental
Develop increment of functionality, repeat in a feedback loop
Agile
User feedback essential; feedback loops on several levels of
granularity
17
Waterfall Method
Requirements
Design
Implementation
Testing
Waterfall
method Deployment &
Maintenance
doSomething()
doSomethingElse()
Interaction Diagram
doSomethingYetElse()
Online information:
http://www.uml.org
19
Understanding the Problem Domain
System to be developed
Actors
Agents external to the system
Concepts/ Objects
Agents working inside the system
Use Cases
Scenarios for using the system
20
ATM: Gallery of Players
D E XYZ
Please take
your cash withdrew
$60
Collecting
cash
Acknowledged
23
How ATM Machine Works (2)
Domain Model (2)
Solution
Alternative modification
solution
Transaction
How may I record
help you?
Bookkeeper
Speakerphone
Draftsman
Window clerk
Dispenser
Customer
How ATM Machine Works (3)
Domain Model (3)
Alternative Solution
modification
solution
Transaction
How may I record
help you?
Bookkeeper
Speakerphone
Courier
Window clerk
Dispenser
Remote
bank
Customer
Which solution is the best or even feasible?
Rube Goldberg Design
Garage door opener
26
Actual Design
27
Software Measurement
What to measure?
Project (developers work),
for budgeting and scheduling
Product,
for quality assessment
28
Formal hedge pruning
29
Sizing the Problem (1)
Step 1: Divide the problem into small & similar parts
Step 2:
Estimate relative
sizes of all parts
Size( )=4
Size( ) = 7
Size( ) = 10
Size( ) = 3
Size( ) = 4
Size( ) = 2
Size( ) = 4
Size( ) = 7
Sizing the Problem (2)
Step 3: Estimate the size of the total work
Estimation accuracy
Estimation cost
Estimation
error
6) Prune Section 1
7) Prune Section 2
8) Prune Section 3
Work items
21 days
5 days
List prioritized by the customer Estimated completion date Time
35
Measuring Quality of Work
I
Proposition Concept Relation Concept
have
1. I have friend
2. friend engages in coding friend
program
is
Search the Web for Concept Maps new
37
Case Study: Home Access
Control
Objective: Design an electronic system for:
Home access control
Locks and lighting operation
Intrusion detection and warning
Alarm bell
System
Light bulb
1
2
3
4
5
X
Y
Alarm bell
System
1
2
3
4
Light bulb
Central
5
X
Y
Computer
Backyard doors:
External &
Internal lock
Front doors:
External &
Internal lock
39
Know Your Problem
Mortise Lock Parts 1 Lock case
1 4 5 2 Latch bolt
6 3 Dead bolt
2 4 Strike plate
9
5 Strike box
6 Protective plate
3
7 Thumb-turn
7 8 Lock cylinder
9 Left hand lever
8
1
2
3
4
5
X
Y
40
Concept Map for Home Access
Control
tenant
enters
wishes key
can be
upper bound on failed attempts
causes valid key invalid key
lock opened
can be prevented by enforcing
may signal
41
States and Transition Rules
locked unlocked