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