Logical Architecture & Design Preliminaries

Similar documents
CSSE 374: Logical Architecture. Shawn Bohner Office: Moench Room F212 Phone: (812)

COMP 6471 Software Design Methodologies

Architectural Models. Section Outline. What is an architectural design? Architecture Types. Example Logical Architecture. Example Deployment Diagram

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Operations Contracts and Preliminaries on Design

COMP 6471 Software Design Methodologies

Responsibilities. Using several specific design principles to guide OO design decisions.

Domain Modeling. CSSE 574: Week 1, Part 3. Steve Chenoweth Phone: Office (812) Cell (937)

BDSA08 Advanced Architecture

Information Expert (or Expert)

COMP 6471 Software Design Methodologies

GRASP ing at the First 5 Patterns Principles CSSE 574: Session 3, Part 4

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Designing for Visibility & Mapping to Code CSSE 574: Session 4, Part 3

On to Iteration 3, and Activity Diagrams CSSE 574: Session 6, Part 1

System Sequence Diagrams. Based on Craig Larman, Chapter 10 and Anuradha Dharani s notes

ADVANCED SOFTWARE DESIGN LECTURE 7 GRASP

More Object Design with GoF Patterns CSSE 574: Session 7, Part 2

Assigning Responsibilities by Larman

17. GRASP: Designing Objects with Responsibilities

Constantinos Constantinides Computer Science and Software Engineering Concordia University Montreal, Canada

OO Design2. Design Artifacts

CSSE 374: GRASP ing at the First Five Patterns Principles. Shawn Bohner Office: Moench Room F212 Phone: (812)

Software Design and Analysis CSCI 2040

Software Modeling & Analysis

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

CSSE 374: More Object Design with Gang of Four Design Patterns

References: Applying UML and patterns Craig Larman

INTERNAL ASSESSMENT TEST III Answer Schema

CTIS 359 Principles of Software Engineering SOFTWARE DESIGN OO(A)D

GRASP: Patterns for. chapter18

Last Time: Object Design. Comp435 Object-Oriented Design. Last Time: Responsibilities. Last Time: Creator. Last Time: The 9 GRASP Patterns

Objectives. Explain the purpose and objectives of objectoriented. Develop design class diagrams

Object-Oriented Design

Object-Oriented Design

Domain Modeling: Associations and Attributes

Principles of Software Construction: Objects, Design, and Concurrency. Assigning Responsibilities to Objects. toad. Jonathan Aldrich Charlie Garrod

Architectural Blueprint

Introduction - SENG 330. Object-Oriented Analysis and Design

UP Requirements. Software Design - Dr Eitan Hadar (c) Activities of greater emphasis in this book. UP Workflows. Business Modeling.

Goal: build an object-oriented model of the realworld system (or imaginary world) Slicing the soup: OOA vs. OOD

What is a Model? Copyright hebley & Associates

Domain Modeling- 2. Generalization

From designing to coding

Credit where Credit is Due. Goals for this Lecture. Introduction to Design

On to Object-oriented Design

Principles of Software Construction: Objects, Design and Concurrency. Object-Oriented Design: Assigning Responsibilities.

Agile Model-Driven Development with UML 2.0 SCOTT W. AM BLER. Foreword by Randy Miller UNIFIED 1420 MODELING LANGUAGE. gile 1.

Object-Oriented Design

Object Orientated Analysis and Design. Benjamin Kenwright

Chapter 10 Object-Oriented Design Principles

OBJECT ORIENTED DESIGN with the Unified Process. Use Case Realization

Element: Relations: Topology: no constraints.

GRASP Design Patterns A.A. 2018/2019

Requirements and Design Overview

An Introduction to Object-Oriented Analysis and Design and the Unified Process Applying UML and Patterns, 3 rd ed. Craig Larman, pp.

CS6502-OBJECT ORIENTED ANALYSIS AND DESIGN Two Marks Question with Answers Unit-I Introduction to OOAD

Lecture 13 Introduction to Software Architecture

Object Analysis & Design in the textbook. Introduction to GRASP: Assigning Responsibilities to Objects. Responsibility-Driven Design

