Slide 1 What the business needs How to build it Functional requirements + Nonfunctional requirements Performance System environment issues Problem domain Solution domain Factoring Partitions and Collaborations Layers Ch.8 System Design
Slide 2 Factoring: Generalization (a-kind-of) Aggregation (a-part-of) Abstraction vs. Refinement Partition and Collaboration : cf. Subsystem Partition Collaboration in Communication Diagram the more messages sent between objects the more likely the objects belong in the same partition
Slide 3 Layers: MVC architecture of Smalltalk Model: application logic (problem domain) View: output (user interface) Controller: input (user interface) Software Layers: 1. Foundation 2. Physical Architecture 3. Human Computer Interaction 4. Data Management 5. Problem Domain
Slide 4 1. Foundation Layer Necessary for any o-o application to exist fundamental data type: integer, real, character data structure: container class abstraction: utility class 2. Physical Architecture Layer How the software will execute on specific computer and network Design issues: Choice of computing or network architecture Design of network, h/w and server s/w specification global/international issues, security issues
Slide 5 3. Human Computer Interaction Layer View and Controller idea from Smalltalk User Interface Implementation: - consistency across different user interfaces - differing level of user experience 등 4. Data Management Layer - persistence of the objects contained in the system. - how objects can be stored and retrieved - choice of storage format (relational, object DB) 5. Problem Domain Layer
Slide 6 Packages and Package Design Package: general construct that can be applied to any of the elements in UML models. Use Case Diagram, Class Diagram, Communication Diagram Dependency Relationship: -----> AB A is dependent on B. Changes in B cause changes in A. Fig Package Diagram of Dependency Relationships among Layers
fig_08_13 Syntax for Package Diagram
fig_08_14 Package Diagram of Dependency Relationships among Layers
Slide 9 Steps for Identifying Packages and Building Package Diagram 1. Set the context 2. Cluster the classes together into partitions 3. Model the partitions as packages 4. Identify the dependency relationships among classes 5. Place dependency relationships between packages Fig Partial package diagram of the Appt. Sys. Fig Package diagram of the PD layer for the Appt.Sys. Fig Pure package diagram that shows dependency
fig_08_1 5 Partial Package Diagram of the Appointment System
fig_08_17 Package Diagram of the PD Layer for the Appointment System
fig_08_18 Overview Package Diagram of the PD Layer of the Appointment System
Slide 13 DESIGN STRATEGIES Systems can be - built from scratch (Custom Development) - purchased and customized (Packaged Software) - outsourced to others (Outsourcing)
Slide 14 Custom Development: - Strength: - Weakness: Packaged Software: - Strength: - Weakness: Outsourcing: - Strength: - Weakness:
fig_08_20 Selecting a Design Strategy
fig_08_21 Package Diagram of the PD Layer of CD Selections Internet Sales System
fig_08_22 Overview Package Diagram of the PD Layer of CD Selections Internet Sales System