12-1 © Prentice Hall, 2004 Chapter 12: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey A. Hoffer
Chapter © Prentice Hall, 2004 Chapter Objectives Af ter studying this chapter you should be able to: – Understand 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 © Prentice Hall, 2004
Chapter © Prentice Hall, 2004 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 © Prentice Hall, 2004 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 © Prentice Hall, 2004 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 © Prentice Hall, 2004 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 © Prentice Hall, 2004 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 © Prentice Hall, 2004 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 © Prentice Hall, 2004
Chapter © Prentice Hall, 2004 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 © Prentice Hall, 2004 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 © Prentice Hall, 2004 Note: presentation, business logic, and or data can be spread across multiple layers, creating N-tier architectures.
Chapter © Prentice Hall, 2004 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 © Prentice Hall, 2004 Characteristics of Components – Used for specific commonly used purpose – Collection of classes and interfaces – Hidden implementation details – Plug-and-play capability – Third-party developed, typically in binary form – Reusable in many applications – Well-tested and relatively error-free
Chapter © Prentice Hall, 2004 What Is a Component Standard? An agreed-upon format for defining interfaces and implementations of components Examples: – Microsoft COM+ – OMG’s CORBA – Sun Microsystem’s Enterprise Java Beans (EJB) – Database Middleware Standards (ODBC, ADO, JDBC) – XML/SOAP
Chapter © Prentice Hall, 2004 COM+ 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 © Prentice Hall, 2004 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 – Interface is managed by Object Request Brokers (ORBs)
Chapter © Prentice Hall, 2004 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 © Prentice Hall, 2004 Database Middleware Standards Microsoft’s ODBC – Open Database Connectivity Microsoft’s ADO – ActiveX Data Objects Sun’s JDBC – Java Database Connectivity
Chapter © Prentice Hall, 2004 Comparison of OMG, Microsoft, and Sun Limitations: 1.Tightly coupled 2.Binary 3.Proprietary
Chapter © Prentice Hall, 2004 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) – XML- based protocol for exchanging messages between applications operating in different layers
Chapter © Prentice Hall, 2004 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 © Prentice Hall, 2004 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 © Prentice Hall, 2004 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 © Prentice Hall, 2004
Chapter © Prentice Hall, 2004
Chapter © Prentice Hall, 2004 In UML, packages are represented as rectangles with tabs in the top left corner.
Chapter © Prentice Hall, 2004 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 © Prentice Hall, 2004
Chapter © Prentice Hall, 2004 Guidelines for Allocating Responsibilities Information access done by information expert Object creation done by aggregating class Aim for loose coupling Aim for high cohesion
Chapter © Prentice Hall, 2004
Chapter © Prentice Hall, 2004 Recap After studying this chapter we learned to: – Understand 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.