You are on page 1of 10

Joshua Thacker 

OO Systems Analysis & Design Exam 
Dr. Rhonda Syler 
 
 
Review the REMLSS scenario presented on page 206.  Complete the following diagrams: 
1. Event Table 
2. Domain Class Diagram 
3. Use Case Diagram 
4. Use Case Description (each use case) 
5. System Sequence Diagram 
6. Statechart Diagram 
 
The Real Estate Multiple Listing Service System (REMLSS) supplies information that local real estate agents use 
to  help  them  sell  houses  to  their  customers.    During  the  month,  agents  list  houses  for  sale  (listings)  by 
contracting with homeowners.  The agent works for a real estate office, which sends information on the listing 
to the multiple listing service (MLS).  Therefore, any agent in the community can get information on the listing. 
 
Information  on  a  listing  includes  the  address,  year  built,  square  feet,  number  of  bedrooms,  number  of 
bathrooms, owner name, owner phone number, asking price and status code.   
 
At any time during the month, an agent might directly request information on listings that match customer 
requirements, so the agent contacts the MLS with the request.  Information on the house, on the agent who 
listed the house, and on the real estate office the agent works for is provided.  For example, an agent might 
want  to  call  the  listing  agent  to  ask  additional  questions  or  call  the  home  owner  directly  to  make  an 
appointment to show the house.   
 
Twice each month (on 15th and 30) the MLS produces a listing book that contains information on all listings.  
These books are sent to all of the real estate agents.  Many real estate agents want the books, so they are 
provided  even  though  the  information  is  out  of  date.    Sometimes  agents  and  owners  decide  to  change 
information  about  a  listing,  such  as  reducing  the  price,  correcting  previous  information  on  the  house,  or 
indicating that the house is sold.  The real estate office sends in these change requests to the MLS when the 
agent asks the office to do so. 
___________________ 
Note(s): 
 
The above narrative is brief and encourages some assumptions to be made.  Due to this nature, we will assume the 
following: 
1. The REMLSS (application software) resides on the workstations at each Real Estate Office. 
2. The MLS can be accessed and used by either a Real Estate Agent or a working Clerk. 
3. Concepts dealing with homeowners (i.e., buyers, sellers, offers, closing, etc…) do not directly interact or 
influence the REMLS system; therefore, will not be shown in the vision of this exam. 
4. Triggers that are considered to be [Temporal] are defined in a Use Case Diagram but not systematically shown in 
a Use Case Description since they are influenced and controlled by user(s). 
Joshua Thacker
REMLS Context Diagram

Real Estate New Listing Request Listing


Real Estate Multiple Listing
Office Agent
Service System (REMLSS)
{agent/clerk} Update Listing Listing Summary

Listing Book

REMLS Context Diagram 0

Real Estate
Agent Time
Office

Listing Book
New Listing Information

Update listing Request Listing Information Listing Information Bi-Monthly

Update Listing Process Process Produce


Information Listing Request Listing Book

Update House Details Owner Details


Office Details
House Details

Real Estate
House(s) Owner(s)
Office(s)

House, Owner, and Office Information

Real Estate Multiple Listing Service System


Event Table Joshua Thacker

EVENT TRIGGER SOURCE USE CASE RESPONSE DESTINATION


(sentence) (noun) (noun) (verb) (noun) (noun)

R.E. Office submits listing New listing (external) R.E. Office Add new listing


Agent requests listing information Listing inquiry (external) Agent Requests listing info. Listing results Agent
th th
Time to produce listing book 15  & 30  of each month (temporal) Produce listing book Listing book Agent
R.E. Office submits listing change Listing change request (external) R.E. Office Update listing

~ KEY ~

Source: Narrative (pg 206)

R.E. ‐ Real Estate
Event: Causes the system to do something
Trigger:
External ‐ Occurs outside of the system initialized by an actor/agent
Temporal ‐ A result of reaching a point in time
State ‐ Occurs inside the system as processing need
Source: Actor/Agent
Use Case: Defines the funcitonal requirements
Response: Produced output by the system
Destination: Output to external actor/agent

Real Estate Multiple Listing Service System
Domain Class Diagram Joshua Thacker

Listing
RealEstateAgent -listingID {PK}
RealEstateOffice -agentID {FK}
-agentID {PK}
-statusCode
-officeID {PK} -officeID {FK}
-address
-officeManager -has -works -lastName -requests -has
-yearBuilt
-officeName -firstName
-squareFeet
-address -address
1 1..* 1 1..* -numberOfBedrooms
-phoneNumber -phoneNumber
-numberOfBathrooms
-fax -fax
-askingPrice
-email
-ownerName
-ownerPhoneNumber

~ Key ~

Source: Narrative (pg 206)

An office can have many agents


An agent must work in an office

An agent can request many listings


A single listing can only have one agent

Real Estate Multiple Listing Service System


Use Case Diagram Joshua Thacker

Add New Listing

Requests Listing
Information

Produce Listing
Book

Agent R.E. Office

Update Listing
Information

~ Key ~

Source: Event Table

The R.E. Office can consist of an “agent”


and/or a “clerk”

All [temporal] triggers are mapped to


destination actor/agent

Real Estate Multiple Listing Service System


Use Case Description Joshua Thacker

