33
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 Chapter 12: Design Elements Team-Based Team-Based Development Development ISYS 321 ISYS 321

Team-Based Development ISYS 321

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: Team-Based Development ISYS 321

Some of these slides were excerpted from:

Object-Oriented Systems Analysis and DesignJoey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey A. Hoffer

Chapter 12: Design ElementsChapter 12: Design Elements

Team-Based Team-Based DevelopmentDevelopment

ISYS 321ISYS 321

Page 2: Team-Based Development ISYS 321
Page 3: Team-Based Development ISYS 321

What Is a Design What Is a Design Element?Element?

Either a design class or a componentEither a design class or a component Design ClassDesign Class – an enhanced version of – an enhanced version of

an analysis class that includes details an analysis class that includes details regarding attributes and methods, regarding attributes and methods, including visibility, arguments, and data including visibility, arguments, and data types.types.

ComponentComponent – a replaceable part of a – a replaceable part of a system that provides a clearly defined system that provides a clearly defined function through a set of interfaces.function through a set of interfaces.

Page 4: Team-Based Development ISYS 321

What Is a Design What Is a Design Architecture?Architecture?

An overall blueprint of the design of a An overall blueprint of the design of a system.system.

Goal of design architecture – ability to Goal of design architecture – ability to scale and evolve over time.scale and evolve over time.

Enterprise Application Design (EAD)Enterprise Application Design (EAD) – the process of designing applications – the process of designing applications that embrace change (integration is not that embrace change (integration is not a problem)a problem)

Page 5: Team-Based Development ISYS 321

What Is a Tiered (or What Is a Tiered (or Layered) Architecture?Layered) Architecture? The partitioning of a system into layers The partitioning of a system into layers

such that each layer performs a such that each layer performs a specific type of functionality and specific type of functionality and communicates with the layers that communicates with the layers that adjoin it.adjoin it.

OptionsOptions– Single-tierSingle-tier– Two-tierTwo-tier– Three-tierThree-tier– NN-tier-tier

Page 6: Team-Based Development ISYS 321

Single-Tier Single-Tier ArchitecturesArchitectures

One computer performing all tasksOne computer performing all tasks Either a standalone PC, or a Either a standalone PC, or a

mainframe servicing many dumb mainframe servicing many dumb terminalsterminals

Rare for new systems, not very Rare for new systems, not very scalablescalable

Page 7: Team-Based Development ISYS 321

Two-Tier ArchitecturesTwo-Tier Architectures

Client-Server architectureClient-Server architecture

ClientClient – Application layer (front-end), – Application layer (front-end), performs business rules and user performs business rules and user interfaceinterface

ServerServer – Database layer (back end), – Database layer (back end), provides data accessprovides data access

MiddlewareMiddleware – the communication – the communication interface between client and serverinterface between client and server

Page 8: Team-Based Development ISYS 321

What Is Middleware?What Is Middleware?

Software that provides one set of Software that provides one set of interfaces for connection to a client interfaces for connection to a client and another set of interfaces for and another set of interfaces for connection to a server, thereby connection to a server, thereby providing the possibility of connections providing the possibility of connections between one of several clients with one between one of several clients with one of several servers.of several servers.

For instance, a system in which the front-end GUI For instance, a system in which the front-end GUI (application layer) communicates with a database using (application layer) communicates with a database using ODBC (Open Database Connectivity – middleware).ODBC (Open Database Connectivity – middleware).

Page 9: Team-Based Development ISYS 321
Page 10: Team-Based Development ISYS 321

Limitations of Client-Limitations of Client-Server ArchitecturesServer Architectures

Thick clients – heavy burden placed on Thick clients – heavy burden placed on each client machine (too much each client machine (too much processing)processing)

Application changes need to be Application changes need to be distributed to many clientsdistributed to many clients

Typically use proprietary technologies, Typically use proprietary technologies, hindering application integrationhindering application integration

