Presentation is loading. Please wait.

Presentation is loading. Please wait.

SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler

Similar presentations


Presentation on theme: "SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler"— Presentation transcript:

1 SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler http://www.cs.concordia.ca/~gregb/home/soen343h-f06.html

2 Course Introduction Course People Course Components What the course is What the course is not Enterprise Application (Assignments) Larman’s Design Process What is OO Analysis and Design Design Pattern Example - Command

3 Course People – Section H Instructor: Dr Greg Butler Office Hours: Wednesdays 15:00 to 16:00 Or by appointment But ask questions in class please TAs: Asif Dogar & Rajiv Abraham Course Coordinator: Dr Patrice Chalin

4 Course Components Lectures: WF 13:15 to 14:30 CL-220 Tutorials: F 14:45 to 15:35 In Lab to be announced; start week 2 Assignments: 3-4, every 2 weeks, start week 8, worth 5-15% Midterm Exam: week 7, worth 25-35% Quizzes: 2-3, approx. weeks 4, 10,.. worth 5-10% Final Exam: worth 50-60%; you must pass final

5 Basic Questions (Let’s Discuss) What is software design? How is it different from software programming? Software development? How do we design software? What is the role of objects, layers, architecture,..? What is the role of tests, responsibilities, patterns, models, …? How does design fit into the software lifecycle? What is good design? How does software design differ from … design?

6 Course Objectives “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

7 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!

8 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, …

9 Lectures Review of Java and object-oriented programming Responsibility Driven Design following Larman Each object has responsibility (ies) GRASP principles for distribution of responsibilities GoF design patterns Application of principles and patterns to examples/assignments Domain Modeling Introduction to Enterprise Applications Fowler’s patterns Application of GRASP principles in Fowler’s patterns Application in assignments Transition from requirements to design following Larman

10 Enterprise Applications Patterns Assignments (and some lectures) are about building web-based systems for enterprise applications Involve Presentation on the web Business Logic and Business Objects Data storage and access use book of Martin Fowler, “ Patterns of Enterprise Application Architecture”

11 Domain Data Source Transaction Script Domain Model Data Mapper Row Data Gateway Front Controller Template View Transform View Page Controller Presentation Active Record Fowler’s EA Patterns Table Module Table Data Gateway

12 Larman’s Design Process

13 Domain Model

14 Use Case Model

15 Typical Software Architecture Layers

16 Typical Software Architecture Layers (Simplified)

17 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.

18 What is OO Analysis and Design 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

19 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

20 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.

21 The 9 GRASP Principles 1.Creator 2.Expert 3.Controller 4.Low Coupling 5.High Cohesion 6.Polymorphism 7.Pure Fabrication 8.Indirection 9.Protected Variations

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

23 Command Pattern Problem: How to allow the same command to be invoked by –Menu selection –Alt-ctrl shortcut –Commandline text entry, etc How to allow (unlimited) undo/redo How to keep a log/audit/history of commands invoked How to allow “macro” commands to be defined

24 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


Download ppt "SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler"

Similar presentations


Ads by Google