10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design...
-
Upload
hugh-barrett -
Category
Documents
-
view
220 -
download
0
Transcript of 10-1 © Prentice Hall, 2007 Topic 10: Design Elements Object-Oriented Systems Analysis and Design...
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
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.
Topic 10 10-3© Prentice Hall, 2007
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.
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.
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
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
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
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.
Topic 10 10-10© Prentice Hall, 2007
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
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
Topic 10 10-13© Prentice Hall, 2007
Note: presentation, business logic, and or data can be spread across multiple layers, creating N-tier architectures.
Topic 10 10-14© Prentice Hall, 2007
Presentation, business logic, and or data can be spread across multiple layers, creating N-tier architectures.
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
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
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
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
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
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
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)
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
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
Topic 10 10-24© Prentice Hall, 2007
Comparison of OMG, Microsoft, and Sun
Limitations:1. Tightly coupled2. Binary 3. Proprietary
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
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)
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
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
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
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
Topic 10 10-31© Prentice Hall, 2007
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
Topic 10 10-33© Prentice Hall, 2007
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
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
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.
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.
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
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
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
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
Topic 10 10-42© Prentice Hall, 2007
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.