SlideShare une entreprise Scribd logo
1  sur  70
Software development with Java

Prepared By: Ms Samar Shilbayeh ,sshilbayeh@arabou.edu.sa
Modified By: Mrs. Nibal Abu Samaa, nebal_samaan@yahoo.com
Core system design
3






Communication between user interface and
the core system
Getting information
Anthropomorphism
Changing state

4
6
1) Introduces a simple way of dealing with
communication between user interface
and core systems.
2) Shows one way of dividing responsibility
for a use case between the user
interface and core system.
3) Analyses some use cases that do not
involve changing the state of the core
system.
4) Analyses some use cases that do involve
changing the state of the core system .
7
5) For each use case, shows what is
involved in producing a dynamic model
that illustrates a design.
6) Shows how from a design, methods can
be allocated to appropriate classes and
explains what is involved in navigating
and creating links.
7) Briefly considers the use of
anthromorphic language in objectoriented software development.
8




Implementation model
It contains structural model
Structural model include
◦ Class diagram
◦ Textual descriptions







Classes in the implementation model represent SW
classes
Classes contain protocols, i.e. methods. and
method specifications
Implementation model contains dynamic model,
sequence diagrams.

9
Core Object
The core system will contain software objects
that represents the real-world objects of the
use case description.


For Example:
In a Hospital management System...
Patient and Doctor are two real world object..


11
 The user interface tells the core
system to begins its work.
 The core system returns results
to the user interface.

12
user interface and the core system should be
designed as separate components such that:
The core system is protected from threats to its
integrity through misuse by the user interface.
 The user interface is independent of how the
core system is implemented.
 The user interface is replaceable without
significant impact on the core system.


13


It is done by causing a message to be sent
from the user interface to the core system
so that appropriate actions can be taken
within the core system...

Example:


TreatPatient use case,
◦ identify patient and doctor
◦ instruct interface to send message to record
treatment
◦ core system record treatment of the patient by
the doctor.
14
In a Hospital Management System..
userInterface

recordTreatment ( patient5,.....)

Fig: The user interface sends a record Treatment message with a Patient

Object, patient 5 as an argument.

15
Objects will be used as arguments
 The coordinating object sends the
resulted object to the user interface
 The user interface displays what is
needed from that object.


16





Can we let interface send the message
directly to doctor?
Yes we can,
But what if, at a certain point we want the
interface to send the message to the patient
instead?
Interface has to be changed!!




Interface in this case is dependent on core
system
to solve this dependency issue we use the
coordination object.
Note: coordinating message = the coordinating method
18





The behaviour for each use case will be initiated by the user
interface sending a coordinating message to the coordinating
object.
It is the coordinating object that ensures the appropriate
messages are sent to the other objects.
the coordinating object is responsible for returning any
information (objects) required to be displayed to the user.

19
20
21
userInterface

hospital

getPatients(Ward 3)
{patient2,patient4,patient6}

fig:Returning objects to the user interface

22
Putting information, ex: Treat patient
 Getting information, ex: List Ward’s


Patients

Both
 The coordinating object is responsible
for returning any results to be
displayed to the user.


23




The core object return results as objects
rather than attributes
The user interface extract the attribute to
be displayed to the user
The advantages of doing so:
◦ the core system is independent of changes
that may be made to the interface in the
future
◦ The responsibility is split between core
system and user interface.

24









Return oldest pupil in a form
from the use case: the secretary identify the
form
A message is sent from interface to the
coordinating object
The argument in the message: Form
Returned result (object): Pupil
interface send getter message to Pupil to get
name attribute

25








What the user interface will be able to do with
the core objects?
The core system is protected by allowing only
messages that get information about the
attribute value
All state-changing must be done by the
coordinating object.
User interface will not have access to
messages that reveal the internal structure of
the core system

26


1.

2.

How the use case will be initiated?
The user will send a message to the user
interface with the behavior that the system
should do.
Each use case has a specific behavior, Each use
case has (given and goal)
Given: the information given by the user and
entered to the system
Result(The Goal) : the information result as
the out put of the system :
1- getting information
2-or changing the state without any output
27
A use case can be thought of as a
single piece of coherent behavior.
 for the use cases we have to:


◦ Analyze the REQUIREMENT DOCUMENT to
find the main activities.
◦ List the names of the use cases.
◦ Identify what information is given to each
use case and the goal of each use case.

28
Use case: List Patient’s Treatment.
 Given: A patient
 Goal: The following have to be
returned:


 the team code of the team that cares for the
patient;
 the name of the consultant doctor responsible for
the patient;
 the names and the grade of the doctors who have
treated the patient.
29
Use case: List Teams patients
 Given: A team
 Goal: The following information have
to be returned for each patient that
the team cares for :
 The name and date of birth
 The name of the ward the patient is
on


30





Use case: Admit patient
Given: the patient’s name, sex and date of birth
and identifies the team that cares for the patient. a
ward of the appropriate type with empty beds;
Goal: It records the following information:
 The patient’s name, sex and date of birth;
 The patient is under the care of the given team;
 The consultant that heads the team is responsible
for the patient;
 The patient is on the ward;
 It informs the administrator of the ward to which
the patient has been admitted.
31


Use case E -List Ward’s Patients:
The administrator identifies the ward.
For each patient on the ward the
system displays the patient’s name
and age in years.

33









