® IBM Software Group Software Architecting and RUP Peter Eeles peter.eeles@uk.ibm.com IBM Software Group | Rational software Agenda Introduction Architecture, Architect, Architecting Process precedents Rational Unified Process GS-Method RUP and Architecting Requirements Analysis and design Implementation Test Project management Configuration and change management Environment Summary IBM Software Group | Rational software Architecture, Architect, Architecting IBM Software Group | Rational software Architecture Architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution. [IEEE 1471] The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. [Bass] [Architecture is] the organizational structure and associated behavior of a system. An architecture can be recursively decomposed into parts that interact through interfaces, relationships that connect parts, and constraints for assembling parts. Parts that interact through interfaces include classes, components and subsystems. [UML 1.5] IBM Software Group | Rational software An architecture defines structure IBM Software Group | Rational software An architecture defines behaviour IBM Software Group | Rational software An architecture is concerned with significant elements The element relates to some critical functionality of the system E.g. monetary transactions The element relates to some critical property of the system E.g. reliability The element relates to a particular architectural challenge E.g. external system integration The element is associated with a particular technical risk The element relates to a capability that is considered to be unstable The element relates to some key element of the solution E.g. login mechanism IBM Software Group | Rational software An architecture meets stakeholder needs The end user is concerned with intuitive and correct behavior, performance, reliability, usability, availability and security The system administrator is concerned with intuitive behavior, administration and tools to aid monitoring The marketer is concerned with competitive features, time to market, positioning with other products, and cost The customer is concerned with cost, stability and schedule The developer is concerned with clear requirements, and a simple and consistent design approach The project manager is concerned with predictability in the tracking of the project, schedule, productive use of resources and cost The maintainer is concerned with a comprehensible, consistent and documented design approach, and the ease with which modifications can be made IBM Software Group | Rational software An architecture comes in many forms Enterprise Architecture System Architecture Software Architecture Application Architecture Technical Architecture Hardware Architecture Organizational Architecture IBM Software Group | Rational software And … An architecture is part of a broader system An architecture embodies decisions based on rationale An architecture conforms to an architectural style An architecture is influenced by its environment An architecture influences organizational structure An architecture is present in every system IBM Software Group | Rational software Architect The architect is a technical leader The architect understands the software development process The architect has knowledge of the business domain The architect has technology knowledge The architect has design skills “The life of a software architect is a long and The architect has programming skills rapid succession of The architect is a good communicator suboptimal design decisions taken partly in The architect makes decisions the dark.” [Kruchten] The architect is a mentor The architect is aware of organizational politics The architect is a negotiator The architect role may be fulfilled by a team IBM Software Group | Rational software Architecting IBM Software Group | Rational software Architecting Architecting is a science Architecting is an art Architecting spans many disciplines Architecting involves many stakeholders Architecting is involved in tradeoffs Architecting considers reusable assets Architecting is both top-down and bottom-up Architecting changes emphasis over time IBM Software Group | Rational software The benefits of architecting Architecting addresses system qualities Architecting drives consensus Architecting ensures architectural integrity Architecting helps manage complexity Architecting provides a basis for reuse Architecting reduces maintenance costs Architecting supports impact analysis Architecting supports the planning process IBM Software Group | Rational software Documenting a software architecture IBM Software Group | Rational software Architecture description – Kruchten 4+1 views IBM Software Group | Rational software Architecture description – GS-Method Component modeling Operational modeling IBM Software Group | Rational software Architecture description – Siemens Conceptual View Module View Code View Execution View IBM Software Group | Rational software Architecture description – RM-ODP Information Viewpoint Enterprise Viewpoint Computational Viewpoint Engineering Viewpoint Technical Viewpoint IBM Software Group | Rational software Architecture description – Zachman framework Abstractions Perspectives Scope Planner contextual Enterprise Model Owner conceptual System Model Designer logical Technology Constrained Model Builder physical Detailed Representations Subcontractor out-of-context Functioning Enterprise Data Function Network People Time Motivation IBM Software Group | Rational software Agenda Introduction Architecture, Architect, Architecting Process precedents Rational Unified Process GS-Method RUP and Architecting Requirements Analysis and design Implementation Test Project management Configuration and change management Environment Summary IBM Software Group | Rational software Process precedents Rational Unified Process A commercially-available offering (a product) GS-Method Used by IGS consultants Much commonality Deployed as web sites Fundamental concepts align as defined by the OMG’s Software Process Engineering Metamodel (SPEM) Engagement models / configurations for different classes of system • Custom development, packaged applications, EAI IBM Software Group | Rational software Agenda Introduction Architecture, Architect, Architecting Process precedents Rational Unified Process GS-Method RUP and Architecting Requirements Analysis and design Implementation Test Project management Configuration and change management Environment Summary IBM Software Group | Rational software Top Ten Architectural Concerns 1. When is the architect first involved in a project? 2. What is the relationship of the architect to other project roles? 3. What is the architect's role with respect to requirements? 4. What is the scope of an architecture? 5. How is an architecture described? 6. When and how does the architect come up with a first-cut architecture? 7. How does the architect refine the architecture? 8. How and when does the architect consider reuse? 9. How does the architect enforce architecture integrity? 10. How does the architect know that the architecture is stable? IBM Software Group | Rational software RUP Key Concepts: Disciplines IBM Software Group | Rational software RUP Key Concepts: Overview IBM Software Group | Rational software RUP Key Concepts: Iterations IBM Software Group | Rational software UML Models Model “A model is a complete description of a system from a particular perspective” [RUP] IBM Software Group | Rational software RUP Disciplines IBM Software Group | Rational software Discipline: Requirements IBM Software Group | Rational software Workflow Detail: Manage the Scope of the System IBM Software Group | Rational software Use-Case Model IBM Software Group | Rational software Use Cases – Prioritised 1. 2. 3. 4. 5. 6. 7. 8. Create Auction Place Bid Close Auction Browse Auction Catalog Create Account Sign In Manage Account Sign Out IBM Software Group | Rational software Requirements: Architectural Concerns Addressed IBM Software Group | Rational software RUP Disciplines IBM Software Group | Rational software Discipline: Analysis and Design Analysis Design IBM Software Group | Rational software Workflow Detail: Perform Architectural Synthesis IBM Software Group | Rational software Workflow Detail: Define a Candidate Architecture IBM Software Group | Rational software Architectural Analysis – Key Abstractions IBM Software Group | Rational software Architectural Analysis – Analysis Mechanisms IBM Software Group | Rational software Architectural Analysis – Layers IBM Software Group | Rational software Analysis: Architectural Concerns Addressed IBM Software Group | Rational software Workflow Detail: Refine the Architecture IBM Software Group | Rational software Identify Design Mechanisms IBM Software Group | Rational software Identify Design Elements IBM Software Group | Rational software Identify Design Elements IBM Software Group | Rational software Describe Run-Time Architecture IBM Software Group | Rational software Describe Distribution IBM Software Group | Rational software Design: Architectural Concerns Addressed IBM Software Group | Rational software RUP Disciplines IBM Software Group | Rational software Discipline: Implementation IBM Software Group | Rational software Workflow Detail: Structure the Implementation Model IBM Software Group | Rational software Structure the Implementation Model IBM Software Group | Rational software Implementation: Architectural Concerns Addressed IBM Software Group | Rational software RUP Disciplines IBM Software Group | Rational software Discipline: Environment IBM Software Group | Rational software Workflow Detail: Prepare Guidelines for an Iteration IBM Software Group | Rational software Environment: Architectural Concerns Addressed IBM Software Group | Rational software RUP Disciplines IBM Software Group | Rational software Discipline: Test IBM Software Group | Rational software Discipline: Deployment IBM Software Group | Rational software Discipline: Configuration and Change Management IBM Software Group | Rational software Discipline: Project Management IBM Software Group | Rational software Summary Architectural concerns are addressed by activities from all disciplines Architectural concerns are addressed throughout the project lifecycle The architect’s involvement starts early in the process, during Inception Most of the “hard core” architecting occurs during Elaboration The architect’s role extends through Construction and Transition IBM Software Group | Rational software