Download presentation
Presentation is loading. Please wait.
1
Software Engineering 3 rd Bachelor Informatics Ahmed Lamkanfi October 15, 2009
2
1 Objective Get initial system design from specification Use Cases as requirements specification CRC Cards to create and validate design Role playing exercise
3
2 Example system E-Finance case: Basic banking services: current and savings accounts Private investments: buying and selling stocks Specified using Use Cases
4
3 Use Case model
5
4 Agenda Team building: ~5 persons per team Extract candidate classes from specification Role-playing scenarios Select Use Cases While playing the scenario: Extract responsibilities and collaborations Build hierarchies Assess the simulation, revise CRC cards Repeat until all scenarios go smoothly
6
5 A CRC card
7
6 Classes Look for noun phrases Derive candidate classes Distinguish: Core, irrelevant and undecided classes Attribute or class? Aliases?
8
7 Responsibilities Look for verb phrases Responsibilities = what instead of how What a class must know about itself What a class must be able to do Beware of: God classes: doing most of the work Mere data containers: doing practically nothing
9
8 Collaborations Responsibilities the class does not fulfill independently Clues for collaborations Client-server Dependencies Forcefully break up complex classes Move responsibilities to collaborators
10
9 Hierarchy Building Look for “kind-of” relationships Distinguish from “part-of” relationships! Extract common behavior Insert abstract classes if necessary Fill out subclass/superclass fields on cards
11
10 Role playing The core of CRC cards: Interactive review of the design Fosters shared meaning, common understanding Enacted system simulation Reading aloud, acting out Involves everybody in the team Experimental, playful technique
12
11 Questions for the review Are classes called frequently by same class? Is the responsibility in the right place? Are they really separate classes? Does every class have all necessary information to carry out its responsibilities? Do classes have responsibilities that never come into play? Have necessary classes been left out?
13
12 Use Case sets Basic banking services 2.2.1.4 Open a current account 2.2.2.1 Withdraw from a current account 2.2.2.2 Deposit on an account 2.2.2.3 Transfer between two accounts 2.4.2.1 Process a deposit 2.4.2.2 Process a withdrawal 2.4.2.3 Process a transfer 2.4.2.4 Process a charge Investment services 2.2.2.3 Transfer between two accounts 2.3.1.1 Open a custody account 2.3.4.1 Place a direct order for a stock 2.3.4.2 Place a limited order for a stock 2.3.4.3 Execute put option 2.3.4.4 Execute call option
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.