ROEVER ENGINEERING COLLEGE DEPARTMENT OF INFORMATION TECHNOLOGY CS2353-OBJECT ORIENTED ANALYSIS AND DESIGN. Unit-I. Introduction to OOAD

Assigning Responsibilities (Patterns of Responsibility Assignment Principles: GRASP)

CSSE 374: UML Activity Diagrams. Shawn Bohner Office: Moench Room F212 Phone: (812)

Appendix A - Glossary(of OO software term s)

Object-Oriented Analysis and Design Using UML (OO-226)

Notation Part 1. Object Orientated Analysis and Design. Benjamin Kenwright

Software Engineering with Objects and Components Open Issues and Course Summary

Software Architecture

The Analysis and Design of the Object-oriented System Li Xin 1, a

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE

Object-Oriented Design

Final Exam CISC 475/675 Fall 2004

ADVANCED SOFTWARE DESIGN LECTURE 4 GRASP. Dave Clarke

Unit Wise Questions. Unit-1 Concepts

Object-Oriented Analysis and Design Using UML

OBJECT ORIENTED ANALYSIS AND DESIGN SYLLABUS

Tools to Develop New Linux Applications

Software Design and Analysis CSCI 2040

Mapping Designs to Code

Refresher: Lifecycle models. Lecture 22: Moving into Design. Analysis vs. Design. Refresher: different worlds. Analysis vs. Design.

2 GRASP Patterns and basic OO Design. Roel Wuyts OASS

Introduction to Software Engineering: Analysis

Design Engineering. Overview

On to Object-oriented Design

Software MEIC. (Lesson 4)

(p t y) lt d. 1995/04149/07. Course List 2018

Recalling the definition of design as set of models let's consider the modeling of some real software.

VEL TECH HIGH TECH Dr. RANGARAJAN Dr. SAKUNTHALA ENGINEERING COLLEGE UNIT 1 UML DIAGRAMS

Object-Oriented Systems Analysis and Design Using UML

CHAPTER 9 DESIGN ENGINEERING. Overview

Software Life-Cycle Models

Index. Add Diagram > Sequence Diagram command,

Applying Some More Gang of Four Design Patterns CSSE 574: Session 5, Part 4

Patterns and Testing

CS6502- OBJECT ORIENTED ANALYSIS AND DESIGN UNIT I

18-Design. Analysis and Design Workflow. Worker Responsibilities. So what do we do next? CMPSCI520/620 Design. Rick Adrion 2003 (except where noted) 1

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING CS2353-OBJECT ORIENTED ANALYSIS AND DESIGN. Unit-I. Introduction to OOAD

MSc(IT) Program. MSc(IT) Program Educational Objectives (PEO):

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach?

index_ qxd 7/18/02 11:48 AM Page 259 Index

Topic : Object Oriented Design Principles

Transcription:

Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

From Requirements to Architecture Customer Requirements "four bedrooms, three baths, lots of glass..." How do we get from there Architectural Design to here? 2

Business Modeling Requirements * * Where is Logical Architecture? Use-Case Model Vision Model Supplementary Specification Glossary The logical architecture is influenced by the constraints and non-functional requirements captured in the Supp. Spec. Design Model package diagrams UI of the logical architecture (a static view) Domain Tech Services : Register : ProductCatalog Design interaction diagrams (a dynamic view) enteritem (itemid, quantity) spec = getproductspec( itemid ) class diagrams (a static view)... Register makenewsale() enteritem(...)... 1 1... ProductCatalog getproductspec(...)... 3

Defining Software Architecture Software architecture: the large-scale motivations, constraints, organization, patterns, responsibilities, and connections of a system Craig Larman 2003 The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components and the relationships among them. Bass, et al, 1998

Why Software Architecture? The architecture is a representation that enables a software engineer to: 1. Analyze the effectiveness of the design in meeting its stated requirements, 2. Consider architectural alternatives at a stage when making design changes is still relatively easy, and 3. Reduce the risks associated with the construction of the software. 4. Provide key Abstractions in reasoning about design 5. Establish Design Plan using Software Architecture Spaghetti Integration 5

