Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

Slides:



Advertisements
Similar presentations
Software Architecture Feng Zhiyong Tianjin University March 1, 2006.
Advertisements

A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Mastering Object-Oriented Analysis and Design with UML Module 4: Analysis and Design Overview.
UML Unified Modeling Language Basic Concepts. UML What is the UML*? UML stands for Unified Modeling Language The UML combines the best of the best from:
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
UML Overview Unified Modeling Language Basic Concepts.
Site Skin Structure Services Space plan Stuff Software Architecture and Software Architecture Patterns (1)
Unified Software Practices v 5.0 Copyright  1998 Rational Software, all rights reserved 1 R Introduction to Rational Unified Process.
Unified Modeling (Part I) Overview of UML & Modeling
Rational Worldwide Software Symposium
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
Object Oriented Analysis and Design Using the UML
Software Architecture and the UML Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Principles of Object Technology Module 1: Principles of Modeling.
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
UML - Development Process 1 Software Development Process Using UML (2)
UML Unified Markup Language Ziya Karakaya Atılım University, Computer Engineering
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
Introduction to UML 1 Quick Tour Why do we model? What is the UML? Foundation elements Unifying concepts Language architecture Relation to other OMG technologies.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
Software Architecture and the UML Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.
Rational Unified Process Fundamentals Module 4: Disciplines II.
An Introduction to Software Architecture
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
Architectural Blueprints The “4+1” View Model of Software Architecture
Rational Unified Process , Introduction to UML. What is RUP? The Rational Unified Model is a software engineering process Both process and product Provides.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Object Oriented Analysis and Design using the UML CIS 520 Advanced Object-Oriented Design.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Unified Software Practices v 5.0 Copyright  1998 Rational Software, all rights reserved 1 R Introduction to Rational Unified Process Adapted by Dr. Spiegel.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Csci 490 / Engr 596 Special Topics / Special Projects Software Design and Scala Programming Spring Semester 2010 Lecture Notes.
UML Diagrams for Caradon developers Daniel DG Moth Core Development Group, Research Student University of Brighton, MSc Object Oriented Software Technology.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Software Architecture ASE. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant - Custom,
Introduction to Rational Unified Process
1 Unified Modeling Language, Version 2.0 Chapter 2.
Rational Unified Process Fundamentals Module 3: Core Workflows I - Concepts Rational Unified Process Fundamentals Module 3: Core Workflows I - Concepts.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Lecturer: Prof. Dr. Ir. Riri Fitri Sari MM MSc EE Department University of Indonesia This slide was initially set by M. Salman, ST, MSc Session #1 – 4.
Object-Oriented Systems. Goals Object-Oriented Methodologies – The Rumbaugh et al. OMT – The Booch methodology – Jacobson's methodologies.
Engr 691 Special Topics in Engineering Science Software Architecture Spring Semester 2004 Lecture Notes.
Session 1 What Is the UML? Written by Thomas A. Pender Published by Wiley Publishing, Inc. October 5, 2011 Presented by Kang-Pyo Lee.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 4: Analysis and Design Overview.
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
Introduction to OOAD and UML
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
Architectural Patterns
OO Methodology OO Architecture.
University of Central Florida COP 3330 Object Oriented Programming
Software Architecture and
Rational Worldwide Software Symposium
Rational Unified Process
Software Architecture and the UML
Rational Worldwide Software Symposium
An Introduction to Software Architecture
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
Rational Worldwide Software Symposium
Presentation transcript:

Software Architecture and the UML Grady Booch

2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools

3 Architecting a house Built most efficiently and timely by a team Requires Modeling Well-defined process Power tools

4 Architecting a high rise

5 Early architecture Progress - Limited knowledge of theory

6 Modern architecture Progress - Advances in materials - Advances in analysis Scale - 5 times the span of the Pantheon - 3 times the height of Cheops

7 Modeling a house

8 Movements in civil architecture  Bronze age/Egyptian (Imhotep)  Grecian/Roman (Vitruvius)  Byzantine/Romanesque  Gothic  Mannerism (Michelangelo, Palladio)  Baroque  Engineering/Rational/National/Romantic  Art noveau  Modern movement (Wright, LeCorbusier) Progress - Imitation of previous efforts - Learning from failure - Integration of other forces - Experimentation

9 Kinds of civil architecture  Community ­houses, flats and apartments, gardens, education, hospitals, religion  Commerce ­shops and stores, restaurants, hotels, office buildings, banks, airports  Industry ­industrial buildings, laboratories, farm buildings  Leisure ­sport, theaters and cinemas, museums Neufert Architect’s Data The Handbook of Building Types

