WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint They may not show up well on other PowerPoint versions. You can download PowerPoint 2010 viewer from here.here These slides contain a lot of animations. For optimal results, watch in slideshow mode.
TEAMMATE WAITING working WAITING
But not like scrum
The View from the Top: Architecture CS2103/T, Lecture 4, Part 1, [Sep 6, 2013]
+ (important technical decisions) Architecture
Architecture
Architecture
Architecture TEAMMATES
+ (important technical decisions) Architecture
Architecture a a b b c c d d
Architecture a a b b c c d d
The architect
Architecture a a b b c c d d
a a b b c c d d Architecture styles
a a b b c c d d Architecture styles
n-tier | Client-server| Transaction processing | service-oriented | pipes and filters Architecture styles
Tier 0 Tier 1 Tier 2 Tier n Storage Logic UI Hardware Access Network Protocol Encryption FTP Access GUI Console n-tier | Client-server| Transaction processing | service-oriented | pipes and filters Architecture styles
Server Client 2 Client 1 Client n Web Server Browser 2 Browser 1 Mobile Browser Game Server Game Client 1 Game Client 2 Web Network n-tier | Client-server| Transaction processing | service-oriented | pipes and filters Architecture styles
Dispatcher Transaction creator n Transaction creator 1 Transaction executor 1 Transaction executor n T4T4 T4T4 T5T5 T5T5 T6T6 T6T6 T1T1 T1T1 T3T3 T3T3 T2T2 T2T2 Dispatcher Teller n Teller1 Account Manager Currency Mgt System C4C4 C4C4 A5A5 A5A5 A6A6 A6A6 A1A1 A1A1 C3C3 C3C3 A2A2 A2A2 n-tier | Client-server| Transaction processing | service-oriented | pipes and filters Architecture styles
Internet eBookShop xml data n-tier | Client-server| Transaction processing | service-oriented | pipes and filters Architecture styles Web services
n-tier | Client-server| Transaction processing | service-oriented | pipes and filters Architecture styles
Architecture a a b b c c d d
Architecture a a b b c c d d [Application Programming Interface]
UI A A B B C C
A A B B C C
A A B B C C
A A B B C C
Define APIs systematically to match features UI A A B B C C
System: Minesweeper Use case: 01 - play game Actors: Player MSS: 1. Player starts a new game. 2. Minesweeper shows the mine field with all cells initially hidden. 3. Player marks or clears a hidden cell. 4. Minesweeper shows the updated mine field. Steps 3-4 are repeated until the game is either won or lost. 5. Minesweeper shows the result. Use case ends.
System: Minesweeper Use case: 01 - play game Actors: Player MSS: 1. Player starts a new game. 2. Minesweeper shows the mine field with all cells initially hidden. 3. Player marks or clears a hidden cell. 4. Minesweeper shows the updated mine field. Steps 3-4 are repeated until the game is either won or lost. 5. Minesweeper shows the result. Use case ends. The architect
System: Minesweeper Use case: 01 - play game Actors: Player MSS: 1. Player starts a new game. 2. Minesweeper shows the mine field with all cells initially hidden. 3. Player marks or clears a hidden cell. 4. Minesweeper shows the updated mine field. Steps 3-4 are repeated until the game is either won or lost. 5. Minesweeper shows the result. Use case ends.
UI MSLogic Storage History
UI [interactions between components for a given scenario]
:UI [interactions between components for a given scenario] operation returned value
:UI
SD for PC phone Complete this Sequence diagram. System: PC Phone Actor: phone user MSS: 1. User presses digit 2. System shows digit Repeat step 1-2 until telephone number is entered. 3. User press ‘send’ 4. System connects the call. Telephone conversation takes place. 5. User press ‘end’ 6. System disconnects the call Use case ends. :PCPhoneUI ‘send’ call connected ‘end’ call disconnected User press key Shows digit loop[Until full number]
Assume you are implementing a minesweeper game. Explain how you would eliminate the possibility of losing the game on the first click. first {answer} e.g. first blah blah blah first {answer} e.g. first blah blah blah 77577
:UI
:MSLogic
I want a foo() No way!
:UI :MSLogic
:UI :MSLogic
:UI :MSLogic
:Storage :History
Architecture a a b b c c d d
Architecture a a b b c c d d
agile camp full-design camp
Architecture a a b b c c d d
Architecture a a b b c c d d
UI MSLogic Storage History
UI MSLogic Storage History UI MSLogic Storage History
UI MSLogic Storage History UI MSLogic Storage History
MSLogic
?? ???
Top-down design Minesweeper UI MSLogic Storage History MSLogic ?? ??? History ???
Minesweeper UI MSLogic Storage History MSLogic ?? ??? History ??? Bottom-up design
Which one is better?
Define architecture to work in parallel Define API systematically Can use architectural styles When to stop? Depends on agility Can be top-down or bottom-up. SDs help to discover APIs
Somewhat relevant Define APIs first Use SDs where necessary Force yourself to be top-down OK to be agile
Which one of these is the least applicable to the CS2103/T project? a) Top-down design. b) API design. c) Agile approach to design. d) Service-oriented architecture. e) Sequence diagrams project {a|b|c|d|e} e.g. project c project {a|b|c|d|e} e.g. project c 77577