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