Architectural Design CIS 375 Bruce R Maxim UMDearborn
Architectural Design CIS 375 Bruce R. Maxim UM-Dearborn 12/7/2020 1
Software architecture representations enable software engineers to • Analyze the effectiveness of the design in meeting stated requirements • Consider architectural alternatives • Reduce the risk associated with the construction of the software • Examine the system as a whole 12/7/2020 2
Importance • Software architecture representations enable communications among stakeholders • Architecture highlights early design decisions that will have a profound impact on the ultimate success of the system as an operational entity • The architecture constitutes an intellectually graspable model of how the system is structured and how its components work together 12/7/2020 3
Data Warehouse Challenges - 1 • Subject orientation – data warehouse organized by business subjects rather than business processes or functions • Integration – data in the warehouse must exhibit consistent naming conventions, encoding structures, and physical attributes even when inconsistencies exist among application-oriented databases 12/7/2020 4
Data Warehouse Challenges - 2 • Time variancy – unlike transaction-oriented databases where data may only be accurate for short time periods, the time horizon for a data warehouse may be several years • Nonvolatility – data remains in the data warehouse once added and old data may only be purged every few years if ever 12/7/2020 5
Data Specification Principles - 1 • Systematic analysis principles applied to function and behavior should also be applied to data. • All data structures and the operations to be performed on each should be identified. • Data dictionary should be established and used to define both data and program design. • Low level design processes should be deferred until late in the design process. 12/7/2020 6
Data Specification Principles - 2 • Representations of data structure should be known only to those modules that must make direct use of the data contained within in the data structure. • A library of useful data structures and operations should be developed. • A software design and its implementation language should support the specification and realization of abstract data types. 12/7/2020 7
Architectural Style Elements • Set of components • Set of connections that enable communication, coordination, and cooperation among components • Constraints defining how components can be integrated to form the system • Semantic models that enable designers to understand the overall system properties by analyzing properties of its constituent parts 12/7/2020 8
Architectural Structures - 1 • Functional structure – components represent function or processing entities – connectors are interfaces that allow data access • Implementation structure – components are vehicles for packaging functionality (i. e. packages, classes, objects, functions, methods, etc. ) – connectors include data sharing, control transfer, associations, etc. 12/7/2020 9
Architectural Structures - 2 • Concurrency structure – components are units of concurrency – connectors are execution or communications constraints • Physical structure – components are physical hardware that software is deployed on – connectors are the hardware interfaces 12/7/2020 10
Architectural Structures - 3 • Developmental structure – components are work products and required information sources – connectors are the relationships among the work products 12/7/2020 11
Architectural Styles - 1 • Data centered – file or database lies at the center of this architecture and is accessed frequently by other components that modify data • Data flow – input data is transformed by a series of computational components into output data • Call and return – program structure decomposes function into control hierarchy with main program invoking several subprograms 12/7/2020 12
Architectural Styles - 2 • Object-oriented – components of system encapsulate data and operations, communication between components is by message passing • Layered – several layers are defined – each layer performs operations that become closer to the machine instruction set in the lower layers 12/7/2020 13
Software Architecture Design - 1 • Software to be developed must be put into context – model external entities and define interfaces • Identify architectural archetypes – collection of abstractions that must be modeled if the system is to be constructed 12/7/2020 14
Software Architecture Design - 2 • Specify structure of the system – define and refine the software components needed to implement each archetype • Continue the process iteratively until a complete architectural structure has been derived 12/7/2020 15
Representing System - 1 • Use the architectural context diagram to model the manner in which the target system interacts with external entities – Superordinate systems – use the target system as part of some higher level processing scheme – Subordinate systems – used by the target system to provide data or processing needed to complete the target system – Peer level systems – producing or consuming information need by peers of the target system 12/7/2020 16
Representing System - 2 • Actors – people or devices that interact with the system to produce or consume information needed for requisite processing • Interfaces must be defined • All the data that flow into or out of the target system must be identified 12/7/2020 17
Refining Architecture - 1 • Process begins with an examination of the analysis classes for entities from the business domain that must be addressed in the software architecture • Infrastructure components needed to support the business functions are identified 12/7/2020 18
Refining Architecture - 2 • The interfaces depicted in the architecture context diagram may imply specialized components needed to process data that crosses the interfaces • Look for archetypes that reoccur in several components and create new components that service each repeating design pattern 12/7/2020 19
Architecture Design Assessment Questions - 1 • How is control managed within the architecture? • Does a distinct control hierarchy exist? • How do components transfer control within the system? • How is control shared among components? • What is the control topology? • Is control synchronized or asynchronous? • How are data communicated between components? 12/7/2020 20
Architecture Design Assessment Questions - 2 • Is the flow of data continuous or sporadic? • What is the mode of data transfer? • Do data components exist? If so what is their role? • How do functional components interact with data components? • Are data components active or passive? • How do data and control interact within the system? 12/7/2020 21
Architecture Tradeoff Analysis - 1 1. Collect scenarios 2. Elicit requirements, constraints, and environmental description 3. Describe architectural styles/patterns chosen to address scenarios and requirements • • • 12/7/2020 module view process view data flow view 22
Architecture Tradeoff Analysis - 2 4. Evaluate quality attributes independently (e. g. reliability, performance, security, maintainability, flexibility, testability, portability, reusability, interoperability) 5. Identify sensitivity points for architecture • any attributes significantly affected by changing in the architecture 6. Critique candidate architectures (step 3) using the sensitivity analysis (step 5) 12/7/2020 23
Architectural Complexity (Coupling) • Sharing dependencies – dependence relationships among consumers who use the same resource or producers who produce for the same consumers • Flow dependencies – represent dependence relationships between producers and consumers of resources • Constrained dependencies – represent constraints on the relative flow among a set of components 12/7/2020 24
Mapping Requirements to Architecture - 1 • Establish type of information flow from DFD – transform flow - overall data flow is sequential and flows along a small number of straight line paths – transaction flow - a single data item triggers information flow along one of many paths • Flow boundaries indicated • DFD is mapped into program structure 12/7/2020 25
Mapping Requirements to Architecture - 2 • Control hierarchy defined • Resultant structure refined using design measures and heuristics • Architectural description refined and elaborated 12/7/2020 26
n DFD/CFD Level 0 - Part Number Analysis (PNA) System WKConnectors. XLS Spreadsh eet Informatio n CSV File Creation (WKConnectors. CSV) WKConnect ors Delimited Text Information Display Monitor Report Results Table 1. CSV Table 1 Delimited Text Information Table 2. CSV - Command - PN data PART NUMBER ANALYSIS (PNA) Tool Report Results File Report Results Printer User 12/7/2020 27
n DFD/CFD Level 1 - Part Number Analysis (PNA) Tool WKConnectors Delimited Text information Report Results Validation Results Table 1 Delimited Text information Report Results Validate Data Process Report Print / Save Data Report Results Table 2 Delimited Text information - Command - PN data 12/7/2020 28
n DFD/CFD Level 2 - Validate Data WKConnecto rs Delimited Text information tbl_Classification Make Relevant tbl_created. WKConnector Records - Command - PN data Make WKConn Category Reference ID Validation Results tbl_created. WKConn field data - Component Remarks - Category ID tbl_created. T 1 Field data Relevant T 1 Record(s) Table 1 Delimited Text information Analyze/Classify Data Criteria: - dbs - str. Criteria - str. Orig. PN Print / Save Data Criteria: - dbs - str. Orig. PN T 2 Field data Make tbl_created. T 1 tbl_created. T 2 Table 2 Delimited Text information 12/7/2020 Make tbl_created. T 2 Relevant T 2 Record(s) 29
n DFD/CFD Level 3 - Make tbl_created. T 1 Table 1 Delimited Text information Criteria: - dbs - str. Criteria - str. Orig. PN qry_Table 1 Unique. PN Recreate tbl_created. T 1 Table 1 Query Results Relevant T 1 Record(s) n DFD/CFD Level 3 - Make tbl_created. T 2 Criteria: - dbs - str. Orig. PN Table 2 Delimited Text information 12/7/2020 Recreate tbl_created. T 2 qry_Table 2 Prelim. Unique Table 2 Query Results Relevant T 2 Record(s) 30
Transform Mapping - 1 • Review fundamental system model • Review and refine data flow diagrams for the software • Determine whether the DFD has transform or transaction characteristics • Isolate the transform center by specifying incoming and outgoing flow boundaries 12/7/2020 31
Transform Mapping - 2 • Perform first level factoring • Perform second level factoring • Refine the first iteration architecture using design heuristics for improved software quality. 12/7/2020 32
Transaction Mapping - 1 • Review fundamental system model • Review and refine data flow diagrams for the software • Determine whether the DFD has transform or transaction characteristics • Identify the transaction center and flow characteristics along each action path 12/7/2020 33
Transaction Mapping - 2 • Map the DFD to a program structure amenable to transaction processing • Factor and refine the transaction structure and the structure of each action path • Refine the first iteration architecture using design heuristics for improved software quality 12/7/2020 34
Refining Architectural Design • Processing narrative developed for each module • Interface description provided for each module • Local and global data structures are defined • Design restrictions/limitations noted • Design reviews conducted • Refinement considered if required and justified 12/7/2020 35
- Slides: 35