SlideShare une entreprise Scribd logo
1  sur  71
Seminar 3: Making Good Progress Programming Paradigms [The Paradigms - Group 2]
We will always use system analysis and design at the start of every software project.
No approaches were taught to derived
Knowing an good approach can build a robust system design.
Let us learn an approach to do system analysis and design 
What is Object-Oriented Analysis & Design? 7 Teacher Student An approach that models a system as a group of interacting objects.
New approach to analysis & design 8
CRC Approach 9
What is CRC? Class, Responsibility & Collaboration Discovering the real world objects is a system Mapping the collaboration among classes and their responsibilities
Why CRC? Uses brainstorming and role-playing to maximize advantages of group work
Basics of CRC approach
OO Characteristics 13
The things they do  Their relationship to other classes
Back of the card is used list attributes and write class description The things they do  Their relationship to other classes
16
QuickCRC  17
CRC books 18
19
CRC Card 1. Discovering Candidate Classes 1. Read Requirements Documents 2. Clarifying the Scope 2. Underline nouns and noun phrases. 3. Selecting Core Classes 3. Add them to candidate class list.  4. Brainstorm to find other potential classes.
The ATM System will interface with the customer through a display screen , numeric and special input keys, a bankcard reader, a deposit slot, and a receipt printer. Customer may make deposits, withdrawals and balance inquires using the ATM machine, but the update of accounts will be handled by an interface to the Accounts system. Customers will be assigned a PIN and clearance level by the security system which will be verified prior to transactions. We would allow customers to update routine information such as change of address or phone number using the ATM. 1.Discovering The Candidate Class List 1. Read Requirements Documents
The ATM System will interface with the customer through a display screen , numeric and special input keys, a bankcard reader, a deposit slot, and a receipt printer. Customer may make deposits, withdrawals and balance inquires using the ATM machine, but the update of accounts will be handled by an interface to the Accounts system. Customers will be assigned a PIN and clearance level by the security system which will be verified prior to transactions. We would allow customers to update routine information such as change of address or phone numberusing the ATM. 1. Discovering The Candidate Class List 2. Underline nouns and noun phrases.
23 1. Discovering The Candidate Class List Candidate Class List 3. Add them to candidate class list.  ,[object Object]
Customer
Display screen
Numeric
Special input keys
Bankcard reader
Deposit slot
Receipt printer
Deposits
Withdrawals
Balance inquires
Accounts
PIN
Clearance level
Security system
Transactions
Change of address
Phone number,[object Object]
25 Q: How does the customer access the ATM? 1. Discovering The Candidate Class List 4. Brainstorm to find other potential classes.
1.Discovering The Candidate Class List Candidate Class List
27 CRC Card 1. Read Requirements Documents 1. Discovering Candidate Classes 2. Underline nouns and noun phrases. 2. Clarifying the Scope 3. Add them to candidate class list.  3. Selecting Core Classes 4. Brainstorm to find other potential classes.
Clarifying System Scope What is and what is not part of the system.
Clarifying System Scope 29 What is the scope of the ATM system? Questions Does it handle everything? banking application user interface interactions between them Does it..  updates accounting records? records and mediates the transaction activity? Other Possible questions
Clarifying System Scope
31 Clarifying System Scope The sharper the system boundaries, the easier the evaluation of candidate class list.
32 CRC Card 1. Read Requirements Documents 1. Discovering Candidate Classes 2. Underline nouns and noun phrases. 2. Clarifying the Scope 3. Add them to candidate class list.  3. Selecting Core Classes 4. Brainstorm to find other potential classes.
Sort Candidate Class List
Essential Classes for the application 4. Selecting Core Classes
Class that we are NOT able to categorize without knowing the system boundaries and definition 4. Selecting Core Classes To be Reviewed further for categorization
Classes that are outsidethe system scope Printer, ScreenSave, and Prompt.  Related to the user interface subsystem But not to the core banking application 4. Selecting Core Classes
37 3. Selecting Core Classes Eliminate Unnecessary Classes Architectural Design Issues 1. Identify hot spots 1. Remove ghost classes 2. Use appropriate design patterns 2. Combine synonyms  3. Take advantage of existing software  frameworks 3. Distinguish attributes from classes
What are Hot Spots? A hot spot is a portion of the system that is likely to change from one system variant to another.
What are Hot Spots? Hot spots encapsulatethe variable aspects within components.  ,[object Object]
Interfaces and the relationships among components will become less prone to changes.Aid in designing components where changes is seldom necessary or constraint to a class
 Identify Hot Spots Identify hot spot by answering: ,[object Object],(Help to generate a List of hot spots) Let’s apply this question to our ATM domain ...