Use Case Name: Add new listing
Scenario: Add new information listing
Triggering Event: Agent and/or Clerk adds a new listing to the database
Brief Description: Agents list houses for sale (listings) by contracting with homeowners.  The agent works for a real estate office, 
which sends information on the listing to the multiple listing service (MLS).  Information on a listing includes the 
address, year built, square feet, number of bedrooms, number of bathrooms, owner name, owner phone 
number, asking price and status code.
Actors: Real Estate Office Agent and/or Clerk
Related Use Case: NA
Stakeholders: Real Estate Office Agent(s) and Clerk(s)
Precondition: Real Estate Agent and/or Clerk, and homeowner information must exist
Postcondition: New listing object must exist
Flow of Events: Agent/Clerk REMLS System
1 Enter Agent ID 1.1 Verify Agent
1.2 Display Agent details
2 Add new listing information 2.1 Create new listing
2.2 Display listing details
3 Verify listing
4 Finalize session

Exception Conditions: 1.1 If the Agent is not found/verified as a referential integrity check in the database; terminate session


3.1 If there is an error in the listing; edit or re‐enter information

Source: 
Narrative (pg 206)
Use Case Diagram

Real Estate Multiple Listing Service System
Use Case Description Joshua Thacker

Use Case Name: Request listing information
Scenario: Request information on listings that match customer requirements
Triggering Event: Agent requests particular information on a listing
Brief Description: At any time during the month, an agent might directly request information on listings that match customer 
requirements, so the agent contacts the MLS with the request.  Information on the house, on the agent who 
listed the house, and on the real estate office the agent works for is provided.  
Actors: Agent
Related Use Case: NA
Stakeholders: Real Estate Office Agents(s) and Clerk(s)
Precondition: Real Estate Agents and information listings must exist
Postcondition: A detailed request of listings must exist
Flow of Events: Agent/Clerk REMLS System
1 Enter Agent ID 1.1 Verify Agent
1.2 Display Agent details
2 Enter listing information conditions 2.1 Update listing information
2.2 Display listing details
2.3 Add listing to report summary
2.4 Display listing report summary
3 Print listing report summary
4 Finalize session

Exception Conditions: 1.1 If the Agent is not found/verified as a referential integrity check in the database; terminate session


2.2 If the displayed listing details are not correct; re‐enter conditions/arguments

Source: 
Narrative (pg 206)
Use Case Diagram

Real Estate Multiple Listing Service System
Use Case Description Joshua Thacker

Use Case Name: Update listing
Scenario: Update information on a listing
Triggering Event: Agent asks a Real Estate Office Clerk to update the listing information on the database
Brief Description: Sometimes agents and owners decide to change information about a listing, such as reducing the price, 
correcting previous information on the house, or indicating that the house is sold.  The real estate office sends in 
these change requests to the MLS when the agent asks the office to do so.
Actors: Agent and Real Estate Office Clerk
Related Use Case: NA
Stakeholders: Real Estate Office Agent(s) and Clerk(s)
Precondition: Real Estate Agent and homeowner information changes must exist
Postcondition: Updated homeowner listing information object must exist
Flow of Events: Agent/Clerk REMLS System
1 Enter Agent ID 1.1 Verify Agent
1.2 Display Agent details
2 Enter listing ID 2.1 Verify listing ID
2.2 Display current listing information
3 Enter/Edit changed listing information 3.1 Update listing information
3.2 Display new listing information
4 Finalize session

Exception Conditions: 1.1 If the Agent is not found/verified as a referential integrity check in the database; terminate session


2.1 If the listing ID is not verified; re‐enter listing ID
3.2 If the new listing information is incorrect or more information is needed; edit or add listing information

Source: 
Narrative (pg 206)
Use Case Diagram

Real Estate Multiple Listing Service System
System Sequence Diagram Joshua Thacker

:REMLS System::Add New :REMLS System::Request


Listing Listing Information

Agent Agent

displayAgentDetails := enterAgentID(agentID) displayAgentDetails := enterAgentID(agentID)

addListingInformation()
* [another condition] displayListing := addListingConditions(newConditions)

See Listing Class under


Domain Class Diagram for displayReportSummary
list of appropriate arguments

displayNewListingDetails printReportSummary(currentListing)

* [modification required] changeListingItem() printReport

displayListingSummary

:REMLS System::Update
Listing

Agent

displayAgentDetails := enterAgentID(agentID)

displayListingID := enterListingID(listingID)

* [modification required] changeListingItem()

See Listing Class under


~ Key ~
Domain Class Diagram for
list of appropriate arguments
Source: Use Case Description
displayNewListingDetails
Note: SSD for “Add New Listing” and “Update
Listing” an Agent can either be a Real Estate
Agent or a Clerk who has control over the MLS

Real Estate Multiple Listing Service System


Statechart Joshua Thacker

Information verification

enterListingInfo() makeChanges() infoCurrent() * [errors exist] endListing() [availability]


Information entered Correct Incorrect Delete

beginSearch()
makeChanges()

beginSearch()

Query

queryComplete() queryReportComplete()
final()
Displayed to a screen Printed as a Report Printed as a book

endQuery()

final()
Viewed
~ Key ~

Source: Domain Class Diagram

Note: This Statechart reflects the states and


transitions a property listing experiences

Real Estate Multiple Listing Service System

You might also like