1 RNDS: Use cases CS 236700: Software Design Winter 2004-2005/T3.

Slides:



Advertisements
Similar presentations
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Use Cases CS/SWE 421 Introduction to Software.
Advertisements

Chapter 7 – Object-Oriented Design
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
28.2 Functionality Application Software Provides Applications supply the high-level services that user access, and determine how users perceive the capabilities.
1 Software Requirement Analysis Deployment Package for the Basic Profile Version 0.1, January 11th 2008.
Use Case Modeling Written by: Zvika Gutterman Adam Carmi.
The Architecture Design Process
Use Case Modeling Written by: Zvika Gutterman Adam Carmi.
Software Frameworks for Acquisition and Control European PhD – 2009 Horácio Fernandes.
Software Requirements
1 RNDS Deployment, Collaborations and Sequences CS : Software Design Winter /T6.
The chapter will address the following questions:
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
1 Introduction to Web Development. Web Basics The Web consists of computers on the Internet connected to each other in a specific way Used in all levels.
WP6: Grid Authorization Service Review meeting in Berlin, March 8 th 2004 Marcin Adamski Michał Chmielewski Sergiusz Fonrobert Jarek Nabrzyski Tomasz Nowocień.
CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Tuesday Class will start momentarily. Please Stand By … CS 8532: Advanced Software.
Computer Science : Information Systems Design and Development Unit Web Sites - National 4 / 5 St Andrew’s High School-Revised January 2013 Slide 1 St Andrew’s.
Database Systems COMSATS INSTITUTE OF INFORMATION TECHNOLOGY, VEHARI.
Practical PC, 7th Edition Chapter 5: Organizing Files and Folders
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Chapter 6 Requirements Engineering Process.
XP New Perspectives on Browser and Basics Tutorial 1 1 Browser and Basics Tutorial 1.
Software Engineering 2003 Jyrki Nummenmaa 1 CASE Tools CASE = Computer-Aided Software Engineering A set of tools to (optimally) assist in each.
1 California State University, Fullerton Chapter 8 Personal Productivity and Problem Solving.
An Introduction to Software Architecture
Moodle (Course Management Systems). Assignments 1 Assignments are a refreshingly simple method for collecting student work. They are a simple and flexible.
CS 3610: Software Engineering – Spring 2009 Dr. Hisham Haddad – CSIS Dept. Class Project OO Design Document Here is what you need to do for your class.
CHAPTER Windows NT Server Installation. Chapter Objectives Give an overview of the installation process Outline the pre-installation and post- installation.
Device Drivers.
Operating Systems Lecture 4. Agenda for Today Review of previous lecture Operating system structures Operating system design and implementation UNIX/Linux.
Copyright © 2007, Oracle. All rights reserved. Managing Concurrent Requests.
Chapter 1 What is Programming? Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Slide 1 Message Analysis Table.
2/6/01D-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Using PARTS to Illustrate Requirements Concepts.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Use Cases CS/SWE 421 Introduction to Software.
Use Cases 1. Last week  Introduction to software engineering  How is it different from traditional engineering?  Introduction to specification  Operational.
© 2001 Business & Information Systems 2/e1 Chapter 8 Personal Productivity and Problem Solving.
Lead Black Slide Powered by DeSiaMore1. 2 Chapter 8 Personal Productivity and Problem Solving.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
INFO 637Lecture #101 Software Engineering Process II Review INFO 637 Glenn Booker.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Sept. 18, 2003CS WPI1 CS 509 Design of Software Systems Lecture #3 Thursday, Sept. 18, 2003.
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Class Project OO Design Document Here is what you need to do for your class project.
Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University.
Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Engineering Lab Use Cases Faculty of Information system Technology.
INFO1408 Database Design Concepts Week 15: Introduction to Database Management Systems.
Use Case Diagram The purpose is to communicate the system’s functionality and behaviour to the customer or end user. Mainly used for capturing user requirements.
INFORMATION X INFO425: Systems Design Systems Design Project Deliverable 2.
1 Client-Server Interaction. 2 Functionality Transport layer and layers below –Basic communication –Reliability Application layer –Abstractions Files.
Jini Architecture Introduction System Overview An Example.
SYSE 802 John D. McGregor Module 1 Session 2 Requirements Modeling in SysML.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Use Cases CS/SWE 421 Introduction to Software.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Software Requirements Specification Document (SRS)
1 Service Oriented Architecture SOA. 2 Service Oriented Architecture (SOA) Definition  SOA is an architecture paradigm that is gaining recently a significant.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
CSC480 Software Engineering Lecture 7 September 16, 2002.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
1 Using Rational Rose ® to construct UML diagrams.
Equations for Ecademy Client: ISU Computation Center Faculty Advisor: Dr. Robert Anderson Technical Advisor: Dr. Pete Boysen Team Members:  Tim Arganbright,
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Use Case Modeling.
Use Cases CS/SWE 421 Introduction to Software Engineering Dan Fleck
An Introduction to Software Architecture
Applying Use Cases (Chapters 25,26)
Presentation transcript:

1 RNDS: Use cases CS : Software Design Winter /T3

2 Homework bonus program  Report a bug  Report a programming challenge

3 Problem description: RNDS (1/3)  RNDS: Replicated Navigation Data Store A formation of Aircrafts + A ground station A single flight plan (FP) made up of several way-points (WP) A single steering point (SWP) Requirements: Allow flight-plan editing Allow setting of the current SWP Display Info Distance to SWP Heading to SWP Heading correction to SWP

4 Problem description : RNDS (2/3)  Interoperability with existing systems A GPS device Provides: Position, time, speed, current heading A communication layer (CL) Supports various communication protocols Broadcasting, Send-reply, … Preconfigured with relevant “addresses”: Formation’s aircrafts Ground station

5 Problem description : RNDS (3/3)  More requirements Human interaction thru GUI Data (WPs, FP, SWP) should be consistent Reliability (99% up time ?) Software platform: Java/Embedded Windows NT Hardware configuration is uniform Same setup in the ground station and the aircrafts  Boundaries A single RNDS system is the software components running on a single computer (either at the aircraft or at the ground station) Other RNDS instances (reachable thru CL) are considered to be identical peers => In the typical settings (four aircrafts + a ground station) there are five RNDS systems working concurrently.

6 The mission Write the use-case specifications for the SRS document SRS = Software Requirements Specification Describes the functionality the system will provide Written from the client’s perspective Defines the developer’s obligation to the client Must be approved by the client Who is the client ? Many times someone from within the organization

7 SRS Document  SRS Template SRS Template  Glossary Primary actor Principal actor that interacts with the system to fulfill a goal Secondary actor A non primary actor Active actor Initiates interaction with the system Passive actor A non-active actor Function points

8 Actors  Who can interact with our system? Pilots Ground station operator Is he really different than a pilot? GPS Communication Layer Administrator? Mission planner? Flight commander? Operating System? File system?

9 “User Level Activities”  The key question: What can a user “do” with the RNDS? Enter a new WP Remove a WP Change a WP Add a WP to the FP Remove a WP from the FP Change the current SWP  The standard set of operations on a data item: Create Change Delete Lookup

10 Other activities  What about non-human actors? The system communicates with its peers thru the CL The system reads current position from the GPS

11 The list of use-cases (1/2) 1.Add a new WP 2.Delete a WP 3.Edit a WP 4.Add a WP to the FP 5.Remove a WP from the FP 6.Change SWP 7.Show Info 8.Read GPS data 9.Receive updates 10.Send updates

