CPSC 3720 - DAY 14 FEBRUARY 17, 2017 ================================================================================ CONTROL FLOW ------------ Procedure-driven control Operations wait for input from actor Traditional method step-by-step difficult to follow when objects get involved ex. text/command line programs Event-driven control System waits for external event Objects handle each event Multi-step sequences are more difficult Threads Threads are created for each event/procedure Rest of the system can still function Difficult to work with and debug Multicore processors require this for optimum performance BOUNDRY CONDITIONS ------------------ How is the system started? Shut Down? Crashes? Network Outages? Power Outages? Exception Handling? Hardware failure? Software fault? Changes in operating environment - network issues, power outage Create use cases for these conditions boundry use cases REVIEWING SYSTEM DESIGN ----------------------- The system design model is complete if every requirement and every system design issue has been addressed. Have the boundry conditions been handled? Was there a walkthrough of use cases to identify missing functionality? Have all use cases been examined and assigned a control object? Have all aspects of system design been addressed? Do all subsystems have defintions? The system design model is correct if the analysis model can be mapped to the system design model Can every subsystem be traced back to a use case or nonfunctional requirement? Can every use case be mapped to a set of subsystems? Can every design goal be traced back to a nonfunctional requirement? Is every nonfunctional requirement addressed in system design model? Does each actor have an access policy? Is every access policy consistent with the nonfunctional security requirement? The system design is consistent if it does not contain any contradictions Are conflicting design goals prioritized? Does any design goal violate a nonfunctional requiremnts? Are there multiple subsystems or classes with the same name? Are collections of objects exchanged among subsystems in a consistent manner? The model is realistic if the system can be implemented The model is readable if developers not involved in th esystem design can understand the model. Are subsystem names understandable? Do entities with similar names denote similar conceps