Identify Hot Spots Analysis of ATM Q: Which aspects of the domain differ fromapplication to application? ,[object Object],Future
Identify hot spots Withdrawal handling is a hot spot. Initially supports the dispensing of cash; future may require update of cash cards. The classes that touch this hot spot include Account, Withdrawal, FundsAvailable, and BankCard.
Benefits of Hot Spots
44 3. Selecting Core Classes Eliminate Unnecessary Classes Architectural Design Issues 1. Identify hot spots 1. Remove ghost classes 2. Use appropriate design patterns 2. Combine synonyms  3. Take advantage of existing software  frameworks 3. Distinguish attributes from classes
Design Patterns A design pattern is a design structure that has been successfully used in a similar context “No Point Reinventing the Wheel” “Reuse and Adapt existing”
Design Patterns Pioneers have laid out the foundations There exist library of patterns Apply them to them to the CRC cards Speed up analysis Application of Design Patterns may result in new classes that are not found during brainstorming
“System Interaction Pattern" AuthorizeSystemInteraction
Example AuthorizeSystemInteraction Encapsulate Communication between ATM and the bank existing security system
Example of Patterns that can be considered Clients Servers Transactions Interacting Systems Interacting Devices Etc…
Some Good Pattern Books
51 3. Selecting Core Classes Eliminate Unnecessary Classes Architectural Design Issues 1. Identify hot spots 1. Remove ghost classes 2. Use appropriate design patterns 2. Combine synonyms  3. Take advantage of existing software  frameworks 3. Distinguish attributes from classes
Framework A collection of classes that captures the architecture and basic operation of an application system.  Systems are created by extending the given classes to add the specialized behaviors.
Frameworks are "upside down libraries“.  System control resides in framework code that calls "down" to user-supplied code. A blue print for the implementation Framework
Example in ATM 54 There are many papers on ATM that has been successfully built These framework can also be standards that existing ATM follows

Contenu connexe

En vedette

Semnarea digitala a unui e mail
Semnarea digitala a unui e mailSemnarea digitala a unui e mail
Semnarea digitala a unui e mailcraciunmalina
 
KarmaSnap Benefits For Non Profits
KarmaSnap Benefits For Non ProfitsKarmaSnap Benefits For Non Profits
KarmaSnap Benefits For Non ProfitsRam Reva
 
WS: Kohler, Logica - Running operations devops style
WS: Kohler, Logica - Running operations devops styleWS: Kohler, Logica - Running operations devops style
WS: Kohler, Logica - Running operations devops styleCloudOps Summit
 
Blog optimization adding google+ author tag
Blog optimization   adding google+ author tagBlog optimization   adding google+ author tag
Blog optimization adding google+ author tagAndrea Berberich
 
Lightning Talk: Ploegert, Sharewise - Crowd mit Cloud
Lightning Talk: Ploegert, Sharewise - Crowd mit CloudLightning Talk: Ploegert, Sharewise - Crowd mit Cloud
Lightning Talk: Ploegert, Sharewise - Crowd mit CloudCloudOps Summit
 
Азбука схемы принятия решения - как продавать большим компаниям
Азбука схемы принятия решения - как продавать большим компаниямАзбука схемы принятия решения - как продавать большим компаниям
Азбука схемы принятия решения - как продавать большим компаниямGreenbusiness Consulting
 
Gimnazjum nr 3 in tarnobrzeg
Gimnazjum nr 3 in tarnobrzegGimnazjum nr 3 in tarnobrzeg
Gimnazjum nr 3 in tarnobrzegJose Duarte
 
Fulltext search hell, como estruturar um sistema de busca desacoplado
Fulltext search hell, como estruturar um sistema de busca desacopladoFulltext search hell, como estruturar um sistema de busca desacoplado
Fulltext search hell, como estruturar um sistema de busca desacopladoJuliana Lucena
 
images for cover and dps
images for cover and dpsimages for cover and dps
images for cover and dpssarahlambe
 
Startups: Jung - SECLUDIT
Startups: Jung - SECLUDITStartups: Jung - SECLUDIT
Startups: Jung - SECLUDITCloudOps Summit
 
