Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


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

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

2 Agenda – Lecture 5b Review & renew. How do I come up with a design?
Introduction to Architectural Styles Client-server Layered Servlets, an introduction. Exercise Set 4 1/1/2019 SOEN 343, © P.Chalin,

3 Opening Remarks Tutorial period: Homework
Tutorial 5: Short. Java Servlets, A First Contact. Nothing to submit this time. Take the time to finish other tutorials (and ask tutors for help if needed). (Ask questions about Quiz 1 if you require further clarifications.) Homework Hand it in before the end of the class. 1/1/2019 SOEN 343, © P.Chalin,

4 [Design, How To?]-----------------

5 How Do I Come Up With a Design?
Given Product requirements. Project plan How do I come up with a design? 1/1/2019 SOEN 343, © P.Chalin,

6 Design – Repeat Successes
Has a (successful) similar product been built? Yes, then reuse domain specific: Architectural Style (e.g. client/server, database, process control) Patterns. Design Patterns (& idioms). Use Domain model as source of inspiration. 1/1/2019 SOEN 343, © P.Chalin,

7 Design – New Application Area?
Has a (successful) similar product been built? No, then choose among general: Architectural Style (e.g. client/server, database, process control) Patterns. Design Patterns (& idioms). Use Domain model as source of inspiration. This course: offering guidelines, suggesting choices. 1/1/2019 SOEN 343, © P.Chalin,

8 Common Architectural Styles [FYI]
Dataflow Pipes and filters Batch sequential Data-centered Repository Blackboard Virtual Machine Interpreter Rule-based system Call and Return Main program and subroutine Object-oriented (& Data abs.) Layered Independent Components Communicating processes Client/server Event systems Implicit invocation Explicit invocation [BCK98, Fig 5.1 p. 95] 1/1/2019 SOEN 343, © P.Chalin,

9 Layered Architectural Style
Our focus today: Architectural style: Layered. References Larman, Chapter 30 (Section 30.2). Fowler, EA. Briefly, lets review Client-Server 1/1/2019 SOEN 343, © P.Chalin,

10 Client-Server (Two-tiered System)
“… most people see tier as implying a physical separation. Client-server systems are often described as two-tier systems …” [Fowler, p.19] 1/1/2019 SOEN 343, © P.Chalin,

11 Enterprise Application Layers
1/1/2019 SOEN 343, © P.Chalin,

12 Enterprise Application Layers
Presentation Domain Logic Data Source 1/1/2019 SOEN 343, © P.Chalin,

13 Layering – General Scheme
Layers Presentation / Application. UI. Generally “thin”. (Term “application” can be misleading. It does not mean …) Domain / Business Logic. Core system functionality. Technical Services. 1/1/2019 SOEN 343, © P.Chalin,

14 Domain Logic (Layer) “… also referred to as business logic. … It involves calculations based on inputs and stored data, validation of any data that comes in from the presentation, and figuring out exactly what data source logic to dispatch …” [Fowler, p.20] 1/1/2019 SOEN 343, © P.Chalin,

15 Layered Style Characteristics
Each layer offers services to layers above. Hence, layers build upon each other to provide increased functionality. 1/1/2019 SOEN 343, © P.Chalin,

16 Layers: Functionality
Presentation Domain Functionality / services Data Source 1/1/2019 SOEN 343, © P.Chalin,

17 Presentation Domain Data Source Layers: Dependencies Dependencies
1/1/2019 SOEN 343, © P.Chalin,

18 Layer Dependencies Example
Larman Fig. 30.4 1/1/2019 SOEN 343, © P.Chalin,

19 Not permitted in pure style
Layering – Pure Style Pure style: components are permitted to use services of other components in same layer. layer immediately below. Not permitted in pure style 1/1/2019 SOEN 343, © P.Chalin,

20 Where to Run Your Layers
[Folwer, pp ] Your software application ? ? 1/1/2019 SOEN 343, © P.Chalin,

21 Where to Run Your Layers
EA software Technical Services 1/1/2019 SOEN 343, © P.Chalin,

22 Presentation Domain Logic Data Source EA Layers Refined
Refine by splitting each layer into two. Data Source 1/1/2019 SOEN 343, © P.Chalin,

23 General Layering Scheme Refined
Presentation Domain Technical services Presentation Application Domain (logic) Low-level domain logic Technical services Foundation. 1/1/2019 SOEN 343, © P.Chalin,

24 General Layering Scheme Refined
Presentation Domain Technical services Presentation Application Business services Low-level business services Technical services Low-level technical services Alternate names for 1/1/2019 SOEN 343, © P.Chalin,

25 Layering (Larman) See Larman Sect 30.2 for examples of layer content.
1/1/2019 SOEN 343, © P.Chalin,

26 Servlets, The General Idea
1/1/2019 SOEN 343, © P.Chalin,

27 Exercise Set 4 1/1/2019 SOEN 343, © P.Chalin,


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

Similar presentations


Ads by Google