Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design...
Transcript of Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design...
![Page 1: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/1.jpg)
Logical Architecture &
Design Preliminaries
CSSE 574: Week 2, Part 4
Steve Chenoweth
Phone: Office (812) 877-8974
Cell (937) 657-3885 Email:
![Page 2: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/2.jpg)
2
From Requirements to Architecture
"four bedrooms, three baths, lots of glass ..."
Customer Requirements
Architectural Design
How do we get from there to here?
![Page 3: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/3.jpg)
3
Where is Logical Architecture?
: Register
enterItem
(itemID, quantity)
: ProductCatalog
spec = getProductSpec( itemID )
Require-
ments
Business
Modeling
Design
Sample UP Artifact Relationships
Vision Glossary
The logical architecture is influenced by the
constraints and non-functional requirements
captured in the Supp. Spec.
Domain
Model
**
Supplementary
SpecificationUse-Case Model
Register
...
makeNewSale()
enterItem(...)
...
ProductCatalog
...
getProductSpec(...)
...
1 1class diagrams
(a static view)
interaction diagrams
(a dynamic view)
UIpackage diagrams
of the logical
architecture
(a static view) Domain
Tech
Services
Design Model
![Page 4: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/4.jpg)
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
![Page 5: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/5.jpg)
5
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
![Page 6: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/6.jpg)
6
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
![Page 7: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/7.jpg)
7
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
![Page 8: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/8.jpg)
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
![Page 9: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/9.jpg)
Alternative Nesting Notations Traditional Notation
![Page 10: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/10.jpg)
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
![Page 11: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/11.jpg)
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
![Page 12: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/12.jpg)
12
Common Layers in More Detail (1 of 2)
UI
(AKA Presentation, View)
Application
(AKA Workflow, Process,
Mediation, App Controller)
Domain
(AKA Business,
Application Logic, Model)
Technical Services
(AKA Technical Infrastructure,
High-level Technical Services)
Foundation
(AKA Core Services, Base Services,
Low-level Technical Services/Infrastructure)
width implies range of applicability
GUI windows
reports
speech interface
HTML, XML, XSLT, JSP, Javascript, ...
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
(relatively) high-level technical services
and frameworks
Persistence, Security
low-level technical services, utilities,
and frameworks
data structures, threads, math,
file, DB, and network I/O
more
app
specific
de
pe
nde
ncy
Business Infrastructure
(AKA Low-level Business Services)
very general low-level business services
used in many business domains
CurrencyConverter
![Page 13: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/13.jpg)
UI
(AKA Presentation, View)
Application
(AKA Workflow, Process,
Mediation, App Controller)
Domain
(AKA Business,
Application Logic, Model)
Technical Services
(AKA Technical Infrastructure,
High-level Technical Services)
Foundation
(AKA Core Services, Base Services,
Low-level Technical Services/Infrastructure)
width implies range of applicability
GUI windows
reports
speech interface
HTML, XML, XSLT, JSP, Javascript, ...
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
(relatively) high-level technical services
and frameworks
Persistence, Security
low-level technical services, utilities,
and frameworks
data structures, threads, math,
file, DB, and network I/O
more
app
specific
de
pe
nde
ncy
Business Infrastructure
(AKA Low-level Business Services)
very general low-level business services
used in many business domains
CurrencyConverter
Common Layers in More Detail (2 of 2)
Systems will have many, but not
necessarily all, of these
![Page 14: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/14.jpg)
Designing the Domain Layer
Create software
objects with
names and
information similar
to the real-world
domain
Assign application
logic
responsibilities
“Domain Objects”
![Page 15: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/15.jpg)
Terminology: Layers vs. Partitions
Layers
Partitions
![Page 16: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/16.jpg)
Common Mistake:
Showing External Resources
Worse Better
![Page 17: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/17.jpg)
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
![Page 18: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/18.jpg)
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
![Page 19: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/19.jpg)
From SSDs to Layers
System operations on the SSDs will
become the messages sent from the UI
layer to the domain layer
![Page 20: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/20.jpg)
20
SSDs in Layers
Domain
UI
Swing
ProcessSale
Frame...
... Register
makeNewSale()
enterItem()
...
: Cashier
makeNewSale()
enterItem()
endSale()
makeNewSale()
enterItem()
endSale()
enterItem(id, quantity)
:System
: Cashier
endSale()
description, total
makeNewSale()
the system operations handled by the system in an SSD represent the
operation calls on the Application or Domain layer from the UI layer
![Page 21: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/21.jpg)
What’s Next?
Techniques for
Object Design!
![Page 22: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/22.jpg)
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
![Page 23: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/23.jpg)
Static vs. Dynamic Modeling
Static models
Class diagrams
Dynamic models
Sequence diagrams
Communication diagrams
Interaction
Diagrams
Spend time on interaction
diagrams, not just class diagrams
![Page 24: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/24.jpg)
CRC Cards: A Text-based Technique
Class
Responsibilities
Collaborators
![Page 25: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/25.jpg)
25
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
![Page 26: Logical Architecture & Design Preliminaries · 2013. 9. 18. · Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell](https://reader033.fdocuments.us/reader033/viewer/2022051906/5ff90aa78ba53f724f4145a7/html5/thumbnails/26.jpg)
26
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!