CSCI 578 Software Architectures

Download Report

Transcript CSCI 578 Software Architectures

CSCI 578
Software Architectures
Exam #1 Review
Materials you are responsible
for
• Chapters 1-7 in the text book
• All lecture material up to but not
including intro to Architectural Analysis
(Week 7)
• Homework #1 and #2
Exam
• Closed book, closed note
• Format
– Write in answers
– No multiple choice
Material Review
• Canonical elements of software
architecture
– Component
• computation
– Connector
• communication/coordination
– Configuration
• topology and constraints
Material Review
• Architectural styles
– Codify key constraints and architectural elements
(components, connectors, configurations) found effective
used in a family of software systems over a given time
period
• Architectural patterns
– A set of architectural design decisions that are applicable to
a recurring design problem, and parameterized to account
for different software development contexts in which that
problem appears.
– Compared to styles, architectural patterns are at a coarser
level of granularity (design decisions versus actual
architectural elements) and are inherently more domain
specific
Material Review
• Examples of Architectural Styles
– Client/Server, P2P, Object Oriented, Layered, Data-Flow,
Pipe and Filter, Blackboard, Rule Based
• Examples of Architectural Patterns
– 3-tier (Stage-Logic-Display), MVC, Sense Compute Control
• Methods of evaluating design methods like styles and
patterns
– Vocabulary, structural patterns, computational model,
invariants, common examples, disadvantages,
specializations
• Methods of design
– Greenfield design (entirely fresh start, no baggage)
• Analogy searching, Brainstorming, Literature searching,
Morphological Charts, Removing Mental Blocks, Insight from
requirements/implementation
Material Review
• Software Connectors
– Taxonomy
• 4 main roles
– Communication, Conversion, Facilitation, Coordination
• 8 main types
– Event, Stream, Procedure Call, Arbitrator, Data Access,
Distributor, Linkage, Adaptor
• Benefits of first-class connectors
– Software evolution, separation of concerns,
modularity, pluggability
Material Review
• Architectural Modeling
– An architectural model is an artifact that captures
some or all of the design decisions that comprise
a system’s architecture
– Architectural modeling is the reification and
documentation of those design decisions
• How to choose what to model?
– Cost/Benefit Decision
• What do we model?
– Structure (Architectural element), static/dynamic
behaviors, functional/non-functional aspects,
Views/Viewpoints
Material Review
• Architectural Modeling
– Important things to “get right”
• Consistency, Accuracy/Precision, Ambiguity
– How do we evaluate modeling techniques?
• Scope/Purpose, Basic Elements, Style, Static/Dynamic
Aspects, Dynamic Modeling, Non-functional aspects,
ambiguity, accuracy/precision, viewpoints, view
consistency
– Modeling approaches
• Generic, early ADLs, style-specific and domain-specific
languages, extensible ADLs
Material Review
• Architectural Modeling
– Generic approaches
• Natural language, informal graphical tools (Powerpoint),
semi-formal graphical tools with semantics (UML)
– Early ADLs
• Darwin, Rapide, Wright
– Domain/Style-specific ADLs
• Koala, Weaves, AADL
– Extensible Architecture Description Languages
• xADL, ACME, ADML
Material Review
• Architectural Visualization
– An architectural visualization defines how
architectural models are depicted, and how
stakeholders interact with those depictions
– Two key aspects here:
• Depiction is a picture or other visual
representation of design decisions
• Interaction mechanisms allow stakeholders to
interact with design decisions in terms of the
depiction
Material Review
Viz
Model
One (canonical) visualization
(common)
Viz
Viz
Model
Model
Viz
Viz
Many visualizations for one
model (common)
Model
Model
One visualization bringing together
many models (uncommon)
Material Review
• Kinds of Architectural Visualizations
– Textual (XML in a text editor, natural language,
etc.)
– Graphical (boxes, lines, etc.)
– Hybrid (combine elements of textual and
graphical)
– Effect (depict the results or effects of design
decisions, not direct design decisions)
• How do we evaluate architectural visualizations?
– Scope/Purpose, Basic Type, depiction, interaction, fidelity,
consistency, comprehensibility, dynamism, view
coordination, aesthetics, extensibility