Debark University CS: Department of

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 18

Debark University

Department of cs

Object Oriented System Analysis & Design


COSC3092

Jan, 2020
03/12/2021 Shimels T. 1
CHAPTER SIX

DETERMINING HOW TO BUILD YOUR SYSTEM: Object Oriented Design

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

• Visualizing, specifying, constructing, and documenting a software


intensive system demands
– System be viewed from a number of perspectives
• Different stakeholders, end users, analysts, developers, system
integrators, testers, technical writers, and project managers – each bring
different agendas to a project
– each looks at the system in different ways at different times over the
project’s life
• The most important artifact that can be used to manage these different
viewpoints and so control development of a system throughout its life
cycle

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…

Layer Description Skillset

This layer wraps access to the logic of For user interfaces:


your system. There are two categories
of interface class – user interface (UI)
 User interface design skills
classes that provide people access to
your system and system interface (SI)  Usability skills
classes that provide access to external  Ability to work closely with
systems to your system. Java Server
Interface stakeholders
Pages (JSPs) and graphical user
interface (GUI) screens implemented
via the Swing class library are
For system interfaces:
commonly used to implement UI
classes within Java. Web services and  API design skills
CORBA wrapper classes are good  Legacy analysis skills
opti ons for implementi ng SI classes.

03/12/2021 Shimels T. 9
Cont …

This layer implements the concepts


 Analysis skills to identify
pertinent to your business domain such as
domain classes
Student or Seminar, focusing on the data
 Design skills to determine how
aspects of the business objects, plus
Domain to implement the domain classes
behaviors specific to individual objects.
 Domain modeling skills, in
Enterprise Java Bean (EJB) entity classes
particular UML class modeling
are a common approach to implementing
domain classes within Java.

 Analysis skills to identify


process classes and process
logic
The process layer implements business  Design skills to determine how
logic that involves collaborating with to implement the process classes
Process
several domain classes or even other  Modeling skills, in
process classes. particular activity
modeling, flow charting,
and sequence diagramming

03/12/2021 Shimels T. 10
Cont…

Persistence layers encapsulate the  Object/relational (O/R) mapping


capability to store, retrieve, and delete  Architectural skills so you can
objects/data permanently without choose the right database
revealing details of the underlying encapsulation strategy
Persistence
storage technology. Often implement  Modeling skills, in
between your object schema and your particular class modeling
database schema and there are various and physical data modeling
available to you.

 Analysis skills to identify what


needs to be built
System classes provide operating-system-  Architectural and design skills
specific functionality for your to determine how to implement
applications, isolating your software from the classes
System
the operating system (OS) by wrapping  Modeling skills, in
OS-specific features, increasing the particular class modeling,
portability of your application. sequence diagramming,
and state modeling

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.

 This service is often implemented via the use of middleware.


03/12/2021 Shimels T. 13
User interface design

• In many ways, user interface design is an art.


• The goal is to make the interface pleasing to the eye and simple to use
while minimizing the effort the users need to accomplish their work.
• The system is never an end in itself; it is merely a means to accomplish
the business of the organization

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

You might also like