example of the use case involving particular
objects, namely, a Ward object, which we called
ward3,and Patient objects, patient2, patient4,and
patient6.
An example of a use case such as this is called a
scenario.
For example, what is involved in the design of
List Ward’s Patients will be examined in terms of
the above scenario, whose objects we will shortly
illustrate in an object diagram.
However, although the scenario involves specific
objects, the reasoning will be general, and from
it we will derive a design that is applicable to
whatever Ward and Patient objects are involved.
The scenario must be considered in detail to
determine what the core system must do and
how it can be done.
34
Consider the example: List Ward’s Patients
 The relevant part of the class diagram

35
Use case:
List Ward’s Patients:
Given: The ward.
Goal: For each
patient on the ward
the system displays
the patient’s name
and age in years.

HospCoord
hasWards
Ward
hasOn
Patient

navigation from ward to
Patient
36
Step 1. Draw object diagram
Step 2. Specify the coordinating method
Step 3. Implementing links
Step 4. The walk through and a
sequence diagram
Step 5. Updating structural model

37


the particular objects referred to in our scenario,
by illustrating that the Ward object, ward3,is
connected to each of the Patient objects patient2,
patient4 and patient6 by a link of the hasOn
association.

38
39


Coordinating method specification consists of the
following:
1- Collection<Patient> getPatients (Ward aWard)
Return
type

argument
name
method
name

argument
type

2- Post-condition of the method : returns a collection
of all the Patient objects linked to aWard.
40




A link is implemented between two objects,
by holding a reference for one or both of the
linked object
The object ward3 references the Patient
objects indirectly via a collection.

Ward
1

hasOn
0..*
Patient
41




The previous
figure shows
the direction
from ward to
patient, and
note 0..*
For the other
direction, each
patient is in
one ward.

Ward
1
hasOn
0..*

Patient

42


We can now list in more detail (a walk-through of
the use case ) what is involved for this particular
scenario as follows:

Given: the Ward object ward3.
Goals:
1. Access the collection of patients objects linked
to ward3, which in this case: {patient2, patient4,
patient6}
2. Return {patient2, patient4, patient6}

The steps of a walk through will be prompted by a
sequence of message passing through the system
initiated by the coordinating message.
43












Each object is represented by a rectangle, This rectangle
contains an identifier for the object, but no attribute values.
Time is viewed as running vertically downwards.
A dashed vertical line running down from an object rectangle
represents the lifeline of that object, that is, the time during
which the object exists.
When an object receives a message
An ‘endless’
activation rectangle indicates that the object has not
completed its processing.
The activation rectangle for the user Interface object comes
straight out of the object rectangle and always appears
endless. This indicates that the user interface is continuously
active, always listening for events (mouse clicks, for example)
caused by the user.
A message is represented as a solid arrow.
44
The walk-through and sequence diagram form a dynamic model, providing the
basis of a general design for how the core system will carry out its responsibility
for listing a ward’s patients.
45




For List Ward’s Patients use case, the
consequences of the design on the system
structure must be recorded.
Additional responsibilities are required for
objects of the classes ward and Hospcoord

46










Each ward object needs to hold a reference to a
collection of all the Patient objects linked to it.
To enable this, an instance variable patients which
references such a collection should be specified for
the ward class.
Each ward object needs to respond to a
getpatients() message,
so the ward protocol should include a specification
for a method getPatients().
The method should return a collection of all the
Patients object linked to the receiver ward object.
See page 26, 27.

47
These responsibilities, added to the class description for Ward, result in the
following.:
Class Ward A hospital ward
Attributes
name The unique name of the ward
type Whether the ward is for male or female (M or F) patients
capacity The maximum number of patients that can be on the ward at any one
time
/numberOfFreeBeds The number of free beds on the ward
Links
Collection<Patient> patients
References a collection of all the linked Patient objects.
Protocol
Collection<Patient> getPatients()
Post-condition: returns a collection of all the linked Patient objects.

48


The class details for HospCoord at this stage in the
development simply include the coordinating method
specification, as follows:

Class HospCoord
 Attributes
None
 Links
None
 Protocol
Collection<Patient> getPatients(Ward aWard)
Post-condition: returns a collection of all the Patient objects
linked to aWard.




49
We have three types of responsibilities that
should be represented in the class description:
 The attribute responsibility:Represented in
the class it self
 The association responsibility: is represented
by creating instance or collection of instances
in the class that responsible for this
association
 The protocol responsibility: is represented by
implement the method inside the class that
receives this message in the dynamic diagram
50




The consequences on the system structure
are as follows:
◦ Class description is updated to include:
 new method
 link references
After the link reference is identified the
corresponding arrow should be drawn, that
is updating the class diagram described as
navigating.

51
52
Here are excerpts class definitions which correspond to
this design.
//Definition of coordinating class.
Public class HospCoord
{
//code omitted
public Collection<Patient>getPatients(Ward aWard)
{
return aWard.getPatients(); //send getPatients()to the argument
}
//code omitted
}

//Definition of ward
Public class Ward
{
//code omitted
private Collection<Patient>patients;//all the linked patient object.
Collection<patient>getPatients()
{
return patients();
}
//code omitted
}
Starting from use case  object diagram,

1.

◦
◦
◦
2.
3.
4.
5.

Develop scenario, involving objects and links, ex: ward3 linked
to 3 patients 2, 4, and 6,
object diagram
constructing the sequence diagram for the scenario as well.

Generalizing  coordinating method specification
Adding links
Develop the walk through and the sequence
diagram.
Updating the structural model (class description
and navigation arrows) .
The walk through and sequence diagram
constitute the dynamic model

See SAQ 6 page 29

54




Involving more than one class
Ex: ListTeamPatientAndWards(team2)
The steps starting page 32:
◦
◦
◦
◦
◦