Digital technology A.S
Digital technology A.SDigital technology A.S
Digital technology A.Ssarahlambe
 
Programming Paradigms Seminar 3
Programming Paradigms Seminar 3Programming Paradigms Seminar 3
Programming Paradigms Seminar 3neoxiuting
 
My memorable meal
My memorable mealMy memorable meal
My memorable mealluis_90
 
The Life, Death and Afterlife of Virtual Worlds for Education & Training
The Life, Death and Afterlife of Virtual Worlds for Education & TrainingThe Life, Death and Afterlife of Virtual Worlds for Education & Training
The Life, Death and Afterlife of Virtual Worlds for Education & TrainingAllen Partridge
 
Consumer Opinion on Green Vehicles: Enprecis Mobility Panel
Consumer Opinion on Green Vehicles: Enprecis Mobility PanelConsumer Opinion on Green Vehicles: Enprecis Mobility Panel
Consumer Opinion on Green Vehicles: Enprecis Mobility PanelEnprecis
 
Rory evaluation slideshow
Rory evaluation slideshowRory evaluation slideshow
Rory evaluation slideshowsiantillett
 
愛搜索招商創業
愛搜索招商創業愛搜索招商創業
愛搜索招商創業Rich Shien
 

En vedette (20)

Semnarea digitala a unui e mail
Semnarea digitala a unui e mailSemnarea digitala a unui e mail
Semnarea digitala a unui e mail
 
KarmaSnap Benefits For Non Profits
KarmaSnap Benefits For Non ProfitsKarmaSnap Benefits For Non Profits
KarmaSnap Benefits For Non Profits
 
WS: Kohler, Logica - Running operations devops style
WS: Kohler, Logica - Running operations devops styleWS: Kohler, Logica - Running operations devops style
WS: Kohler, Logica - Running operations devops style
 
Blog optimization adding google+ author tag
Blog optimization   adding google+ author tagBlog optimization   adding google+ author tag
Blog optimization adding google+ author tag
 
Lightning Talk: Ploegert, Sharewise - Crowd mit Cloud
Lightning Talk: Ploegert, Sharewise - Crowd mit CloudLightning Talk: Ploegert, Sharewise - Crowd mit Cloud
Lightning Talk: Ploegert, Sharewise - Crowd mit Cloud
 
Азбука схемы принятия решения - как продавать большим компаниям
Азбука схемы принятия решения - как продавать большим компаниямАзбука схемы принятия решения - как продавать большим компаниям
Азбука схемы принятия решения - как продавать большим компаниям
 
Gimnazjum nr 3 in tarnobrzeg
Gimnazjum nr 3 in tarnobrzegGimnazjum nr 3 in tarnobrzeg
Gimnazjum nr 3 in tarnobrzeg
 
Fulltext search hell, como estruturar um sistema de busca desacoplado
Fulltext search hell, como estruturar um sistema de busca desacopladoFulltext search hell, como estruturar um sistema de busca desacoplado
Fulltext search hell, como estruturar um sistema de busca desacoplado
 
Zarf
ZarfZarf
Zarf
 
images for cover and dps
images for cover and dpsimages for cover and dps
images for cover and dps
 
Startups: Jung - SECLUDIT
Startups: Jung - SECLUDITStartups: Jung - SECLUDIT
Startups: Jung - SECLUDIT
 
Digital technology A.S
Digital technology A.SDigital technology A.S
Digital technology A.S
 
Programming Paradigms Seminar 3
Programming Paradigms Seminar 3Programming Paradigms Seminar 3
Programming Paradigms Seminar 3
 
2013 the year ahead
2013 the year ahead2013 the year ahead
2013 the year ahead
 
My memorable meal
My memorable mealMy memorable meal
My memorable meal
 
The Life, Death and Afterlife of Virtual Worlds for Education & Training
The Life, Death and Afterlife of Virtual Worlds for Education & TrainingThe Life, Death and Afterlife of Virtual Worlds for Education & Training
The Life, Death and Afterlife of Virtual Worlds for Education & Training
 
Todorov
TodorovTodorov
Todorov
 
Consumer Opinion on Green Vehicles: Enprecis Mobility Panel
Consumer Opinion on Green Vehicles: Enprecis Mobility PanelConsumer Opinion on Green Vehicles: Enprecis Mobility Panel
Consumer Opinion on Green Vehicles: Enprecis Mobility Panel
 
