Debark University CS: Department of
Debark University CS: Department of
Debark University CS: Department of
Department of cs
Jan, 2020
03/12/2021 Shimels T. 1
CHAPTER SIX
Design vs Architecture
Architecture and Design pattern
Layering your models: class type architecture
Rational Persistence Modeling
User interface design
03/12/2021 Shimels T. 2
OOD
• It is the transformation of analysis models.
• It is concerned with implementing the requirements identified during OOA in
the application domain.
• It is the process of invention (development) and adoption (implementation).
• Develop design models.
• Specify object interfaces.
• Design the system architecture.
03/12/2021 Shimels T. 3
Software Architecture
03/12/2021 Shimels T. 4
Design pattern
• The pattern is a description of the problem and the essence of its solution,
so that the solution may be reused in different settings.
• The pattern is not a detailed specification. Rather, you can think of it as a
description of accumulated wisdom and experience, a well-tried solution to
a common problem.
• Patterns have made a huge impact on object-oriented software design.
• Design patterns are usually associated with object-oriented design.
• Published patterns often rely on object characteristics such as inheritance
and polymorphism to provide generality.
• As well as being tested solutions to common problems, they have become a
vocabulary for talking about a design. You can therefore explain your
design by describing the patterns that you have used.
03/12/2021 Shimels T. 5
Design patterns and Architectural patterns
• Design patterns reside in the domain of modules and interconnections.
• At a higher level there are Architectural patterns that are larger in scope,
usually describing an overall pattern followed by an entire system.
• Design Patterns represent a lower level of system structure than software
architecture
• Architectural patterns tend to be focussed on middleware. They are good
at capturing:
o Concurrency
o Distribution
o Synchronization
03/12/2021 Shimels T. 6
Types of design patterns
• Creational patterns:
• Deal with initializing and configuring classes and objects
• Structural patterns:
• Deal with decoupling interface and implementation of classes and objects
• Composition of classes or objects
• Behavioural patterns:
• Deal with dynamic interactions among societies of classes and objects
• How they distribute responsibility
03/12/2021 Shimels T. 7
Class Type Architecture: A Strategy for Layering Software Applications
…
03/12/2021 Shimels T. 8
Cont…
03/12/2021 Shimels T. 9
Cont …
03/12/2021 Shimels T. 10
Cont…
03/12/2021 Shimels T. 11
Cont. .
As you see in Figure 1, interface classes may send messages to domain
classes but not to persistence classes.
Domain classes may send messages to persistence classes, but not to
interface classes.
By restricting the flow of messages to only one direction, you dramatically
increase the portability of your system by reducing the coupling between
classes.
For example, the domain classes don’t rely on the user interface of the
system, implying that you can change the interface without affecting the
underlying business logic.
03/12/2021 Shimels T. 12
Cont…
All types of classes may interact with system classes.
This is because your system layer implements fundamental software features such
as inter-process communication (IPC), a service classes use to collaborate with
classes on other computers, and audit logging, which classes use to record critical
actions taken by the software.
For example, if your user interface classes are running on a personal computer
(PC) and your domain classes are running on an EJB application server on another
machine, and then your interface classes will send messages to the domain classes
via the IPC service in the system layer.
03/12/2021 Shimels T. 14
03/12/2021 Shimels T. 15
03/12/2021 Shimels T. 16
Login UI
03/12/2021 Shimels T. 17
03/12/2021 Shimels T. 18