Download presentation
Presentation is loading. Please wait.
1
CISC/CMPE320 - Prof. McLeod
Winter 2013 CISC/CMPE320 8/24/2018 CISC/CMPE320 Notices Confluence working again after a re-start of the VM. SDD due Friday, 7pm this week. Assn 3 also due this Friday. Assn 2 sample solution posted. You can use this code if you need to for assn 3. Fall 2017 CISC/CMPE320 - Prof. McLeod Prof. Alan McLeod
2
CISC/CMPE320 - Prof. McLeod
Today Continue Software Analysis. Fall 2017 CISC/CMPE320 - Prof. McLeod
3
CISC/CMPE320 - Prof. McLeod
Example Take apart the ReportEmergency use case from the FRIEND example: (FRIEND was designed to provide better emergency responses and to record this information in a database.) Fall 2017 CISC/CMPE320 - Prof. McLeod
4
ReportEmergency Use Case Example
Use case name: ReportEmergency Participating Actors: Initiated by FieldOfficer Communicates with Dispatcher Flow of Events: FieldOfficer activates “Report Emergency” function on her laptop. FRIEND responds by presenting a form to the FieldOfficer. The form includes an emergency type list to choose from, location details, incident description, resources requested and hazardous materials involved option. FieldOfficer provides a description of the situation, the emergency level, location, and the type of emergency, along with possible responses. Once complete, the FieldOfficer submits the form along with a request for a specific response. The minimum required information is emergency type and description. Fall 2017 CISC/CMPE320 - Prof. McLeod
5
CISC/CMPE320 - Prof. McLeod
FRIEND receives the form and notifies the Dispatcher using a pop up dialog. Dispatcher reviews the submitted information and creates an Incident in the database by invoking the OpenIncident use case. All information in the report submitted by the FieldOfficer is included in the Incident. The Dispatcher selects a response by allocating resources to the Incident (using the AllocateResources use case) and acknowledges the report by sending a Acknowledgement to the FieldOfficer. The Acknowledgement indicates to the FieldOfficer that the EmergencyReport was received, and Incident created and resources were allocated to the Incident, along with the type of resources and the ETA. FRIEND displays the acknowledgement and response to the FieldOfficer. Fall 2017 CISC/CMPE320 - Prof. McLeod
6
CISC/CMPE320 - Prof. McLeod
Entry Condition: The FieldOfficer is logged into FRIEND. Exit Conditions: The FieldOfficer has received an acknowledgement and the selected response from the dispatcher, OR The FieldOfficer has received an explanation of why the transaction could not be processed. Quality Requirements: The FieldOfficer’s report is acknowledged within 30 seconds. The selected response arrives no later than 30 seconds after it is sent by the Dispatcher. Fall 2017 CISC/CMPE320 - Prof. McLeod
7
Use Cases vs. User Stories
Agile user stories are much shorter! A use case contains information on what the system is doing along a time line, it does not just describe a requirement. A use case can also contain non-functional requirements. Fall 2017 CISC/CMPE320 - Prof. McLeod
8
Equivalent User Stories?
As an emergency supervisor I want to be able to collect, analyze and review all data for emergency responses through the use of a database, so problems can be corrected and system improvements can be made. Fall 2017 CISC/CMPE320 - Prof. McLeod
9
Equivalent User Stories?, Cont.
As a field officer I want to be able to provide emergency information to the dispatcher by filling out a form on my laptop, so that all information is supplied, recorded and is not ambiguous. As a field officer I want to receive a response from the dispatcher that contains specifics about the response and the ETA so I know what to expect and I can judge if I think the response is adequate. Fall 2017 CISC/CMPE320 - Prof. McLeod
10
Equivalent User Stories?, Cont.
As a dispatcher I want to receive notifications of new emergencies on my computer. As a dispatcher I want to be able to have a real-time view of the location and availability of my emergency response assets. As a dispatcher I want to be able to allocate assets to the new emergency and record this allocation. As a dispatcher I want to send an update to the field officer containing the response information so that they are informed of the details. Fall 2017 CISC/CMPE320 - Prof. McLeod
11
Non-Functional Requirements
The field officer has a laptop running the system. The field officer’s original notification is received and acknowledged by the dispatcher within 30 seconds. The response details created by the dispatcher is received by the field officer within 30 seconds. Fall 2017 CISC/CMPE320 - Prof. McLeod
12
Use Cases vs. User Stories, Cont.
To make a time to completion estimate for a user story, the team must eliminate any ambiguity in the story and discover non-functional requirements. As they discuss the user story, they seem to actually be building a use case, but normally they would not document it. Or the set of issues linked to the user story would acquire more detail. And, they would get to work on it right away! Fall 2017 CISC/CMPE320 - Prof. McLeod
13
ReportEmergency Objects
Entity: Dispatcher, EmergencyReport, FieldOfficer, Incident, Acknowledgement Boundary: AcknowledgementNotice, DispatcherTerminal, ReportEmergencyButton, EmergencyReportForm, FieldOfficerTerminal, IncidentForm Control: ReportEmergencyControl, ManageEmergencyControl Fall 2017 CISC/CMPE320 - Prof. McLeod
14
CISC/CMPE320 - Prof. McLeod
Sequence Diagrams A UML Sequence Diagram re-creates a use case using its objects. They consist of the actors, the boundary, control and entity objects, with interactions shown along a time line. Pretty complicated! Not very useful for single player game apps… Fall 2017 CISC/CMPE320 - Prof. McLeod
15
CISC/CMPE320 - Prof. McLeod
Report EmergencyButton ManageEmergencyControl FieldOfficer <<create>> ReportEmergencyControl press() <<create>> ReportEmergencyForm fillContents() submit() submitReport() EmergencyReport <<create>> submitReportToDispatcher() <<destroy>> Fall 2017 CISC/CMPE320 - Prof. McLeod
16
CISC/CMPE320 - Prof. McLeod
ManageEmergencyControl Dispatcher submitReportToDispatcher() IncidentForm <<create>> createIncident() <<create>> Incident submit() <<create>> Acknowledgment <<destroy>> Fall 2017 CISC/CMPE320 - Prof. McLeod
17
CISC/CMPE320 - Prof. McLeod
ManageEmergencyControl ReportEmergencyControl FieldOfficer acknowledgeReport() <<create>> AcknowledgementNotice dismiss() endReportTransaction() <<destroy>> <<destroy>> Fall 2017 CISC/CMPE320 - Prof. McLeod
18
Sequence Diagrams, Cont.
Think of the time line as going from top, left to bottom, right. List the objects like column headers across the top. For these objects you are interested in: When (and who) creates the object. Which objects interact with the object and in what order. The nature of this interaction. If and when the object is destroyed. Fall 2017 CISC/CMPE320 - Prof. McLeod
19
Sequence Diagrams, Cont.
From the left: First column should be the actor who initiates the use case. Second column should be the boundary object that the actor used to initiate the use case. Third column should be the control object that manages the rest of the use case. The initiated boundary objects create the control object. Other boundary objects are created by control objects. Fall 2017 CISC/CMPE320 - Prof. McLeod
20
Sequence Diagrams, Cont.
Entity objects are accessed by both control and boundary objects. Entity objects never access boundary or control objects. (This way entity objects can be shared by many use cases.) Fall 2017 CISC/CMPE320 - Prof. McLeod
21
Sequence Diagrams, Cont.
Lets the designer know what responsibilities belong to which objects, and the order in which they take place. Time consuming to create – focus on problematic or underdeveloped functionality first. Fall 2017 CISC/CMPE320 - Prof. McLeod
22
An Agile Analysis Technique – CRC Cards
Class, Responsibilities, Collaborators Example (on recipe cards or “post-it” notes…): ReportEmergencyControl Responsibilities Collect input from FieldOfficer. Control sequence of forms during emergency reporting. Collaborators EmergencyReportForm EmergencyReport AcknowledgementNotice Fall 2017 CISC/CMPE320 - Prof. McLeod
23
CISC/CMPE320 - Prof. McLeod
CRC Cards, Cont. The technique was documented in 1989 (Beck and Cunningham). Suited to a brain-storming session: Lock all your coders and architects, etc into a banquet room at the local hotel. Have all their meals brought in. (No booze until later…) Lots of whiteboards, post-it notes, recipe cards, pencils and little magnets, etc. Fall 2017 CISC/CMPE320 - Prof. McLeod
24
CISC/CMPE320 - Prof. McLeod
Fall 2017 CISC/CMPE320 - Prof. McLeod
25
CISC/CMPE320 - Prof. McLeod
CRC Cards, Cont. Can be done in teams or in one large group. Create one card per object. Add responsibilities and collaborators to each card. Lay cards out on the board or on a table to see how events flow and how objects interact (take pictures). Fall 2017 CISC/CMPE320 - Prof. McLeod
26
CISC/CMPE320 - Prof. McLeod
CRC Cards, Cont. Good: Simple Works better with a large group Can rough out a design in a fairly short time Bad: How can you precisely document the results of the brainstorming session? Do you have to rely on everyone’s memory of how the objects interact? Might be a good way to start a more formal design effort. Fall 2017 CISC/CMPE320 - Prof. McLeod
27
Defining Relationships
We are trying to exactly define the relationships between actors and participating objects. A Statechart diagram is the only other diagram that provides a dynamic view. It focuses on just a single object. For example, look at a nested statechart diagram for the Incident object: Fall 2017 CISC/CMPE320 - Prof. McLeod
28
CISC/CMPE320 - Prof. McLeod
Active field officer arrives on site Reported Assessment dispatcher allocates resources field officer requests additional resources Response Disengagement field officer releases resources all resources deallocated when date is greater than one year all resources submitted reports Inactive Closed Archived Fall 2017 CISC/CMPE320 - Prof. McLeod
29
CISC/CMPE320 - Prof. McLeod
Statechart Diagrams By concentrating on just a single object it is easier to see if there are any missing use cases. Or if a use case needs more refinement. Fall 2017 CISC/CMPE320 - Prof. McLeod
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.