csci 578 software architectures exam #1 review. materials you are responsible for chapters 1-8 in...

13
CSCI 578 Software Architectures Exam #1 Review

Upload: meagan-banks

Post on 17-Jan-2016

214 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-8 in the text book All lecture material up to but not including

CSCI 578Software Architectures

Exam #1 Review

Page 2: CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-8 in the text book All lecture material up to but not including

Materials you are responsible for

• Chapters 1-8 in the text book

• All lecture material up to but not including intro to Architectural Analysis (Week 8)

• Homework #1 and Homework #2

Page 3: CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-8 in the text book All lecture material up to but not including

Exam

• Closed book, closed note

• Format– Write in answers– No multiple choice

Page 4: CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-8 in the text book All lecture material up to but not including

Material Review

• Canonical elements of software architecture– Component

• computation

– Connector• communication/coordination

– Configuration• topology and constraints

Page 5: CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-8 in the text book All lecture material up to but not including

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

Page 6: CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-8 in the text book All lecture material up to but not including

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

Page 7: CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-8 in the text book All lecture material up to but not including

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

Page 8: CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-8 in the text book All lecture material up to but not including

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

Page 9: CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-8 in the text book All lecture material up to but not including

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

Page 10: CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-8 in the text book All lecture material up to but not including

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

Page 11: CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-8 in the text book All lecture material up to but not including

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

Page 12: CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-8 in the text book All lecture material up to but not including

Material ReviewModelViz

One (canonical) visualization(common)

Model

Viz

Viz

Viz

Many visualizations for one model (common)

Model

Model Model

Viz

One visualization bringing together many models (uncommon)

Page 13: CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-8 in the text book All lecture material up to but not including

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