Chapter 12: Design Elements Object-Oriented Systems Analysis and Design

advertisement
Chapter 12:
Design Elements
Object-Oriented Systems Analysis and
Design
Joey F. George, Dinesh Batra,
Joseph S. Valacich, Jeffrey A. Hoffer
© Prentice Hall, 2007
12-1
Chapter Objectives

After studying this chapter you should be
able to:
– Describe the different design architecture
configurations.
– Understand the use of components in systems
design.
– Understand the different component standards.
– Map an analysis class diagram into a design
class diagram.
Chapter 12
© Prentice Hall, 2007
12-2
Chapter 12
© Prentice Hall, 2007
12-3
What Is a Design Element?

Either a design class or a component:

Design Class – an enhanced version of an analysis
class that includes details regarding attributes and
methods, including visibility, arguments, and data
types.

Component – a replaceable part of a system that
provides a clearly defined function through a set
of interfaces.
Chapter 12
© Prentice Hall, 2007
12-4
What Is a Design Architecture?

An overall blueprint of the design of a system.

Goal of design architecture – ability to scale and
evolve over time.

Enterprise Application Design (EAD) – the
process of designing applications that embrace
change.
Chapter 12
© Prentice Hall, 2007
12-5
What Is a Tiered (or Layered)
Architecture?

The partitioning of a system into layers such that
each layer performs a specific type of functionality
and communicates with the layers that adjoin it.

Options
–
–
–
–
Single-tier
Two-tier
Three-tier
N-tier
Chapter 12
© Prentice Hall, 2007
12-6
Single-Tier Architectures

One computer performing all tasks

Either a standalone PC, or a mainframe
servicing many dumb terminals

Rare for new systems, not very scalable
Chapter 12
© Prentice Hall, 2007
12-7
Two-Tier Architectures

Client-Server architecture

Client – Application layer (front-end), performs
business rules and user interface

Server – Database layer (back end), provides data
access

Middleware – the communication interface
between client and server
Chapter 12
© Prentice Hall, 2007
12-8
What Is Middleware?

Software that provides one set of interfaces
for connection to a client and another set of
interfaces for connection to a server,
thereby providing the possibility of
connections between one of several clients
with one of several servers.
Chapter 12
© Prentice Hall, 2007
12-9
Chapter 12
© Prentice Hall, 2007
12-10
Limitations of Client-Server
Architectures

Thick clients – heavy burden placed on each
client machine

Application changes need to be distributed
to many clients

Typically use proprietary technologies,
hindering application integration
Chapter 12
© Prentice Hall, 2007
12-11
Three-Tier Architectures

Three layers are:
– Presentation – front tier, providing user
interface, perhaps with formatting and
constraint-checking rules
– Business rules – middle tier, addressing logic
and decisions for the system, sometimes called
application layer
– Data – back tier, addressing data storage and
access, with some rules regarding data integrity
Chapter 12
© Prentice Hall, 2007
12-12
Note: presentation, business logic, and or data can
be spread across multiple layers, creating N-tier
architectures.
Chapter 12
© Prentice Hall, 2007
12-13
Presentation, business logic, and or data can be
spread across multiple layers, creating N-tier
architectures.
Chapter 12
© Prentice Hall, 2007
12-14
Mapping from Analysis to Design
Classes
1 Analysis Class  1 Design Class
 1 Analysis Class  n Design Classes
 n Analysis Classes  1 Design Class
 n Analysis Classes  1 Package
 n Analysis Classes  1 Component

Chapter 12
© Prentice Hall, 2007
12-15
What is a Software Component?

A software element with a well-defined
interface and functionality for a specific
purpose that can be deployed in a variety of
applications using plug-and-play capability

Invariably purchased from a third party
Chapter 12
© Prentice Hall, 2007
12-16
Characteristics of Components
–
–
–
–
–
–
–
–
–
Used for specific commonly used purpose
Collection of classes and interfaces
Hidden implementation details
Plug-and-play capability
Usually distributed in binary, executable form
Third-party developed
Reusable in many applications
Well-tested and relatively error-free
Written in any language that supports component
standard’s interface conventions
Chapter 12
© Prentice Hall, 2007
12-17
Component Terminology
Run-time Environment – classes and
components required to support services
like handling secure transactions during
run-time
 Transaction – all-or-nothing unit of
business work. Requires ACID:

– Atomiticity, consistency, isolation, and
durability
Chapter 12
© Prentice Hall, 2007
12-18
What Is a Component Standard?

An agreed-upon format for defining interfaces
and implementations of components

Examples:
– Microsoft COM/COM+/DCOM
– OMG’s CORBA
– Sun Microsystem’s Enterprise Java Beans (EJB)
– Database Middleware Standards (ODBC, ADO,
JDBC)
– XML/SOAP
Chapter 12
© Prentice Hall, 2007
12-19
COM/COM+/Distrubted COM (DCOM)

Component Object Model (COM) from Microsoft

Run-time environment for middle-tier components

Supports transactions, identity, and security
services, and allows components to call each other
locally or remotely through a messaging service
Chapter 12
© Prentice Hall, 2007
12-20
CORBA
– Common Object Request Broker Architecture
– Published by Object Management Group
(OMG)
– Component standard for distributed and
heterogeneous network
– Objects written in different languages
communicate through Interface Definition
Language (IDL)
– Interface is managed by Object Request
Brokers (ORBs)
Chapter 12
© Prentice Hall, 2007
12-21
EJB