12 The list of use-cases (2/2)  Q: Can we have a “calculate-info” use case?  The answer depends on The client The description of the problem The SRS author Anyway, it seems like an Implementation detail The Use cases: 1.Add a new WP 2.Delete a WP 3.Edit a WP 4.Add a WP to the FP 5.Remove a WP from the FP 6.Change SWP 7.Show Info 8.Read GPS data 9.Receive updates 10.Send updates The Use cases: 1.Add a new WP 2.Delete a WP 3.Edit a WP 4.Add a WP to the FP 5.Remove a WP from the FP 6.Change SWP 7.Show Info 8.Read GPS data 9.Receive updates 10.Send updates  The bottom line: The client must understand the SRS document The client must approve the SRS document

13 Use case diagram (1/2)

14 Use case diagram (2/2)  NavInfoChange can generalize 6 of the use cases

15 The list of use-cases - updated  Change Navigation Info  Add a new WP  Delete a WP  Edit a WP  Add a WP to the FP  Remove a WP from the FP  Change SWP  Show Info  Read GPS data  Receive updates  Send updates

16 “User Level Activities” – again (1/3)  The key question: what can a user “do” with the GUI ? A picture worth 1000 words 1.He can start an action: New WP, Delete WP, Change SWP, … These actions are already covered (see previous slide) 2.He can read the directions This is the “ShowInfo” use case 3.He can scroll the WP list 4.He can scroll the FP list 5.He can show/hide various parts of the display Run RndsGui

17 “User Level Activities” – again (2/3) …So, the user can also scroll the display Q: Is it possible for the ShowInfo use-case to handle scrolling? A: No NavInfoChange uses ShowInfo for refreshing the display “Refresh” and “scroll” are distinct The same goes for showing/hiding parts of the display The solution: Rename ShowInfo to RefreshInfo Add a ChangeVisibleInfo use-case Will handle scrolling, showing/hiding, … We can also define a generalization hierarchy: ChangeVisibleInfo – The general use-case Scroll, Show, Hide – More specific use-cases Reflecting GUI interaction in the SRS document…

18 “User Level Activities” – again (3/3) What about the order of the FP ? We should add an up/down facility => Adding a new specialization of NavInfoChange Run RndsGui

19 Final list of use-cases 1.Change Navigation Info 2.Add a new WP 3.Delete a WP 4.Edit a WP 5.Add a WP to the FP 6.Remove a WP from the FP 7.Change SWP 8.Change FP order 9.Refresh Info 10.Change visible info 11.Read GPS data 12.Receive updates 13.Send updates

20 Final use-case diagram

21 UC Description Name: “EditWP” Actors: User, CL Goal: Change the position an existing WP Reference to requirements: … Pre-conditions Number of WPs >= 1 System displays the list of WPs Description 1.User selects a WP 2.System displays the WP’s details 3.User enters new details and submits 4.The system updates all peers by invoking the “SendUpdates” use-case 5.The display is refreshed by invoking the “RefreshInfo” use-case Post-conditions The position of the selected WP has changed in all RNDS systems. Variations 4,5 - The WP is removed by another RNDS system => Operation stops 4,5 - The WP position is changed by another RNDS system => Operation stops Excpetions 6 -Not all peers could be updated => A partial success message is displayed

22 “Holes” (1/2)  Is it possible that the guy who described the problem was not doing a good job?  What did he forget to mention?  What definitions are missing?  What is WYSIWYG ? What You See Is What You Get  What is IKIWISI ? I’ll Know It When I See It

23 “Holes” (2/2)  IKIWISI is evil Changes at an early stage are usually made by a combination of the “cut”, “copy”, and “paste” keys Changes towards the end of the development cycle call for a major redesign-rewrite-retest process Thus, the later the change the more it costs  Nonetheless, many times requirements do change in a very late stage Sometimes, IKIWISI yields better result than careful pre- planning Especially in the holy-land !!  The bottom line Not everything can be predicted An impeccable requirement document is a fairy-tale Accept the change

24 Dealing with late changes  Some techniques Understanding the client’s needs Avoiding hard-coded values Avoiding hard-coded decisions/assumptions Deja vu reduction Increased locality, modularity Representing “things” as classes Adding levels of abstractions  On the other hand, beware of over-engineering.  Anyway, these techniques are out of the scope of this lecture