Rory evaluation slideshow
Rory evaluation slideshowRory evaluation slideshow
Rory evaluation slideshow
 
愛搜索招商創業
愛搜索招商創業愛搜索招商創業
愛搜索招商創業
 

Similaire à Programming Paradigms - Seminar 3

Applying UML and Patterns (CH1, 6, 9, 10)
Applying UML and Patterns (CH1, 6, 9, 10)Applying UML and Patterns (CH1, 6, 9, 10)
Applying UML and Patterns (CH1, 6, 9, 10)Jamie (Taka) Wang
 
Project Management (2017) slip question (MUM University)
Project Management (2017) slip question (MUM University)Project Management (2017) slip question (MUM University)
Project Management (2017) slip question (MUM University)Satyendra Singh
 
Creating a Use Case
Creating a Use Case                                               Creating a Use Case
Creating a Use Case CruzIbarra161
 
Bortniker_S610_ReconProject
Bortniker_S610_ReconProjectBortniker_S610_ReconProject
Bortniker_S610_ReconProjectJustin Bortniker
 
BMIS 530Systems Analysis and Redesign Project Phase 1 Assignm
BMIS 530Systems Analysis and Redesign Project Phase 1 AssignmBMIS 530Systems Analysis and Redesign Project Phase 1 Assignm
BMIS 530Systems Analysis and Redesign Project Phase 1 AssignmJeniceStuckeyoo
 
Domain class model
Domain class modelDomain class model
Domain class modelshekharsj
 
6. ch 5-understanding requirements
6. ch 5-understanding requirements6. ch 5-understanding requirements
6. ch 5-understanding requirementsDelowar hossain
 
PROJECT MANAGEMENT - (2016) SEM-VI - PRACTICAL (SLIP) QUESTIONS
PROJECT MANAGEMENT - (2016) SEM-VI - PRACTICAL (SLIP) QUESTIONSPROJECT MANAGEMENT - (2016) SEM-VI - PRACTICAL (SLIP) QUESTIONS
PROJECT MANAGEMENT - (2016) SEM-VI - PRACTICAL (SLIP) QUESTIONSSatyendra Singh
 
Software Development Process - REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...
Software Development Process -  REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...Software Development Process -  REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...
Software Development Process - REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...Mark John Lado, MIT
 
Object oriented software engineering
Object oriented software engineeringObject oriented software engineering
Object oriented software engineeringVarsha Ajith
 
types of testing with descriptions and examples
types of testing with descriptions and examplestypes of testing with descriptions and examples
types of testing with descriptions and examplesMani Deepak Choudhry
 

Similaire à Programming Paradigms - Seminar 3 (20)

M azhar
M azharM azhar
M azhar
 
Usecase
UsecaseUsecase
Usecase
 
Building an Information System
Building an Information SystemBuilding an Information System
Building an Information System
 
Sadcw 6e chapter4
Sadcw 6e chapter4Sadcw 6e chapter4
Sadcw 6e chapter4
 
Applying UML and Patterns (CH1, 6, 9, 10)
Applying UML and Patterns (CH1, 6, 9, 10)Applying UML and Patterns (CH1, 6, 9, 10)
Applying UML and Patterns (CH1, 6, 9, 10)
 
Chapter 7 ooad
Chapter 7 ooadChapter 7 ooad
Chapter 7 ooad
 
Project Management (2017) slip question (MUM University)
Project Management (2017) slip question (MUM University)Project Management (2017) slip question (MUM University)
Project Management (2017) slip question (MUM University)
 
SE UNIT-2.pdf
SE UNIT-2.pdfSE UNIT-2.pdf
SE UNIT-2.pdf
 
Creating a Use Case
Creating a Use Case                                               Creating a Use Case
Creating a Use Case
 
Ch07
Ch07Ch07
Ch07
 
Ch07
Ch07Ch07
Ch07
 
Bortniker_S610_ReconProject
Bortniker_S610_ReconProjectBortniker_S610_ReconProject
Bortniker_S610_ReconProject
 
BMIS 530Systems Analysis and Redesign Project Phase 1 Assignm
BMIS 530Systems Analysis and Redesign Project Phase 1 AssignmBMIS 530Systems Analysis and Redesign Project Phase 1 Assignm
BMIS 530Systems Analysis and Redesign Project Phase 1 Assignm
 
