Skip to content













University of the People

Software Engineering 2

Written Assignment, Unit 5

06, October 2022

























Object Oriented Analysis OOA && Object Oriented Design OOD

Statement

  • Perform an object-oriented analysis on the problem you chose in Unit 3 for structured analysis.
  • Develop all lists, tables, state transition diagrams (using mealy model), and pictures required to document the requirements of the problem.

Criteria

  • Has the student created all Lists for the given assignment?
  • Has the student developed all the tables for the given assignment?
  • Has the student developed all the diagrams/pictures for the given assignment?
  • Has the student labeled the transition lines to identify the events that initiate the change?
  • Has the student labeled the lines with the processes that manage the event and written the process names under the lines?
  • Has the student defined the process attributes?
  • Has the student written a summary paragraph and used it to identify the processes?

Introduction

  • This text will use DR. Patel’s Dental Practice System as our main project.
  • This text will start by giving a brief introduction to the system and the problem that system is trying to solve.
  • Later we are following the Questions listed above, one by one.

DR. Patel’s Dental Practice System

  • The dental practice uses a manual patient and billing system to serve approximately 1,100 patients. The primary components of the manual system are scheduling patient appointments, maintaining patient dental records, and recording financial information.
  • Due to increased competitive pressure, Dr. Patel desires to automate his customer records and billing.
  • New patients must complete the patient history form. The data elements are listed in Table 1.
  • Then, at the first visit, the dentist evaluates the patient and completes the second half of the patient history information with standard dental codes (there are 2,000 codes) to record recommended treatments.
  • The data elements completed by the dentist are listed as Table 2.
  • The patient history form is filed in a manila folder, with the name of the patient as identification, along with any other documents from subsequent visits.
  • A calendar of appointments is kept by the secretary, who schedules follow-up visits before the patient leaves the office. The calendar data elements are shown as Table 3.
  • Also, before the patient leaves, any bills, insurance forms, and amounts due are computed.
  • The client may pay at that time, or may opt for a monthly summary bill. The secretary maintains bill, insurance, and payment information with the patient history.
  • Financial data elements are shown in Table 4.
  • Every week, the secretary types mailing labels that are attached to appointment reminder cards and mailed.
  • Once per month, the secretary types and sends bills to clients with outstanding balances.

Plan

  • This text will follow the steps of object oriented analysis and listed below (Conger, 2008, p. 464)
    1. develop summary paragraph.
    2. Identify Objects of Interest
    3. Identify Processes.
    4. Define Attributes of Objects.
    5. Define Attributes of Processes.
    6. Perform Class Analysis.
    7. Draw State-Transition Diagram
  • This text will include the following lists:
    1. Object List: list of all nouns in the summary paragraph, each categorized as belonging to the problem or solution domain, and each with a unique identifier.
    2. Process List: list of all verbs in the summary paragraph, each categorized as belonging to the problem or solution domain, and each with a unique identifier.
    3. Object Attribute List: list of all attributes of each object in the Object List.
    4. Process Attribute List: Contains formulae, constraints on processing, and state/status changes for each process as required; some processes have no attributes
  • This text will include the following diagrams:
    1. Object Relationship Diagram: Identifies objects with connecting lines showing different types of inter-object relationships.
    2. Class Hierarchy Diagram: Shows objects arranged in one or more lattice hierarchies to link shared data/processes and to depict inheritance of those data/processes.
    3. Generalization/Specialization Structure Diagrams: Depicts objects which express is-a relationships. This diagram is optional.
    4. Whole/Part Structure Diagrams: Depicts objects which are compositions for which the whole class is composed of one or more of the part subclasses. This diagram is optional.
    5. Subject Summary Diagram: The highest level of independent classes or class/objects in each leg of a hierarchy are promoted to subjects for inclusion in this diagram which provides a summary of the classes in the application. This diagram is optional.
    6. State Transition Diagram: Contains system states (i.e., statuses) and the events (process outcomes) that cause those states to exist.

1. Develop Summary Paragraph

  • Let’s rewrite the summary paragraph presented in the introduction section.
  • Summary paragraph:
    1. The primary components of the manual system are scheduling patient appointments, maintaining patient dental records, and recording financial information.
    2. New patients must complete the patient history form.
    3. During the first visit, the dentist evaluates the patient and completes the second half of the patient history information with standard dental codes to record recommended treatments.
    4. The patient history form is filed in a manila folder, with the name of the patient as identification, along with any other documents from subsequent visits.
    5. A calendar of appointments is kept by the secretary, who schedules follow-up visits before the patient leaves the office.
    6. Before the patient leaves, any bills, insurance forms, and amounts due are computed.
    7. The client may pay at that time, or may opt for a monthly summary bill.
    8. The secretary maintains bill, insurance, and payment information with the patient history.
    9. Every week, the secretary types mailing labels that are attached to appointment reminder cards and mailed.
    10. Once per month, the secretary types and sends bills to clients with outstanding balances.









2. Identify Objects of Interest

  • list of all names in the summary paragraph:
Name Type Space Object on system ObjectName
patient Object P yes Patient
appointments Object P, S yes Appointment
dental record Object P, S -
financial information Object P, S - Payment
first visit Attribute P -
Dentist Object P yes Dentist
patient history information Attribute P, S yes
dental codes Object P yes ProcedureCode
treatment Attribute P -
patient history Object P, S yes PatientHistory
manila folder DB P, S yes
name of the patient Attribute P, S -
identification Attribute P, S -
documents Attribute P, S -
bills Object P -
insurance forms Attribute P yes
amounts due Attribute P -
client Object P yes
secretary Object P yes Secretary
bill Object P, S -
insurance Attribute P -
payment Object P -
mailing labels Object P, S -
appointment reminder cards Object P, S -
bills Object P, S -
clients Object P, S yes
outstanding balances Attribute P, S -
  • P: problem domain, S: solution domain
  • crossed out names are attributes candidates









3. Identify Processes

  • list of all verbs in the paragraph
Verb Type Space ProcessName
schedule Process P, S UpdateAppointment
maintain patient record Process P, S CreatePatientHistory
record financial information Process P, S CreatePayment
complete the form Process P, S CreatePatient
record recommended treatments Process P, S CreatePatientHistory
completes the second half of the form Process P, S UpdatePatient
schedule follow-up visits Process P, S CreateAppointment
computes bills, insurance, amounts Process P, S ComputeDueFees
pay at that time Process P CreatePayment
opt for a monthly summary bill Process P, S UpdatePatient
maintain bill, insurance, payment Process P, S UpdatePatient
weekly, maintain mailing labels Process P, S GetNextWeekAppointments
attach labels to appointment cards SecretaryAction P -
mail appointment cards SecretaryAction P, S -
monthly, type and send bills Process P, S GetOutstandingPayments
sends bills to clients SecretaryAction P, S -
maintain procedure codes Process P, S UpsertProcedureCode
  • crossed out verbs are repeated processes that have already been identified.
  • SecretaryAction: process that is performed by the secretary, but not part of the system.









4. Define Attributes of Objects

ObjectName Attributes
Patient ID + PatientName + AddressID + HomeTelephone + DOB + Sex + ParentID + KnownDentalProblems + KnownPhysicalProblems + KnownAllergies + WorkAddressID + WorkPhone + IncurrenceCompany + InsuranceCompanyAddress + InsuranceCompanyPolicyNumber + LastDentistName + LastDentistAddressId + PhysicianName + PhysicianAddressId + Status
PatientHistory ID + PatientID + ProcedureCode + ProcedureDate + ProcedureDescription + ProcedureCost + ProcedureNotes
Appointment ID + PatientID + AppointmentDate + AppointmentTime + AppointmentType + DateOfLastService + Status
Payment ID + PatientID + PatientAddress + DateOfService + DatePaid + AmountDue + AmountPaid + Balance + DateBillSent + DateOverdueNoticeSent
ProcedureCode ID + ProcedureCode + ProcedureDescription + ProcedureCost
Dentist ID + DentistName
Secretary ID + SecretaryName
Address ID + Street + City + State + Zip
  • as part of normalization, we extracted the Address object from the Patient object.
  • we will not talk much about address object, since it is not part of the problem domain.









5. Define Attributes of Processes

ProcessName Attributes
UpsertProcedureCode Prerequisite: none, if the procedure code found, update it; create a new ProcedureCode otherwise.
CreatePatient Constraints: all patient attributes must be present, except the ones that the dentist will fill in the first appointment.
UpdatePatient Status: if this is the first appointment, Patient.status must be converted to READY after filling the second half of the form
CreateAppointment Constraints: valid user, date in future, the assigned dentist must be free from other appointments during this appointment time
UpdateAppointment Constraints: same as CreateAppointment. Status: If patient attended change Appointment.status to ATTENDED, NOT_ATTENDED otherwise.
CreatePatientHistory Constraints: must be through a valid Appointment.
ComputeDueFees Constraints: must be through a valid Appointment. Formula: DueFees = OutStandingFees + ThisAppointmentFees.
CreatePayment Prerequisite: The amount of payment must be taken in cache by the Secretary. Formula: Balance = DueFees - AmountPaid.
GetNextWeekAppointments Formula: Get all appointments where AppointmentDate = Today + 7 days.
GetOutstandingPayments Formula: Get the latest payment of every user, and check if balance is greater than 0, the it is an outstanding payment.









6. Perform Class Analysis

Object Relationship Diagram

Object Relationship Diagram










Class Hierarchy Diagram

Class Hierarchy Diagram










Generalization/Specialization Diagram

Generalization/Specialization Diagram










Whole/Part Structure Diagrams

Whole/Part Structure Diagrams










Subject Summary Diagram

Subject Summary Diagram










State Transition Diagrams

State Transition Diagrams

  • There may be more state transitions than the ones shown in the diagram, but I’ve shown these as an example.









References

  • Conger, S. (2008). The New Software Engineering.