1 / 22

COMP 6471 Software Design Methodologies

COMP 6471 Software Design Methodologies. Winter 2006 Dr Greg Butler http://www.cs.concordia.ca/~gregb/home/comp647-winter2006.html. Course Introduction. Course People Course Components What the course is What the course is not The CU WME Design Case Study Larman’s Design Process

hiroko
Télécharger la présentation

COMP 6471 Software Design Methodologies

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. COMP 6471Software Design Methodologies Winter 2006 Dr Greg Butler http://www.cs.concordia.ca/~gregb/home/comp647-winter2006.html

  2. Course Introduction • Course People • Course Components • What the course is • What the course is not • The CU WME Design Case Study • Larman’s Design Process • What is OO Analysis and Design • Design Pattern Example - Command

  3. Course People Instructor: Dr Greg Butler Office Hours: Wednesdays 16:00 to 17:00 Or by appointment But ask questions in class please TAs: Bahman Zamani, Farzad Kohantorabi Teaching Fellow: Stephen Barrett Labs: Wednesday 15:30 to 17:30 ???

  4. Course Components Lectures: Mondays 17:45 to 20:25 H-603-1 Assignments: 6, every 2 weeks, worth 60% Quizzes: 2, weeks 6 and 12, worth 40% You must pass the quizzes!!!

  5. “Think in Objects” Analyze requirements with use cases Create domain models Apply an iterative & agile Unified Process (UP) Relate analysis and design artifacts Read & write high-frequency UML Practice Apply agile modeling Design object solutions Assign responsibilities to objects Design collaborations Design with patterns Design with architectural layers Understand OOP (e.g., Java) mapping issues Course Objectives

  6. What the course is: A (first) look at OO design! Design process: domain model, use cases, design Emphasis: models, GRASP principles, design patterns, responsibility, collaboration Mentions: RDD, TDD, MDD, extensibility Closely follows textbook!

  7. What the course is not: A course in UML, Java • You should know the basics of these • And become expert (as needed) yourself A course in tools: Eclipse, XDE, JUnit • You can work through tutorials yourself A course in UI design, DB design A course in software engineering, software architecture, software reuse, …

  8. The CU WME Design Case Study Concordia University Work Management Environment (CU WME) provides support for an organisation of people who produce and publish documents Components: • User Management • File Management • Change Management • Activity Management • Collaborative Publication • Project Management

  9. The CU WME Design Case Study No UI required No DB design required But … we design APIs to hide these Assignments: • Short problem statement • Domain model • Use case model • Design and code (proof-of-concept) • Refinement – add some special cases • Refinement – handle some exceptions

  10. The CU WME Design Case Study Team of up to six members – preferably 5 or 6 Individual work on individual component of CU WME Rotate responsibility for components Components must be consistent Therefore teamwork essential

  11. Larman’s Design Process

  12. Domain Model

  13. Use Case Model

  14. Typical Software Architecture Layers

  15. Typical Software Architecture Layers (Simplified)

  16. What is Design? Developing a blueprint (plan) for a mechanism that performs the required task, … taking into account all the constraints, & … making trade-offs between constraints when they are in conflict.

  17. Object-Oriented Analysis Important domain concepts or objects? Vocabulary? Visualized in the UP Domain Model Object-Oriented Design Design of software objects Responsibilities Collaborations Design patterns Visualized in the UP Design Model What is OO Analysis and Design

  18. Important Concepts Model • Abstraction hiding (unimportant) details • Eg, cover of Larman’s book GRASP Principle • for assigning responsibility Design pattern • Solution to design problem in context • Eg, Command pattern

  19. Responsibility-Driven Design (RDD) • Detailed object design is usually done from the point of view of the metaphor of: • Objects have responsibilities • Objects collaborate • Responsibilities are an abstraction. • The responsibility for persistence. • Large-grained responsibility. • The responsibility for the sales tax calculation. • More fine-grained responsibility.

  20. The 9 GRASP Principles • Creator • Expert • Controller • Low Coupling • High Cohesion • Polymorphism • Pure Fabrication • Indirection • Protected Variations

  21. Overview of Patterns • Present solutions to common software problems arising within a certain context • Help resolve key software design forces • Flexibility • Extensibility • Dependability • Predictability • Scalability • Efficiency Client Proxy Service AbstractService service service service • Capture recurring structures & dynamics among software participants to facilitate reuse of successful designs • Generally codify expert knowledge of design strategies, constraints & “best practices” 1 1 The Proxy Pattern

  22. Command Pattern • You have commands that need to be • executed, • undone, or • queued • Command design pattern separates • Receiver from Invoker from Commands • All commands derive from Command and implement do(), undo(), and redo() • Also allows recording history, replay

More Related