SOEN 343 Software Design Computer Science and Software Engineering Department Concordia University Fall 2004 Instructor: Patrice Chalin
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,
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,
[Design, How To?]-----------------
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,
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,
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,
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,
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,
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,
Enterprise Application Layers 1/1/2019 SOEN 343, © P.Chalin,
Enterprise Application Layers Presentation Domain Logic Data Source 1/1/2019 SOEN 343, © P.Chalin,
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,
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,
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,
Layers: Functionality Presentation Domain Functionality / services Data Source 1/1/2019 SOEN 343, © P.Chalin,
Presentation Domain Data Source Layers: Dependencies Dependencies 1/1/2019 SOEN 343, © P.Chalin,
Layer Dependencies Example Larman Fig. 30.4 1/1/2019 SOEN 343, © P.Chalin,
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,
Where to Run Your Layers [Folwer, pp. 22-24] Your software application ? ? 1/1/2019 SOEN 343, © P.Chalin,
Where to Run Your Layers EA software Technical Services 1/1/2019 SOEN 343, © P.Chalin,
Presentation Domain Logic Data Source EA Layers Refined Refine by splitting each layer into two. Data Source 1/1/2019 SOEN 343, © P.Chalin,
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,
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,
Layering (Larman) See Larman Sect 30.2 for examples of layer content. 1/1/2019 SOEN 343, © P.Chalin,
Servlets, The General Idea 1/1/2019 SOEN 343, © P.Chalin,
Exercise Set 4 1/1/2019 SOEN 343, © P.Chalin,