Notes
Slide Show
Outline
1
 
2
Design context
3
Design criteria
  • Cohesion


  • Coupling


  • Information hiding


  • Encapsulation



4
Views
  • UML provides multiple perspectives for describing the software.


  • Static – shows classes
  • class diagram
  • concepts
  • relationships


  • Dynamic – shows objects/components
  • state diagram
  • activity diagram
5
Classes
6
State
7
Mutually reinforcing views
8
Activity diagram
9
Mutual reinforcement
10
Concurrency
  • Sequential
  • one thing at a time


  • Concurrent
  • appears that multiple things happen but really only one at a time


  • Parallel
  • multiple things really do happen at a time



11
Issue - order
  • If two different entities access the same resource does the order in which they access the resource change the result?



12
Units
13
Single process
14
Multiple processes
15
Where does concurrency come from?
  • Multiple independent sources of stimulus
  • people
  • hardware


  • Multiple modules with no interdependence
16
Where does parallelism come from?
  • Availability of hardware to implement concurrency
17
Synchronization
18
The goal
  • The goal is to have sufficient semantics to fully describe a system.
19
Exercise
  • Design a “to do list” program that can
  • List tasks by time and date
  • Allow addition, deletion, and modification of tasks
  • Allow user to specify that a task is to be repeated. Daily, weekly, monthly
  • Print a daily schedule
  • Allow multiple users to access the same list from anywhere


  • Criteria: use as many design patterns as possible; appropriateness of chosen architecture; completeness of the design document; clarity of description


  • Conditions: team of 2; due October 26th by 9 am via email; 4 pts