Case Study: Real Estate Multiple Listing Service System Beginning the Analysis: Investigating and Modelling System Requirements 1. To what events must the multiple listing service system respond? Create a complete event table listing the event, trigger, source, use case, response, and destination for each event. List of events and resulting use cases with explanations: 1. Event: Real estate office submits new listing. Use case: Add new listing. The event is the real estate office sending in the information after the agent signs the listing. 2. Event: Agent requests listing information. Use case: Provide listing information. This is the query facility where the agent can get listing information that meets search criteria. 3. Event: Time to produce multiple listing book. Use case: Produce multiple listing books. This is a temporal event triggered twice a month, resulting in the multiple listing book being sent to the real estate agents. Note the “book” does not have to be printed on paper, so this can remain a logical model. The class might debate this, though. 4. Event: Real estate office submits listing change request. Use case: Record listing change. This represents changes in the listings to correct errors, update terms such as price, and mark the status of a listing when it is under contract, sold, or withdrawn. 5 & 6. There really should be two additional events and resulting use cases, although they were not explicitly stated in the case. When real estate offices are added or changed, the system needs to maintain real estate office data. In addition, when an agent is added or needs updating, the system needs to maintain agent data. These two events/use cases could be added to the event table below. Event Table Event 1. Real estate office submits new listing 2. Agent requests listing info 3. Time to produce multiple listing book 4. Real estate office submits listing change request Trigger New listing Source RE Office Use Case Add new listing Response Destination Listing query Agent Provide listing information Produce multiple listing book Listing information Multiple listing book Agent “15th and 30th of the month” Listing change request RE Office Record listing change Agent 2. Develop a use case diagram. Add a listing Requst listing information Print listing book MLS Clerk Maintain real estate office information Maintain agent information Change listing information Agent 3. Develop a system sequence diagram for each use case. 4. Develop a fully developed use case description or an activity diagram for each use case. Solutions below develop both in pairs. Use Case Name: Scenario: Triggering Event: Brief Description: Actors: Stakeholders: Preconditions: Postconditions: Flow of Activities: Add a listing Add a single listing Agent wants to add a listing to the database. Clerk in the MLS office MLS clerk Agent RE office clerk Real estate agent must exist. New listing object must exist. Actor 1. Enters agent information. 2. Enters new listing information. Exception Conditions: 1.1 Agent is not found in the database. Use Case Name: Scenario: Triggering Event: Brief Description: Actors: Request listing information Agent requests listing information Agent wants listing information. Stakeholders: Preconditions: Postconditions: Flow of Activities: Exception Conditions: RE agent MLS clerk Agent Agent must exist. Listing must exist. None Actor 1. Enters agent information. 2. Requests listing based on search criteria, such as location, price range, listing agent, and so on. 1.1 Agent is not found. 2.1 No listing matches are found. System 1.1 Verifies agent and finds and display status. 2.1 Creates new listing and displays information. System 1.1Verifies requesting agent and displays agent information. 2.1 Finds and displays listing information. Use Case Name: Scenario: Triggering Event: Brief Description: Actors: Stakeholders: Preconditions: Postconditions: Flow of Activities: Exception Conditions: Use Case Name: Scenario: Triggering Event: Brief Description: Actors: Stakeholders: Preconditions: Postconditions: Flow of Activities: Print listing book Simple printing of book It is time to print listing book. MLS clerk Agents Offices Listing data must exist. None Actor 1. Enters listing print request. Enters any special selection criteria. None Change listing information Update existing listing information Agent needs to change listing information. Real estate agent MLS clerk Agent Office Agent Listing is changed. Actor 1. Enters agent ID. 2. Enters listing number. 2a. Invokes RequestListing use case. 2b. Chooses listing to update. 3. Enters listing updates. Exception Conditions: System 1.1 Queries the database. Prints the listings. System 1.1 Verifies and displays agent information. 2a.1 Gets listing information. Validates agent has rights to change listing. Displays data. 3.1 Updates and displays listing information. 1.1 Agent is not found. 2.1 Listing is not found. 3.1 Agent is not authorized to change listing. Use Case Name: Scenario: Triggering Event: Brief Description: Actors: Stakeholders: Preconditions: Postconditions: Flow of Activities: Exception Conditions: Use Case Name: Scenario: Triggering Event: Brief Description: Actors: Stakeholders: Preconditions: Postconditions: Flow of Activities: Add/update real estate office information Add a new real estate office A new real estate office has joined the organization. MLS clerk Office manager Clerk None Real estate office exists. Actor 1. Requests blank form. 2. Enters real estate office information. 3. Checks information for accuracy. 2.1 Duplicate of existing RE office. Add/update agent information Add/update agent information Agent information needs to be updated. MLS clerk Agent Clerk Real estate office exists. Real estate agent exists. Actor 1. Enters RE office ID. 2. If new agent, enters new agent information. 3. If existing agent, selects from current list. 3a. Enters agent updates. Exception Conditions: System 1.1 Displays blank form. 2.1 Assigns new key. Creates a new RE office record. Displays information. System 1.1 Finds and displays real estate office information. Displays current list of agents. 2.1 Creates agent record. 3.1 Displays current agent information. 3a.1 Updates agent information. 5. 5. Draw an entity relationship diagram to represent the data storage requirements for the multiple listing service system, including the attributes mentioned. Does your model include data entities for offer, buyer, and closing? If so, reconsider. Include information the multiple listing service needs to store, which might be different from information the real estate office needs to store. Data entities and attributes for ERD: This is limited to three data entities to store information on the listings and the agent and office responsible for each listing. Buyers, sellers, and closings are not included. The data entities and attributes are: Real Estate Office Office Number Name Office Manager Name Address Phone FAX Real Estate Agent Agent Number (license number?) Name Office Phone Home Phone Email Address Cell Phone Real Estate Listing Listing Number Address Year Built Square Feet Number Bedrooms Number Baths Owner Name Owner Phone Asking Price Date Listed Date Last Updated Status Code 6. Convert your ERD to a domain class diagram. Take attributes from Listing that apply to single-family house and put them in a subclass SingleFamilyListing. Put attributes applying to commercial listings in a subclass CommercialListing. Revised solution would be this: Listing RealEstateOffice RealEstateAgent officeNumber name officeManager address phone FAX 1 1..* agentNumber name officePhone homePhone cellPhone emailAddress 1 0..* listingNumber address yearBuilt ownerName ownerPhone askingPrice dateListed dateLastUpdated statusCode SingleFamilyListing CommercialListing numberBedrooms numberBathrooms zoning numberStuctures fireRating occupancy