Case Study in Analysis: A library information system.

Slides:



Advertisements
Similar presentations
Week 2 The Object-Oriented Approach to Requirements
Advertisements

From use cases to classes (in UML). A use case for writing use cases Use case: writing a use case Actors: analyst, client(s) Client identifies and write.
State Patrol Ticket System
Use cases Use-cases are a scenario based technique in the UML which identify the actors in an interaction and which describe the interaction itself A set.
Object Design Examples with GRASP
Use Case Model. C-S 5462 Use case model describes what the user expects the system to do –functional requirements may describe only the functionalities.
Actors and use cases Use-case diagram Brief notation Prioritization Fully dressed notation Requirements Functional requirements  Use-cases.
Use cases.
Object-Oriented Analysis and Design
Systems Analysis and Design in a Changing World, Fourth Edition
Jan 2005 Ron McFadyen1 Contracts Used to help understand requirements more completely (and so may not always be necessary) based on assertions;
Copyright W. Howden1 Lecture 13: Programming by Contract.
NJIT Use Case Model Operation Contracts Prepared By: Sumit Sharma.
ACS-3913Fall 2009 Ron McFadyen1 Contracts Used to help understand requirements more completely (and so may not always be necessary) based on assertions;
1 Use case sample cs System Overview  A new web-based front-end for an existing library  There is a global book info service  Typical actions.
Teamwork Know each other Compete Leadership Strengths and Weaknesses
חוזים – Contracts 1. Larman – Chapter 10 – SSDs 10.2 What are System Sequence Diagrams? (introduction) Use cases describe how external actors interact.
9/18/011 Software Requirements Analysis and Design (Continued)
Object-Oriented Analysis and Design
Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative Development Part III Elaboration Iteration I – Basic1.
Chapter 7: The Object-Oriented Approach to Requirements
System Sequence Diagrams
Chapter 18 Object Design Examples with GRASP. Objectives Design use case realizations –A use-case realization describes how a particular use case is realized.
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
1 CMPT 275 Software Engineering Requirements Analysis Phase Requirements Analysis Activity (Identifying Objects, Scenarios) Janice Regan,
Object Oriented Analysis and Design System Events & Contracts.
4 2009/10 Object Oriented Technology 1 Topic 4: The Object-Oriented Approach to Requirements Adopted from: Ch.7 The Object-Oriented Approach to Requirements.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Object-Oriented Analysis and Design An Introduction.
Chapter 6 Use Cases. Use Cases: –Text stories Some “actor” using system to achieve a goal –Used to discover and record requirements –Serve as input to.
Object Design Examples with GRASP (Ch. 18)
Use Case Model Operation Contracts Chapter 11 Applying UML and Patterns Craig Larman.
1 Case Study: Purchase Ticket. 2 Overview “Purchase Ticket by Check” Use case. Sequence Diagrams. Conceptual Model. Contracts.
Review ♦ System sequence diagram ♦ Domain model
Submitted By: Memon Khurshed (Group Leader) Hamed Abdollahpur
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 4: Restaurant.
1 Lecture 6: Operation Contracts. 2 Overview  What is contract ?  The guidelines for writing contracts for the system operations.  Use Case realizations.
Operation Contracts: Getting ready to open the “System” black box All material from Applying UML and Patterns, 3 rd Edition, Craig Larman, chapter 11.
PRJ566 System Sequence Diagrams.  A system sequence diagram …. Illustrates input and output events related to the system under discussion.  Larman,
Requirements Analysis and Design Engineering Southern Methodist University CSE 7313.
Introduction To OOP 1.0 Fundamentals Of Java Programming Language 2.0 Exception Handling 3.0 Classes, Inheritance And Polymorphism © 2011 | PN AZRINA.
Discovering object interaction. Use case realisation The USE CASE diagram presents an outside view of the system. The functionality of the use case is.
Larman ch. 131 Use-Case Model : Adding Detail with operation contracts Larman ch. 13.
COMP-350 Object-Oriented Analysis and Design Drawing System Sequence Diagrams Reference: Larman, Chapter 9.
Use Case Driven Analysis Requirements Use Case Use Case Description System Sequence Diagram Chapter 5.
System Sequence Diagrams Tutorial. Use-Case for Monopoly game Monopoly game Use Case UC1: Play Monopoly Game Scope: Monopoly application Level: user goal.
System sequence diagrams
Chapter 11 Operation Contracts. What They Are An operation is a specification of a transformation or query that an object may be called on to execute.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
Operation Contracts. Primary way to describe system behavior is with use cases Operation contracts provide more details in terms of state changes to objects.
1 ECCF Training 2.0 Guidance for the Platform Independent Model (PIM) ECCF Training Working Group January 2011.
Phase 6 Start: Saturday14 April End: Saturday 21 April
Systems Analysis and Design in a Changing World, Fourth Edition
1 Chapter 9: Operation Contracts Chapter 13 in Applying UML and Patterns Book.
Use-Case Model: Adding Detail with Operation Contracts.
SYSTEM-LEVEL SEQUENCE DIAGRAMS Sys466. System-Level Sequence Diagrams  Use cases describe how external actors interact with the software system…  An.
7 Systems Analysis – ITEC 3155 The Object Oriented Approach – Use Cases.
1 Object Oriented Analysis and Design System Events & Contracts.
OO Methodology Elaboration Phase Iteration 1- Part 2.
Systems Analysis and Design in a Changing World, 6th Edition
System Sequence Diagrams and Operation Contracts
System sequence diagrams
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
C ++ Pointer code.
Creating Use Cases.
Object Oriented Approach
Systems Analysis and Design in a Changing World, 6th Edition
How to use opac By Chad A..
Use Case Diagrams.
Operation Contracts Ch. 11.
Presentation transcript:

Case Study in Analysis: A library information system

Use case Make Book Entry l Use Case: UC1 - Make Book Entry l Actor: Library clerk l Success scenario: A library clerk accesses a terminal in order to enter one or possibly many book entries in a database. At the end of every entry, the system displays a confirmation message. At the end of the session the system would display an informative message.

SSD for Make Book Entry success scenario confirmation endBookEntry() confirmation addBook(author, title, publisher, year) makeNewBookEntry() :Library Clerk :System loop

Naming System Events and Operations l The set of all required system operations is determined by identifying the system events. makeNewBookEntry() addBook() endBookEntry()

Domain model conclusion TerminalLibrary Clerk Catalog Book Entry Book author title publisher year AccessesCaptures Accesses Contained-in 1 11 * *

System operations and the system interface l In the UML the system as a whole can be represented as a class. l Contracts are written for each system operation to describe its behavior. System makeNewBookEntry() addBook() endBookEntry()

Operation contract: makeNewBookEntry Contract CO1:makeNewBookEntry Operation:makeNewBookEntry() Cross References:Use case Make Book Entry. Pre-conditions:None. Post-conditions:1. an instance of Book Entry be was created. (instance creation) 2. be was associated with Terminal (formation of association) 3. be was associated with Catalog (formation of association)

Operation contract: addBook Contract CO2: addBook Operation:addBook(author, title, publisher, year) Cross References:Use case Make Book Entry. Pre-conditions:A Book Entry session is under way. Post-conditions:1. an instance of Book b was created (instance creation). 2. b was associated with Catalog (formation of association)

Operation contract: endBookEntry Contract CO3: endBookEntry Operation:endBookEntry() Cross References:Use case Make Book Entry. Pre-conditions:A Book Entry session is under way. Post-conditions: BookEntry.isComplete was set to true. (modification of attribute)

Object design: makeNewBookEntry Contract CO1:makeNewBookEntry … Post-conditions:1. an instance of Book Entry be was created. (instance creation) 2. be was associated with Terminal (formation of association) 3. be was associated with Catalog (formation of association) makeNewBookEntry() :Book Entry 1: create() :Terminal :Catalog

Object design: addBook Contract CO2: addBook … Post-conditions:1. an instance of Book b was created (instance creation). 2. b was associated with Catalog (formation of association) addBook(…) b: Book 1: makeNewBook(…) 2.1: create (…) 2.2: add (b) :Terminal :BookEntry 2: makeNewBook(…) :Book :Catalog

