Wards’ Requirements

(Quoted as submitted in UML Forum discussion)

“In the hospital, there are a number of wards, each of which may be empty or have on it one or more patients. There are two types of ward, male wards and female wards. A ward can only have patients of the specified sex on it. Every ward has a fixed capacity, which is the maximum number of patients that can be on it at one time (i.e. the capacity is the number of beds in the ward).

Ward, Patients, Doctors

Different wards may have different capacities. Each ward has a unique name. The hospital has an Administration department that is responsible for recording information about the hospital’s wards and the patients that are on each ward.

Doctors in the hospital are organized into teams, each of which has a unique team code (such as orthopedic A, or Pediatrics). Each team is headed by a consultant doctor who is the only consultant doctor in the team; the rest of the team are all junior doctors, at least one of whom must be at grade 1. Each doctor is in exactly one team. The Administration department keeps a record of these teams and the doctors allocated to each team.

Each patient is on a single ward and is under the care of a single team of doctors; the consultant who heads that team is responsible for the patient. A patient may be treated by any number of doctors but they must all be in the team that cares for the patient. A doctor can treat any number of patients.”

Business Objects

With regard to quoted requirements, four business entities are to be managed: patients, doctors, words, and teams.

Patients and doctors are identified as physical persons whose symbolic representation is managed by other systems.

Persons and wards are exclusively partitioned by gender, the former frozen, the latter mutable. Junior doctors are exclusively partitioned by grade.

Symbolic representation of managed entities

Use Cases

Basic use cases as derived from business objects.

Basic Use Cases

Further Reading

External Links

Leave a Reply

%d bloggers like this: