CSE Senior Design II Overview: System/Product Design Mike O’Dell Based on an earlier presentation by Bill Farrior, UTA, modified by Mike O’Dell 1 What is System Design? A progressive definition of how a system will be constructed: Guiding principles/rules for design (Metaarchitecture) 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 2 1 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 how it 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 3 1 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 4 1 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 lowestlevel components details of interactions between hardware and software. acceptance criteria (testing) for each module CSE 4317 5 1 Layer Example: The Internet Protocol Stack Architecture Layers/Services: application: supporting network applications application transport: host-host data transfer transport ftp, smtp, http 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 network link physical physical: bits “on the wire” 6 1 Subsystem Example: Voice-Over-IP Control Application Speech Compression RTCP RTP Gateway Location Protocol Session Initiation Protocol UDP SDP TCP/UDP IP Data Link Protocol Physical Layer Protocol 7 1 Subsystem Example: The Internet Network Layer Transport layer: TCP, UDP Network layer IP protocol •addressing conventions •datagram format •packet handling conventions Routing protocols •path selection •RIP, OSPF, BGP routing table ICMP protocol •error reporting •router “signaling” Link layer Physical layer 4b4: Network8Layer 1 Subsystem Example: IEEE 802.11 Architecture (Link Layer) Polling mode (PCF) CSMA/CA mode (DCF) 1-2 Mbps Infrared, or 2.4-2.5 GHz Freq. hopping or DSSS (1997) 54 Mbps 5-6 GHz OFDM 11 Mbps 2.4-2.5 GHz DSSS 802.11a (1999) 802.11b (2000) 54/108 Mbps 248 Mbps (2x2) 2.4-2.5 GHz 2.4/5 GHz OFDM MIMO w/ spacial mpx 802.11g/g+ 802.11n (2003) (2008) 9 1 IEEE 802.11 MAC (Detailed Design) Timing in Basic Access duration depends on MAC load type duration depends on network condition MAC frame: Control, management , data + headers (size depends on frame load and type) Reference: W. Stallings: Data and Computer Communications, 7th ed 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 10 1 Example: Team Chronos Architecture CSE 4317 11 1 Example: Team Chronos Detailed Design CSE 4317 12 1 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 13 1 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 14 1 Final Thoughts – Verification System Definition Release Planning Product Backlog MAP: All PBIs (per Sprint) System Validation & Acceptance Testing Detailed Design Architecture MAP: All Low-Level Module Interfaces & Interactions MAP: All Top-Level Interfaces & Interactions Integration Testing Sprint Execution Sprint Planning Component Testing (a.k.a. Function Testing) MAP: All Modules Implementation Unit (SW & HW) Testing Sprint Execution 100% Done CSE 4317 System Verification 15