Object-Oriented Development Process Part I: Requirement Gathering Warsun Najib Department of Electrical Engineering Gadjah Mada University.

Slides:



Advertisements
Similar presentations
1 Software Engineering Lecture 11 Software Testing.
Advertisements

Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
Robert B. Jackson Brigham Young University John W. Satzinger
Software Engineering Introduction to UML.
Information System Engineering
Use Case - Example University library system requirements
CT1404 Lecture 2 Requirement Engineering and Use Cases 1.
Requirements Analysis 1 Use Cases -> Class Diagrams Moving from the user towards the system.
Lesson-22 Process Modeling(2)
Chapter 7 Using Data Flow Diagrams
Lecture 4 Class Responsibility Collaboration Cards
PROCESS MODELING Transform Description. A model is a representation of reality. Just as a picture is worth a thousand words, most models are pictorial.
Documenting Requirements using Use Case Diagrams
Object Oriented Analysis Process
Requirements Analysis 2 What objects collaborate to achieve the goal of a use case?
---Confidential 1 Order Management Training. ---Confidential 2 Introduction Three cycles in Oracle Applications Plan to make. Order to cash Procure to.
Copyright © 2015 Pearson Education, Inc. Systems Documentation Techniques Chapter
Chapter 9 Domain Models 1CS6359 Fall 2012 John Cole.
System Analysis Overview Document functional requirements by creating models Two concepts help identify functional requirements in the traditional approach.
Chapter 9 Domain Models. Domain Model in UML Class Diagram Notation A “visual dictionary”
Chapter 5: Modeling Systems Requirements: Events and Things
Modeling Systems Requirements: Events and Things.
PROCESS MODELING Chapter 8 - Process Modeling
Project Semester 1 Group 3 Robert, Pavel, Ulfar, Svetomir
Systems Analysis and Design in a Changing World, Fifth Edition
Software Engineering 1 Object-oriented Analysis and Design Chap 30 Relating Use Cases.
Object-Oriented Analysis - Instructor Notes
The Systems Proposal What the book calls the “Updated Baseline Project Plan” - no standard name for it Presents the different options to the customer along.
Week 5: Business Processes and Process Modeling MIS 2101: Management Information Systems.
Software Waterfall Life Cycle Requirements Construction Design Testing Delivery and Installation Operations and Maintenance Concept Exploration Prototype.
ITEC224 Database Programming
BTS330 Documenting Use Cases.
Last lecture. What is a Use Case Use cases are stories (scenarios) of how actors use (interact with) the system to fulfill his goal. Examples Process.
5 Systems Analysis and Design in a Changing World, Fourth Edition.
An Introduction to Java Chapter 11 Object-Oriented Application Development: Part I.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Sept Ron McFadyen1 Section 10.1 Domain Models Domain Model: a visual representation of conceptual classes or real-world objects in a domain.
1 Object-Oriented Analysis Use Case Driven. 2 The outline method for OOA 1.Identify object classes within the problem domain 2.Define the behaviour of.
USE CASE Bayu Adhi Tama, MTI Faculty of Computer Science, University of Sriwijaya Slides are adapted from Petrus Mursanto
1 CMPT 275 Software Engineering Requirements Gathering Activity Janice Regan,
Review ♦ System sequence diagram ♦ Domain model
Jan 21, Ron McFadyen1 Ch 10. Domain Model: Visualizing Concepts Domain model illustrated with a class diagram (with no operations defined)
Lecture 3 Uses Cases Topics UML Use Cases pop quiz Readings: Chapter 3 January 24, 2008 CSCE 492 Software Engineering.
Originated by K.Ingram, J.Westlake.Edited by N.A.Shulver Use Case Scripts What is a Use Case Script? The text to describe a particular Use Case interaction.
Requirements Capture. Four Steps of requirements capture List candidate requirements Understand system context Capture functional requirements Capture.
Lecture 13-17, chitkara university.  Gives a conceptual framework of the things in the problem space  Helps you think – focus on semantics  Provides.
Chapter 9 Applying UML and Patterns -Craig Larman
Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Engineering Lab Use Cases Faculty of Information system Technology.
SYS466: Analysis and Design Using OO Models Domain Class Diagram.
5 Systems Analysis and Design in a Changing World, Fifth Edition.
Use Cases Use Cases are employed to describe the functionality or behavior of a system. Each use case describes a different capability that the system.
Adv. Use cases Actor generalization – general and special actors Use case generalization – general and special use cases Include and extend relationships.
UML’s StateChart FSM, EFSM in UML Concurrent states Tool support.
Requirements specification Why is this the first major stage of software development? –Need to understand what customer wants first Goal of requirements.
CS212: Object Oriented Analysis and Design Lecture 32: Use case and Class diagrams.
Essentials of OVID Using UML based notation to capture system requirements and design.
OO DomainModeling With UML Class Diagrams and CRC Cards Chapter 6 Princess Nourah bint Abdulrahman University College of Computer and Information Sciences.
Identification of Classes. Object Oriented Analysis (OOA) OOA is process by which we identify classes that play role in achieving system goals & requirements.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 5th Edition Copyright © 2015 John Wiley & Sons, Inc. All rights.
Application Analysis. Application Interaction Model The purpose of analysis is to understand the problem so.
1 After the scenarios are formulated Find all the use cases in the scenario Describe each of these use cases in more detail Participating actors Describe.
Requirements capture: Using UML Use Cases David Millard and Yvonne Howard {dem,
5 Systems Analysis and Design in a Changing World, Fourth Edition.
5 Chapter 5: Modeling Systems Requirements: Events and Things Systems Analysis and Design in a Changing World.
Batch to Manufacturing Markup Language B2MML - V0400
Elaboration popo.
Chapter 4: Business Process and Functional Modeling, continued
OO Domain Modeling With UML Class Diagrams and CRC Cards
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Lecture 8 Object Concepts
Presentation transcript:

Object-Oriented Development Process Part I: Requirement Gathering Warsun Najib Department of Electrical Engineering Gadjah Mada University

What is OODP?  Software development process based on object-orientation principle Emphasis on “process” Object-orientation: focusing on “objects” within and around the software  As a software engineering process, OODP can be modeled in different ways Waterfall Incremental (similar to prototyping) Spiral

Activities of OODP

Activities of OODP and Use Cases  OODP activities are centered on the concept of use case A use case is a transaction that begins with a user stimulus and ends with a response In between, there are program logic (input validation, action execution, data update, etc) A use case is triggered by an external event, needs that motivate a user to stimulate the system  Example: “The customer wants to send money to another account” Example of use case in respond to the above event: “money transfer”

Use Case Rules  A use case must define a complete transaction It should contain sufficient information Incomplete information makes it impossible to finish a transaction Example: in the “money transfer” use case, if only account numbers are provided, it is impossible to complete the transfer (i.e., how much ?) The required set of information is determined by the user

Use Case Rules  A use case should be a discrete unit of work Principle of cohesiveness - focuses only at one activity Cohesive use case reduces complexity Example of non-cohesive use case: “create a loan and open a savings acct. to guarantee the loan” Avoid multiple identical inputs that actually belong to separate transactions Example of a use case with multiple identical inputs: “disburse payment from an account to up to three user accounts”

Use Case Signature  How to represent use cases in a concise but meaningful way  Four pieces of information about a use case Inputs (and their order)  What are the inputs for the transaction specified by the use case? Input types  Syntactic definition to check validity of inputs Use case outcomes  Possible logical results of the transaction Any returned information  Information outcomes returned to the user

Use Case Signature  Example: “money transfer” Transferring money from an account to another. Done by specifying the account numbers, PIN, and the amount of money transferred  The use case signature is shown as follows

Requirement Gathering  Goals To define the problem space by binding the scope To provide developers with sufficient abstraction of problem domain without having to go into details  Heavy involvement of users  Ways to gather information from users Existing system walkthrough Document evaluation Interview  Record all (textual) information!

Requirement Gathering  From problem description to object, attribute, actors, and function identification through grammar examination Create vocabulary (i.e., data dictionary) from the problem domain Identify nouns  nouns are potential candidates for attributes or objects Identify adjectives  adjectives can be attributes, too Identify verbs  verbs may point to use cases Identify actors  normally persons involved in running the system

An Example: A Video Store Application  Problem description

An Example: A Video Store Application  Initial selection of application business objects and their attributes Complex elements are most likely objects Primitives (integer, string, etc.) are most likely predicates

An Example: A Video Store Application  Identification of (preliminary) use cases Rent a video (id, customer) Return a rented video (id) Add a new video to the inventory (id, title) Create a new member (id, credit card) Delete an existing video (id) Delete an existing member (id) Make a video late (id) Pay overdue fees (id, amount)

An Example: A Video Store Application  Finding outcomes of each use case Find for logically invalid inputs  id does not exist  a rented video may already be rented  a returned video may have status indicating it was not rented before Duplicating when creating new objects  created id may already exist Business rules  a member with outstanding fines or videos may not rent  members have a max. number of videos that can be rented  videos are considered late after three days

An Example: A Video Store Application  Finalize the use cases

Post-Processing  Walkthrough of the proposed use cases, between users and developers  Try to come up with an agreement on use cases  The questions Have all proposed use cases covered the scope of the application? Are the use cases inputs and their types correct? Have all outcomes of each use case been identified?

Partitioning  To logically map use classes into functional requirements  Partitioning by increments  Partitioning strategies Easiest first: to ease the development team into working with use cases or objects Target use cases for operational support: to get a set of use cases operational a.s.a.p. Provide most functionality a.s.a.p.: to show as much of the system’s capability a.s.a.p. Support end user training: to provide most application operations but not enough to run in production mode

Partitioning: An Example  Extended video store application  Proposed use cases

Partitioning: An Example  Increment #1 Use cases  Add category  Define branch  Add vendor  Add video  Add copy Strategy  A practice increment and does not harm if something wrong happens  If successful, user is able to start building the video database

Partitioning: An Example  Increment #2 Use cases  Add member  New rental agreement  Rent video  Run overdue report  Return video  Collect rental fee  Reserve video Strategy  To deliver most of the essential functions  To operate the store  To demonstrate a fairly complete system

Partitioning: An Example  Increment #3 Use cases  Rent override  Get availability  Pay fines  Run royalty report  Run usage report  Cancel rental Strategy  To provide additional use cases to make the system ‘operational’

Partitioning: An Example  Increment #4 Use cases  Remove copy  Remove video  Remove member  Remove vendor  Set copy status  Rent override  Remove member from wait list Strategy  Non-critical additional features to make the system ‘complete’