330 likes | 455 Views
Team-Based Development ISYS 321. Some of these slides were excerpted from: Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey A. Hoffer Chapter 12: Design Elements. What Is a Design Element?. Either a design class or a component
E N D
Team-Based DevelopmentISYS 321 Some of these slides were excerpted from: Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey A. Hoffer Chapter 12: Design Elements
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.
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 (integration is not a problem)
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
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
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
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. For instance, a system in which the front-end GUI (application layer) communicates with a database using ODBC (Open Database Connectivity – middleware).
Limitations of Client-Server Architectures • Thick clients – heavy burden placed on each client machine (too much processing) • Application changes need to be distributed to many clients • Typically use proprietary technologies, hindering application integration
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
Note: presentation, business logic, and or data can be spread across multiple layers, creating N-tier architectures.
Mapping from Analysis to Design Classes • 1 Analysis Class 1 Design Class • 1 Analysis Class n Design Classes(i.e.you may find you have 2 categories of Employee, FT and PT employee) • n Analysis Classes 1 Design Class(i.e. you may want to combine classes such as in the case of denormalization) • n Analysis Classes 1 Package(i.e. you may want to combine a group of classes with similar functionality, such as Customer and Products Purchased under CustomerRelations) • n Analysis Classes 1 Component(i.e. you may need to purchase a commerically available component rather than build in-house)
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
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
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
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)
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
Database Middleware Standards • Microsoft’s ODBC – Open Database Connectivity • Microsoft’s ADO – ActiveX Data Objects • Sun’s JDBC – Java Database Connectivity
Comparison of OMG, Microsoft, and Sun • Limitations: • Tightly coupled • Binary • Proprietary
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
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)
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
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
In UML, packages are represented as rectangles with tabs in the top left corner.
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.
Guidelines for Allocating Responsibilities • Information access done by information expert • Object creation done by aggregating class • Aim for loose coupling • Aim for high cohesion
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.