Midterm Prep - Concepts Flashcards
- Conceptual Integrity
- A basis for reuse of knowledge, experience, design, and code
- Effective project communication
- Management of “families” of systems
Results of Attention to Architecture
Architecture must be considered the “heart” of developing a software system, more so than:
- Processes and methodologies
- Programming
- Requirements Analysis
?-satisfaction of customer needs
- specialization of labor
- multiple perspectives of the final product
- intermediate points where plans and progress are reviewed
Similarities to regular architecture
?-Software is much newer, so we know much less about it
- Software does not a have a (physical) “medium” for building and thus is much less “visible” (tangible); this makes it more difficult to measure and analyze than a physical structure
- Software is more malleable than a physical building; thus changes are more frequently requested because they are (technically) possible, though the later a change occurs the bigger the magnitude of disruption
Differences from regular architecture
Pipe and FIlter Architecture
- Design/Architecture: components (filters) and relations (pipes)
- Style: constraint on architecture (flow is “sequential”)
- Used in shell programming/command line
- Pipe is a channel that supports the flow of data
Three “Fundamental” Understandings About Architecture
- Every software application has an architecture
- Software applications can have more than one architect/architecture (these could conflict!)
- Software architecture is NOT contained in a phase within the development cycle
Advantages of Product Family?
- Reuse and cost sharing is the big advantage of common components in Product Family.
- think: reused interfaces, assets, architectural style, etc.
- these reused components have already been tested and validated (probably)
We can have multiple sets of architecture at different times. What are some reasons for different versions?
- Based on modifications as we change our minds
- Based on modifications as we make corrections
- Based on modifications as we know more
- Based on expansion as we evolve an grow, etc
-Non-functional requirements are usually done by the solution providers
True
-The architecture should START at the requirements stage
True
Connectors may be classified semi-hierarchically by these four attributes: C-T-D-V
- Category : primary service the connector fulfills
- Type : how the service category is realized
- Dimensionality : further details of types
- Values : values the dimensionality can take
Four categories of connector services? C-C-C-F
Communication Services:
• Supports transmission of information among components
Coordination Services:
• Supports transfers of control among components
Conversion Services:
• Transforms the “interactions of control and/or data” required by one
component to that provided by another
Facilitation Services:
• Mediate and streamline (e.g. performance) the component interactions
8 connector types? PE SAD LAD
- Procedure Call
- Event
- Data Access
- Linkage
- Stream
- Arbitrator
- Adaptor
- Distributor
Services provided by procedure call connectors? (3)
Coordination Service: flow of control among components (via invocation techniques)
• Communications Service: Transfer of data among interacting components (via
parameters and return values)
• Facilitation Service: Facilitate remote procedure call as a “composite” connector
Services provided by Event Connectors? 2
• Coordination services: Regulate the flow of control among
components (an event precipitates the flow of control to a component)
• Communication services: transfers data about the event to those
components who are interested or application data
Services provided by Data Access Connectors? 2
• Communication services: connections to data stores, including
preparation for connection and clean up after access.
• Conversion services: performs any conversion of data formats
and facilitates any access and query mechanisms.
Service provided by linkage connector?
• Facilitation services: provides the “duct or channel ” to facilitate
communications and coordination of information and enforces the
interaction semantics
Service provided by stream connector?
• Communication services: provide the transfer of large amounts of
information (data) ; this service combined with data connector can
form a composite connector of database and file storage access.
Services provided by arbitrator connector? 2
• Facilitation services: resolves any conflict among components and
thus assist and mediate the services among components
• Coordination services: directing and redirecting the control flow
among components
Service provided by adaptor connector?
• Conversion services: provide facilities to support interactions among
components which were not initially designed to interoperate (e.g.
different operating environment, different languages, etc.).
Service provided by distributor connector?
• Facilitation services: identifies interaction paths and routing of
communications and coordination information among the
components.
“specialized” software components that facilitate
the interactions among “application” software components
Software Connectors
Composing a software system from “pre-fabricated, heterogeneous”
components may engage in:
Complex interactions to Produce complex functionalities
Two conceptual building blocks of component interactions?
- Flow of Control
2. Flow of Information
There must a _____, ______, or _____that is used to link the interacting
components; and through this channel flows the control and data
information.
channel or duct or medium
- distinctive role and character in project
- very broad training
- leverages extensive experience
- a keen sense of aesthetics
- deep understanding of the domain
- properties of structures, materials, and environments
- needs of customers
Good Architect
- intellectual control
- conceptual integrity
- effective basis for knowledge reuse
- realizing experience, designs, and code
- effective project communication
- management of a set of variant systems
-Giving preeminence to architecture offers potential for:
How to describe arch effectively?
- Use Models
- Describe RULES
- Architecture is critical for _________
- The variable components provide, for each product within the_________, the differentiator features by cost, by time, etc.
- Reuse and cost sharing is the big advantage of common components in _________.
- think: reused interfaces, assets, architectural style, etc.
- these reused components have already been tested and validated (probably)
Product Family.
When?
- Traditionally: after requirements and during design phase
- In MODERN Practice: Throughout the development activities and not limited only to the “design” phase
- The truth is that software architecture:
a) sometimes starts during the requirements analysis
b) is given main emphasis during design phase
c) continues into implementation
d) is considered during test case analysis and testing
e) is considered during support maintenance and next release
Who?
-Mainly architects and designers, but may include multiple stakeholders (customer influence?)
How?
-Using various techniques and past experiences