Page 11: Team-Based Development ISYS 321

Three-Tier Three-Tier ArchitecturesArchitectures Three layers are:Three layers are:

– PresentationPresentation – front tier, providing user – front tier, providing user interface, perhaps with formatting and interface, perhaps with formatting and constraint-checking rulesconstraint-checking rules

– Business rulesBusiness rules – middle tier, – middle tier, addressing logic and decisions for the addressing logic and decisions for the system, sometimes called system, sometimes called application application layerlayer

– DataData – back tier, addressing data – back tier, addressing data storage and access, with some rules storage and access, with some rules regarding data integrityregarding data integrity

Page 12: Team-Based Development ISYS 321

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

Page 13: Team-Based Development ISYS 321

Mapping from Analysis Mapping from Analysis to Design Classesto 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)

Page 14: Team-Based Development ISYS 321

Characteristics of Characteristics of ComponentsComponents

– Used for specific commonly used purposeUsed for specific commonly used purpose– Collection of classes and interfacesCollection of classes and interfaces– Hidden implementation detailsHidden implementation details– Plug-and-play capabilityPlug-and-play capability– Third-party developed, typically in binary Third-party developed, typically in binary

formform– Reusable in many applicationsReusable in many applications– Well-tested and relatively error-freeWell-tested and relatively error-free

Page 15: Team-Based Development ISYS 321

What Is a Component What Is a Component Standard?Standard?

An agreed-upon format for defining An agreed-upon format for defining interfaces and implementations of interfaces and implementations of componentscomponents

Examples:Examples:– Microsoft COM+Microsoft COM+– OMG’s CORBAOMG’s CORBA– Sun Microsystem’s Enterprise Java Beans Sun Microsystem’s Enterprise Java Beans

(EJB)(EJB)– Database Middleware Standards (ODBC, ADO, Database Middleware Standards (ODBC, ADO,

JDBC)JDBC)– XML/SOAPXML/SOAP

Page 16: Team-Based Development ISYS 321

COM+COM+

Component Object Model (COM) from Component Object Model (COM) from MicrosoftMicrosoft

Run-time environment for middle-tier Run-time environment for middle-tier componentscomponents

Supports transactions, identity, and Supports transactions, identity, and security services, and allows security services, and allows components to call each other locally components to call each other locally or remotely through a messaging or remotely through a messaging serviceservice

Page 17: Team-Based Development ISYS 321

CORBACORBA

– Common Object Request Broker Common Object Request Broker ArchitectureArchitecture

– Published by Object Management Published by Object Management Group (OMG)Group (OMG)

– Component standard for distributed Component standard for distributed and heterogeneous networkand heterogeneous network

– Objects written in different Objects written in different languages communicate through languages communicate through Interface Definition LanguageInterface Definition Language

– Interface is managed by Object Interface is managed by Object Request Brokers (ORBs)Request Brokers (ORBs)

Page 18: Team-Based Development ISYS 321

EJBEJB

Enterprise Java BeansEnterprise Java Beans

Component-based distributed computing Component-based distributed computing architecturearchitecture

EJB is a server-side component model for EJB is a server-side component model for managing objects in a distributed managing objects in a distributed environmentenvironment

EJB requires CORBA for communicationsEJB requires CORBA for communications

Page 19: Team-Based Development ISYS 321

Database Middleware Database Middleware StandardsStandards Microsoft’s ODBC – Open Database Microsoft’s ODBC – Open Database

ConnectivityConnectivity

Microsoft’s ADO – ActiveX Data Microsoft’s ADO – ActiveX Data ObjectsObjects

Sun’s JDBC – Java Database Sun’s JDBC – Java Database ConnectivityConnectivity

Page 20: Team-Based Development ISYS 321

Comparison of OMG, Microsoft, and Sun

Limitations:1. Tightly coupled2. Binary 3. Proprietary

Page 21: Team-Based Development ISYS 321

XML and SOAPXML and SOAP