10 Forces in civil architecture Avoiding failure - Safety factors - Redundancy - Equilibrium Compression Load Tension Load Kinds of loads - Dead loads - Live loads - Dynamic loads Any time you depart from established practice, make ten times the effort, ten times the investigation. Especially on a very large project. - LeMessuier

11 Shearing layers of change Site Skin Structure Services Space plan Stuff Brand, How Buildings Learn

12 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant - Custom, unprecedented, architecture reengineering - High performance Lower technical complexity - Mostly 4GL, or component-based - Application reengineering - Interactive performance Higher management complexity - Large scale - Contractual - Many stake holders - “Projects” Lower management complexity - Small scale - Informal - Single stakeholder - “Products” Defense MIS System Defense Weapon System Telecom Switch CASE Tool National Air Traffic Control System Enterprise IS (Family of IS Applications) Commercial Compiler Business Spreadsheet IS Application Distributed Objects (Order Entry) Small Scientific Simulation Large-Scale Organization/Entity Simulation An average software project: people month duration external interfaces - Some unknowns & risks Embedded Automotive Software IS Application GUI/RDB (Order Entry) Walker Royce

13 Forces in Software Technology churn Our enemy is complexity, and it’s our goal to kill it. Jan Baan PerformanceThroughput Capacity Availability Fail safe Fault tolerance Functionality CostCompatibility Resilience The challenge over the next 20 years will not be speed or cost or performance; it will be a question of complexity. Bill Raduchel, Chief Strategy Officer, Sun Microsystems

14 The domain of architecting Architecture Qualities Process Architecture Representation The “what” The “why” The “how” The “who” System Features Architecture S/W Requirements System Quality Attributes Satisfies Constrain Organization Architect Skills Stakeholders Defines role Produces Follows Defines Technology Wojtek Kozaczynski

15 We all know that... Architecture and design are the same thing Architecture and infrastructure are the same thing is the architecture A good architecture is the work of a single architect Architecture is flat, one blueprint is enough Architecture is just structure System architecture precedes software architecture Architecture cannot be measured and validated Architecture is a Science Architecture is an Art Philippe Kruchten

16 Architecture defined (again) Architecture n (1555) 1: the art of science of building, specifically, the art or practice of designing and building structures and esp. habitable ones 2 a: formation or construction as or as if as the result of conscious act b: a unifying or coherent form or structure Merriam Webster’s Collegiate Dictionary 10th edition

17 Architecture defined (yet again)  Software architecture encompasses the set of significant decisions about the organization of a software system ­selection of the structural elements and their interfaces by which a system is composed ­behavior as specified in collaborations among those elements ­composition of these structural and behavioral elements into larger subsystem ­architectural style that guides this organization Mary Shaw, CMU Grady Booch, Philippe Kruchten, Rich Reitman Kurt Bittner, Rational

18 Architecture defined (continued)  Software architecture also involves ­usage ­functionality ­performance ­resilience ­reuse ­comprehensibility ­economic and technology constraints and tradeoffs ­aesthetic concerns Mary Shaw, CMU Grady Booch, Philippe Kruchten, Rich Reitman Kurt Bittner, Rational

19 Architectural style  An architecture style defines a family of systems in terms of a pattern of structural organization.  An architectural style defines ­a vocabulary of components and connector types ­a set of constraints on how they can be combined ­one or more semantic models that specify how a system’s overall properties can be determined from the properties of its parts Mary Shaw, CMU

20 Architecture metamodel

21 Models  Models are the language of designer, in many disciplines  Models are representations of the system to-be-built or as-built  Models are vehicle for communications with various stakeholders  Visual models, blueprints  Scale  Models allow reasoning about some characteristic of the real system

22 Many stakeholders, many views  Architecture is many things to many different interested parties ­end-user ­customer ­project manager ­system engineer ­developer ­architect ­maintainer ­other developers  Multidimensional reality  Multiple stakeholders multiple views, multiple blueprints

23 Architectural view  An architectural view is a simplified description (an abstraction) of a system from a particular perspective or vantage point, covering particular concerns, and omitting entities that are not relevant to this perspective

24 Architecturally significant elements  Not all design is architecture  Main “business” classes  Important mechanisms  Processors and processes  Layers and subsystems  Architectural views = slices through models

25 Characteristics of a Good Architecture  Resilient  Simple  Approachable  Clear separation of concerns  Balanced distribution of responsibilities  Balances economic and technology constraints

26 Representing System Architecture Logical View End-user Functionality Implementation View Programmers Software management Process View Performance Scalability Throughput System integrators Deployment View System topology Delivery, installation Communication System engineering ConceptualPhysical Use Case View

27 Relation Between Views   Logical viewComponent view Process view Deployment view

28 How many views?  Simplified models to fit the context  Not all systems require all views: ­Single processor: drop deployment view ­Single process: drop process view ­Very Small program: drop implementation view  Adding views: ­Data view, security view

29 The Value of the UML  Is an open standard  Supports the entire software development lifecycle  Supports diverse applications areas  Is based on experience and needs of the user community  Supported by many tools

30 Creating the UML Booch methodOMT Unified Method 0.8 OOPSLA ´95 OOSE Other methods UML 0.9 Web - June ´96 public feedback Final submission to OMG, Sep ‘97 First submission to OMG, Jan ´97 UML 1.1 OMG Acceptance, Nov 1997 UML 1.3 UML 1.0 UML partners

31 UML Partners  Rational Software Corporation  Hewlett-Packard  I-Logix  IBM  ICON Computing  Intellicorp  MCI Systemhouse  Microsoft  ObjecTime  Oracle  Platinum Technology  Taskon  Texas Instruments/Sterling Software  Unisys

32 Meyer Before and after conditions Harel Statecharts Gamma, et al Frameworks and patterns, HP Fusion Operation descriptions and message numbering Embley Singleton classes and high-level view Wirfs-Brock Responsibilities Odell Classification Shlaer - Mellor Object lifecycles Rumbaugh OMT Booch Booch method Jacobson OOSE Contributions to the UML

33 Overview of the UML  The UML is a language for ­visualizing ­specifying ­constructing ­documenting the artifacts of a software-intensive system

34 Overview of the UML  Modeling elements  Relationships  Extensibility Mechanisms  Diagrams

35 Modeling Elements  Structural elements ­class, interface, collaboration, use case, active class, component, node  Behavioral elements ­interaction, state machine  Grouping elements ­package, subsystem  Other elements ­note

36 Relationships  Dependency  Association  Generalization  Realization

37 Extensibility Mechanisms  Stereotype  Tagged value  Constraint

38 Models, Views, and Diagrams Use Case Diagrams Use Case Diagrams Use Case Diagrams Scenario Diagrams Scenario Diagrams Collaboration Diagrams State Diagrams State Diagrams Component Diagrams Component Diagrams Component Diagrams Deployment Diagrams State Diagrams State Diagrams Object Diagrams Scenario Diagrams Scenario Diagrams Statechart Diagrams Use Case Diagrams Use Case Diagrams Sequence Diagrams State Diagrams State Diagrams Class Diagrams Activity Diagrams A model is a complete description of a system from a particular perspective Models

39 Diagrams  A diagram is a view into a model ­Presented from the aspect of a particular stakeholder ­Provides a partial representation of the system ­Is semantically consistent with other views  In the UML, there are nine standard diagrams ­Static views: use case, class, object, component, deployment ­Dynamic views: sequence, collaboration, statechart, activity

40 Use Case Diagram  Captures system functionality as seen by users

41 Use Case Diagram  Captures system functionality as seen by users  Built in early stages of development  Purpose ­Specify the context of a system ­Capture the requirements of a system ­Validate a system’s architecture ­Drive implementation and generate test cases  Developed by analysts and domain experts

42 Class Diagram  Captures the vocabulary of a system

43 Class Diagram  Captures the vocabulary of a system  Built and refined throughout development  Purpose ­Name and model concepts in the system ­Specify collaborations ­Specify logical database schemas  Developed by analysts, designers, and implementers

44 Object Diagram  Captures instances and links

45 Object Diagram  Shows instances and links  Built during analysis and design  Purpose ­Illustrate data/object structures ­Specify snapshots  Developed by analysts, designers, and implementers

46 Component Diagram  Captures the physical structure of the implementation

47 Component Diagram  Captures the physical structure of the implementation  Built as part of architectural specification  Purpose ­Organize source code ­Construct an executable release ­Specify a physical database  Developed by architects and programmers

48 Deployment Diagram  Captures the topology of a system’s hardware

49 Deployment Diagram  Captures the topology of a system’s hardware  Built as part of architectural specification  Purpose ­Specify the distribution of components ­Identify performance bottlenecks  Developed by architects, networking engineers, and system engineers

50 Sequence Diagram  Captures dynamic behavior (time-oriented)

51 Sequence Diagram  Captures dynamic behavior (time-oriented)  Purpose ­Model flow of control ­Illustrate typical scenarios

52 Collaboration Diagram  Captures dynamic behavior (message- oriented)

53 Collaboration Diagram  Captures dynamic behavior (message- oriented)  Purpose ­Model flow of control ­Illustrate coordination of object structure and control

54 Statechart Diagram  Captures dynamic behavior (event- oriented)

55 Statechart Diagram  Captures dynamic behavior (event- oriented)  Purpose ­Model object lifecycle ­Model reactive objects (user interfaces, devices, etc.)

56 Activity Diagram  Captures dynamic behavior (activity-oriented)

57 Activity Diagram  Captures dynamic behavior (activity-oriented)  Purpose ­Model business workflows ­Model operations

58 Architecture and the UML Organization Package, subsystem Dynamics Interaction State machine Design ViewImplementation View Process View Components Classes, interfaces, collaborations Active classes Deployment View Nodes Use Case View Use cases

59 Software engineering process A set of partially ordered steps intended to reach a goal. In software engineering the goal is to build a software product or to enhance an existing one.  Architectural process ­Sequence of activities that lead to the production of architectural artifacts:  A software architecture description  An architectural prototype

60 Rational Unified Process  Iterative  Architecture-centric  Use-case driven  Risk confronting

61 Focus over time DiscoveryInvention Focus Implementation

62 Key concepts  Phase, Iterations  Process Workflows ­Activity, steps  Artifacts ­models ­reports, documents  Worker: Architect What does happen? What is produced? Who does it? When does architecture happen?

63 Lifecycle Phases time InceptionElaborationConstruction Transition  Inception Define the scope of the project and develop business case  Elaboration Plan project, specify features, and baseline the architecture  Construction Build the product  Transition Transition the product to its users

64 Major Milestones time VisionBaseline Architecture Initial Capability Product Release InceptionElaborationConstruction Transition

65 Phases and Iterations An iteration is a sequence of activities with an established plan and evaluation criteria, resulting in an executable release Arch Iteration...Dev Iteration Dev Iteration...Trans Iteration... Release Prelim Iteration... InceptionElaborationConstruction Transition

66 Architecture-Centric  Models are vehicles for visualizing, specifying, constructing, and documenting architecture  The Unified Process prescribes the successive refinement of an executable architecture time Architecture InceptionElaborationConstruction Transition

67 Unified Process structure Management Environment Business Modeling Implementation Test Analysis & Design Preliminary Iteration(s) Iter. #1 Phases Process Workflows Iterations Supporting Workflows Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Deployment Configuration Mgmt Requirements ElaborationTransitionInceptionConstruction

68 Architecture and Iterations Use case Model Design Model Deployment Model Test Model Implementation Model Content

69 Architectural design  Identify, select, and validate “architecturally significant” elements  Not everything is architecture ­Main “business” classes ­Important mechanisms ­Processors and processes ­Layers and subsystems ­Interfaces  Produce a Software Architecture Documen

70 Architectural design workflow  Select scenarios: criticality and risk  Identify main classes and their responsibility  Distribute behavior on classes  Structure in subsystems, layers, define interfaces  Define distribution and concurrency  Implement architectural prototype  Derive tests from use cases  Evaluate architecture Iterate Use case view Logical view Deployment view Implementation view Process view

71 Sources of architecture Theft Method Intuition Classical system Unprecedented system Theft Method Intuition

72 Patterns  A pattern is a solution to a problem in a context  A pattern codifies specific knowledge collected from experience in a domain  All well-structured systems are full of patterns ­Idioms ­Design patterns ­Architectural patterns

73 Mechanisms  Screws  Brakes  Keys  Pipes  Rivets  Valves  Bearings  Springs  Pins, axles, shafts  Cranks and rods  Couplings  Cams  Ropes, belts, and chains  Pulleys  Friction wheels  Engaging gears  Toothed wheels  Flywheels  Levers and connecting rods  Click wheels and gears  Ratchets daVinci

74 Design patterns  Creational patterns ­Abstract factory ­Prototype  Structural patterns ­Adapter ­Bridge ­Proxy  Behavioral patterns ­Chain of responsibility ­Mediator ­Visitor  Mechanisms are the soul of an architecture Design Patterns Gamma et al

