CS 5150 Software Engineering Lecture 9 Requirements 3
CS Administrivia Quiz response High level project goals: Generic versus particular User-relevant versus implementation Copyright versus license Risk: finding users to test with Surveys Feasibility Reports
CS Modeling Techniques for Requirements Analysis and Specification The craft of requirements analysis, modeling and specification is to select the appropriate tool for the particular task A variety of tools and techniques. Many familiar from other courses. No correct technique that fits all situations. As you build understanding of the requirements through viewpoint analysis, scenarios and use cases, etc., use models to specify requirements. The models provide a bridge between the client's understanding and the developers.
CS The “Ur-models” of Software Engineering Functions Data (storage) Processes
CS Data-Flow Models
CS Data-Flow Example 1: University Admissions
CS Receive Application Stage
CS Evaluate Stage
CS Decision Table
CS Flowcharts
CS University Admissions as Flowchart
CS Pseudo-code Example: Check project plan check_plan (report) if report (date_time) > due_date_time then error (too_late) if report (client) = none then error (no_client) if report (team) max_team then error (bad_team) if error() = none then comments = read_report (report) return (comments (text), comments (grade)) else return error()
CS Transition Diagrams A system is a set of states and rules for transitioning from one state to another Transitions can be conditional Outputs can be associated with states or transitions Transition rules often expressed as a function: next state = f(current state, inputs)
CS State Machine Example: Therapy Control Console Example: Radiation Therapy Control Console You are developing requirements for the operator's control console. In an interview, the client describes the procedures that the operator must follow when operating the machine. You use a finite state machine to specify the procedures This shows the client that you understand the requirements and specifies the procedures for the developers
CS Therapy Control Console Scenario "The set up is carried out before the patient is made ready. The operator selects the patient information from a database. This provides a list of radiation fields that are approved for this patient. The operator selects the first field. This completes the set up. "The patient is now made ready. The lock is taken off the machine and the doses with this field are applied. The operator then returns to the field selection and chooses another field."
CS Console State Transition Diagram
CS Console State Transition Table
CS Transition Diagrams for User Interfaces (CS 5150 Website)
CS Andrew Durdin’s iOS Home Button Guide
CS Entity-Relation Models A requirements and design methodology for relational databases A database of entities and relations Tools for displaying and manipulating entity- relation diagrams Tools for manipulating the database (e.g., as input to database design)
CS Entity-Relation Diagrams
CS Entity-Relation Example: 5150 Project
CS Database Schema for Web Data
CS Sequence Diagrams for Interaction/Concurrency
CS Modeling Trump Card: Prototyping Rapid prototyping is the most comprehensive (and potentially expensive) of all modeling methods A method for specifying requirements by building a system that demonstrates the functionality of key parts of the required system Particularly valuable for user interfaces
CS Dictionaries to Support Other Requirements Documents A data dictionary is a list of names used by the system Name (e.g., "start_date") Brief definition (e.g., what is "date") What is it? (e.g., integer, relation) Where is it used (e.g., source, used by, etc.) May be combined with a glossary
CS A Few Concluding Remarks In this course we discuss class and object models as a tool for design Some people recommend class and object models for requirements definition, but it is difficult to use them without constraining the system design Flow charts and finite state machines are supported by UML as design models, but are equally useful for requirements