CS 432 Object-Oriented Analysis and Design

Slides:



Advertisements
Similar presentations
9.5 Software Architecture
Advertisements

Objectives Describe the differences between requirements activities and design activities Explain the purpose of design and the difference between architectural.
8.
Technical Architectures
2 Object-Oriented Analysis and Design with the Unified Process Objectives  Explain how statecharts can be used to describe system behaviors  Use statecharts.
Overview Define structural components and dynamic interactions
2 Object-Oriented Analysis and Design with the Unified Process Objectives  Describe the differences between requirements activities and design activities.
BICS546 Client/Server Database Application Development.
Chapter 13 Physical Architecture Layer Design
Asper School of Business University of Manitoba Systems Analysis & Design Instructor: Bob Travica System architectures Updated: November 2014.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Systems Analysis and Design in a Changing World, Fourth Edition
Ch 12 Distributed Systems Architectures
The Architecture of Transaction Processing Systems
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
2 Systems Architecture, Fifth Edition Chapter Goals Describe client/server and multi-tier application architecture and discuss their advantages compared.
Chapter 9: Moving to Design
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
Course Instructor: Aisha Azeem
Client/Server Architecture
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
Client-Server Processing and Distributed Databases
The Client/Server Database Environment
Object-Oriented Analysis and Design
Web application architecture
Enterprise Resource Planning
Chapter 2 Database System Concepts and Architecture
Introduction to Databases Transparencies 1. ©Pearson Education 2009 Objectives Common uses of database systems. Meaning of the term database. Meaning.
UNIT-V The MVC architecture and Struts Framework.
The Design of System Architecture
Chapter 9 Moving to Design Part 2.
Chapter 9 Elements of Systems Design
2 Object-Oriented Analysis and Design with the Unified Process Objectives  Describe the differences between requirements activities and design activities.
Moving to Design.
Moving From Business Modeling Requirements to Design
The Design Discipline.
Deployment Activities to make a new system operational
Systems Analysis and Design in a Changing World, Fifth Edition
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
What is Enterprise Architecture?
An Introduction to Software Architecture
第十四章 J2EE 入门 Introduction What is J2EE ?
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
9 Systems Analysis and Design in a Changing World, Fourth Edition.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Chapter 2 Database System Concepts and Architecture Dr. Bernard Chen Ph.D. University of Central Arkansas.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
Kemal Baykal Rasim Ismayilov
12 Chapter 12: Advanced Topics in Object-Oriented Design Systems Analysis and Design in a Changing World, 3 rd Edition.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 ITEC 3010 “Systems Analysis and Design, I” LECTURE 8-2: Elements of Systems Design Elements of Systems Design [Prof. Peter Khaiter]
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
9. 9 Systems Analysis and Design in a Changing World, Fourth Edition.
11 Systems Analysis and Design in a Changing World, Fifth Edition.
9 Systems Analysis and Design in a Changing World, Fifth Edition.
System Architecture CS 560. Project Design The requirements describe the function of a system as seen by the client. The software team must design a system.
J2EE Platform Overview (Application Architecture)
Chapter 8 Environments, Alternatives, and Decisions.
Systems Analysis and Design in a Changing World, Fourth Edition
CIIT-Human Computer Interaction-CSC456-Fall-2015-Mr
Chapter 2 Database System Concepts and Architecture
The Client/Server Database Environment
Inventory of Distributed Computing Concepts and Web services
Presentation transcript:

CS 432 Object-Oriented Analysis and Design * 07/16/96 CS 432 Object-Oriented Analysis and Design Week 6 Design Patterns Architecture Designs *

Design Principles-Protection From Variations Parts of a system that are unlikely to change are segregated from those that will Drives the multilayer design pattern Stable business logic can be protected from variations in the user interface Changes in the business logic are isolated to the controller class

Design Principles-Indirection Indirection is an implementation of the protection from variations principle Decouples classes or other system components by placing an intermediate classes between them Used in many corporate security systems between an internal network and the Internet A proxy server catches all incoming messages and redistributes them to the recipients

Importance of Design Patterns Standard design templates can speed OO design Patterns can exist at different levels of abstraction At the most concrete level, a class definition with code At the most abstract level, an approach to a problem Patterns should contain five main elements Pattern name, problem, solution, example, benefits and consequences

Pattern description for the controller pattern

Basic Design Patterns The authors of Elements of Reusable Object-Oriented Software (referred to as the Gang of Four) developed a basic classification scheme for patterns (Figure 9-7) The 23 GoF patterns are some of the most fundamental and important patterns in use Scores of other patterns have been defined For example, both Java and .NET have sets of enterprise patterns

Classification of design patterns

Singleton Pattern For classes that must have only one instance, but need to be invoked from several classes and locations within the system The class itself controls the creation of only one instance A static variable of the class refers to the object that is created A class method instantiates the object on the first call, and returns a reference to the object on subsequent calls

Singleton Pattern

Singleton pattern template

Adaptor Pattern Plugs an external class into a system Converts the method calls from within the system to match the method names in the external class A standard solution for protection from variations Insulates the system from frequently changing classes An interface is frequently used to specify and enforce the use of correct method names

Adapter Pattern

Adapter pattern template

Design Activities in the UP Life Cycle