Architectural Building Blocks Component a unit of computation or a data store Connector an architectural element that models interactions among components and rules that govern those interactions Configuration (or topology) a connected graph (composite) of components and connectors which describe architectural structure 6

UML Architectural Views Logical architecture describes the system in terms of its organization in layers, packages, classes, interfaces & subsystems Deployment architecture describes the system in terms of the allocation of processes to processing units and network configurations 7

UML Package Diagrams Describes grouping of elements Can group anything: Classes Other packages More general than Java packages or C# namespaces Package Names Dependency Line Fully qualified name is: Domain::Sales

Alternative Nesting Notations Traditional Notation

Designing with Layers Solves Problems Rippling source code changes Intertwining of application and UI logic Intertwining of application logic and technical services Difficult division of labor

Layers of Benefits Separation of concerns Reduces coupling and dependencies; improves cohesion; increases reuse potential and clarity Essential complexity is encapsulated Can replace some layers with new implementations (e.g., platform independence) Can distribute some layers Can divide development within/across teams

Common Layers in More Detail (1 of 2) GUI windows reports speech interface HTML, XML, XSLT, JSP, Javascript,... UI (AKA Presentation, View) handles presentation layer requests workflow session state window/page transitions consolidation/transformation of disparate data for presentation handles application layer requests implementation of domain rules domain services (POS, Inventory) - services may be used by just one application, but there is also the possibility of multi-application services Application (AKA Workflow, Process, Mediation, App Controller) Domain (AKA Business, Application Logic, Model) dependency very general low-level business services used in many business domains CurrencyConverter Business Infrastructure (AKA Low-level Business Services) 12

domain services (POS, Inventory) - services may be used by just one application, but there is also the possibility of multi-application services (AKA Business, Application Logic, Model) Common Layers in More Detail (2 of 2) very general low-level business services used in many business domains CurrencyConverter Business Infrastructure (AKA Low-level Business Services) (relatively) high-level technical services and frameworks Persistence, Security Technical Services (AKA Technical Infrastructure, High-level Technical Services) low-level technical services, utilities, and frameworks data structures, threads, math, file, DB, and network I/O Foundation (AKA Core Services, Base Services, Low-level Technical Services/Infrastructure) width implies range of applicability Systems will have many, but not necessarily all, of these

Designing the Domain Layer Create software objects with names and information similar to the real-world domain Assign application logic responsibilities Domain Objects

Terminology: Layers vs. Partitions Layers Partitions

Common Mistake: Showing External Resources Worse Better

Model-View Separation Principle Do not connect non-ui objects directly to UI objects A Sale object shouldn t have a reference to a JFrame Do not put application logic in UI object methods A UI event handler should just delegate to the domain layer Model == domain layer, View == UI layer

Benefits of Model-View Separation Provides cohesive model definitions Enables separate development Localizes changes to interface requirements Can add new views Allows simultaneous views Allows execution of model without UI

From SSDs to Layers System operations on the SSDs will become the messages sent from the UI layer to the domain layer

SSDs in Layers UI :System : Cashier makenewsale() enteritem(id, quantity) description, total endsale() Domain Swing... ProcessSale Frame... Register makenewsale() enteritem() endsale() makenewsale() enteritem() endsale() : Cashier makenewsale() enteritem()... the system operations handled by the system in an SSD represent the operation calls on the Application or Domain layer from the UI layer 20

What s Next? Techniques for Object Design!

Common Object Design Techniques Just code it: design while coding, heavy emphasis on refactoring and powerful IDEs Draw, then code: sketch some UML, then code it Just draw it: generate code from diagrams http://www.virginmedia.com/movies/galleries/previews/indiana-jones-idols.php?ssid=7

Static vs. Dynamic Modeling Static models Class diagrams Dynamic models Interaction Diagrams Sequence diagrams Communication diagrams Spend time on interaction diagrams, not just class diagrams

CRC Cards: A Text-based Technique Class Responsibilities Collaborators

Prefer Design Skill over UML skill UML is only a tool for object design The real skill is the design, NOT the diagramming Fundamental object design requires knowledge of: Principles of responsibility assignment Design patterns 25

Homework and Milestone Reminders See schedule! Almost always one HW and one project Milestone each week. We shall have revisited the homework subject by now! 26