Topics covered
Context models
Interaction models
Structural models
System modelling
System modelling is the process of developing abstract models of a system, with each model presenting a different view or perspective of that system.
System modelling is representing a system using graphical notation, which is now almost always based on notations in the Unified Modelling Language (UML).
System modelling helps the analyst to understand the functionality of the system and models are used to communicate with customers.
System perspectives
Different models can be developed to represent the system from different perspectives:
An external perspective, where you model the context or environment of the system.
An interaction perspective, where you model the interactions between a system and its environment, or between the components of a system.
A structural perspective, where you model the organization of a system or the structure of the data that is processed by the system.
A behavioural perspective, where you model the dynamic behaviour of the system and how it responds to events.
UML diagram types
Activity diagrams, which show the activities involved in a process or in data processing .
Use case diagrams, which show the interactions between a system and its environment.
Sequence diagrams, which show interactions between actors and the system and between system components.
Class diagrams, which show the object classes in the system and the associations between these classes.
State diagrams, which show how the system reacts to internal and external events.
Use of graphical models
As a means of facilitating discussion about an existing or proposed system
* Incomplete and incorrect models are OK as their role is to support
discussion.
As a way of documenting an existing system
* Models should be an accurate representation of the system but need not
be complete.
As a detailed system description that can be used to generate a system implementation
* Models must be both correct and complete.
Mentcare system & sub-systems
Process perspective
Context models simply show the other systems in the environment, not how the system being developed is used in that environment.
Business Process models reveal how the system being developed is used in broader business processes.
UML activity diagrams may be used to define business process models. They show the activities in a process and the flow of control from one activity to another
- The start of the process is indicated by a filled circle, the end – by a filled
circle inside another circle
- Rectangles with round corners represent activities (represented by verbs)
that is, the specific sub-processes that must be carried out
- Diamonds represent decisions (represented by binary questions)
- Arrows represent the flow of work from one activity to another (sometime
labelled)
- A solid bar indicates activity coordination
Process model of involuntary detention using UML activity diagram
Interaction models
Modelling user interaction is important as it helps to identify user requirements.
Modelling component interaction helps us understand if a proposed system structure is likely to deliver the required system performance and dependability.
Use case diagrams – used to model the interactions between a system and external agents - human users or other systems
Sequence diagrams – used to model interactions between system components
Use case modeling
A use case is a simple description of what a user expects from a system in the interaction
Each use case represents a discrete task that involves external interaction with a system.
As use cases give a simple overview of an interaction (represented by a verb), more detail needs to be added in the form of textual description, a structured description in a table, or a sequence diagram
Actors in a use case may be people or other systems.
A use case is shown as an ellipse and the actors involved – as stick figures
Transfer-data use case diagram
A use case in the Mentcare system
Tabular description of the Transfer-data use case
Use cases in the Mentcare system involving the role ‘Medical Receptionist’
Sequence diagrams
Sequence diagrams are part of the UML and are used to model the interactions between the actors and the objects within a system.
A sequence diagram shows the sequence of interactions that take place during a particular use case or use case instance.
The objects and actors involved are listed along the top of the diagram, with a dotted line drawn vertically from these
Annotated arrows indicate interactions between objects
The rectangle on the dotted line indicates the lifeline of the object concerned (the time that object instance is involved in the interaction)
You read the sequence of interactions from top to bottom, left to right
The annotations on the arrows indicate the calls to the objects, their parameters and the return values
A box named “alt” is used with the conditions indicated in the square brackets, with alternative interaction options separated by a dotted line
Sequence diagram for View patient information
Sequence diagram for View patient information – an explanation
The medical receptionist triggers the ViewInfo method in an instance P of the PatentInfo object class, supplying the patient’s identifier, PID, to identify the required information. P is a user interface object, which is displayed as a form showing patient information
The instance P calls the database to return the information required, supplying the receptionist’s identifier to allow security checking
The database checks with an authorisation system that the receptionist is authorised for this action.
If authorised, the patient information is returned and is displayed on a form on the user’s screen. If authorisation fails, then an error message is returned. The box denoted by “alt” in the top-left corner is a choice box indicating that one of the contained interactions will be executed. The condition that selects the choice is shown in square brackets
Difference between Activity and Sequence Diagrams
They are both behavioural diagrams but have different emphases.
Activity diagram is representing the control flowing from one activity to another, especially good at the logic of conditional structures, loops, concurrency.
Sequence diagram is representing the sequence of messages flowing from one object to another, how their messages/events are exchanged in what time-order.
Sequence diagram may also express conditions, loops and concurrency by using alt for example, but they are not as intuitive and convenient as those in activity diagram.
Structural models
Structural models of the software display the organization of a system in terms of the components that make up that system and their relationships.
Structural models may be static models, which show the structure of the system design, or dynamic models, which show the organization of the system when it is executing.
You create structural models of a system when you are discussing and designing the system architecture.
Class diagrams
Class diagrams are used when developing an object-oriented system model to show the classes in a system and the associations between these classes.
A class can be thought of as a general definition of one kind of system object.
An association is a link between classes that indicates that there is some relationship between these classes.
When you are developing models, objects represent something in the real world, such as a patient, a prescription, a doctor, etc.
UML classes and association
Classes and associations in the MHC-PMS
The Consultation class
Generalization
Generalization is an everyday technique that we use to manage complexity.
Rather than learn the detailed characteristics of every entity that we experience, we place these entities in more general classes (animals, cars, houses, etc.) and learn the characteristics of these classes.
This allows us to infer that different members of these classes have some common characteristics e.g. squirrels and rats are rodents.
Question: How can we implement generalization in an object-oriented programming language?
In modeling systems, it is often useful to examine the classes in a system to see if there is scope for generalization.
In object-oriented languages, such as C#, generalization is implemented using the class inheritance mechanisms built into the language.
In a generalization, the attributes and operations associated with higher-level classes are also associated with the lower-level classes.
The lower-level classes are sub-classes and they inherit the attributes and operations from their super classes. These lower-level classes then add more specific attributes and operations.
A generalization hierarchy
A generalization hierarchy with added detail
Object class aggregation models
Objects in the real world are often made of different parts. For example a moodle web page for a course may be composed of Power Point slides for lectures, Word files for labs and assignments, recommended books, etc.
An aggregation means that one object (the whole) is composed of other objects (the parts).
Aggregation models are similar to the part-of relationship in semantic data models.
In the next slide, a patient record is an aggregate of Patient and indefinite number of consultations. That is, the record maintains personal patient information as well as individual record for each consultation with a doctor
The aggregation association
Reference: Sommerville, I. (2016) Software Engineering, Tenth Edition, Pearson Education Ltd
We are providing all database related help. If you are looking to hire expert which can help you to do your system modelling related task then we are ready to help you. Hire realcode4you expert or send your requirement details at:
realcode4you@gmail.com
Comments