10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design...

43
10-1 © Prentice Hall, 2007 Topic 10: Topic 10: Design Elements Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey A. Hoffer

Transcript of 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design...

Page 1: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

10-1© Prentice Hall, 2007

Topic 10:Topic 10:Design ElementsDesign Elements

Object-Oriented Systems Analysis and Design

Joey F. George, Dinesh Batra,

Joseph S. Valacich, Jeffrey A. Hoffer

Page 2: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-2© Prentice Hall, 2007

Chapter ObjectivesChapter 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.

Page 3: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-3© Prentice Hall, 2007

Page 4: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-4© Prentice Hall, 2007

What Is a Design Element?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.

Page 5: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-5© Prentice Hall, 2007

What Is a Design Architecture?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.

Page 6: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-6© Prentice Hall, 2007

What Is a Tiered (or Layered) What Is a Tiered (or Layered) Architecture?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

Page 7: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-7© Prentice Hall, 2007

Single-Tier ArchitecturesSingle-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

Page 8: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-8© Prentice Hall, 2007

Two-Tier ArchitecturesTwo-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

Page 9: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-9© Prentice Hall, 2007

What Is Middleware?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.

Page 10: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-10© Prentice Hall, 2007

Page 11: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-11© Prentice Hall, 2007

Limitations of Client-Server Limitations of Client-Server ArchitecturesArchitectures

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

Page 12: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-12© Prentice Hall, 2007

Three-Tier ArchitecturesThree-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

Page 13: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-13© Prentice Hall, 2007

Note: presentation, business logic, and or data can be spread across multiple layers, creating N-tier architectures.

Page 14: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-14© Prentice Hall, 2007

Presentation, business logic, and or data can be spread across multiple layers, creating N-tier architectures.

Page 15: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-15© Prentice Hall, 2007

Mapping from Analysis to Design Mapping from Analysis to Design ClassesClasses

1 Analysis Class 1 Design Class1 Analysis Class n Design Classes n Analysis Classes 1 Design Classn Analysis Classes 1 Package n Analysis Classes 1 Component

Page 16: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-16© Prentice Hall, 2007

What is a Software Component?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

Page 17: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-17© Prentice Hall, 2007

Characteristics of ComponentsCharacteristics 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

Page 18: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-18© Prentice Hall, 2007

Component TerminologyComponent 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

Page 19: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-19© Prentice Hall, 2007

What Is a Component Standard?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

Page 20: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-20© Prentice Hall, 2007

COM/COM+/Distrubted COM (DCOM)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

Page 21: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-21© Prentice Hall, 2007

CORBACORBA– 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)

Page 22: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-22© Prentice Hall, 2007

EJBEJB

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

Page 23: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-23© Prentice Hall, 2007

Database Middleware StandardsDatabase Middleware Standards

Microsoft’s ODBC – Open Database Connectivity

Microsoft’s ADO – ActiveX Data Objects

Sun’s JDBC – Java Database Connectivity

Page 24: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-24© Prentice Hall, 2007

Comparison of OMG, Microsoft, and Sun

Limitations:1. Tightly coupled2. Binary 3. Proprietary

Page 25: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-25© Prentice Hall, 2007

XML and SOAPXML 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) – XML-based protocol for exchanging messages between applications operating in different layers

Page 26: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-26© Prentice Hall, 2007

What Is a Framework?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)

Page 27: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-27© Prentice Hall, 2007

Microsoft .NETMicrosoft .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

Page 28: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-28© Prentice Hall, 2007

Features of Microsoft .NET Features of Microsoft .NET FrameworkFramework

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

Page 29: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-29© Prentice Hall, 2007

Sun J2EESun 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

Page 30: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-30© Prentice Hall, 2007

Features of Java J2EEFeatures 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

Page 31: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-31© Prentice Hall, 2007

Page 32: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-32© Prentice Hall, 2007

Browser-Based ScriptingBrowser-Based Scripting

Logic executed at the browser layer (presentation)

Enhances HTML with interactive functionality

Two main scripting languages:– JavaScript– VBScript

Page 33: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-33© Prentice Hall, 2007

Page 34: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-34© Prentice Hall, 2007

What is a Package?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

Page 35: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-35© Prentice Hall, 2007

Characteristics of PackagesCharacteristics of Packages

CohesivenessAllocation of resources among development

teamsUser typesPropensity to changeDevelopment phaseSeparate utilities from system-specific

components

Page 36: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-36© Prentice Hall, 2007

In UML, packages are represented as rectangles with tabs in the top left corner. Dependencies between packages are shown with dashed arrow lines.

Page 37: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-37© Prentice Hall, 2007

What Is a Design Class What Is a Design Class Diagram?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.

Page 38: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-38© Prentice Hall, 2007

Verifying Responsibility Verifying Responsibility AllocationAllocation

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

Page 39: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-39© Prentice Hall, 2007

VisibilityVisibility

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

Page 40: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-40© Prentice Hall, 2007

Attribute TypesAttribute 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

Page 41: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-41© Prentice Hall, 2007

Visibility is shown by minus signs (private) or plus signs (public)

Attribute types and full signatures are shown

Page 42: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-42© Prentice Hall, 2007

Page 43: 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.

Topic 10 10-43© Prentice Hall, 2007

RecapRecap

After studying this chapter we learned to:– Design 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.