Object diagram
Sequence diagram
Specify coordinating method
Walk through and sequence diagram
From the walk through and sequence diagram:
 Method specification, and link references
 Class diagram with the arrows according to link
references

56
List Team’s Patients use case (labelled F in
the requirements document).
The administrator identifies the team. For
each patient cared for by the team, the
System displays:
◦ the patient’s name;
◦ the name of the ward that the patient is
on.

57
58






hasTeams is
navigated from
HospCoord to
Team
caresFor is
navigated from
Team to
Patient
hasOn is
navigated from
Patient to ward

HospCoord
hasTeams

Team

ward
hasOn

caresFor
Patient

The navigation that results
from this use case
59
Use case : List Teams patient
 Given: The team For each patient cared
for by the team,
 Goal: System displays:
 The patient’s name;
 The name of the ward that the patient
is on.


60


In a typical scenario, suppose that the Team
object corresponding to the team identified
by the administrator is team2, and that,
based on the class diagram, the relevant
Patient and Ward objects are as shown in the
object diagram

61



Example: List Team’s Pateints
Step1. Object diagram

62
63
Map<Patient, Ward>getPatientsAndWards(Team aTeam)

Post-condition: returns a map of pairs of Patient
Ward objects, such that for each Patient object
aPatient linked to aTeam, the map contains
the key-value pair (aPatient,aWard), where
aWard is linked to aPatient

64
 We

don’t need step 3, since no
new links needed.

65
Given: The Team object team2.
 Goal:
1. Access the collection of Patient objects linked to
team2, which in this case is {patient3, patient4,
patient5}.
2. Create a new empty collection, results.
3. For each Patient object, aPatient, accessed in
step 1.


◦
◦
4.

access aWard, the Ward object linked to aPatient;
add(aPatient, aWard)to results.

Return results.

66
67
Class Team
 Links
Collection<Patient> patients
References a collection of all the linked Patient
objects.


Protocol:
Map<Patient,Ward> getPatientsAndWard()
Post-condition: returns a map of pairs of Patient
and Ward objects, such that for each Patient
object aPatient linked to the receiver, the map
contains the key–value pair (aPatient, aWard),
where aWard is linked to aPatient.
68
class HospCoord
 Protocol
Map<Patient, Ward>
getPatientsAndWards(T
eam aTeam)
Post-condition: returns a
map of pairs of Patient
Ward objects, such that
for each Patient object
aPatient linked to
aTeam, the map
contains the value pair
(aPatientaWard), where
aWard is linked to
aPatien


class Patient
 Links
Ward ward
References the linked Ward
object.
 Protocol
Ward getWard()
Post-condition: returns the
linked Ward object.


69
70

Contenu connexe

Tendances

Clustering Medical Data to Predict the Likelihood of Diseases
Clustering Medical Data to Predict the Likelihood of DiseasesClustering Medical Data to Predict the Likelihood of Diseases
Clustering Medical Data to Predict the Likelihood of Diseasesrazanpaul
 
MULTI-PARAMETER BASED PERFORMANCE EVALUATION OF CLASSIFICATION ALGORITHMS
MULTI-PARAMETER BASED PERFORMANCE EVALUATION OF CLASSIFICATION ALGORITHMSMULTI-PARAMETER BASED PERFORMANCE EVALUATION OF CLASSIFICATION ALGORITHMS
MULTI-PARAMETER BASED PERFORMANCE EVALUATION OF CLASSIFICATION ALGORITHMSijcsit
 
WisconsinBreastCancerDiagnosticClassificationusingKNNandRandomForest
WisconsinBreastCancerDiagnosticClassificationusingKNNandRandomForestWisconsinBreastCancerDiagnosticClassificationusingKNNandRandomForest
WisconsinBreastCancerDiagnosticClassificationusingKNNandRandomForestSheing Jing Ng
 
Illustration of Mental Health Clustering Calculator ajmitchell
Illustration of Mental Health Clustering Calculator ajmitchellIllustration of Mental Health Clustering Calculator ajmitchell
Illustration of Mental Health Clustering Calculator ajmitchellAlex J Mitchell
 
Data_Processing_Program
Data_Processing_ProgramData_Processing_Program
Data_Processing_ProgramNeil Dahlqvist
 
Data processing and analysis final
Data processing and analysis finalData processing and analysis final
Data processing and analysis finalAkul10
 
IRJET- Heart Disease Prediction and Recommendation
IRJET-  	  Heart Disease Prediction and RecommendationIRJET-  	  Heart Disease Prediction and Recommendation
IRJET- Heart Disease Prediction and RecommendationIRJET Journal
 

Tendances (13)

Clustering Medical Data to Predict the Likelihood of Diseases
Clustering Medical Data to Predict the Likelihood of DiseasesClustering Medical Data to Predict the Likelihood of Diseases
Clustering Medical Data to Predict the Likelihood of Diseases
 
GUI for MySQL
GUI for MySQLGUI for MySQL
GUI for MySQL
 
MULTI-PARAMETER BASED PERFORMANCE EVALUATION OF CLASSIFICATION ALGORITHMS
MULTI-PARAMETER BASED PERFORMANCE EVALUATION OF CLASSIFICATION ALGORITHMSMULTI-PARAMETER BASED PERFORMANCE EVALUATION OF CLASSIFICATION ALGORITHMS
MULTI-PARAMETER BASED PERFORMANCE EVALUATION OF CLASSIFICATION ALGORITHMS
 
ICTer conference2014extendedabstract
ICTer conference2014extendedabstractICTer conference2014extendedabstract
ICTer conference2014extendedabstract
 
