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)
- develop summary paragraph.
- Identify Objects of Interest
- Identify Processes.
- Define Attributes of Objects.
- Define Attributes of Processes.
- Perform Class Analysis.
- Draw State-Transition Diagram
- This text will include the following lists:
- 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.
- 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.
- Object Attribute List: list of all attributes of each object in the Object List.
- 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:
- Object Relationship Diagram: Identifies objects with connecting lines showing different types of inter-object relationships.
- 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.
- Generalization/Specialization Structure Diagrams: Depicts objects which express is-a relationships. This diagram is optional.
- 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.
- 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.
- 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:
- The primary components of the manual system are scheduling patient appointments, maintaining patient dental records, and recording financial information.
- New patients must complete the patient history form.
- 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.
- 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.
- 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.
- 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.
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 |
Attribute | P | - | ||
Dentist | Object | P | yes | Dentist |
Attribute | P, S | yes | ||
dental codes | Object | P | yes | ProcedureCode |
Attribute | P | - | ||
patient history | Object | P, S | yes | PatientHistory |
DB | P, S | yes | ||
Attribute | P, S | - | ||
Attribute | P, S | - | ||
Attribute | P, S | - | ||
bills | Object | P | - | |
Attribute | P | yes | ||
Attribute | P | - | ||
client | Object | P | yes | |
secretary | Object | P | yes | Secretary |
bill | Object | P, S | - | |
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 | |
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 |
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 |
Process | P | CreatePayment | |
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¶
Class Hierarchy Diagram¶
Generalization/Specialization Diagram¶
Whole/Part Structure Diagrams¶
Subject Summary Diagram¶
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.