Intro to Software System Modeling
Model vs Design Model Design may be used in the SRS used by the software designers may be useful as an overview for the programmers may be used for validation with the customer Design what the programmers are told to build
What info is modeled? Relationships between Data Process Flow Data Transformation Control Flow within the source code Format of the Database Timing constraints (real-time systems) User Interface Flow etc…
Major Modeling and Design Diagrams UML Data Flow Diagrams State Transition Diagrams Structure Charts Entity Relationship Diagrams Use Cases
Data Flow Diagrams Illustrate how processes transform data Very good for modeling a system at a high level, e.g. for the SRS Poor at conveying design of software, except a few cases such as distributed systems process external entity data flow data file
DFD Syntax Rules a model is composed of a series of diagrams that present more and more detail the top-level diagram is the "context" level and contains only one process (our software) data cannot just appear or disappear, i.e. inputs and outputs must match between levels process numbers indicate both family and level of detail all data flows are defined in a Data Dictionary
DFD Example Display Panel display Control data Keypad commands Alarm Alarm System alarm type Alarm sensor status Sensors number tones and recorded msgs Phone Line
DFD Example commands Configure config config data System request 2 Configure System config data config request 1 User Interface config info config data on,off 4 Activate/ Deactivate passwd on/off msg 5 Generate Display display data 3 Check Password valid id msg sensor data alarm type 6 Sensor Monitor sensor status number tones and recorded msgs
State Transition Diagrams Illustrates events and their effects on the system's state or status Good for design of user interfaces real-time and event-based systems system state transition
STD Example checking off valid passwd password start activate invalid de-activate working idle valid passwd problem valid passwd alerting via alarm alerting via phone not acknowledged invalid passwd
Petri Nets - similar to STDs http://www.ppgia.pucpr.br/~maziero/diversos/petri/net.png
Structure Charts Illustrates Control Flow Very good for conveying the design of source code Very inappropriate for modeling a system in a SRS module
SC Syntax Rules one single tree for entire system tree has one node at the top nodes are individual code units / modules nodes call nodes below them nodes are called left to right leaf nodes are usually utility modules may show data flow may show conditionals and loops
SC Example main get_cmd check_sensors Is this correct? turn_off change_ phone_num activate_ alarm send_ phone_msg check_passwd
SC Example main get_cmd check_sensors turn_off change_ phone activate_ alarm send_ phone_msg check_passwd
Entity Relationship Diagrams Illustrates connections between data objects Excellent for design of a database Good for modeling or specifying what data a system should handle Cardinality = max number of objects that can participate in the relationship Modality = is the relationship required
ER Example security sensor system monitors enables/disables tests programs is programmed by
Use Cases Illustrates activities performed by the user. Excellent for modeling a system helps identify data, processes, features Not directly a design spec, but shows programmers the context of their code. system components an action done by an actor actor
Example Use Case Alarm System smoke detector access sensor status via internet motion detector configure the sensor ranges home owner turn on and off Other Use Cases: other homeowner activities security guard burglar
Use Cases for System Modeling
Example Modeling Problem System Req : every employee has a home office Does "home office" mean they have a spare bedroom at home with a computer, or that everyone is assigned to a regional main office? employee home office employee home office
Example Modeling Problem Any user can delete a regular file, but deleting a reserved file must require a password confirmation. Unclear : can any user delete a "reserved file"? How do we show that Requirement in the SRS? How do we show that in the Design?
Summary Good for Modeling: Good for Design: Use Cases DFDs ERs what the user wants to do DFDs process / how the data is transformed ERs structure and nature of the data Good for Design: Structure Charts