Overview OOAD - SMAN 1 Jember

Download Report

Transcript Overview OOAD - SMAN 1 Jember

Requirement and Initial
Analysis
Imam Bukhori, S.ST
Starting the Development
Process
 This module focusses on the following:






Initiating a system development effort
Analyzing the initial workflows
Gathering information
Creating a Problem Statement
Creating Use Cases
Introducing Component and Deployment
diagram
Gathering Information
You can gather information from several sources,
including:
 Customer’s initial requirement specification
 Domain Experts
 Customers and users
 Managers
 Input from marketing
 Previous projects
Avoiding Traditional
Assumptions
You must avoid traditional assumptions,
such as the following:
 Users are naïve, developer know best
 Requirements are static
 You can build a correct solution the
first time
 Remember that projects evolve, and
customer requirements can change
Avoiding Traditional
Assumptions
Do the following:
 Clearly identify the user’s requirements
 Ensure that your model can adapt to evolving
requirements
 Ensure that you can change your model
Domain Experts
 Refers to specialist in a particular area of
business
 Can be broadly subdivided into:
 General domain experts
 Application-specific domain experts and
current business domain experts
 Similar business domain experts
Problem Statement
 Is document that clearly describes the
customer and system requirements for a
project
 Customer input is critical for this document
 Uses business domain language
 Has clear sentences, no jargon
 Contains details on project scope
 Specifies the context of the problem
 Specifies any known constraints
Key UML Diagrams
 Use Case Diagram
 Shows who or what uses the system and
its feature
 Users of the features in a use case
diagram are called “actors”
 Use Case is shown as an ellipse
 For ease in modeling, Use Case diagrams
need to be prioritized
Problem Domain
 Refers to a statement that clearly identifies
new system-specific areas and problems
 Can be graphical or textual
Candidate Objects and Classes
 Identified from the Problem Statement
 Underline noun phrases from the Problem
Statement to build the list of candidate
objects and classes
Sample Problem
The Bay View Hotel requires a computer software package to facilitate the
automation of many manual tasks performed by the hotel staff. The package
will be produced in several releases.
Release 1 covers the areas that are causing the most problems with the manual
system. This document describes Release 1
Problem
The hotel contains a number of hotel rooms available for hire to guest. The
information relevant to each room is :
•
Room number
•
Basic price
•
Maximum occupancy
•
Type of room (single, double, twin, executive, suite)
The price of a room is the basic room price with any seasonal price adjustments
added
Potential guest can reserve one or more rooms for a specific period using the
telephone. These reservations are handled by the booking derks ( or
departure date).
Simple Problem
A search is made for the availability of
rooms for the dates required. If successful, the customer is informed
the details and price.
If accepted, a provisional reservation is made. This provisional
reservation is held for a duration entered by the booking clerk. The
provisional reservation is modified to a firm reservation when a
deposit payment is received and confirmed. This can be at the time of
the initial reservation.
The receptionist can also make a reservation for potential guests who
arrive without a reservation, the deposit payment must be made at the
time of initial reservation.
It is noted when guests check in, at which time a specific room is
assigned of the type required, and when the guest checks out.
The room telephone is enable/disabled at checking/check out
respectively. This is done using a telephone call logging monitor.
Candidate Object and Class
Data Dictionary
 A document describing all the vocabulary
used in a project
 Entries are gathered with user interviews
 Stays for the entire length of the project and
the system
 Adds new terminology during the project
 Satisfies the need for a common vocabulary
 Assists in avoiding ambiguity
 Must be easily available to all project team
 Needs frequent, carefully controlled updates
Data Dictionary base Hotel
Problem
 Room Number
A number that uniquely identifies a room within a hotel. The
starting digit indicates the floor on which the room is located.
The range is from 1 to 780
 Basic Price
The flat rate price without any additional services or special deals.
 Maximum Occupancy
Each room has a specific number of guests that it can safely and
comfortably accommodate
 Type of Room
A room type, for example, single, double, twin, or executive. The
room type depends on the size, position, furnishings, and
additional facilities
Data Dictionary base Hotel
Problem
 Check In
When the guest arrives at the hotel and requests the allocation of
rooms reserved earlier.
 Check Out
When the guest leaves the hotel after settling the bill.
 Receptionist
A member of the hotel staff specifically responsible for checking
in/out guests and making bookings for potential guests who arrive
without an advance reservation.
 Booking Clerk
A member of the hotel staff specifically responsible for taking
reservations.
Data Dictionary base Hotel
Problem
 Provisional Reservation
The logging of a request for a specific number of rooms of a
specified
type, for a specified period of dates. Rooms will be held for this
reservation for a specific period. If no confirmation is obtained
within
this period, the reservation will be canceled and the rooms will be
made available for reallocation.
Creating Use Cases
 A Use Case is a graphical and
schematic representation of a user’s
interactions with a system
 Assists in understanding system
requirements and context
 Graphically shown as an ellipse with
solid lines
Creating a Use Case Model
 Comprised of several Use Cases
 Components are :
 Actors
 Use Cases
 System
 Generalization and association
relationships
Sample Use Case Diagram
Sample Use Case add Actor
Sample Use Case with
additional Dependency
Sample Use Case Diagram with
New Extension Point
Use Case Scenarios
 Use Cases show a function from the user’s
perspective
 A scenario refers to one instance of a Use
Case
 Scenarios do not contain conditional
statements
 Begin the same way, but can end differently
 Major scenarios should be written
 Successful and unsuccessful paths through a
Use Case should be shown
Use Case Form
 To Write Use Case Scenario you need Use
Case Form
 Item of Use Case Form :











Name of the Use Case
Actor involved
Priority
Status
Extension points and includes
Preconditions / Assumptions
Post conditions
Flow of events
Alternative paths
Performance
Frequency
Sample Use Case Form
Activity Diagram
 Show activities, processes, or workflows
 Are graphical
 Used anywhere you need to model
activities
 Modeling a Use Case is just one example
Activity Diagrams
 Includes the following elements:







Activities
Decision
Spilt of control
Merge of control
Iteration
Object flow
Swimlanes
Activity Diagram Notations
Sample Activity Diagram
Risk Assessment
 Need to asses risk areas for the project
 Use Cases can be the starting point for
risk assessment
 High risk Use Cases should be developed
in early iterations
 Risk can be in the following areas:





Requirements risk
Technology risk
Skill risk
Resources risk
Political risk
High-Level Package Diagram
 UML has notation to package any UML
elements ( classes, objects, Use Cases,
incremental artifacts, and so on)
 Notation similar to a folder icon
 Helps break down complexity
 Dependencies can be shown between packages
 Packages help in doing the following:
 View the big picture without too much detail
 View small portions independently
 Create small portions to work in sections
Package Diagram Example
Sample High Level Architectural
Package
Introducing Component
Diagrams
 Show components ( physical
packaging of code )
 Shows dependencies between
components
 Components can be nested
 Can be grouped into UML packages
Examples of Component
Diagrams
Another Example Component
Diagram
Introducing Deployment
Diagrams
 Show physical relationships between
hardware components
 Can be added at any stage
 Can be amended when additional
information is known
 Nodes can show components within
them
 Connection between nodes is shown
along with protocol
Example Deployment Diagram