System Design and Modeling in SE
System Design and Modeling in SE
4 SYSTEM DESIGN
AND MODELING
Introduction 2
System analysis modeling,
concentrated on the identification, workflows and interactions among the
functional requirements of the evolving system.
while, system design modeling incorporates the nonfunctional
requirements.
That is, design modeling focuses on how the system will operate.
The purpose of analysis is to figure out what the business needs
are, while the purpose of design is to decide how to build the
system.
The major activity that takes place during design is evolving the set of
analysis representations into design representations.
… 3
The initial part of design is examining several designing strategies,
and deciding which will be used to build the to-be system.
System design modeling includes:
Class and object design:
To design individual classes and methods that are used to map out the nuts and
bolts of the system.
Database design:
To illustrate how the data generated by objects of the classes is going to be
stored.
User interaction design:
To depict how users are going to interact with the system.
Deployment and architecture design:
To model how the system is going to be deployed and organized for access.
Verify and validate the analysis models
4
A system design model is evolved or derived from the system analysis
model after the analysis method has been verified and validated completely.
System analysis model verification and validation involves:
Balancing functional and structural models:
Ensure that the use-case diagram, use-case descriptions and activity diagrams are
consistent with the class diagram and CRC-cards by cross checking
If every class in the class diagram are associated with at least one use-case from the use-
case diagram.
If every activity or action in an activity diagram related to one or more methods of the
class diagram (or responsibility in CRC-cards).
If every object node on an activity diagram is associated with an instance of a class on a
class diagram (i.e., an object) and a CRC card or an attribute contained in a class and on a
CRC card.
If every attribute and association/aggregation relationships contained on a CRC card (and
connected to a class on a class diagram) should be related to the subject or object of an
event in a use-case description.
… 5
System analysis model verification and validation involves:
Balancing functional and behavioral models:
ensure the consistency of the activity diagrams, use-case descriptions, and
use-case diagrams with the sequence diagrams, communication diagrams and
behavioral state machines by cross-checking:-
If all sequence and communication diagrams, are associated with a use case on the
use-case diagram and a use-case description.
If all actors on sequence diagrams and communication diagrams, are associated
with actors on the use-case diagram or referenced in the use case description, and
vice versa.
If all messages on sequence and communication diagrams, transitions on
behavioral state machines, are related to activities and actions on an activity
diagram and events listed in a use-case description, and vice versa.
If all complex objects represented by an object node in an activity diagram must
have a behavioral state machine that represents the object’s lifecycle, and vice
versa.
… 6
System analysis model verification and validation involves:
Balancing structural and behavioral models:
ensure the consistency of the CRC cards and class diagrams with the
sequence diagrams, communication diagrams and behavioral state
machines by cross-checking:-
If all actors mentioned in sequence or communication diagram are
instance of the class in the class diagram..
If all objects in a behavioral state machine diagram are instance of class in
the class diagram.
If all objects in sequence and communication diagram instances of class in
the class diagram.
If all the messages in sequence and communication diagrams are listed as
a method in one or more classes in the class diagram.
Evolving analysis models into design models
7
Analysis model focuses on defining the functional
requirements,
where as, design involves refining system analysis by
adding(considering) the non-functional requirements too.
While evolving analysis model into design model, carefully review the use-
cases and the current set of classes (their attributes, operations and
relationships) by asking:
Are all the classes necessary?
Are there any missing classes?
Are the classes fully defined?
Are any attributes or methods missing?
Do the classes have any unnecessary attributes and methods?
Is the current representation of the evolving system optimal?
… 8
There are three ways to evolve analysis models into design models:
1. Factoring:- is the process of separating out a module into a stand-alone
module.
The new module can be a new class or a new method.
The new class can be related to the existing classes using either
aggregation (has-parts) or generalization (a-kind-of) relationships.
Example: Person class can be factored (or abstracted) from Library-Mgr,
Librarian and Student classes.
Factoring involves abstraction and refinement; the above example is
abstraction.
Refinement is quite the opposite, in refinement we identified additional
subclass(es) from the one class.
Example: Book class can be refined into AcademicBook and
NonAcademicBook classes.
… 9
There are three ways to evolve analysis models into design models:
2. Partitions and collaborations:- A partition is the object-oriented
equivalent of a subsystem, where a subsystem is a decomposition of a
larger system into its component systems.
Partitioning is necessary, because the factoring, abstracting and refining of
classes is going to overwhelming the design.
Partitioning is done by identifying the collaborating classes and group them
together into one component.
Package diagrams suits best to illustrate subsystems( or components).
… 10
There are three ways to evolve analysis models into design models:
3. Layers: layering involves illustrating the evolving system’s environment
(like the architecture design, data base design and user interface
design of the system).
• Foundation layer:-
• contains built-in classes for data types, date and time (or utility classes) and
classes for data structures. Ever modified by programmers.
• Problem domain layer:-
• involves a more detailed class diagram specifying coupling and cohesion.
• Data management layer:- is all about data base design using persistent
diagram.
• Human-computer interaction layer:- illustrates user interaction mechanisms.
• Physical architecture layer:- addresses how the software will execute on
specific computers and networks.
Package diagram 11
In UML, collaborations, partitions, and layers can be represented
by a higher-level construct: a package.
In fact, a package serves the same purpose as a folder on your computer.
When packages are used in programming languages such as Java,
packages are actually implemented as folders.
A package is a general construct that can be applied to any of the
elements in UML models.
A package diagram is a diagram composed only of packages.
A package diagram is effectively a class diagram that only shows
packages.
… 12
A package diagram illustrates the organization and grouping of
related classes and components of a system into subsystems.
It visually represents the dependencies and relationships between
these packages, helping to illustrate how different parts of a system
(subsystems) interact with each other.
Elements of a package diagram 13
A package:
Is a logical grouping of UML elements.
Is used to simplify UML diagrams by grouping
related elements into a single higher-level
element.
• Practically there are five basic types of formats that can be used
to store objects for application systems:
• Files, Relational database, Object-relational database, Object-
oriented database and NoSQL data stores.
1. Files: - allows a sequential and random-access format list of
storing a data.
Files are important for sequential access applications that only
requires read and write operations on the data.
Files are very inefficient for update and search operations.
Files also don’t support storing relational data at all.
… 20
• A user interface is the part of the system with which the users
interact. From the user’s point of view, the user interface is the
system.
• It includes:
• the screen displays that provide navigation through the system,
• the screens and forms that capture data,
• and the reports that the system produces (whether on paper, on
the screen, or via some other medium).
• Interface design is the process of defining how a system will
interact with external entities (e.g., customers, suppliers, other
systems).
… 32
• The HCI layer defines how users interact with the system and the nature of
the inputs and outputs that the system accepts and produces.
• The UI of the HCI layer is independent of the data management layer.
• But it is dependent on both the problem domain and physical architecture
layers.
• Even though there are command-line user interfaces (e.g., Terminal on Mac
OSX), we are only focusing on GUI that use windows, menus, icons, etc.
• GUI-based user interface comprises three fundamental parts:-
• Navigation mechanism- buttons, menus, links and etc.
• Input mechanism:- forms
• Output mechanism:- tables, reports, webpages and etc.
Principles of good GUI design 33
• Layout –
• The interface should be a series of areas on the screen that are used consistently
for different purposes. For example, a top area for commands and navigation, a
middle area for information to be input or output, and a bottom area for status
information.
• Content Awareness –
• Users should always be aware of where they are in the system and what
information is being displayed.
• Aesthetics –
• Interfaces should be functional and inviting to users through careful use of white
space, colors, and fonts. Tradeoff between whitespace or content.
… 34
• User Experience –
• Although ease of use and ease of learning often lead to similar design decisions,
sometimes there is a trade-off between use or learning
• Consistency –
• Consistency in interface design enables users to predict what will happen before
they perform a function. It is one of the most important elements in ease of
learning, ease of use, and aesthetics.
• Minimal User Effort –
• The interface should be simple to use. Most designers plan on having no more
than three mouse clicks from the starting menu until users perform work.
… 35
• To achieve the above principles of good GUI design, understanding how
human brain perceive information (Gestalt Psychology) is important:
• Figure ground:- brain perceives based on the differentiation of foreground and
background.
• Proximity: - when elements are placed close together, they tend to be perceived as
a whole.
• Closurity:- our brain fills a gap, when an object is incomplete or a space is not
completely enclosed.
• Continuity:- Continuation occurs when the eye is compelled to move through one
object and continue to another object
• Similarity:- Similarity occurs when objects look similar to one another. People
often perceive them as a group or pattern.
… 36
• Server-based architecture:
• the server performing all four functions.
• the clients enabled users to send and receive messages to and from the server.
• Application software is developed and stored on one computer, and all data are on
the same computer.
• Server will get busy.
… 42
• Client-based architecture:
• the clients are personal computers on a local area network (LAN), and the server
computer is a server on the same network.
• The application soft ware on the client computers is responsible for the
presentation logic, the application logic, and the data access logic; the server
simply stores the data
• Problem is data has to be traveled to client side for processing.
… 43
• Client-server architecture:
• Tries to balance the workload on client and server. The client is responsible for
the presentation logic, whereas the server is responsible for the data access
logic and data storage.
• Client-server architectures are scalable.
• Client-server architectures can be 2-tier, 3-tier, 4-tier or n-tier architectures
based on how the application layer is split between client and server.
… 44
• Deployment diagram:
• Deployment diagrams are used to represent the relationships between the
hardware components used in the physical infrastructure of an information
system.
• For example, when designing a web-based information system that will use a
wide area network, a deployment diagram can be used to show the
communication relationships client, database server and application server.
… 45