Domain class model
Domain class modelDomain class model
Domain class model
 
Design patterns
Design patternsDesign patterns
Design patterns
 
6. ch 5-understanding requirements
6. ch 5-understanding requirements6. ch 5-understanding requirements
6. ch 5-understanding requirements
 
PROJECT MANAGEMENT - (2016) SEM-VI - PRACTICAL (SLIP) QUESTIONS
PROJECT MANAGEMENT - (2016) SEM-VI - PRACTICAL (SLIP) QUESTIONSPROJECT MANAGEMENT - (2016) SEM-VI - PRACTICAL (SLIP) QUESTIONS
PROJECT MANAGEMENT - (2016) SEM-VI - PRACTICAL (SLIP) QUESTIONS
 
Software Development Process - REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...
Software Development Process -  REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...Software Development Process -  REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...
Software Development Process - REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...
 
Object oriented software engineering
Object oriented software engineeringObject oriented software engineering
Object oriented software engineering
 
types of testing with descriptions and examples
types of testing with descriptions and examplestypes of testing with descriptions and examples
types of testing with descriptions and examples
 

Programming Paradigms - Seminar 3

  • 1. Seminar 3: Making Good Progress Programming Paradigms [The Paradigms - Group 2]
  • 2. We will always use system analysis and design at the start of every software project.
  • 3.
  • 4. No approaches were taught to derived
  • 5. Knowing an good approach can build a robust system design.
  • 6. Let us learn an approach to do system analysis and design 
  • 7. What is Object-Oriented Analysis & Design? 7 Teacher Student An approach that models a system as a group of interacting objects.
  • 8. New approach to analysis & design 8
  • 10. What is CRC? Class, Responsibility & Collaboration Discovering the real world objects is a system Mapping the collaboration among classes and their responsibilities
  • 11. Why CRC? Uses brainstorming and role-playing to maximize advantages of group work
  • 12. Basics of CRC approach
  • 14. The things they do Their relationship to other classes
  • 15. Back of the card is used list attributes and write class description The things they do Their relationship to other classes
  • 16. 16
  • 19. 19
  • 20. CRC Card 1. Discovering Candidate Classes 1. Read Requirements Documents 2. Clarifying the Scope 2. Underline nouns and noun phrases. 3. Selecting Core Classes 3. Add them to candidate class list. 4. Brainstorm to find other potential classes.
  • 21. The ATM System will interface with the customer through a display screen , numeric and special input keys, a bankcard reader, a deposit slot, and a receipt printer. Customer may make deposits, withdrawals and balance inquires using the ATM machine, but the update of accounts will be handled by an interface to the Accounts system. Customers will be assigned a PIN and clearance level by the security system which will be verified prior to transactions. We would allow customers to update routine information such as change of address or phone number using the ATM. 1.Discovering The Candidate Class List 1. Read Requirements Documents
  • 22. The ATM System will interface with the customer through a display screen , numeric and special input keys, a bankcard reader, a deposit slot, and a receipt printer. Customer may make deposits, withdrawals and balance inquires using the ATM machine, but the update of accounts will be handled by an interface to the Accounts system. Customers will be assigned a PIN and clearance level by the security system which will be verified prior to transactions. We would allow customers to update routine information such as change of address or phone numberusing the ATM. 1. Discovering The Candidate Class List 2. Underline nouns and noun phrases.
  • 23.
  • 35. PIN
  • 40.
  • 41. 25 Q: How does the customer access the ATM? 1. Discovering The Candidate Class List 4. Brainstorm to find other potential classes.
  • 42. 1.Discovering The Candidate Class List Candidate Class List
  • 43. 27 CRC Card 1. Read Requirements Documents 1. Discovering Candidate Classes 2. Underline nouns and noun phrases. 2. Clarifying the Scope 3. Add them to candidate class list. 3. Selecting Core Classes 4. Brainstorm to find other potential classes.
  • 44. Clarifying System Scope What is and what is not part of the system.
  • 45. Clarifying System Scope 29 What is the scope of the ATM system? Questions Does it handle everything? banking application user interface interactions between them Does it.. updates accounting records? records and mediates the transaction activity? Other Possible questions
  • 47. 31 Clarifying System Scope The sharper the system boundaries, the easier the evaluation of candidate class list.
  • 48. 32 CRC Card 1. Read Requirements Documents 1. Discovering Candidate Classes 2. Underline nouns and noun phrases. 2. Clarifying the Scope 3. Add them to candidate class list. 3. Selecting Core Classes 4. Brainstorm to find other potential classes.
  • 50. Essential Classes for the application 4. Selecting Core Classes
  • 51. Class that we are NOT able to categorize without knowing the system boundaries and definition 4. Selecting Core Classes To be Reviewed further for categorization
  • 52. Classes that are outsidethe system scope Printer, ScreenSave, and Prompt. Related to the user interface subsystem But not to the core banking application 4. Selecting Core Classes
  • 53. 37 3. Selecting Core Classes Eliminate Unnecessary Classes Architectural Design Issues 1. Identify hot spots 1. Remove ghost classes 2. Use appropriate design patterns 2. Combine synonyms  3. Take advantage of existing software frameworks 3. Distinguish attributes from classes
  • 54. What are Hot Spots? A hot spot is a portion of the system that is likely to change from one system variant to another.
  • 55.
  • 56. Interfaces and the relationships among components will become less prone to changes.Aid in designing components where changes is seldom necessary or constraint to a class
  • 57.
  • 58.
  • 59. Identify hot spots Withdrawal handling is a hot spot. Initially supports the dispensing of cash; future may require update of cash cards. The classes that touch this hot spot include Account, Withdrawal, FundsAvailable, and BankCard.
  • 61. 44 3. Selecting Core Classes Eliminate Unnecessary Classes Architectural Design Issues 1. Identify hot spots 1. Remove ghost classes 2. Use appropriate design patterns 2. Combine synonyms  3. Take advantage of existing software frameworks 3. Distinguish attributes from classes
  • 62. Design Patterns A design pattern is a design structure that has been successfully used in a similar context “No Point Reinventing the Wheel” “Reuse and Adapt existing”
  • 63. Design Patterns Pioneers have laid out the foundations There exist library of patterns Apply them to them to the CRC cards Speed up analysis Application of Design Patterns may result in new classes that are not found during brainstorming
  • 64. “System Interaction Pattern" AuthorizeSystemInteraction
  • 65. Example AuthorizeSystemInteraction Encapsulate Communication between ATM and the bank existing security system
  • 66. Example of Patterns that can be considered Clients Servers Transactions Interacting Systems Interacting Devices Etc…
  • 68. 51 3. Selecting Core Classes Eliminate Unnecessary Classes Architectural Design Issues 1. Identify hot spots 1. Remove ghost classes 2. Use appropriate design patterns 2. Combine synonyms  3. Take advantage of existing software frameworks 3. Distinguish attributes from classes
  • 69. Framework A collection of classes that captures the architecture and basic operation of an application system. Systems are created by extending the given classes to add the specialized behaviors.
  • 70. Frameworks are "upside down libraries“. System control resides in framework code that calls "down" to user-supplied code. A blue print for the implementation Framework
  • 71. Example in ATM 54 There are many papers on ATM that has been successfully built These framework can also be standards that existing ATM follows
  • 72. Part of a Framework 55
  • 73. 56 In the event where there is no available framework Use design patterns to aid the design and analysis part of the application
  • 74. 57 3. Selecting Core Classes Eliminate Unnecessary Classes Architectural Design Issues 1. Identify hot spots 1. Remove ghost classes 2. Use appropriate design patterns 2. Combine synonyms  3. Take advantage of existing software frameworks 3. Distinguish attributes from classes
  • 75. Remove ghost classes Classes that do not fit within the application Classes that are related entities but are outside the system.
  • 76. Example Printer, and Keypad are relevant but outside the application.
  • 77. 60 3. Selecting Core Classes Eliminate Unnecessary Classes Architectural Design Issues 1. Identify hot spots 1. Remove ghost classes 2. Use appropriate design patterns 2. Combine synonyms  3. Take advantage of existing software frameworks 3. Distinguish attributes from classes
  • 78. Combine synonyms  Use a common name for same items This situation may arise when different groups within an organization use different names to refer to the same thing.
  • 79. Similarity BankCustomerand AccountHolder are probably synonyms. Adopt one of them or create a new name.
  • 80. Situation based Balance and FundsAvailablemay or may not be different in concepts Example: A policy of disallowing withdrawals for some period after deposit of a check.
  • 81. Caution! Be careful when the same word actually refers to different things! New core classes may be needed.
  • 82. 65 3. Selecting Core Classes Eliminate Unnecessary Classes Architectural Design Issues 1. Identify hot spots 1. Remove ghost classes 2. Use appropriate design patterns 2. Combine synonyms  3. Take advantage of existing software frameworks 3. Distinguish attributes from classes
  • 83. Distinguish attributes from classes Some candidate classes may turn out to represent information only! A candidate class may be an attribute if: It does not have any operations It does not change
  • 84.
  • 85.
  • 86. 69 So what do we have so far?
  • 87. Annotated Candidate Class List Critical Classes FinancialTransaction Account BalanceInquiry Withdrawal Deposit AuthorizeSystemInteraction BankCard Undecided Classes BankCustomer(ghost - integrated with AuthorizeSystemInteraction) PIN (attribute) SavingsAccount(attribute of Account) CheckingAccount(attribute of Account) ATM (ghost -> system name) FundsAvailable(attribute) Balance (attribute) AccountHolder(synonym)
  • 88. Annotated Candidate Class List Irrelevant Items Transfer Receipt ReceiptPrinter Keypad Screen CashDispenser ScreenMessage Display Deposit EnvelopeFailure TimeOut KeyTransaction LogPrinter ScreenSaver Prompt Numeric Key Key
  • 89. Thank you! End of Presentation