Design the Support Services Architecture and Deployment Environment Three organizational dispositions to new systems Integrate new systems into existing systems Install support services for the first time Replace existing systems Design issues for all organizations Reliability Security Throughput Synchronization

Design the Software Architecture Software architecture refers to the “big picture” Two important aspects Division of software into classes Distribution of classes across processing locations Modify class diagrams into software classes Determine where classes and objects execute Determine whether they will be distributed Determine communication methods Select programming language(s) to write classes

Design Use Case Realizations Use case realizations offer a lower-level view Two-tiered focus Class interactions supporting a particular use case Interactions among software, users, and external systems Design typically spread over many iterations UML design class diagrams and interaction diagrams document design

Design the Database Designing database as a key design activity Physical model of database based on class diagram Physical model describes relational or OO database Some technical issues Performance, such as response time Integration with existing databases Legacy databases

Design the System and User Interfaces System interface issues Different types of systems will interface Systems interact with internal and external users User interface issues User capabilities and needs differ widely User interacts with the system in different ways Approaches to interface vary by system Has nature of interface emerged from earlier models?

Design the System Security and Controls User-interface controls limit access to authorized users System interface controls protect system from other systems Application controls record transactions and validate work Database controls ensure data protected from unauthorized access and accidental loss Network controls protect network communication

Design Activities and the UP Focus in early iterations of elaboration phase System architecture and databases Evenly distributed throughout project Detailed design activities Criteria analyst uses to schedule design activities Experience Forecasting capabilities Every design impacts other parts of system

Single-Computer and Multitier Architecture Single-computer architecture Single system attached to peripheral devices PC and mainframe applications qualify Advantages: easy to design, build, operate, maintain Disadvantages: capacity limits

Single-computer, Clustered, and Multicomputer Architectures

Single-Computer and Multitier Architecture (continued) Multitier architecture (multiple computer systems) Clustered architecture Group of computers logically operate as one Nodes from same manufacturer and model family Multicomputer architecture Cluster whose nodes are optimized or specialized Hardware and operating systems may be dissimilar

Centralized and Distributed Architecture Centralized architecture Deploys computer systems in single location Used for large-scale processing applications Constraint: geography Implements subsystems in larger information system Distributed architecture Software/data spread across systems and locations Relies on communication networks to interconnect

Client/Server Architecture Client/server architecture tiers Client: requests resources or services from a server Server: manages information system resources Architectural issues for client/server software: Decomposing software into client and server programs (objects) Determining where clients and servers will execute Describing interconnection protocols and networks

Client/Server Architecture with a Shared Database

Client/Server Architecture (continued) Client and server communicate via well-defined protocols over a physical network Client/server architecture advantages Location flexibility, scalability, maintainability Client/server architecture disadvantages Additional complexity, potential poor performance, security issues, and reliability 

Interaction Among Multiple Clients and a Single Server

Three-Layer Client/Server Architecture Variant of client/server architecture Divides application software into independent processes Three-layers The data layer The business logic layer The view (presentation) layer Three-tier architecture advantages Additional flexibility and reliability

Three-Tier Logical Layers

Three-Tier Architecture

Four-Tier Architecture

Model-View-Controller (MVC) Design Pattern or Framework

Middleware Middleware Common types of middleware Connects parts of an application Enables requests and data to pass among them Common types of middleware Teleprocessing monitors Transaction processing monitors Object request brokers (ORBs) Each type of middleware has its own set of protocols

Differences between client/server and Internet systems

Web Client/Server Architecture

Internet and Web-Based Software Architecture Web is complex example of client/server architecture Web resources are managed by server processes Clients are programs that send requests to servers Web protocols define valid resource formats and communication standards Web-like capabilities embedded in ordinary applications Web-oriented client/server architecture: service-oriented architecture (SOA)  

Internet and Web-Based Software Architecture (continued) Flexibility is the key to the Internet alternative Accessibility, low cost communication, widely used standards Disadvantages of Web technologies Security, reliability, throughput, and volatile standards The key architectural design issues Defining client and server processes or objects Distributing processes across hardware platforms Connecting processes

Simple Internet Architecture Used for viewing static information The browser component executes on the client computer The Internet server component executes on the server computer Pages reside on the server and are sent to the browser for display Program logic is inserted through scripting languages (JavaScript, VBScript), applets, or other controls

Simple Internet architecture

Two-layer Architecture Primarily captures information from the user and updates the database The domain layer and data access layer are usually combined Input data is sent to a CGI or an application server The user-interface classes often contain the business logic and data access Processing takes place with servlets (Java) or code behind classes (.NET)

Two-layer Internet architecture

Three-layer Architecture Separates domain layer and data access layers Necessary for systems with complex business logic or multiple user interfaces Using CGI Provide a use case controller for each form that distributes messages to the individual objects of the system. Using an application server Java tools: Java Server Pages and servlets .NET tools: Common Runtime Language and code behind classes

Internet architecture Three-layer Internet architecture

Invoking a Web service

Designing Enterprise-level Systems Enterprise-level systems share components among multiple people or groups in an organization Enterprise-level systems almost always use multiple tiers of computers Can be client/server network-based or Internet based Designed with deployment diagrams A type of implementation diagram that shows physical components across different locations