Text-based, loosely coupled, non-Text-based, loosely coupled, non-proprietary internet-oriented standard proprietary internet-oriented standard for inter-layer communicationfor inter-layer communication

eXtensible Markup Language (XML)eXtensible Markup Language (XML) – method for putting structured data – method for putting structured data into text format, similar to HTMLinto text format, similar to HTML

Simple Object Access Protocol Simple Object Access Protocol (SOAP)(SOAP) – XML-based protocol for – XML-based protocol for exchanging messages between exchanging messages between applications operating in different layersapplications operating in different layers

Page 22: Team-Based Development ISYS 321

What Is a Framework?What Is a Framework?

A collection of components, A collection of components, consisting of code and interfaces consisting of code and interfaces written in a specific language, that written in a specific language, that solves or helps build applications.solves or helps build applications.

Two main competitors:Two main competitors:• Microsoft .NETMicrosoft .NET• Sun Java 2 Enterprise Editiion (J2EE)Sun Java 2 Enterprise Editiion (J2EE)

Page 23: Team-Based Development ISYS 321

Microsoft .NETMicrosoft .NET

Development framework that integrates Development framework that integrates COM+ and Active Server Pages (ASP) COM+ and Active Server Pages (ASP) technologies for B2C applications, with technologies for B2C applications, with support for XML/SOAP Web services for support for XML/SOAP Web services for B2B applicationsB2B applications

ActiveX – OLE/COM based component ActiveX – OLE/COM based component ADO, ADO .NET – database middlewareADO, ADO .NET – database middleware ASP, ASP.NET – dynamic HTML generationASP, ASP.NET – dynamic HTML generation

Page 24: Team-Based Development ISYS 321

Sun J2EESun J2EE

Java 2 Enterprise EditionJava 2 Enterprise Edition Development framework that provides a Development framework that provides a

specification of architectural specification of architectural components designed to work together components designed to work together to define a complete enterprise to define a complete enterprise architecture, with support for XML/SOAP architecture, with support for XML/SOAP and Web servicesand Web services

EJB – Java-based component standardEJB – Java-based component standard JDBC – database middlewareJDBC – database middleware Java Server Pages, Servlets – dynamic Java Server Pages, Servlets – dynamic

HTML generationHTML generation

Page 25: Team-Based Development ISYS 321
Page 26: Team-Based Development ISYS 321
Page 27: Team-Based Development ISYS 321

In UML, packages are represented as rectangles with tabs in the top left corner.

Page 28: Team-Based Development ISYS 321

What Is a Design Class What Is a Design Class Diagram?Diagram?

A design class diagram shows the data A design class diagram shows the data types of the attributes, the return types of the attributes, the return types and arguments of the types and arguments of the operations, and the visibility operations, and the visibility specifications for all attributes and specifications for all attributes and operations.operations.

SignatureSignature – the return type, name, – the return type, name, and argument list of a methodand argument list of a method

Interfaces to classes are based on Interfaces to classes are based on signatures.signatures.

Page 29: Team-Based Development ISYS 321
Page 30: Team-Based Development ISYS 321

Guidelines for Allocating Guidelines for Allocating ResponsibilitiesResponsibilities

Information access done by Information access done by information expertinformation expert

Object creation done by Object creation done by aggregating classaggregating class

Aim for loose couplingAim for loose coupling Aim for high cohesionAim for high cohesion

Page 31: Team-Based Development ISYS 321
Page 32: Team-Based Development ISYS 321

RecapRecap

After studying this chapter we learned After studying this chapter we learned to:to:– Understand the different design Understand the different design

architecture configurations.architecture configurations.– Understand the use of components in Understand the use of components in

systems design.systems design.– Understand the different component Understand the different component

standards.standards.– Map an analysis class diagram into a Map an analysis class diagram into a

design class diagram.design class diagram.

Page 33: Team-Based Development ISYS 321

Any Questions?Any Questions?