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 CSE 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)
1 CSE What is System Architecture? bridgewhat how A critical bridge between what a product will do/look like, and how it will be constructed how A blueprint for a system and how it will be built abstraction 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
1 CSE 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)
1 CSE 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
1 6 Layer Example: The Internet Protocol Stack Architecture 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, WLAN physical: bits “on the wire” application transport network link physical
1 7 Subsystem Example: Voice-Over-IP Speech RTP Compression GatewayLocationProtocol RTCP Physical Layer Protocol TCP/UDP Data Link Protocol IP Control Application UDP SDP Session Initiation Protocol
1 4: Network Layer 4b- 8 Subsystem Example: The Internet Network Layer routing table Routing protocols path selection RIP, OSPF, BGP IP protocol addressing conventions datagram format packet handling conventions ICMP protocol error reporting router “signaling” Transport layer: TCP, UDP Link layer Physical layer Network layer
1 9 Subsystem Example: IEEE Architecture (Link Layer) (PCF) (DCF) 1-2 Mbps Infrared, or GHz Freq. hopping or DSSS (1997) 54 Mbps 5-6 GHz OFDM a (1999) 11 Mbps GHz DSSS b (2000) 54/108 Mbps GHz OFDM g/g+ (2003) 248 Mbps (2x2) 2.4/5 GHz MIMO w/ spacial mpx n (2008) Polling mode CSMA/CA mode
1 10 IEEE MAC (Detailed Design) Timing in Basic Access 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 MAC frame: Control, management, data + headers (size depends on frame load and type) duration depends on MAC load type duration depends on network condition
1 CSE Example: Team Chronos Architecture
1 CSE Example: Team Chronos Detailed Design
1 CSE 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.
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
1 CSE Final Thoughts – Verification Product Backlog Architecture Detailed Design Implementation Integration Testing Component Testing (a.k.a. Function Testing) Unit (SW & HW) Testing System Validation & Acceptance Testing System Verification System Definition MAP: All PBIs (per Sprint) MAP: All Low-Level Module Interfaces & Interactions MAP: All Modules MAP: All Top-Level Interfaces & Interactions 100% Done Release Planning Sprint Planning Sprint Execution