Presentation is loading. Please wait.

Presentation is loading. Please wait.

SOEN 343 Software Design Computer Science and Software Engineering Department Concordia University Fall 2005 Instructor: Patrice Chalin.

Similar presentations


Presentation on theme: "SOEN 343 Software Design Computer Science and Software Engineering Department Concordia University Fall 2005 Instructor: Patrice Chalin."— Presentation transcript:

1 SOEN 343 Software Design Computer Science and Software Engineering Department Concordia University Fall 2005 Instructor: Patrice Chalin

2 Agenda – Lecture 9a Architecture: 4+1 view model. GRASP: PV. Web EA:
Web EA: Process, Deployment views. GRASP: PV. Web EA: Applying PV, and separating concerns. Refactoring: From a 1 component design solution. To a 3 component design solution. 12/5/2018 SOEN 343, © P.Chalin,

3 Architecture … deals with the top-level structure. Components
Interrelationships 12/5/2018 SOEN 343, © P.Chalin,

4 Documentation of Architectures
Architecture Document = View A + View B + View C + … View X + “Beyond Views” 12/5/2018 SOEN 343, © P.Chalin,

5 “4+1” View Model of Arch. By Philippe Kruchten [Kruchten95] (URL to paper given on web site.) Rational Unified Process. 12/5/2018 SOEN 343, © P.Chalin,

6 “4+1” View Model of Arch. Implementation/ Deployment/
12/5/2018 SOEN 343, © P.Chalin,

7 Web EA: Process, Deployment Views
Given in class: Deployment view. Process view. 12/5/2018 SOEN 343, © P.Chalin,

8 GRASP Information Expert. Creator. High Cohesion. Low Coupling.
Controller. Polymorphism. Pure Fabrication. Indirection. Protected Variations. 12/5/2018 SOEN 343, © P.Chalin,

9 GRASP Protected Variations
Problem: How to design objects, subsystems, and systems so that the variations or instability in these elements does not have an undesireable impact on other elements? Solution: Identify points of predicted variation or instability; assign responsibility to create a stable interface around them. 12/5/2018 SOEN 343, © P.Chalin,

10 Core PV Mechanisms Encapsulation. Interfaces. Polymorphism.
Indirection, … (Note: we are speaking of mechanisms, not principles) 12/5/2018 SOEN 343, © P.Chalin,

11 PV: Pick Your Battles Beware not to try to overly “future-proof” your designs. Actually, this is true of any principle … 12/5/2018 SOEN 343, © P.Chalin,

12 Applying PV to Web EA Consider a single servlet which offers the greeting “Hello”. Refactor it with the goal of applying PV and separate concerns. 12/5/2018 SOEN 343, © P.Chalin,

13 Applying PV to Web EA (Solution given in class) SOEN 343, © P.Chalin,
12/5/2018 SOEN 343, © P.Chalin,

14 Applying PV to Web EA (given in class)
Greeting example with successively refined design solutions: Start from design of 1 servlet class whose purpose is to offer a greeting. Factor out domain logic to create design with: Servlet in Application layer. A class in Domain Logic layer to be responsible for domain logic. How are the responsibilities of MVC distributed now? Separate V and C by using JSP for V. Other points that can be made: In PHP there is one medium which can be used to express both Controller and View elements. It is easy to intermix both responsibilities within the same component (since only one notation is available). In the Servlet + JSP technology, two distinct solutions are offered. 12/5/2018 SOEN 343, © P.Chalin,


Download ppt "SOEN 343 Software Design Computer Science and Software Engineering Department Concordia University Fall 2005 Instructor: Patrice Chalin."

Similar presentations


Ads by Google