5 Pages

lecture19

Course: CS 6448, Fall 2009
School: Colorado
Rating:
 
 
 
 
 

Word Count: 1348

Document Preview

where Credit Credit is Due Lecture 19: Responsibility-Driven Design, Part 2 Some material presented in this lecture is taken from Object Design: Roles, Responsibilities, and Collaborations. Addison Wesley/Pearson Education, 2003. ISBN 0-201-37943-0 Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 March 18, 2003 University of Colorado, 2003 2 Responsibility-Driven...

Register Now

Unformatted Document Excerpt

Coursehero >> Colorado >> Colorado >> CS 6448

Course Hero has millions of student submitted documents similar to the one
below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.

Course Hero has millions of student submitted documents similar to the one below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.
where Credit Credit is Due Lecture 19: Responsibility-Driven Design, Part 2 Some material presented in this lecture is taken from Object Design: Roles, Responsibilities, and Collaborations. Addison Wesley/Pearson Education, 2003. ISBN 0-201-37943-0 Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 March 18, 2003 University of Colorado, 2003 2 Responsibility-Driven Design Last Lecture Life cycle, Stereotypes, Responsibilities Collaborations Collaborations represent neighborhoods of objects that work together to fulfill a responsibility Neighborhoods may overlap, thats okay; whats important is that for a specific responsibility, there is a neighborhood that handles it This Lecture Designing Collaborations Or, once you have responsibilities, how do your objects cooperate to fulfill them? We saw an example of this last time, when looking at the get total sale problem March 18, 2003 University of Colorado, 2003 3 This is similar to Maciaszeks take on design, in identifying collaborations to realize use cases; here we have started with use cases to get responsibilities, and now we design collaborations to handle each responsibility March 18, 2003 University of Colorado, 2003 4 Identifying Collaborations Use stereotypes Look at individual responsibilities Design the details of a complex responsibility Design collaborations for a specific use case or event Using stereotypes The roles an object plays imply certain kinds of collaborations; Based on its role, what does an object need from its neighbors and what does it offer them? We need to consider how an object typically fulfills its responsibilities how it is used by others March 18, 2003 University of Colorado, 2003 5 March 18, 2003 University of Colorado, 2003 6 Information Holders Information holders know facts It only collaborates with objects to gain access to the information it is responsible for knowing Structurers Structurers organize information Questions to identify collaborations Where do the structured objects come from? How are the structured objects processed? Does the structurer handle iteration? Questions to identify collaborations Where does its information come from? Does it create the information, ask for it, get told by someone else? Is any information derived? From whom? Does the information persist? Who handles persistence? Is information cached? From where? When do I update it? Does the information need to be converted to a different form? Who handles the conversion? Does the structurer persist? How are structured objects accessed? Is the structurer responsible for answering cumulative questions (how many attendees?) March 18, 2003 University of Colorado, 2003 7 March 18, 2003 University of Colorado, 2003 8 Service Providers Service providers perform computations Questions for identifying collaborations Who has the information required by a service provider? Are services configurable? How? Is any part of a responsibility prone to change? Should this responsibility be isolated in a service provider? Does the application require different forms of the same service? How does the service vary? March 18, 2003 University of Colorado, 2003 9 Controllers Objects that make decisions and direct the actions of others are controllers; They always collaborate with others for two reasons: to gather information to make decisions to call on others to act Their focus is on decision making; not on subsequent actions Questions for identifying collaborations Who has the information needed to make decisions? Who performs the actions once a decision has been made? Is the decision making process complex? Perhaps it should be distributed over multiple controllers Are there events or intermediate results that the controller must track and respond to? March 18, 2003 University of Colorado, 2003 10 Coordinators Coordinators exist solely to pass along information and call on others to act; their focus is on holding connections between objects and forwarding information and requests to them Questions for identifying collaborations How does a coordinator delegate work or pass along requests? How does a coordinator find its delegates? Do the delegates need to know about the coordinator? March 18, 2003 University of Colorado, 2003 11 Interfaces Interfacers provide bridges between naturally disjoint subsystems They can act as a bridge between the system and its users (user interfacers), between different neighborhoods (internal interfaces) and different software systems (external interfaces) March 18, 2003 University of Colorado, 2003 12 Interfacers, continued Questions for User does Interfacers How a user interfacer inform the system of user actions? What system objects does the interfacer know of? How many states does it track? How do objects register interest in state changes? Look at Individual Responsibilities Asking questions about how an individual responsibility is fulfilled can lead to collaborations Just as we saw with the get total sale example from the last lecture getTotal() in the Sale object, required getSubtotal() in the LineItem object, which required getPrice() in the Product object Questions for internal interfacers How does the interfacer collaborate with objects outside of its neighborhood? How does it find its neighborhood? How does it delegate requests? Questions for external interfacers Will the external interfacer have to convert data into object form? How does the external interfacer connect to the outside world? What will the interfacer do if it cant establish a connection? March 18, 2003 University of Colorado, 2003 13 March 18, 2003 University of Colorado, 2003 14 Design the Details of a Complex Responsibility Another way to identify collaborations is to decompose a complex responsibility into smaller responsibilities Thus, calculate annual corporate taxes becomes Calculate applicable municipality taxes Itemize income, expenses, and allowable state tax deductions Calculate applicable state taxes Itemize income, expenses, and allowable federal tax deductions Calculate applicable federal taxes Design collaborations for a specific use case or event Start with a specific use case or event and design a collaboration to handle it Goal is to answer questions like What services are invoked between collaborators? Who is in control? How and when are objects created? How long and how often do they need to see each other? Where are the branches in logic? Where are the decision points? Do the decision makers have what they need? Where will they get their information? What information holders are passed around? March 18, 2003 University of Colorado, 2003 16 We will need a collaboration to step through each of these responsibilities (e.g. manage the overall process) and collaborations to perform each individual responsibility March 18, 2003 University of Colorado, 2003 15 Testing Collaborations To test a collaboration, simulate it You can quickly find errors and omissions in your model this way a simulation can identify new objects and responsibilities a simulation can show that a particular object is illconceived and not needed a simulation can identify vague responsibilities a simulation can provide justification for shifting, merging, or splitting responsibilities among candidates Planning a Simulation Role-play the hard parts first not everything is worth simulating Set a goal for the simulation Test ideas; Study coordination and control; develop a consistent collaboration style, etc. Set boundaries based on your goal Assign candidates to team members Each person is responsible for playing the role of particular objects! Simulate use cases Invent controllers if you need them Test one area at a time Test for what you dont know Limit the time spent simulating March 18, 2003 University of Colorado, 2003 18 March 18, 2003 University of Colorado, 2003 17 Running a simulation Start with an event What object should be informed of the event? Is there a CRC card that describes that object? If not, make one What responsibility does the event ask the object to fulfill; has this responsibility been identified? If not, write it down Who will the object collaborate with to fulfill the responsibility? During the Simulation Stay at the same conceptual level If a collaboration requires a switch to a different conceptual level of the system, defer the details of that sub-collaboration to another simulation Follow the simulation closely Do the patterns of message passing make sense? Make sure to express the event as an intention Not The user clicks a button But The user saves the file Think Critically Ask questions like okay, this object needed this piece of information to do that; how did it get that information? Or How did I learn of your existence? If I dont know about you, I cant send a message to you! Now make your objects take responsibility for the event Have a physical ball represent control and pass the ball around as messages are exchanged Sketch the collaborations Using CRC cards and lines between them; or a whiteboard Write down what you dont know; deal with those issues later Rewrite candidate cards as new responsibilities are identified March 18, 2003 University of Colorado, 2003 19 March 18, 2003 University of Colorado, 2003 20
Find millions of documents on Course Hero - Study Guides, Lecture Notes, Reference Materials, Practice Exams and more. Course Hero has millions of course specific materials providing students with the best way to expand their education.

