team-based development isys 321
Post on 04-Jan-2016
42 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
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.
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)
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
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
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
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).
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
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
Note: presentation, business logic, and or data can be spread across multiple layers, creating N-tier architectures.
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)
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
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
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
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)
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
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
Comparison of OMG, Microsoft, and Sun
Limitations:1. Tightly coupled2. Binary 3. Proprietary
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
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)
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
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
In UML, packages are represented as rectangles with tabs in the top left corner.
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.
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
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.
Any Questions?Any Questions?
top related