Notes de l'éditeur

  1. If a class depends on upon other classes, to help carry out it’s responsibilities, it will have collaborators written by side the responsibilityIf a card is part of a hierarchy, it may have superclass or subclasses.
  2. If a class depends on upon other classes, to help carry out it’s responsibilities, it will have collaborators written by side the responsibilityIf a card is part of a hierarchy, it may have superclass or subclasses.
  3. Discovering Candidate ClassesRead Requirements DocumentsUnderline nouns and noun phrasesAdd them to candidate class listBrainstorm to find other potential classesClarifying the ScopeSelecting Core ClassesArchitectural DesignIdentify hot spotsUse appropriate design patternsTake advantage of existing software frameworksEliminate Unnecessary ClassesRemove ghost classesCombine synonyms Distinguish attributes from classes
  4. Does it handle everything--Is the ATM responsible for updating accounting records? or just recording and mediating the transaction activity?
  5. Limits its scope to banking information capture -- Leaving the user interface, security and actual account update to other systems.
  6. Pree definition: Specialization (=adaption) takes place at points of predefined refinement that we call hot spots (Pree,1995, 1996, 1997).Predefine refinement aka the framework of the domain.
  7. Hotspot also enables the reuse of the overall system architecture and common code.The Abstract classes of the framework intertwine with hotspots highlighted in grey.
  8. http://docs.google.com/viewer?a=v&q=cache:ihjN-VmNNaEJ:citeseerx.ist.psu.edu/viewdoc/download%3Fdoi%3D10.1.1.97.6069%26rep%3Drep1%26type%3Dpdf+hot+spots+driven+approach&hl=en&gl=sg&pid=bl&srcid=ADGEESgC8vV6UzFjxHOKDLqcxcnVf1w-lJnBU13X9N-fsIP1trelhEudmWNpYpGhrfo-CcSlxFokUONDuYqRfajy_KDGuWHJYrU7kBJlVHjSBgHzCNHspTZ5_-rrcBVVgeN_9rrkfESg&sig=AHIEtbSbl7ozvrNrZ8ZTj9GxfgzZoBXpXAhttp://docs.google.com/viewer?a=v&q=cache:L-Yyq-nbVakJ:citeseerx.ist.psu.edu/viewdoc/download%3Fdoi%3D10.1.1.76.4910%26rep%3Drep1%26type%3Dpdf+Wolfgang+pree+Which+aspects+of+the+domain+differ+from+application+to+application%3F&hl=en&gl=sg&pid=bl&srcid=ADGEESgBvu4B0-28tpkoszuKNLtOEoPjFUX36Mqk3AGyln5jDpwqb4NCPFoDIPvcYiyMw247ms-dPWtzz6S3Cz8BsKdv3ThLRyfZ5xllYa5IUACILcS96Lu4FuqLqiEiMHn8tXmR3Xhq&sig=AHIEtbQqPZKDE0evqNqUfZNF2vmG519FRQ
  9. After Hotspot has been identified…
  10. A framework is a collection of classes--some abstract, some concrete--that captures the architecture and basic operation of an application system. Systems are created by extending the given classes to add the specialized behaviors.