150 likes | 178 Views
Learn about system design, architecture, and detailed design processes. Explore key elements and principles in software system construction. Understand the layers, protocols, and subsystem examples in system architecture.
E N D
Overview:System/Product Design Mike O’Dell Based on an earlier presentation by Bill Farrior, UTA, modified by Mike O’Dell
What is System Design? • A progressive definition of how a system will be constructed: • Guiding principles/rules for design (Meta-architecture) • Per Portfolio (Release structure) • Top-level structure, design abstraction (Architecture Design)… • Per Release (Product Backlog in its entirety) • Details of all lowest-level design elements (Detailed Design)… • Per Sprint (lowest-level PBIs) CSE 4317
What is System Architecture? • A critical bridge between what a product will do/look like, and how it will be constructed • A blueprint for a system and howit will be built • An abstraction: a conceptual model of what must be done to construct the software system • It is NOT a specification of the details of the construction CSE 4317
What is System Architecture? • The top-level breakdown of how a system will be constructed: • design principles/rules • high-level structural components • Layers: top-level components • Subsystems: intermediate-level components • high-level data elements (external/internal) • high-level data flows, interfaces, and interactions between components (external/internal) CSE 4317
What is Detailed Design? • Expands/enhances the system architecture (more detail) • refines the architecture to its lowest-level components • Can be used as an “implementation guide” for the product • exactly how it should be built • key relationships/dependencies between lowest-level components • details of interactions between hardware and software. • acceptance criteria (testing) for each module CSE 4317
Layers/Services: application: supporting network applications ftp, smtp, http transport: host-host data transfer tcp, udp network: routing of datagrams from source to destination ip, routing protocols link: data transfer between neighboring network elements E.g., Ethernet, 802.11 WLAN physical: bits “on the wire” application transport network link physical Layer Example: The Internet Protocol Stack Architecture
Subsystem Example: Voice-Over-IP Control Application Speech Compression Session Initiation Protocol Gateway Location Protocol RTCP SDP RTP UDP TCP/UDP IP Data Link Protocol Physical Layer Protocol
ICMP protocol • error reporting • router “signaling” IP protocol • addressing conventions • datagram format • packet handling conventions Routing protocols • path selection • RIP, OSPF, BGP routing table Subsystem Example: The Internet Network Layer Transport layer: TCP, UDP Network layer Link layer Physical layer 4: Network Layer
(PCF) (DCF) 1-2 Mbps Infrared, or 2.4-2.5 GHz Freq. hopping or DSSS (1997) 54 Mbps 5-6 GHz OFDM 802.11a (1999) 11 Mbps 2.4-2.5 GHz DSSS 802.11b (2000) 54/108 Mbps 2.4-2.5 GHz OFDM 802.11g/g+ (2003) 248 Mbps (2x2) 2.4/5 GHz MIMO w/ spacial mpx 802.11n (2008) Subsystem Example: IEEE 802.11 Architecture (Link Layer) Polling mode CSMA/CA mode
duration depends on MAC load type duration depends on network condition MAC frame: Control, management , data + headers(size depends on frame load and type) PCF: Point Coordination Function (asynchronous, connectionless access) DCF: Distributed Coordination Function (connection oriented access) DIFS: DCF Inter Frame Space (minimum delay for asynchronous frame access) PIFS: PCF Inter Frame Space (minimum poll timing interval) SIFS: Short IFS (minimum timing for high priority frame access as ACK, CTS, MSDU…) MSDU: MAC Service Data Unit Reference: W. Stallings: Data and Computer Communications, 7th ed IEEE 802.11 MAC (Detailed Design) Timing in Basic Access
Example:Team ChronosArchitecture CSE 4317
Example:Team ChronosDetailedDesign CSE 4317
Criteria for a Good Design(The Four I’s) • Independence – the modules are independent of each other and each module’s functions are internally-specific and have little reliance on other modules. Changes in the implementation of one module should minimally impact others. • Interfaces/Interactions – the interfaces and interactions between modules are complete and well-defined, with explicit data flows. • Integrity – the whole thing “hangs together”. It’s complete, consistent, accurate… it works. • Implementability – the approach is feasible, and the specified system can actually be designed and built using this design. CSE 4317
Design Sequencing in Scrum • Architecture Design: • Done as part of the release planning • Reviewed/updated/refined during Sprint Planning for each Sprint • Modified as necessary based on changes in overall aproach • Detailed Design: • Done during each Sprint, as a task on the Sprint Backlog, for each PBI that is to be implemented in that Sprint CSE 4317
Final Thoughts – Verification System Definition Sprint Execution Release Planning Sprint Planning Detailed Design Architecture Product Backlog Implementation MAP: All Low-Level Module Interfaces & Interactions MAP: All Top-Level Interfaces & Interactions MAP: All PBIs (per Sprint) MAP: All Modules System Validation & Acceptance Testing Integration Testing Unit (SW & HW) Testing Component Testing (a.k.a. Function Testing) Sprint Execution System Verification 100% Done CSE 4317