mis2663
mis2663mis2663
mis2663
 
List view1
List view1List view1
List view1
 
WisconsinBreastCancerDiagnosticClassificationusingKNNandRandomForest
WisconsinBreastCancerDiagnosticClassificationusingKNNandRandomForestWisconsinBreastCancerDiagnosticClassificationusingKNNandRandomForest
WisconsinBreastCancerDiagnosticClassificationusingKNNandRandomForest
 
[IJET-V1I3P11] Authors : Hemangi Bhalekar, Swati Kumbhar, Hiral Mewada, Prati...
[IJET-V1I3P11] Authors : Hemangi Bhalekar, Swati Kumbhar, Hiral Mewada, Prati...[IJET-V1I3P11] Authors : Hemangi Bhalekar, Swati Kumbhar, Hiral Mewada, Prati...
[IJET-V1I3P11] Authors : Hemangi Bhalekar, Swati Kumbhar, Hiral Mewada, Prati...
 
Illustration of Mental Health Clustering Calculator ajmitchell
Illustration of Mental Health Clustering Calculator ajmitchellIllustration of Mental Health Clustering Calculator ajmitchell
Illustration of Mental Health Clustering Calculator ajmitchell
 
Data_Processing_Program
Data_Processing_ProgramData_Processing_Program
Data_Processing_Program
 
Aracne
AracneAracne
Aracne
 
Data processing and analysis final
Data processing and analysis finalData processing and analysis final
Data processing and analysis final
 
IRJET- Heart Disease Prediction and Recommendation
IRJET-  	  Heart Disease Prediction and RecommendationIRJET-  	  Heart Disease Prediction and Recommendation
IRJET- Heart Disease Prediction and Recommendation
 

Similaire à Java Software Development

