I am needing to a domain model class diagram and a design class diagram. Here ar
ID: 3860855 • Letter: I
Question
I am needing to a domain model class diagram and a design class diagram.
Here are the requirements:
The database Domain Class Diagram is typically created first, followed by the program Design Class Design.
Domain Model Class Diagram. This diagram includes all of the database classes, attributes and relationships shown as one-to-one, one-to-many or many-to-many
Create both a Domain Model Class Diagram (database model) and a Design Class Diagram (for programmers).
One of the most confusing acronyms used in system design is DCD. In the world of database design it stands for Domain Class Diagram aka Domain Model Class Diagram. In the world of object-oriented program design it stands for Design Class Design. In this assignment, you will develop both types of DCDs. The database Domain Class Diagram is typically created first, followed by the program Design Class Design.
Our textbook author refers to the Domain Class Diagram as a Domain Model Class Diagram. This diagram includes all of the database classes, attributes and relationships. Relationships are shown as one-to-one, one-to-many or many-to-many. They may also be optional or mandatory.
The Design Class Diagram includes navigation visibility, methods, and data types. All of which are needed by programmers.
In this assignment, you will create both a Domain Model Class Diagram (database model) and a Design Class Diagram (for programmers).
Here is the scenario:
Following is a description of a dental clinic staff responsibilities.
The receptionists of the dental clinic are responsible for entering information about patients, including head of household information, insurance information, and number of office visits. The dental clinic business manager also maintains patient information, as well as dental staff information. The business manager responsibilities include printing invoices and sending them to the heads of households on a monthly basis, printing insurance invoices on a weekly basis, entering payment information, and compiling reports of overdue invoices. Dental staff are responsible for recording dental procedures per patient, and for running reports about dental procedures performed in a week or a month.
Fully developed use case description for the Print patient invoices use case Use case name: Print patient invoices Scenario: Triggering event:At the end of the month, invoices are printed Print patient invoices Brief description: The billing clerk manually checks to see that all procedures have been collected. The clerk spot- checks, using the written records to make sure procedures have been entered by viewing them with the system. The clerk also makes sure all payments have been entered. Finally, he/she prints the invoice reports. An invoice is sent to each patient. Actors: Stakeholders Preconditions: Postconditions: Flow of activities: Billing Clerk Billing Clerk, Dentist Patient Records must exist, Procedures must exist Patient Records are updated with last billing date AMo System 1. Collect all written notes about procedures 2. View several patients to verify that procedure 2.1 Display patient information, including information has all been entered. 3. Review log of payments received and verify that 3.1 Display patient information, including procedure records. payments have been entered. 4. Enter month-end date and request invoices 5. Verify invoices are correct. 6. Close invoice print process. account balance and last payment transactions. 4.1 Review every patient record. Find unpaid procedures. List on report as aged or current. Calculate and break down by co-pay and insurance pay. Exception conditions: NoneExplanation / Answer
#ifndef Visit_H
#define Visit_H
#include "MC.h"
#include "Doctor.h"
#include "Assistant.h"
#include "Condition.h"
#include "Medicine.h"
#include "Treatment.h"
class Visit
{
private:
std::string date;
std::string time;
double duration;
Staff staff;
MC mc;
bool xRayStatus;
List<Treatment> treatmentList;
List<Condition> conditionList;
List<Medicine> medicineList;
public:
Visit();
Visit(std::string, std::string, double);
std::string getDate();
void addStaff(Staff);
Staff getStaff();
void setMC(MC);
MC getMC();
void addXRay();
bool getXRayStatus();
void addCondition(Condition c);
void addMedicine(Medicine m);
void addTreatment(Treatment t);
List<Treatment> getTreatmentList();
List<Medicine> getMedicineList();
List<Condition> getConditionList();
};
#endif
#ifndef Visit_CPP
#define Visit_CPP
#include "Visit.h"
Visit::Visit()
{
}
Visit::Visit(std::string d, std::string t, double dur)
{
date = d;
time = t;
duration = dur;
}
std::string Visit::getDate()
{
return date;
}
void Visit::addStaff(Staff s)
{
staff = s;
}
Staff Visit::getStaff()
{
return staff;
}
void Visit::setMC(MC m)
{
mc = m;
}
MC Visit::getMC()
{
return mc;
}
void Visit::addXRay()
{
xRayStatus = true;
}
bool Visit::getXRayStatus()
{
return xRayStatus;
};
void Visit::addCondition(Condition c)
{
conditionList.add(c);
}
void Visit::addMedicine(Medicine m)
{
medicineList.add(m);
}
void Visit::addTreatment(Treatment t)
{
treatmentList.add(t);
}
List<Treatment> Visit::getTreatmentList()
{
return treatmentList;
}
List<Medicine> Visit::getMedicineList()
{
return medicineList;
}
List<Condition> Visit::getConditionList()
{
return conditionList;
};
#include<string>
#include<iostream>
#include "Visit.h"
using namespace std;
typedef Visit ItemType;
class Queue
{
private:
struct Node
{
ItemType item;
Node *next;
};
Node *frontNode;
Node *backNode;
public:
Queue();
~Queue();
bool isEmpty();
bool enqueue(ItemType& newItem);
bool dequeue();
bool dequeue(ItemType& item);
void getFront(ItemType& item);
};
#include <cstddef>
#include <iostream>
#include <new>
#include "Queue.h"
using namespace std;
Queue::Queue()
{
backNode = NULL;
frontNode = NULL;
}
Queue::~Queue()
{
while (!isEmpty())
dequeue();
}
bool Queue::isEmpty()
{
return backNode == NULL;
}
bool Queue::enqueue(ItemType& item)
{
Node *newNode = new Node;
newNode->item = item;
newNode->next = NULL;
if (isEmpty())
frontNode = newNode;
else
backNode->next = newNode;
backNode = newNode;
return true;
}
bool Queue::dequeue()
{
if(!isEmpty())
{
Node *temp = frontNode;
if (frontNode == backNode)
{
frontNode = NULL;
backNode = NULL;
}
else
frontNode = frontNode->next;
temp->next = NULL;
delete temp;
temp = NULL;
return true;
}
else
{
cout << "empty queue, cannot dequeue" << endl;
return false;
}
}
bool Queue::dequeue(ItemType& item)
{
if (!isEmpty())
{
item = frontNode->item;
dequeue();
return true;
}
else
{
cout << "empty queue, cannot dequeue" << endl;
return false;
}
}
void Queue::getFront(ItemType& item)
{
if (!isEmpty())
item = frontNode->item;
else
cout << "empty queue, cannot getFront" << endl;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.