Software Requirements Engineering Ch.4 B. Ramamuthy 11/24/2018
Topics Requirements engineering process State machines Event-driven programming Table-driven methods Mealy Machines (fig.4.4, Table 4.3) Petri nets for representing behavior of multitasks (4.8, 4.9, Table 4.5, fig.4.10) Context diagrams (fig 4.14) Use case diagrams (fig 4.15) 11/24/2018
Requirements-Engineering Process Deals with determining the goals, functions, and constraints of systems, and with representation of these aspects in forms amenable to modeling and analysis. 11/24/2018
Types of requirements Standard scheme for realtime systems is defined by IEEE standard IEEE830. It defines the following kind of requirements: Functional Non-functional External interfaces Performance Logical database Design constraints (ex: standards compliance) Software system attributes Reliability, availability, security, maintainability, portability 11/24/2018
Design methods: Finite state machines Finite state automaton (FSA), finite state machine (FSM) or state transition diagram (STD) is a formal method used in the specification and design of wide range of embedded and realtime systems. The system in this case would be represented by a finite number of states. Lets design the avionics for a fighter aircraft. 11/24/2018
Fighter aircraft avionics else else TAK MA NAV TD else NAE MC else LO NAA EE LAN ED 11/24/2018
Finite State Machine (FSM) M = five tuple { S, i, T, Σ, δ } S = set of states i = initial state T = terminal state (s) Σ = events that bring about transitions δ = transitions Lets do this exercise for the avionics for fighter aircraft 11/24/2018
State Transition table MA LO TD MC EE ED TAK NAV NAE LAN NAA 11/24/2018
Lets write the embedded system Use the table to code a function with case statement Or write a table-driven code Which is better and why? 11/24/2018
Exercises 4.7 : context diagram, use case diagram 4.8 : state diagram 4.10 4.11 4.13 11/24/2018