300 likes | 312 Views
Learn about architectural design software architecture, including data design, architectural styles, and refining the design through analyzing and mapping data flow.
E N D
Software Architecture: What is it? • Structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them • Two Levels • Data Design • Architectural Design
Software Architecture • The architecture is not the operational software. Rather, it is a representation that enables a software engineer to: • Analyze the effectiveness of the design in meeting its stated requirements, • Consider architectural alternatives at a stage when making design changes is still relatively easy, and • Reduce the risks associated with the construction of the software.
Importance? • Representations of software architecture are enablers for communication • The architecture highlights early design decisions • Architecture “constitutes a relatively small, intellectually graspable model of how the system is structured and how its components work together”
Data Design: Architectural Level • Multiple Databases • Data mining: Knowledge Discovery in Databases (KDD) • Data Warehousing
Data Design: Component Level • Focuses on representation of data structures that are directly accessed by software components • Best practices: • Develop data abstractions • Ensure relationships established • Simplify where possible
Architectural Styles • Styles describe a category defined by: • A set of components that perform a function • Set of connectors that enable communication • Constraints on integration of components • Semantic models that help the understanding of overall properties of a system • Types of Architectures • Data-centered • Data flow • Call and Return ( Main Program/Subprogram and Remote Procedure Call) • Object Oriented • Layered
Data-Centered Example?
Data Flow Examples?
Architectural Patterns • Concurrency: applications must handle multiple tasks in a manner that simulates parallelism • Persistence: Data persists if it survives past the execution of the process that created it. Two patterns are common: • DBMS Pattern • Application Level Persistence Pattern • Distribution: the manner in which systems or components within systems communicate with one another in a distributed environment
Organization and Refinement • Assessing architectural style: • Control • How is control managed? • Does a hierarchy exist? • How is control transferred? • Data • How is data communicated? • Is flow continuous? Sporadic? • Component interaction with data? When might data flow be continuous? Sporadic?
Architectural Design • Representing in context: interaction with target system • Superordinate Systems • Subordinate Systems • Peer-Level Systems • Actors • Archetypes: one element of the system • Nodes, Detectors, Indicators, Controllers • Refining: implementation of previously defined archetypes
Analyzing the Design • Collect scenarios • Elicit requirements, constraints, environment description • Describe architectural designs or patterns that have been chosen • Evaluate quality attributes in isolation • Identify the sensitivity of quality attributes to various attributes for a specific style • Critique candidate architectures
Architectural Complexity • Sharing dependencies • Flow dependencies • Constrained dependencies
Mapping Data Flow to Architecture • Transform Mapping • Review the fundamental system model. • Review and refine data flow diagrams for the software • Determine whether the DFD has transform or transaction flow characteristics. • Isolate the transform center by specifying incoming and outgoing flow boundaries. • Perform “first-level factoring” • Perform “second-level factoring” • Refine the first-iteration architecture using design heuristics for improved software quality.
Flow Characteristics Transform flow Transaction flow
First Level Factoring main program controller output input processing controller controller controller First level factoring isTop-Down distribution of control.
Second Level Factoring Second level factoring is begins at the transform center boundary and moving outward along incoming and then outgoing paths.
Transaction Mapping Data flow model f e a mapping d b x1 t i g program structure h l k t b j m a x2 x4 x3 n n l x3.1 m g f h d e j i k
Isolate Flow Paths error msg produce error msg command read command fixture setting format setting status determine setting validate command read fixture status invalid command raw setting command combined status determine type valid command read record robot control record calculate output values send control value values format report report assembly record start/stop