Академический Документы
Профессиональный Документы
Культура Документы
What is RUP?
Verified by
Test1
Test3
Test2
Test
Specified by
Implementation
Analysis
Design
3
Software Architecture
possess this
Software
Risks
Features
Vision Document
Software Requirements
Actor
Develop
Architecture ==Design Elements, Design Mechanisms, Run-Time Arch. analysis, decision, definition Implementation (Build/ Enhance, Integration and Testing) Deployment (Roll Out)
Design
blueprint
build executables
Implementation (Build/ Enhance, Integration and Testing) Build components which trace to design objects (and all the way back to use cases) To identify and ensure defects are addressed prior to deployment Deployment (Roll Out) Configuration of run-time processing elements and software components, processes, and objects that live on them
E V A L U A T I O N
6
Inception Iteration
Production Risks Could be Moved Backwards Reducing The Business Benefits of Earlier Releases
Inception Iteration
Transition 7 Iteration
the system to be Evolve a robust architecture of the system Adapt the design to match the implementation environment
Layered Architecture
User Interface
Responsible for presenting information to the actor and interpreting actors commands
Application
Domain Infrastructure
Responsible for representing core business concepts, business processes and business rules
10
J2EE Architecture
Middle Tier (Domain Logic Layer and Data Layer)
Presentation Tier Web Tier Business Tier Database Tier
11
Update Acccount
Updated Updated
Displays Results
12
Model-Driven Design
The model and the design shape each other
The model is the backbone of a language
13
Knowledge crunching
Communication and the Use of Ubiquitous
14
Knowledge Crunching
15
Ubiquitous Language
One Team, One Language Documents and Diagrams Written Design Documents Executable Models Overview Models
16
Aggregate Rules:
19
Objects or Aggregates Making client responsible for creating Objects and assembling the Aggregates to coupled design Shift responsibility for creating complex Objects to a separate object which is part of the domain design
Repositories
A client needs a practical means of acquiring references to pre-
existing domain objects Low level technical details must hidden from client
20
RUP J2EE
21
RUP - J2EE
Design Build
22
23
Provide J2EE development environment for all developers Decide the right level of ceremony for the culture Ensure Detailed modeling on risk areas, medium on non-risky Implement J2EE patterns in first Iterations Address Deployment issues early Consider the importance of database design/ implementation
24
J2EE Technologies
RMI - Remote Method Invocation - Protocol for distributed
communication Servlets - Java code which serves up dynamic web pages JSP - Combination of HTML and Java which can be intermixed JNDI - Java Naming and Directory Interface - Provides a common interface to communicate with different naming and directory services
JDBC - Java Database Connectivity - Provides a common interface to heterogeneous data bases
25 EJB - Enterprise Java Beans - Distributed Java Components, Stateless, Stateful, Entity and Message Driven
Check Balance
27
Validate PIN
Failed Logins
Customer
Card Login
Card Entry
Customer Logins
28
29
Design Patterns
30
What is a pattern?
Patterns
Problem/ Solution pairs in context
Patterns facilitate reuse of successful software architecture and design Not Code Reuse; But
Solution/ Strategy reuse
Interface reuse
31
Observer
Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically
Proxy
Provide a surrogate or placeholder for another object to control access to it
32
Creation Patterns
Creational Patterns prescribe the way that objects are created. These patterns are used when a decision must be made at the time a class is instantiated. Typically, the details of the classes that are instantiated -what exactly they are, how, and when they are created -- are encapsulated by an abstract superclass and hidden from the client class, which knows only about the abstract class or the interface it implements.
Singleton
Ensure a class has one Instance, and provide a global point of access to it
Abstract Factory
Provide an interface for creating families of related or dependent objects without specifying their concrete classes 33
Structural Patterns
Structural Patterns prescribe the organization of classes and objects. These patterns are concerned with how classes inherit from each other or how they are composed from other classes.
Adapter
Convert the interface of a class into another interface that clients expect Adapter lets classes work together that couldnt otherwise because of incompatible interfaces
Proxy
Direct stand-in for another class, and it typically has the same interface as that of class because it implements a common interface
Decorator
Extend the functionality of the original class in a way that is transparent to the client class
34
Behavioral Patterns
Behavioral Patterns prescribe the way objects interact with each other. They help make complex behavior manageable by specifying the responsibilities of objects and the ways they communicate with each other.
State
Allow an object to alter its behavior when its internal state changes
Visitor
Represents an operation to be performed on the elements of an object structure Visitor lets one to define a new operation without changing the classes of the elements on which it operates
35
Concurrency Patterns
Concurrency Patterns prescribe the way access to shared resources is coordinated or sequenced.
36
38
Intercepting Filter Front Controller Composite View View Helper Service to Worker Dispatcher View
39
Problem
Duplication of code if each view provides its own services Risk of mixing presentation and navigation code
Solution
Use of a Controller to handle all web requests
2: Send Request
3: Send Request
41
Problem
Processing common to multiple requests (e.g.: authentication) should be centralized Generation of the view from the template should be made by a dedicated components
Solution
Combination of a Dispatcher with a Controller, the views and the Helpers 42 Dispatcher: responsible for view management and navigation
3: Delegate Request
5: Dispatch
43
Business Delegate Service Locator Session Faade Value Object Composite Entity Value Object Assembler Value List Handler
44
Problem
The whole API is exposed to client use Presentation layer is tightly coupled to business implementation
Solution
Use of a Business Delegate to hide Implementation Detail
45
Client
BusinessService
2.1.1: Connect
2.2: Invoke
46
47
48
inherits
Oracle DAO
DB2DAO
Sybase DAO
adapts
adapts
adapts
Oracle Database
DB2 Database
Sybase 49 Database
Value Object
EJB Object
Web Component
<<instantiates>>
Value Object
50
Design
Design shapes the system in a way that lives up to all requirements Results in a design model (s)
Input to Implementation
Create Design Class (es) that realizes the Use cases it is involved in and non-functional requirements defined in the Use cases - Account all technical implications and restrictions Assign the behavior of the Use cases to the Design Classes - Identify responsibilities and relationships Design can be divided into two segments Architectural design (Refine the Architecture)
52
54
55
<<instantiate>>
Remote Interface
<<EJBRemoteInterface>> Account
56
<<instantiate>> <<EJBRealizeHome>>
<<EJBEntityHomeInterface>> AccountHome
<<EJBPrimaryKey>>
<<EJBPrimaryKey>> AccountKey
57
Component
Component:
A component is a named physical and replaceable part of a system that represents
physical packaging of otherwise logical elements and that conforms to, and provides the realization of, one or more interfaces. A component type represents a piece of software code (source, binary, or executable) A component type has a type name A component instance represents a run-time code unit
Scheduler
Planner
59
Component
Component:
Physical packaging of model elements - Source, binary, executable, configuration, makefile, IDL bindings, etc.
Component
Modelling Elements: Components
Basic Class Object Interface Collaboration Use-case Active Class Component Node Composite Package
Classes are basic model elements. Class names are shown in boldface type. Abstract classes are shown in italic. Object (Class Instance) are shown by class elements with underlined names. Interfaces are indicated by lollipops. Collaborations are indicated by dashed ovals. (They realize use-cases). Use-case is shown by ellipse. Active classes are shown by thick bordered class boxes.(They represent independent thread of processing). A Component is a combination of one or more classes that forms a physical software element. A Node is a processor or hardware device. A Composite Model element is a package or a61 subsystem of base or composite elements.
Component Diagram
A component diagram shows the dependencies among software components, including source code components, binary code components, and executable components.
Component Diagram
Use cases are eventually realized as components (Code) Components of the Implementation
<<file>> Failed Login s
trace
<<executable>> entry of cards
trace 63
Deployment Diagram
Deployment diagrams show the configuration of runtime processing elements and the software components, processes, and objects that live on them. Software component instances represent run-time manifestation of code units.
Components that do not exist as run-time entities do not appear in Deployment diagrams.
66
Deployment Diagram
A deployment diagram is a graph of nodes connected by communication associations. Nodes may contain component instances; indicates Component run on nodes.
Deployment Diagram
A Deployment Diagram shows the actual Hardware configuration consisting of
Nodes (processors) Software - Components Processes Objects
68
Deployment Diagram
Sample Deployment Diagram This diagram shows 3 machines: 2 PC workstations running WebLogic and a Mainframe running the ODSs in DB2
<<Buildmaster Workstation>> PC:Win2000 on Intel <<WLS Instance: Port 8888>> Admin Domain:WLS 6.1 Admin Server
Text
<<WIN2000 on 1 Ghz PIII>> WebLogic W(dev) Server: WLS Managed Server administer SSL administer <<WLS Instance: Port 8888>> Admin Domain:WLS 6.1 Admin Server <<WL Instance: Port 7001>> Team's Server: WLS 6.1
Text
<<Mainframe>> DB2 UNT: SYS D <<database>> Claim:ODS get data <<database>> PA&R:ODS
Text
<<database>> 69 Login:ODS
Q&A
70
Bibliography
The Rational Unified Process-An Introduction - Philippe Kruchten Use Case Modeling - Kurt Bittner, Ian Spence, Foreword by Ivar
Jacobson Writing Effective Use Cases - Alistair Cockburn Design Patterns: Elements of Reusable Object-Oriented Software Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides Core J2EE Patterns - Deepak Alur, John Crupi, and Dan Malks Applying UML and Patterns - Craig Larman Building J2EE Applications with the Rational Unified Process Peter Eeles, Kelli Houston, Wojtek Kozaczymski Applied Java Patterns - Steven Stelting, and Olav Maasen EJB Design Patterns - Floyd Marinescu J2EE Web Services Design Patterns - Richard Katz 71
Thank You
Nandan Dasgupta nandan.dasgupta@wellsfargo.com
72