Enterprise Java Beans

Component-based distributed computing
architecture

EJB is a server-side component model for
managing objects in a distributed environment

EJB requires CORBA for communications
Chapter 12
© Prentice Hall, 2007
12-22
Database Middleware Standards

Microsoft’s ODBC – Open Database
Connectivity

Microsoft’s ADO – ActiveX Data Objects

Sun’s JDBC – Java Database Connectivity
Chapter 12
© Prentice Hall, 2007
12-23
Comparison of OMG, Microsoft, and Sun
Limitations:
1. Tightly coupled
2. Binary
3. Proprietary
Chapter 12
© Prentice Hall, 2007
12-24
XML and SOAP

Text-based, loosely coupled, non-proprietary
internet-oriented standard for inter-layer
communication

eXtensible Markup Language (XML) – method
for putting structured data into text format, similar
to HTML

Simple Object Access Protocol (SOAP) – XMLbased protocol for exchanging messages between
applications operating in different layers
Chapter 12
© Prentice Hall, 2007
12-25
What Is a Framework?
A collection of components, consisting of
code and interfaces written in a specific
language, that solves or helps build
applications.
Two main competitors:
• Microsoft .NET
• Sun Java 2 Enterprise Editiion (J2EE)
Chapter 12
© Prentice Hall, 2007
12-26
Microsoft .NET

Development framework that integrates COM+
and Active Server Pages (ASP) technologies for
B2C applications, with support for XML/SOAP
Web services for B2B applications
ActiveX – OLE/COM based component
 ADO, ADO .NET – database middleware
 ASP, ASP.NET – dynamic HTML generation

Chapter 12
© Prentice Hall, 2007
12-27
Features of Microsoft .NET
Framework

Visual Studio .NET – development environment

C#, Visual C++, and Visual Basic .NET – the
three main programming languages for developint
.NET applications

Common Language Runtime (CLR) – the
runtime environment that loads/executes code,
manages memory, provides security, exception
handling and interoperability
Chapter 12
© Prentice Hall, 2007
12-28
Sun J2EE

Java 2 Enterprise Edition

Development framework that provides a specification
of architectural components designed to work
together to define a complete enterprise architecture,
with support for XML/SOAP and Web services
EJB – Java-based component standard
 JDBC – database middleware
 Java Server Pages, Servlets – dynamic HTML
generation

Chapter 12
© Prentice Hall, 2007
12-29
Features of Java J2EE

Java Virtual Machine (JVM) – interpreter for executing Java
compiled code (bytecode)

Remote Method Invocation (RMI) – middleware that allows Java
programs running on different computers to access each others’
objects/methods

Applet – Java program that runs in the browser as part of a web page

Servlet – Java program executed on a Web server

Java Server Pages (JSP) – technology that mixed Java and HTML
for dynamic web page generation
Chapter 12
© Prentice Hall, 2007
12-30
Chapter 12
© Prentice Hall, 2007
12-31
Browser-Based Scripting

Logic executed at the browser layer
(presentation)
 Enhances HTML with interactive
functionality
 Two main scripting languages:
– JavaScript
– VBScript
Chapter 12
© Prentice Hall, 2007
12-32
Chapter 12
© Prentice Hall, 2007
12-33
What is a Package?

A general-purpose mechanism for
organizing design elements into groups

Package diagram – a diagram that shows the
packages and the relationships between
them
Chapter 12
© Prentice Hall, 2007
12-34
Characteristics of Packages

Cohesiveness
 Allocation of resources among development
teams
 User types
 Propensity to change
 Development phase
 Separate utilities from system-specific
components
Chapter 12
© Prentice Hall, 2007
12-35
In UML, packages are represented as rectangles with tabs
in the top left corner. Dependencies between packages
are shown with dashed arrow lines.
Chapter 12
© Prentice Hall, 2007
12-36
What Is a Design Class
Diagram?

A design class diagram shows the data types of the
attributes, the return types and arguments of the
operations, and the visibility specifications for all
attributes and operations.

Signature – the return type, name, and argument
list of a method

Interfaces to classes are based on signatures.
Chapter 12
© Prentice Hall, 2007
12-37
Verifying Responsibility
Allocation
Pattern – a named description of a problem
and solution that can be applied to new
contexts
 Responsibility assignment in patterns:

– Information expertise (expert pattern)
– Object creation (creator pattern)
– Loose coupling and strong cohesion
Chapter 12
© Prentice Hall, 2007
12-38
Visibility

The characteristics of an attribute or an
operation that reveal whether it can be
accessed directly
 Three levels of visibility:
– Public – visible to any requesting object
– Private – visible to the owning object only
– Protected – visible to the owning object, objects
of the same class, and objects of subclasses
Chapter 12
© Prentice Hall, 2007
12-39
Attribute Types

In Design class diagram, attribute types are
explicitly displayed

In the following slide, you see:
– Visibility of attributes and operations
– Attribute types
– Responsibilities represented by methods
– Full method signatures including return types and
parameters
Chapter 12
© Prentice Hall, 2007
12-40
Visibility is
shown by minus
signs (private) or
plus signs (public)
Attribute types
and full signatures
are shown
Chapter 12
© Prentice Hall, 2007
12-41
Chapter 12
© Prentice Hall, 2007
12-42
Download