CIS 25 SPRING 2020FINAL Due 1159 PM May 22 (this is a har.docx
CIS 25 SPRING 2020FINAL Due 1159 PM May 22 (this is a har.docxCIS 25 SPRING 2020FINAL Due 1159 PM May 22 (this is a har.docx
CIS 25 SPRING 2020FINAL Due 1159 PM May 22 (this is a har.docxsleeperharwell
 
Uml diagram for_hospital_management_system
Uml diagram for_hospital_management_systemUml diagram for_hospital_management_system
Uml diagram for_hospital_management_systemPradeep Bhosale
 
Refining The System Definition
Refining The System DefinitionRefining The System Definition
Refining The System DefinitionSandeep Ganji
 
Aakarsh 038 csit142_lab_work (1)
Aakarsh 038 csit142_lab_work (1)Aakarsh 038 csit142_lab_work (1)
Aakarsh 038 csit142_lab_work (1)Shambhavi Vats
 
Running Head Assignment 1 .docx
Running Head Assignment 1                                        .docxRunning Head Assignment 1                                        .docx
Running Head Assignment 1 .docxSUBHI7
 
SRS for Hospital Management System
SRS for Hospital Management SystemSRS for Hospital Management System
SRS for Hospital Management Systemkataria Arvind
 
Placement management system
Placement management systemPlacement management system
Placement management systemSurya Teja
 
SE_Lec 08_UML Use Cases
SE_Lec 08_UML Use CasesSE_Lec 08_UML Use Cases
SE_Lec 08_UML Use CasesAmr E. Mohamed
 
(Paper) Emergency Medical Support System for Visualizing Locations and Vital ...
(Paper) Emergency Medical Support System for Visualizing Locations and Vital ...(Paper) Emergency Medical Support System for Visualizing Locations and Vital ...
(Paper) Emergency Medical Support System for Visualizing Locations and Vital ...Naoki Shibata
 
Srs hospital management
Srs hospital managementSrs hospital management
Srs hospital managementmaamir farooq
 
Adaptive neurofuzzy system for asthama
Adaptive neurofuzzy system for asthamaAdaptive neurofuzzy system for asthama
Adaptive neurofuzzy system for asthamaeSAT Publishing House
 
Recovery Prediction in the Framework of Cloud-Based Rehabilitation Exergame
Recovery Prediction in the Framework of Cloud-Based Rehabilitation ExergameRecovery Prediction in the Framework of Cloud-Based Rehabilitation Exergame
Recovery Prediction in the Framework of Cloud-Based Rehabilitation Exergametoukaigi
 
Universal Domain Common observation 20080808
Universal Domain Common observation 20080808Universal Domain Common observation 20080808
Universal Domain Common observation 20080808ash84
 
Use-Case-Diagram.ppt
Use-Case-Diagram.pptUse-Case-Diagram.ppt
Use-Case-Diagram.pptFarHana74914
 
Trust Enhanced Role Based Access Control Using Genetic Algorithm
Trust Enhanced Role Based Access Control Using Genetic Algorithm Trust Enhanced Role Based Access Control Using Genetic Algorithm
Trust Enhanced Role Based Access Control Using Genetic Algorithm IJECEIAES
 

Similaire à Java Software Development (20)

CIS 25 SPRING 2020FINAL Due 1159 PM May 22 (this is a har.docx
CIS 25 SPRING 2020FINAL Due 1159 PM May 22 (this is a har.docxCIS 25 SPRING 2020FINAL Due 1159 PM May 22 (this is a har.docx
CIS 25 SPRING 2020FINAL Due 1159 PM May 22 (this is a har.docx
 
Uml diagram for_hospital_management_system
Uml diagram for_hospital_management_systemUml diagram for_hospital_management_system
Uml diagram for_hospital_management_system
 
Refining The System Definition
Refining The System DefinitionRefining The System Definition
Refining The System Definition
 
Aakarsh 038 csit142_lab_work (1)
Aakarsh 038 csit142_lab_work (1)Aakarsh 038 csit142_lab_work (1)
Aakarsh 038 csit142_lab_work (1)
 
Uml use casediagrams assignment help
Uml use casediagrams assignment helpUml use casediagrams assignment help
Uml use casediagrams assignment help
 
Running Head Assignment 1 .docx
Running Head Assignment 1                                        .docxRunning Head Assignment 1                                        .docx
Running Head Assignment 1 .docx
 
SRS for Hospital Management System
SRS for Hospital Management SystemSRS for Hospital Management System
SRS for Hospital Management System
 
Placement management system
Placement management systemPlacement management system
Placement management system
 
Q45019899
Q45019899Q45019899
Q45019899
 
SE_Lec 08_UML Use Cases
SE_Lec 08_UML Use CasesSE_Lec 08_UML Use Cases
SE_Lec 08_UML Use Cases
 
(Paper) Emergency Medical Support System for Visualizing Locations and Vital ...
(Paper) Emergency Medical Support System for Visualizing Locations and Vital ...(Paper) Emergency Medical Support System for Visualizing Locations and Vital ...
(Paper) Emergency Medical Support System for Visualizing Locations and Vital ...
 
Srs hospital management
Srs hospital managementSrs hospital management
Srs hospital management
 
Unit-1 Mod-Sim.ppt
Unit-1 Mod-Sim.pptUnit-1 Mod-Sim.ppt
Unit-1 Mod-Sim.ppt
 
Hospital management system
Hospital management systemHospital management system
Hospital management system
 
Adaptive neurofuzzy system for asthama
Adaptive neurofuzzy system for asthamaAdaptive neurofuzzy system for asthama
Adaptive neurofuzzy system for asthama
 
Recovery Prediction in the Framework of Cloud-Based Rehabilitation Exergame
Recovery Prediction in the Framework of Cloud-Based Rehabilitation ExergameRecovery Prediction in the Framework of Cloud-Based Rehabilitation Exergame
Recovery Prediction in the Framework of Cloud-Based Rehabilitation Exergame
 
Universal Domain Common observation 20080808
Universal Domain Common observation 20080808Universal Domain Common observation 20080808
Universal Domain Common observation 20080808
 
Observer pattern
Observer patternObserver pattern
Observer pattern
 
Use-Case-Diagram.ppt
Use-Case-Diagram.pptUse-Case-Diagram.ppt
Use-Case-Diagram.ppt
 
Trust Enhanced Role Based Access Control Using Genetic Algorithm
Trust Enhanced Role Based Access Control Using Genetic Algorithm Trust Enhanced Role Based Access Control Using Genetic Algorithm
Trust Enhanced Role Based Access Control Using Genetic Algorithm
 

Dernier

Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhikauryashika82
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...fonyou31
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingTeacherCyreneCayanan
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 

Dernier (20)

Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 

Java Software Development

  • 1. Software development with Java Prepared By: Ms Samar Shilbayeh ,sshilbayeh@arabou.edu.sa Modified By: Mrs. Nibal Abu Samaa, nebal_samaan@yahoo.com
  • 3. 3
  • 4.     Communication between user interface and the core system Getting information Anthropomorphism Changing state 4
  • 5.
  • 6. 6
  • 7. 1) Introduces a simple way of dealing with communication between user interface and core systems. 2) Shows one way of dividing responsibility for a use case between the user interface and core system. 3) Analyses some use cases that do not involve changing the state of the core system. 4) Analyses some use cases that do involve changing the state of the core system . 7
  • 8. 5) For each use case, shows what is involved in producing a dynamic model that illustrates a design. 6) Shows how from a design, methods can be allocated to appropriate classes and explains what is involved in navigating and creating links. 7) Briefly considers the use of anthromorphic language in objectoriented software development. 8
  • 9.    Implementation model It contains structural model Structural model include ◦ Class diagram ◦ Textual descriptions    Classes in the implementation model represent SW classes Classes contain protocols, i.e. methods. and method specifications Implementation model contains dynamic model, sequence diagrams. 9
  • 10.
  • 11. Core Object The core system will contain software objects that represents the real-world objects of the use case description.  For Example: In a Hospital management System... Patient and Doctor are two real world object..  11
  • 12.  The user interface tells the core system to begins its work.  The core system returns results to the user interface. 12
  • 13. user interface and the core system should be designed as separate components such that: The core system is protected from threats to its integrity through misuse by the user interface.  The user interface is independent of how the core system is implemented.  The user interface is replaceable without significant impact on the core system.  13
  • 14.  It is done by causing a message to be sent from the user interface to the core system so that appropriate actions can be taken within the core system... Example:  TreatPatient use case, ◦ identify patient and doctor ◦ instruct interface to send message to record treatment ◦ core system record treatment of the patient by the doctor. 14
  • 15. In a Hospital Management System.. userInterface recordTreatment ( patient5,.....) Fig: The user interface sends a record Treatment message with a Patient Object, patient 5 as an argument. 15
  • 16. Objects will be used as arguments  The coordinating object sends the resulted object to the user interface  The user interface displays what is needed from that object.  16
  • 17.    Can we let interface send the message directly to doctor? Yes we can, But what if, at a certain point we want the interface to send the message to the patient instead? Interface has to be changed!!   Interface in this case is dependent on core system to solve this dependency issue we use the coordination object. Note: coordinating message = the coordinating method
  • 18. 18
  • 19.    The behaviour for each use case will be initiated by the user interface sending a coordinating message to the coordinating object. It is the coordinating object that ensures the appropriate messages are sent to the other objects. the coordinating object is responsible for returning any information (objects) required to be displayed to the user. 19
  • 20. 20
  • 21. 21
  • 23. Putting information, ex: Treat patient  Getting information, ex: List Ward’s  Patients Both  The coordinating object is responsible for returning any results to be displayed to the user.  23
  • 24.    The core object return results as objects rather than attributes The user interface extract the attribute to be displayed to the user The advantages of doing so: ◦ the core system is independent of changes that may be made to the interface in the future ◦ The responsibility is split between core system and user interface. 24
  • 25.       Return oldest pupil in a form from the use case: the secretary identify the form A message is sent from interface to the coordinating object The argument in the message: Form Returned result (object): Pupil interface send getter message to Pupil to get name attribute 25
  • 26.     What the user interface will be able to do with the core objects? The core system is protected by allowing only messages that get information about the attribute value All state-changing must be done by the coordinating object. User interface will not have access to messages that reveal the internal structure of the core system 26
  • 27.  1. 2. How the use case will be initiated? The user will send a message to the user interface with the behavior that the system should do. Each use case has a specific behavior, Each use case has (given and goal) Given: the information given by the user and entered to the system Result(The Goal) : the information result as the out put of the system : 1- getting information 2-or changing the state without any output 27
  • 28. A use case can be thought of as a single piece of coherent behavior.  for the use cases we have to:  ◦ Analyze the REQUIREMENT DOCUMENT to find the main activities. ◦ List the names of the use cases. ◦ Identify what information is given to each use case and the goal of each use case. 28
  • 29. Use case: List Patient’s Treatment.  Given: A patient  Goal: The following have to be returned:   the team code of the team that cares for the patient;  the name of the consultant doctor responsible for the patient;  the names and the grade of the doctors who have treated the patient. 29
  • 30. Use case: List Teams patients  Given: A team  Goal: The following information have to be returned for each patient that the team cares for :  The name and date of birth  The name of the ward the patient is on  30
  • 31.    Use case: Admit patient Given: the patient’s name, sex and date of birth and identifies the team that cares for the patient. a ward of the appropriate type with empty beds; Goal: It records the following information:  The patient’s name, sex and date of birth;  The patient is under the care of the given team;  The consultant that heads the team is responsible for the patient;  The patient is on the ward;  It informs the administrator of the ward to which the patient has been admitted. 31
  • 32.
  • 33.  Use case E -List Ward’s Patients: The administrator identifies the ward. For each patient on the ward the system displays the patient’s name and age in years. 33
  • 34.      example of the use case involving particular objects, namely, a Ward object, which we called ward3,and Patient objects, patient2, patient4,and patient6. An example of a use case such as this is called a scenario. For example, what is involved in the design of List Ward’s Patients will be examined in terms of the above scenario, whose objects we will shortly illustrate in an object diagram. However, although the scenario involves specific objects, the reasoning will be general, and from it we will derive a design that is applicable to whatever Ward and Patient objects are involved. The scenario must be considered in detail to determine what the core system must do and how it can be done. 34
  • 35. Consider the example: List Ward’s Patients  The relevant part of the class diagram 35
  • 36. Use case: List Ward’s Patients: Given: The ward. Goal: For each patient on the ward the system displays the patient’s name and age in years. HospCoord hasWards Ward hasOn Patient navigation from ward to Patient 36
  • 37. Step 1. Draw object diagram Step 2. Specify the coordinating method Step 3. Implementing links Step 4. The walk through and a sequence diagram Step 5. Updating structural model 37
  • 38.  the particular objects referred to in our scenario, by illustrating that the Ward object, ward3,is connected to each of the Patient objects patient2, patient4 and patient6 by a link of the hasOn association. 38
  • 39. 39
  • 40.  Coordinating method specification consists of the following: 1- Collection<Patient> getPatients (Ward aWard) Return type argument name method name argument type 2- Post-condition of the method : returns a collection of all the Patient objects linked to aWard. 40
  • 41.   A link is implemented between two objects, by holding a reference for one or both of the linked object The object ward3 references the Patient objects indirectly via a collection. Ward 1 hasOn 0..* Patient 41
  • 42.   The previous figure shows the direction from ward to patient, and note 0..* For the other direction, each patient is in one ward. Ward 1 hasOn 0..* Patient 42
  • 43.  We can now list in more detail (a walk-through of the use case ) what is involved for this particular scenario as follows: Given: the Ward object ward3. Goals: 1. Access the collection of patients objects linked to ward3, which in this case: {patient2, patient4, patient6} 2. Return {patient2, patient4, patient6} The steps of a walk through will be prompted by a sequence of message passing through the system initiated by the coordinating message. 43
  • 44.       Each object is represented by a rectangle, This rectangle contains an identifier for the object, but no attribute values. Time is viewed as running vertically downwards. A dashed vertical line running down from an object rectangle represents the lifeline of that object, that is, the time during which the object exists. When an object receives a message An ‘endless’ activation rectangle indicates that the object has not completed its processing. The activation rectangle for the user Interface object comes straight out of the object rectangle and always appears endless. This indicates that the user interface is continuously active, always listening for events (mouse clicks, for example) caused by the user. A message is represented as a solid arrow. 44
  • 45. The walk-through and sequence diagram form a dynamic model, providing the basis of a general design for how the core system will carry out its responsibility for listing a ward’s patients. 45
  • 46.   For List Ward’s Patients use case, the consequences of the design on the system structure must be recorded. Additional responsibilities are required for objects of the classes ward and Hospcoord 46
  • 47.       Each ward object needs to hold a reference to a collection of all the Patient objects linked to it. To enable this, an instance variable patients which references such a collection should be specified for the ward class. Each ward object needs to respond to a getpatients() message, so the ward protocol should include a specification for a method getPatients(). The method should return a collection of all the Patients object linked to the receiver ward object. See page 26, 27. 47
  • 48. These responsibilities, added to the class description for Ward, result in the following.: Class Ward A hospital ward Attributes name The unique name of the ward type Whether the ward is for male or female (M or F) patients capacity The maximum number of patients that can be on the ward at any one time /numberOfFreeBeds The number of free beds on the ward Links Collection<Patient> patients References a collection of all the linked Patient objects. Protocol Collection<Patient> getPatients() Post-condition: returns a collection of all the linked Patient objects. 48
  • 49.  The class details for HospCoord at this stage in the development simply include the coordinating method specification, as follows: Class HospCoord  Attributes None  Links None  Protocol Collection<Patient> getPatients(Ward aWard) Post-condition: returns a collection of all the Patient objects linked to aWard.   49
  • 50. We have three types of responsibilities that should be represented in the class description:  The attribute responsibility:Represented in the class it self  The association responsibility: is represented by creating instance or collection of instances in the class that responsible for this association  The protocol responsibility: is represented by implement the method inside the class that receives this message in the dynamic diagram 50
  • 51.   The consequences on the system structure are as follows: ◦ Class description is updated to include:  new method  link references After the link reference is identified the corresponding arrow should be drawn, that is updating the class diagram described as navigating. 51
  • 52. 52
  • 53. Here are excerpts class definitions which correspond to this design. //Definition of coordinating class. Public class HospCoord { //code omitted public Collection<Patient>getPatients(Ward aWard) { return aWard.getPatients(); //send getPatients()to the argument } //code omitted } //Definition of ward Public class Ward { //code omitted private Collection<Patient>patients;//all the linked patient object. Collection<patient>getPatients() { return patients(); } //code omitted }
  • 54. Starting from use case  object diagram, 1. ◦ ◦ ◦ 2. 3. 4. 5. Develop scenario, involving objects and links, ex: ward3 linked to 3 patients 2, 4, and 6, object diagram constructing the sequence diagram for the scenario as well. Generalizing  coordinating method specification Adding links Develop the walk through and the sequence diagram. Updating the structural model (class description and navigation arrows) . The walk through and sequence diagram constitute the dynamic model See SAQ 6 page 29 54
  • 55.
  • 56.    Involving more than one class Ex: ListTeamPatientAndWards(team2) The steps starting page 32: ◦ ◦ ◦ ◦ ◦ Object diagram Sequence diagram Specify coordinating method Walk through and sequence diagram From the walk through and sequence diagram:  Method specification, and link references  Class diagram with the arrows according to link references 56
  • 57. List Team’s Patients use case (labelled F in the requirements document). The administrator identifies the team. For each patient cared for by the team, the System displays: ◦ the patient’s name; ◦ the name of the ward that the patient is on. 57
  • 58. 58
  • 59.    hasTeams is navigated from HospCoord to Team caresFor is navigated from Team to Patient hasOn is navigated from Patient to ward HospCoord hasTeams Team ward hasOn caresFor Patient The navigation that results from this use case 59
  • 60. Use case : List Teams patient  Given: The team For each patient cared for by the team,  Goal: System displays:  The patient’s name;  The name of the ward that the patient is on.  60
  • 61.  In a typical scenario, suppose that the Team object corresponding to the team identified by the administrator is team2, and that, based on the class diagram, the relevant Patient and Ward objects are as shown in the object diagram 61
  • 62.   Example: List Team’s Pateints Step1. Object diagram 62
  • 63. 63
  • 64. Map<Patient, Ward>getPatientsAndWards(Team aTeam) Post-condition: returns a map of pairs of Patient Ward objects, such that for each Patient object aPatient linked to aTeam, the map contains the key-value pair (aPatient,aWard), where aWard is linked to aPatient 64
  • 65.  We don’t need step 3, since no new links needed. 65
  • 66. Given: The Team object team2.  Goal: 1. Access the collection of Patient objects linked to team2, which in this case is {patient3, patient4, patient5}. 2. Create a new empty collection, results. 3. For each Patient object, aPatient, accessed in step 1.  ◦ ◦ 4. access aWard, the Ward object linked to aPatient; add(aPatient, aWard)to results. Return results. 66
  • 67. 67
  • 68. Class Team  Links Collection<Patient> patients References a collection of all the linked Patient objects.  Protocol: Map<Patient,Ward> getPatientsAndWard() Post-condition: returns a map of pairs of Patient and Ward objects, such that for each Patient object aPatient linked to the receiver, the map contains the key–value pair (aPatient, aWard), where aWard is linked to aPatient. 68
  • 69. class HospCoord  Protocol Map<Patient, Ward> getPatientsAndWards(T eam aTeam) Post-condition: returns a map of pairs of Patient Ward objects, such that for each Patient object aPatient linked to aTeam, the map contains the value pair (aPatientaWard), where aWard is linked to aPatien  class Patient  Links Ward ward References the linked Ward object.  Protocol Ward getWard() Post-condition: returns the linked Ward object.  69
  • 70. 70

Notes de l'éditeur

  1. The design: specify the class that the arrow is goes of in the dynamic diagram.Create an instance or collection of instances in the class (the class who is responsible for this association) Ward class in this use caseThe hasWards association is the responsibility of HopCoord class (where the arrow goes of in the dynamic diagram)The hasOn association is the responsibility of Ward class
  2. Information about the post-condition of the method – the consequences of validly invoking it. Here, we have ‘returns a collection of all the Patient objects linked to aWard’. in the post-condition, what will be the effects of sending a valid coordinating message. This specification will form part of the system documentation, used by those working with the core system – user interface developers, for instance – as well as those maintaining the system in the future. we use Java-like notation for describing our designs, whilst keeping them sufficiently general that they could be implemented in a different language. Having set out what the coordinating method needs to achieve, the next stage is to decide how this will be done. We must decide what is required of core objects, and how each object will be told to carry out its tasks, so that the resulting interactions achieve the method’s post-conditions.
  3. For the present use case, the coordinating object needs to access a collection of the Patient objects to which a Ward object is linked. This can be achieved by arranging for the Ward object to have an instance variable referencing a collection of references to the appropriate Patient objects. The object ward3 references the Patient objects (indirectly, via a collection).
  4. if later designs require the Ward object linked to a Patient object to be accessed this will be achieved by giving each Patient object a reference to a single Ward object, as illustrated in Figure 18 overleaf.The way in which links of an association are actually implemented depends upon the overall use that is made of the links in all the designs. All the use cases must be considered before making such implementation decisions. What is important here is that we have established that there will be some appropriate way for links to be implemented so that they can be used for accessing objects. Thus the design can safely require the collection of Patient objects linked to ward3 to be accessed.
  5. We need to determine which object will carry out each step, and therefore what a suitable message sequence will be. For this simple use case, it is clear which object should carry out each step. If ward3 references a collection of the Patient objects linked to it, then ward3 will be able to access the required collection. The coordinating method just has to send a message – let us call it getPatients() – to ward3 asking it for this collection of Patient objects. Of course, for one object to send a message to another object, the first object must have a reference to the second. But that is just the situation we have here: the coordinating object, hospital, receives ward3 as an argument to the coordinating message, and so can reference ward3 and send it a message.
  6. Figure 19 shows how the steps of the walk-through described above are achieved. As part of its coordination role, hospital sends the getPatients() message to ward3, which, in response, accesses its Patient objects (step 1). This is a collaboration between hospital and ward3: they cooperate to complete the step. For this collaboration, ward3 is the server and hospital is the client. On receiving the collection of Patient objects from ward3, hospital returns them to the user interface (step 2).
  7. Not only does the class diagram evolve throughout the design process; so too do the class descriptions. Each message shown in the dynamic model requires a corresponding method to be listed in the protocol of the appropriate class. And each time objects are accessed using links of a particular association, the responsibility for holding a suitable reference must be assigned to objects of the appropriate class. We describe the class as having a responsibility for holding link references
  8. It is important to realise that the design so far generates no responsibilities for Patient objects. A common misconception is that accessing an object, or a collection of objects, involves sending a message to that object or collection of objects. This is not the case. The Patient objects here have a passive role. The Ward object holds a reference to them and returns them as a collection: no action is required of the Patient objects themselves.
  9. Only after all use cases and designs have been examined can final decisions be made about what navigation is needed for each association. If an association is, at a certain point in the design process, navigated only in a single direction, it is said to be a one-way association, and its links are described as being one-way links at that point; if it is navigated in both directions, it is a two-way association with two-way links. At this point, hasOn is a oneway association.
  10. Note the following. The code does not specify what kind of collection of Patient objects is actually referenced by ward the instance variable patients just that the collection implements the interface Collection&lt;Patient&gt;. For example, it might be appropriate to use an instance of HashSet, having the following code within the constructor for Wardpatients = new HashSet&lt;Patient&gt;(); These issues are not however pertinent at this design stage; they are an implementation concern. You will, hopefully, have realised that the code is actually very simple. It is quite possible that for this use case you could have bypassed the design activities we have illustrated, and written the same code straightaway. But as we consider more complex use cases, your appreciation of the benefits of a systematic design approach should increase.
  11. 1 Create an object diagram illustrating the example objects of a typical scenario. 2 Construct a sequence diagram illustrating the communication between the user interface and the coordinating object. 3 Specify the coordinating method. 4 Set out a walk-through for the use case – the steps required, for the typical scenario, to achieve the coordinating method specification – and extend the sequence diagram to show how the steps of the walk-through can be achieved by sending messages. 5 From the walk-though and sequence diagram: identify method specifications and responsibilities for holding link references, and add them to the relevant class descriptions; add (if not already present) a navigation arrow to the class diagram which corresponds to each class’s responsibility for holding a linkreference
  12. For the user interface to be able to display a patient’s name along with the name of the ward that the patient is on, we will arrange for the coordinating object to return a collection of pairs, each consisting of a Patient object and the corresponding Ward object.
  13. For each patient cared for by the team, the coordinating method needs to return both the Patient object and the Ward object corresponding to the ward the patient is on. From the object diagram in Figure 22, you can see that the required Patient objects are those linked to the supplied Team object via caresFor. And for each such Patient object, the corresponding Ward object is the one linked to it via hasOn.There are several forms which a collection of such pairs of objects could take. For example, we could define a new class whose objects have two attributes, one a Patient object and the other a Ward object; such a class might be called PatientWardThen some kind of collection could be used to hold PatientWard objects. Or something like a Java Map object might be employed, with Patient objects as keys and, for each Patient object key, the corresponding Ward object as the value. For simplicity we will use the Map object option, and specify the coordinating method as follows.