75 Modeling a design pattern

76 Modeling a design pattern (cont.)

77 Modeling a design pattern (cont.)

78 Architectural patterns  Distributed  Layered  Event-driven  MVC  Frame-based  IR-centric  Batch  Subsumption  Pipes and filters  Disposable  Repository-centric  Blackboard  Interpreter  Rule-based Software Architecture Shaw and Garlan Buschmann et al A System of Patterns Buschman et al Booch

79 Complex business system Real-Life Object-oriented Systems Soren Lauesen

80 Logical application architecture Relational Database Graphical User Interface Relational Database Graphical User Interface Business Object Model Graphical User Interface Business Object Model Relational Database

81 Physical application architecture Relational Database Server(s) Client C WWW Browser Web Server HTML CGI ASPJava Business Object Services Business Object Engine Application Business Object Services Client A Business Object Engine Thinner client, thicker server Client B Application Business Object Services Business Object Engine Business Object Server DCOM ADO/R CORBABeans COM MTS Beans ETS

82 Complex Internet system The Second Wave Paul Dreyfus, Netscape Client Server Application Server Fulfillment System Financial System Inventory System RDBMS Server Dynamic HTML, JavaScript, Java plug-ins, source code enhancements Java, C, C++, JavaScript, CGI Java, C, C++, JavaBeans, CORBA, DCOM Native languages

83 Who are the architects?  Experience ­software development ­domain  Pro-active, goal oriented  Leadership, authority  Architecture team ­balance

84 Architect  Not just a top level designer  Need to ensure feasibility  Not the project manager  But “joined at the hip”  Not a technology expert  Purpose of the system, “fit”,  Not a lone scientist  Communicator

85 Software architecture team charter  Defining the architecture of the software  Maintaining the architectural integrity of the software  Assessing technical risks related to the software design  Proposing the order and contents of the successive iterations  Consulting services  Assisting marketing for future product definition  Facilitating communications between project teams

86 Architecture is making decisions The life of a software architect is a long (and sometimes painful) succession of suboptimal decisions made partly in the dark.

87 Futures  ADL: Architecture Description Languages ­UML, UniCon, LILEAnna, P++, LEAP, Wright, µRapid  Standardization of concepts ­IEEE Working Group on Architecture ­INCOSE Working Group on System Architecture  Systematic capture of architectural patterns

88 References (Architecture)  Len Bass, Paul Clements & Rick Kazman, Software Architecture in Practice, Addison-Wesley,  Frank Buschmann, Régine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stahl, Pattern-Oriented Software Architecture - A System of Patterns, Wiley and Sons,  Christine Hofmeister, Robert Nord, Dilip Soni, Applied Software Architecture, Addison-Wesley  Eric Gamma, John Vlissides, Richard Helm, Ralph Johnson, Design Patterns, Addison-Wesley  Philippe Kruchten, “The 4+1 View Model of Architecture,” IEEE Software, 12 (6), November 1995, IEEE. ­  Eberhardt Rechtin, Systems Architecting: Creating and Building Complex Systems, Englewood Cliffs NJ, Prentice-Hall, 1991.

89 References (Architecture)  Eberhardt Rechtin & Mark Maier, The Art of System Architecting, CRC Press,  Recommended Practice for Architectural Description, Draft 2.0 of IEEE P1471, May 1998 ­  Mary Shaw, and David Garlan, Software Architecture— Perspectives on an Emerging Discipline, Upper Saddle River, NJ, Prentice-Hall,  Bernard I. Witt, F. Terry Baker, and Everett W. Merritt, Software Architecture and Design—Principles, Models, and Methods, New York NY, Van Nostrand Reinhold,  The World-wide Institute of Software Architects ­

90 References (UML)  Grady Booch, James Rumbaugh, Ivar Jacobson, The Unified Modeling Language User Guide, Addison-Wesley, 1999.

91 References (Process)  Barry Boehm, “A spiral model of software development and enhancement,” IEEE Computer, May  Barry Boehm, “Anchoring the software process,” IEEE Software, July  Grady Booch, Object Solutions, Addison-Wesley,  Philippe Kruchten, “A Rational Development Process,” CrossTalk, July ­  Philippe Kruchten, The Rational Unified Process - An Introduction, Addison-Wesley,  Rational Unified Process 5.0, Rational, Cupertino, CA, 1998  Walker Royce, Software Project Management: a Unified Framework, Addison-Wesley, 1998  The Software Program Manager’s Network ­