Object design: endBookEntry Contract CO3: endBookEntry … Post-conditions:BookEntry.isComplete was set to true. (modification of attribute) endBookEntry() be:BookEntry 1: becomeComplete() public void becomeComplete() { isComplete = true; } UML notation for a constraint {be.isComplete = true} :Terminal

Class diagram conclusion Library Clerk AccessesCaptures * 1 BookEntry makeNewBook() becomeComplete() isComplete: Boolean Terminal makeNewBookEntry() addBook() endBookEntry() Book author title publisher year Accesses Contained-in 1 1 * Catalog makeNewBook() add()

Use case Browse Catalog l Use Case: UC2 - Browse Catalog l Actor: Library clerk, Client l Success scenario: An actor accesses a terminal in order to browse the catalog by entering a keyword that describes a book category. During this session, an actor may repeat this process any number of times. Upon successful match the system displays a list of all books.

SSD for Browse Catalog success scenario informative message endBrowseCatalog() List of matched books searchForBook(keyword) browseCatalog() :Actor :System loop

Naming System Events and Operations l The set of all required system operations is determined by identifying the system events. browseCatalog() searchForBook() endBrowseCatalog()

Domain model Version 2 TerminalLibrary Clerk Catalog Book Entry Session Book author title publisher year AccessesCaptures Accesses Contained-in 1 11 * * Browse Catalog Session Accesses1 1 Book Entry has been renamed to Book Entry Session

System operations and the system interface l In the UML the system as a whole can be represented as a class. l Contracts are written for each system operation to describe its behavior. System browseCatalog() searchForBook() endBrowseCatalog()

Operation contract: browseCatalog Contract CO3:browseCatalog Operation:browseCatalog() Cross References:Use case Browse Catalog. Pre-conditions:An instance of Catalog exists. Post-conditions:1. an instance of Browse Catalog Session bcs was created. (instance creation) 2. bcs was associated with Terminal (formation of association) 3. bcs was associated with Catalog (formation of association)

Operation contract: searchForBook Contract CO4: searchForBook Operation:searchForBook(keyword) Cross References:Use case Browse Catalog. Pre-conditions:A Browse Catalog session is under way. Post-conditions:None.

Operation contract: endBookEntry Contract CO5: endBrowseCatalog Operation:endBrowseCatalog() Cross References:Use case Browse Catalog. Pre-conditions:A Browse Catalog session is under way. Post-conditions: BrowseCatalogSession.isComplete was set to true. (modification of attribute)

Object design: browseCatalog Contract CO3:browseCatalog Operation:browseCatalog() Cross References:Use case Browse Catalog. Pre-conditions:An instance of Catalog exists. Post-conditions:1. an instance of Browse Catalog Session bcs was created. (instance creation) 2. bcs was associated with Terminal (formation of association) 3. bcs was associated with Catalog (formation of association) browseCatalog() :BrowseCatalog Session 1: create() :Terminal :Catalog

Object design: searchForBook Contract CO4: searchForBook Operation:searchForBook(keyword) Cross References:Use case Browse Catalog. Pre-conditions:A Browse Catalog session is under way. Post-conditions:None. searchForBook(…)1: find(…) 3: find (…) :Terminal :BrowseCatalog Session 2: find(…) :Book :Catalog

Object design: endBrowseCatalog Contract CO5: endBrowseCatalog … Pre-conditions:A Browse Catalog session is under way. Post-conditions: BrowseCatalogSession.isComplete was set to true. (modification of attribute) endBrowseCatalog() bcs:Browsecatalog Session 1: becomeComplete() public void becomeComplete() { isComplete = true; } UML notation for a constraint {bcs.isComplete = true} :Terminal

Class diagram conclusion Library Clerk AccessesCaptures * 1 BookEntrySession makeNewBook() becomeComplete() isComplete: Boolean Terminal makeNewBookEntry() addBook() endBookEntry() browseCatalog() searchForBook() endBrowseCatalog() Book author title publisher year Accesses Contained-in 1 1 * Catalog makeNewBook() add() find() BrowseCatalogSession find() becomeComplete() isComplete: Boolean Accesses