Below is a small sample set of documents:

Colorado - CS - 6448
Credit where Credit is DueLecture 23: Agile Design and Extreme ProgrammingKenneth M. Anderson Software Methods and Tools CSCI 6448 - Fall Semester, 2003 The material for this lecture is based on content from Agile Software Development: Principles,
Colorado - CS - 6448
Last Lecture Lecture 26: Design Patterns (part 2)Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003Design PatternsBackground and Core Concepts ExamplesSingleton, Factory Method, and AdapterApril 10, 2003
Colorado - CS - 6448
Credit where Credit is Due Lecture 29: Test-Driven DevelopmentKenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003Some of the material for this lecture is taken from Test-Driven Development by Kent Beck; as suc
Colorado - CS - 3308
Lab #1 Installing a System Due Friday, September 6, 2002Name: Lab Time: Grade: /10The Steps of Installing a System Today you will install a software package. Implementing a software system is only part of a software engineers job. Once implemente
Colorado - CS - 3308
Lab #3 Automating Installation & Introduction to Make Due in Lab, September 17, 2003Name: Lab Time: Grade: Error Checking In this lab you will be writing a shell script to automate the installation of a system. The system that your shell script wil
Colorado - CS - 3308
Lab #7 Testing Due In Lab, October 22, 2003 Name: Lab Time: Grade: Testing Today you will be testing a program to expose failures. In Homework 7, you familiarized yourself with the operation of a quick sort program, quick-okay. Now that you know the
Colorado - CS - 3308
Lab #10 XML and XSLT Due in Lab, December 3, 2003 Name: Lab Time: Grade: /10In this lab, you will gain experience working with XML and XSLT. XML is a language for creating markup languages. A markup language is any language that includes both text
Colorado - CS - 3308
Notes on Using gdb, the GNU Debugger Benjamin Zorn (with small modications by Kenneth M. Anderson for CSCI 3308)A symbolic debugger can make writing and debugging programs much easier. The GNU debugger can be used to debug programs compiled with the
Colorado - CS - 3308
Software Testing Notebook Worksheet #1 Functional Testing Due: October 31, 2003 Name: Lab Time: Grade: /75On my honor, as a University of Colorado at Boulder student, I have neither given nor received unauthorized assistance on this work. Signature
Colorado - CS - 3308
Software Testing Notebook Worksheet #2 Structural Testing Due: Friday, November 7, 2003 Name: Lab Time: Grade: /50On my honor, as a University of Colorado at Boulder student, I have neither given nor received unauthorized assistance on this work. S
Colorado - CS - 3308
Software Testing Notebook Worksheet #3 Automating Testing & Fixing Bugs Due: November 14, 2003 Name: Lab Time: Grade: /75On my honor, as a University of Colorado at Boulder student, I have neither given nor received unauthorized assistance on this
Colorado - CS - 5828
Todays LectureThe Mythical Man-MonthKenneth M. Anderson Foundations of Software Engineering CSCI 5828 - Spring Semester, 2001 (Guest Lecture) Discuss first four chapters of The Mythical Man-Month The Tar Pit The Mythical Man-Month The Surgica
Colorado - CS - 5828
Todays Lecture Discuss Software Life CyclesSoftware Life CyclesKenneth M. Anderson Foundations of Software Engineering CSCI 5828 - Spring Semester, 2001 (Guest Lecture) Why do we need them? What types exist? Code and Fix (hacking) Waterfa
Colorado - CS - 5828
Todays Lecture The Cathedral and the BazaarKenneth M. Anderson Foundations of Software Engineering CSCI 5828 - Spring Semester, 2001 Guest Lecture Discuss Background of the Paper Discuss Raymonds Rules Open Discussion on the Open-Source Approach
Colorado - CS - 5828
Todays Lecture Extreme ProgrammingKenneth M. Anderson Foundations of Software Engineering CSCI 5828 - Spring Semester, 2001 Guest Lecture Discuss aspects of the Extreme Programming Model As presented in Extreme Programming Explained: Embrace Chan
Colorado - CS - 3308
Lab #2 Find and Grep Due in Lab, September 8, 2004 Name: Lab Time: Grade: Find The nd command is used to locate les in a le system. The nd command starts at a single directory and descends recursively into all of its subdirectories to locate les. The
Colorado - CS - 3308
Lab #3 Automating Installation & Introduction to Make Due in Lab, September 15, 2004Name: Lab Time: Grade: Error Checking In this lab you will be writing a shell script to automate the installation of a system. The system that your shell script wil
Colorado - CS - 3308
Todays Lecture Lecture 2: No Silver BulletKenneth M. Anderson Software Methods and Tools CSCI 3308 - Fall Semester, 2004August 27, 2004 University of Colorado, 2004 2Discuss No Silver Bullet paper Brooks reflections on it after nine years
Colorado - CS - 3308
Todays Lecture Lecture 6: Build ManagementKenneth M. Anderson Software Methods and Tools CSCI 3308 - Fall Semester, 2004September 10, 2004 University of Colorado, 2004 2Discuss Build Management Introduce makeBuild ManagementDuring the impleme
Colorado - CS - 3308
Todays Lecture Lecture 7: Make MacrosKenneth M. Anderson Software Methods and Tools CSCI 3308 - Fall Semester, 2004Brief review of make Explore make macros in more detailNote: when you see macro think variableBrooks Corner: The Mythical Man-Mont
Colorado - CULTER - 06
CU Mountain006 Research StationWinter 2 Ecology
Colorado - ASTR - 5770
New InflationAmy Bender 05/03/2006Inflation Basics Perturbations from quantum fluctuations of scalar field Fluctuations are: Gaussian Scale Invariant Spectrum (almost) k3P(k) ~ constant Adiabatic Scalar & Tensor Matter/radiation anisotrop
Colorado - ASTR - 5770
HST Key Project on the Extragalactic Distance ScalePresentation by Alaine Ginocchio May 5, 2006HST Key ProjectMeasuring an accurate value of H0 was one of the motivating reasons for building NASA/ESA Hubble Space Telescope (HST).Measurement
Colorado - ASTR - 5770
Holographic Dark EnergyPreety Sidhu 5 May 2006Black Holes and Entropy Black holes are maximal entropy objects Entropy of a black hole proportional to surface area of event horizon Max entropy for volume of space goes as bounding surface area, n
Colorado - ASTR - 5770
The Sunyaev-Zeldovich EffectJason Glenn APSHistorical Perspective Physics of the SZ Effect -Previous Observations & Results Bolocam Imminent Experiments Future Work ReferencesCMB discovered in 1964 by Penzias and Wilson COBE 1989: perfect blackbo
Wisconsin - CS - 0601
Proximal Plane ClassificationKDD 2001 San Francisco August 26-29, 2001Glenn Fung & Olvi MangasarianData Mining InstituteUniversity of Wisconsin - Madison Second Annual Review June 1, 2001Key ContributionsFast new support vector machine class
Wisconsin - REV - 0601
Proximal Plane ClassificationKDD 2001 San Francisco August 26-29, 2001Glenn Fung & Olvi MangasarianData Mining InstituteUniversity of Wisconsin - Madison Second Annual Review June 1, 2001Key ContributionsFast new support vector machine class
St. Johns River Community College - CS - 0601
Proximal Plane ClassificationKDD 2001 San Francisco August 26-29, 2001Glenn Fung & Olvi MangasarianData Mining InstituteUniversity of Wisconsin - Madison Second Annual Review June 1, 2001Key ContributionsFast new support vector machine class
Wisconsin - CS - 0600
Concave Minimization for Support Vector Machine ClassifiersUnlabeled Data Classification & Data SelectionGlenn Fung O. L. MangasarianPart 1: Unlabeled Data Classifications ssssGiven a large unlabeled dataset Use a k-Median clustering al
Wisconsin - REV - 0600
Concave Minimization for Support Vector Machine ClassifiersUnlabeled Data Classification & Data SelectionGlenn Fung O. L. MangasarianPart 1: Unlabeled Data Classifications ssssGiven a large unlabeled dataset Use a k-Median clustering al
St. Johns River Community College - CS - 0600
Concave Minimization for Support Vector Machine ClassifiersUnlabeled Data Classification & Data SelectionGlenn Fung O. L. MangasarianPart 1: Unlabeled Data Classifications ssssGiven a large unlabeled dataset Use a k-Median clustering al
Wisconsin - ECE - 756
Linear Programming and CPLEXTing-Yuan Wang Advisor: Charlie C. ChenDepartment of Electrical and Computer Engineering University of Wisconsin-MadisonFeb. 22 2000CPLEX Optimization Options: Primal, Dual Simplex Methods Network Flow Problems MI
St. Johns River Community College - ECE - 756
Linear Programming and CPLEXTing-Yuan Wang Advisor: Charlie C. ChenDepartment of Electrical and Computer Engineering University of Wisconsin-MadisonFeb. 22 2000CPLEX Optimization Options: Primal, Dual Simplex Methods Network Flow Problems MI
Wisconsin - ECE - 03
Artifact and Textured region Detection- Vishal BangardOutline Need for artifact and textured region detection Aim of the project Techniques used in the imaging world Approaches used Results ConclusionWhy do artifact detection ? A lot of
Wisconsin - ECE - 738
Artifact and Textured region Detection- Vishal BangardOutline Need for artifact and textured region detection Aim of the project Techniques used in the imaging world Approaches used Results ConclusionWhy do artifact detection ? A lot of
St. Johns River Community College - ECE - 03
Artifact and Textured region Detection- Vishal BangardOutline Need for artifact and textured region detection Aim of the project Techniques used in the imaging world Approaches used Results ConclusionWhy do artifact detection ? A lot of
St. Johns River Community College - ECE - 738
Artifact and Textured region Detection- Vishal BangardOutline Need for artifact and textured region detection Aim of the project Techniques used in the imaging world Approaches used Results ConclusionWhy do artifact detection ? A lot of
Wisconsin - ECE - 03
Unequal Error Protection for Video Transmission over Wireless ChannelsECE738 Project PresentationChang, Hong Hong 05/09/20031OutlineUnequal Error Protection/ Unequal Loss Protection Problem Formulation Channel Model RS code Theoretical Res
Wisconsin - ECE - 738
Unequal Error Protection for Video Transmission over Wireless ChannelsECE738 Project PresentationChang, Hong Hong 05/09/20031OutlineUnequal Error Protection/ Unequal Loss Protection Problem Formulation Channel Model RS code Theoretical Res
St. Johns River Community College - ECE - 03
Unequal Error Protection for Video Transmission over Wireless ChannelsECE738 Project PresentationChang, Hong Hong 05/09/20031OutlineUnequal Error Protection/ Unequal Loss Protection Problem Formulation Channel Model RS code Theoretical Res
St. Johns River Community College - ECE - 738
Unequal Error Protection for Video Transmission over Wireless ChannelsECE738 Project PresentationChang, Hong Hong 05/09/20031OutlineUnequal Error Protection/ Unequal Loss Protection Problem Formulation Channel Model RS code Theoretical Res
Wisconsin - ECE - 03
Portraiture MorphingPresented by Fung, Chau-ha JeniceOutline Problem Statement Prior Art: Portraiture Morphing Approaches Results Conclusion Future WorksProblem Statement Image morphing = Image metamorhposis Creating a smooth transfor
Wisconsin - ECE - 738
Portraiture MorphingPresented by Fung, Chau-ha JeniceOutline Problem Statement Prior Art: Portraiture Morphing Approaches Results Conclusion Future WorksProblem Statement Image morphing = Image metamorhposis Creating a smooth transfor
St. Johns River Community College - ECE - 03
Portraiture MorphingPresented by Fung, Chau-ha JeniceOutline Problem Statement Prior Art: Portraiture Morphing Approaches Results Conclusion Future WorksProblem Statement Image morphing = Image metamorhposis Creating a smooth transfor
St. Johns River Community College - ECE - 738
Portraiture MorphingPresented by Fung, Chau-ha JeniceOutline Problem Statement Prior Art: Portraiture Morphing Approaches Results Conclusion Future WorksProblem Statement Image morphing = Image metamorhposis Creating a smooth transfor
Wisconsin - ECE - 03
ECE 738 ProjectBrain segmentation and Phase unwrapping in MRI dataJongHoon LeeOutline Nature of fast MRI: EPI & Field Inhomogeneity Background problem Image Distortion Specific problems a) Brain Segmentation b) Phase Unwrapping Goal Appro
Wisconsin - ECE - 738
ECE 738 ProjectBrain segmentation and Phase unwrapping in MRI dataJongHoon LeeOutline Nature of fast MRI: EPI & Field Inhomogeneity Background problem Image Distortion Specific problems a) Brain Segmentation b) Phase Unwrapping Goal Appro
St. Johns River Community College - ECE - 03
ECE 738 ProjectBrain segmentation and Phase unwrapping in MRI dataJongHoon LeeOutline Nature of fast MRI: EPI & Field Inhomogeneity Background problem Image Distortion Specific problems a) Brain Segmentation b) Phase Unwrapping Goal Appro
St. Johns River Community College - ECE - 738
ECE 738 ProjectBrain segmentation and Phase unwrapping in MRI dataJongHoon LeeOutline Nature of fast MRI: EPI & Field Inhomogeneity Background problem Image Distortion Specific problems a) Brain Segmentation b) Phase Unwrapping Goal Appro
Wisconsin - ECE - 03
ECE738 Presentation of Project SurveyA survey of image-based biometric identification methods: Face, finger print, iris, and othersPresented by: David LinOutline Problems and motivations Different identification methods Face Recognition Fing
Wisconsin - ECE - 738
ECE738 Presentation of Project SurveyA survey of image-based biometric identification methods: Face, finger print, iris, and othersPresented by: David LinOutline Problems and motivations Different identification methods Face Recognition Fing
St. Johns River Community College - ECE - 03
ECE738 Presentation of Project SurveyA survey of image-based biometric identification methods: Face, finger print, iris, and othersPresented by: David LinOutline Problems and motivations Different identification methods Face Recognition Fing
St. Johns River Community College - ECE - 738
ECE738 Presentation of Project SurveyA survey of image-based biometric identification methods: Face, finger print, iris, and othersPresented by: David LinOutline Problems and motivations Different identification methods Face Recognition Fing
Wisconsin - ECE - 03
A survey of Face Recognition TechnologyWei-Yang Lin May 07, 2003Road Map Introduction Challenge in Face Recognition variation in pose Variation in illumination Some recently works in FRT DiscussionIntroduction FRT is a research area span
Wisconsin - ECE - 738
A survey of Face Recognition TechnologyWei-Yang Lin May 07, 2003Road Map Introduction Challenge in Face Recognition variation in pose Variation in illumination Some recently works in FRT DiscussionIntroduction FRT is a research area span
St. Johns River Community College - ECE - 03
A survey of Face Recognition TechnologyWei-Yang Lin May 07, 2003Road Map Introduction Challenge in Face Recognition variation in pose Variation in illumination Some recently works in FRT DiscussionIntroduction FRT is a research area span
St. Johns River Community College - ECE - 738
A survey of Face Recognition TechnologyWei-Yang Lin May 07, 2003Road Map Introduction Challenge in Face Recognition variation in pose Variation in illumination Some recently works in FRT DiscussionIntroduction FRT is a research area span
Wisconsin - ECE - 03
Medical Image Registration: A SurveyAiming LuOutline Introduction Transformation Algorithms Visualization Validation ConclusionIntroduction Image registration matching two images so that corresponding coordinate points in the two images
Wisconsin - ECE - 738
Medical Image Registration: A SurveyAiming LuOutline Introduction Transformation Algorithms Visualization Validation ConclusionIntroduction Image registration matching two images so that corresponding coordinate points in the two images
St. Johns River Community College - ECE - 03
Medical Image Registration: A SurveyAiming LuOutline Introduction Transformation Algorithms Visualization Validation ConclusionIntroduction Image registration matching two images so that corresponding coordinate points in the two images
St. Johns River Community College - ECE - 738
Medical Image Registration: A SurveyAiming LuOutline Introduction Transformation Algorithms Visualization Validation ConclusionIntroduction Image registration matching two images so that corresponding coordinate points in the two images