Advanced Praise for The Unified Modeling Language Reference Manual, Second Edition “If you are a serious user of UML, th. Unified Modeling Language User Guide, The (2nd Edition) (Addison-Wesley Object ISBN In this eagerly anticipated revision of the best- selling and definitive guide to the use of the UML, the creators of the language provide a. “If you are a serious user of UML, there is no other book quite like this one. I have The unified modeling language reference manual / James Rumbaugh, Ivar 2nd ed. p. cm. ISBN 1. Computer software--Development. 2.
|Language:||English, Spanish, Hindi|
|Genre:||Science & Research|
|ePub File Size:||27.39 MB|
|PDF File Size:||17.54 MB|
|Distribution:||Free* [*Regsitration Required]|
𝗣𝗗𝗙 | For nearly ten years, the Unified Modeling Language (UML) has been the industry standard for visualizing, specifying, constructing, and. The Unified Modeling Language User Guide. G. Booch, J. Rumbaugh & I. Jacobson, Addison-. Wesley, 2nd Edition. Introduction to UML. Introduction . Grady Booch, James E. Rumbaugh, Ivar Jacobson: The unified modeling language user guide the ultimate tutorial to the UML from the original designers. Title, The Unified Modeling Language User Guide The Addison-Wesley object technology series. The Unified Modeling Language User.
An iteration is a distinct set of activities. Association 3. Most often. John Hogg. David Harel IBM: To develop software rapidly. As this figure shows.
As you gain more experience in applying the UML. Annotational things These things are the basic object-oriented building blocks of the UML. An interface defines a set of operation specifications that is.
Interfaces are discussed in Chapter An interface might represent the complete behavior of a class or component or only a part of that behavior. A given class might participate in several collaborations. An interface rarely stands alone. Figure Interfaces Collaborations are discussed in Chapter An interface therefore describes the externally visible behavior of that element.
These collaborations therefore represent the implementation of patterns that make up a system. Figure Collaborations. A use case is used to structure the behavioral things in a model.
A use case is realized by a collaboration. Use cases are discussed in Chapter They represent physical things. An active class is just like a class except that its objects represent elements whose behavior is concurrent with other elements.
Active classes are discussed in Chapter There are also variations on these seven. Use cases. Figure Components Nodes are discussed in Chapter In a system. Components are discussed in Chapter A component typically represents the physical packaging of otherwise logical elements. Behavioral Things. A set of components may reside on a node and may also migrate from node to node.
Interactions are discussed in Chapter Structural things. A state machine involves a number of other elements. The behavior of an individual class or a collaboration of classes may be specified with a state machine. Unlike components which exist at run time. These are the verbs of a model.
Packages are discussed in Chapter A package is a general-purpose mechanism for organizing elements into groups. Figure Messages State machines are discussed in Chapter These are the boxes into which a model can be decomposed. The behavior of a society of objects or of an individual operation may be specified with an interaction.
Behavioral things are the dynamic parts of UML models. An interaction involves a number of other elements. There are also variations on this element. Realization These relationships are the basic relational building blocks of the UML. A note is simply a symbol for rendering constraints and comments attached to an element or a collection of elements. Dependency 2.
There is one primary kind of annotational thing. Association 3. Generalization 4. You use them to write well-formed models. You'll typically use notes to adorn your diagrams with constraints or comments that are best expressed in informal or formal text. Notes are discussed in Chapter 6. There are also variations. These are the comments you may apply to describe.
Figure Dependencies Associations are discussed in Chapters 5 and Aggregation is a special kind of association. In this way. There are also variations on these four. Figure Associations Generalizations are discussed in Chapters 5 and You'll encounter realization relationships in two places: Dependencies are discussed in Chapters 5 and Figure Generalizations Realizations are discussed in Chapter Figure Realization These four elements are the basic relational things you may include in a UML model.
A class diagram shows a set of classes. In practice. Component diagram 9. An shows an interaction. Interaction diagrams are discussed in Chapter Class diagrams that include active classes address the static process view of a system. Diagrams in the UML A diagram is the graphical presentation of a set of elements. Collaboration diagram 6. Interaction diagrams address the dynamic view of a system. Class diagrams address the static design view of a system. A sequence diagram is an interaction diagram that emphasizes the time-ordering of messages.
Object diagram 3. A use case diagram shows a set of use cases and actors a special kind of class and their relationships.
These diagrams are the most common diagram found in modeling object-oriented systems. In theory. You draw diagrams to visualize a system from different perspectives.
Use case diagrams address the static use case view of a system. Use case diagram 4. Object diagrams represent static snapshots of instances of the things found in class diagrams. Use case diagrams are discussed in Chapter Deployment diagram Class diagrams are discussed in Chapter 8.
Activity diagram 8. Sequence diagram 5. Class diagram 2. Statechart diagram 7. For this reason. These diagrams are especially important in organizing and modeling the behaviors of a system.
These diagrams address the static design view or static process view of a system as do class diagrams. Object diagrams are discussed in Chapter 14 An object diagram shows a set of objects and their relationships. The same element may appear in all diagrams.
For all but the most trivial systems. Both sequence diagrams and collaboration diagrams are kinds of interaction diagrams. The five views of an architecture are discussed in the following section. They are especially important in modeling the behavior of an interface. Activity diagrams address the dynamic view of a system.
Sequence diagrams and collaboration diagrams are isomorphic. Statechart diagrams are discussed in Chapter A statechart diagram shows a state machine. They are related to class diagrams in that a component typically maps to one or more classes.
They are related to component diagrams in that a node typically encloses one or more components. Deployment diagrams are discussed in Chapter A component diagram shows the organizations and dependencies among a set of components.
A well-formed model is one that is semantically self-consistent and in harmony with all its related models. Deployment diagrams address the static deployment view of an architecture. Component diagrams are discussed in Chapter This is not a closed list of diagrams.
An activity diagram is a special kind of a statechart diagram that shows the flow from activity to activity within a system. A deployment diagram shows the configuration of run-time processing nodes and the components that live on them. Activity diagrams are discussed in Chapter Like any language. Component diagrams address the static implementation view of a system. Statechart diagrams address the dynamic view of a system.
They are especially important in modeling the function of a system and emphasize the flow of control among objects. Tools may use the UML to provide other kinds of diagrams. The UML's diagrams are thus simply visual projections into that backplane. The same is true of the UML. The class notation also exposes the most important aspects of a class. It is made simpler by the presence of four common mechanisms that apply consistently throughout the language.
Notes and other adornments are discussed in Chapter 6. Inconsistent The integrity of the model is not guaranteed These less-than-well-formed models are unavoidable as the details of a system unfold and churn during the software development life cycle. Figure Adornments. Adornments 3. The UML's specifications provide a semantic backplane that contains all the parts of all the models of a system.
Specifications 2. Adornments Most elements in the UML have a unique and direct graphical notation that provides a visual representation of the most important aspects of the element. A class's specification may include other details. You use the UML's graphical notation to visualize a system.
Given this split. Common Mechanisms in the UML A building is made simpler and more harmonious by the conformance to a pattern of common features. Many of these details can be rendered as graphical or textual adornments to the class's basic rectangular notation. Figure shows a class. Common divisions 4. A house may be built in the Victorian or French country style largely by using certain architectural patterns that define those styles.
Figure Classes And Objects In this figure. Customer an anonymous Customer object. In the UML. Objects are discussed in Chapter Common Divisions In modeling object-oriented systems. A class is an abstraction. Every element in the UML's notation starts with a basic symbol.
Jan which is marked explicitly as being a Customer object. IUnknown and ISpelling. In these languages. An interface declares a contract. Figure Interfaces And Implementations In this figure. The UML's extensibility mechanisms are discussed in Chapter 6. Figure Extensibility Mechanisms. You can add new building blocks. A tagged value extends the properties of a UML building block.
In Figure A system's architecture is perhaps the most important artifact that can be used to manage these different viewpoints and so control the iterative and incremental development of a system throughout its life cycle. As Figure shows. Version and author are not primitive UML concepts. These mechanisms also let the UML adapt to new software technology. A constraint extends the semantics of a UML building block.
Architecture The need for viewing complex systems from different perspectives is discussed in Chapter 1. They can be added to any building block. This view doesn't really specify the organization of a software system. This view primarily supports the functional requirements of the system. With the UML. This view primarily addresses the configuration management of the system's releases.
The design view of a system encompasses the classes. This view primarily addresses the performance. Each view is a projection into the organization and structure of the system. As Figure illustrates. The process view of a system encompasses the threads and processes that form the system's concurrency and synchronization mechanisms.
The implementation view of a system encompasses the components and files that are used to assemble and release the physical system.
Figure Modeling a System's Architecture The use case view of a system encompasses the use cases that describe the behavior of the system as seen by its end users. Modeling the architecture of a system is discussed in Chapter The UML is largely process-independent. Figure Software Development Life Cycle. An iterative process is one that involves managing a stream of executable releases. In the diagram. Each of these five views can stand alone so that different stakeholders can focus on the issues of the system's architecture that most concern them.
Architecture-centric means that a system's architecture is used as a primary artifact for conceptualizing. The deployment view of a system encompasses the nodes that form the system's hardware topology on which the system executes. An is one that involves the continuous integration of the system's architecture to produce these releases. The UML permits you to express every one of these five views and their interactions.
This view primarily addresses the distribution. A phase is the span of time between two major milestones of the process. This use case driven. An iteration is a distinct set of activities. It is this emphasis on architecture as an important artifact that drives the UML to focus on modeling the different views of a system's architecture. In this chapter. Transition is the fourth phase of the process. A system's requirements may range from general vision statements to precise evaluation criteria.
One element that distinguishes this process and that cuts across all four phases is an iteration. Inception is the first phase of the process. Here also. Chapter 3. This means that the software development life cycle can be characterized as involving a continuous stream of executable releases of the system's architecture.
Construction is the third phase of the process. Rarely does the software development process end here. Elaboration is the second phase of the process. In this phase. The next three lines of code: It also covers all the infrastructure needed to get something running.
The only way to learn the UML is by writing models in it. The first program many developers write when approaching a new programming language is a simple one. This is where we begin with the UML. The java. In the usual object-oriented fashion. These mechanisms can easily be modeled with the UML.
Modeling "Hello. The second line of code: Key Abstractions In Java. The class Applet is used as the parent of HelloWorld. Classes are discussed in Chapters 4 and 9. Some things are best written in the syntax of a textual programming language for example. As the preceding code specifies. Its paint operation is shown here. This class diagram captures the basics of the "Hello. Modeling this application in the UML is straightforward.
You can represent these classes and their different relationships to the class HelloWorld in a class diagram. The UML is designed to allow models to be transformed into code and to allow code to be reengineered back into models. The dashed directed line from HelloWorld to Graphics represents a dependency relationship. The directed line with the hollow arrowhead from HelloWorld to Applet represents generalization.
The Applet and Graphics classes are represented graphically as rectangular icons. Tracing just the classes that Applet extends and implements. If you study the Java libraries for Applet and Graphics. No operations are shown for either of them.
Relationships are discussed in Chapters 5 and This is not the end of the framework upon which HelloWorld is built. The interface ImageObserver lives in the package image. The relationship between ImageObserver and Component is a bit different. Applet is a child of Panel. The fact that Component implements ImageObserver is represented by the solid line from the implementation Component to its interface ImageObserver.
To manage this large collection. This figure is a good example of a diagram generated by reverse engineering an existing system. HelloWorld is a child of Applet. Java organizes its interfaces and classes in a number of different packages. Reverse engineering is the creation of a model from code. The root package in the Java environment is named. Object lives in the package lang. This figure makes it clear that HelloWorld is just a leaf in a larger hierarchy of classes.
As the figure shows. Packages may be nested. As this figure shows. You can visualize this packaging in a class diagram. ImageObserver is an interface. Container is a child of Component.
Panel is a child of Container. In the Java library. HelloWorld depends on the package java. Nested inside this package are several other packages. HelloWorld collaborates directly with only two classes Applet and Graphics.
As these figures show. Figure Painting Mechanism Instances are discussed in Chapter This still begs the question of how this operation is invoked.
The Toolkit object then calls one of its own operations callbackLoop. The answer is that paint is called as part of running the thread that encloses the applet. To answer these and other questions. Sequence diagrams are discussed in Chapter What operations must you use if you want to change the behavior of this applet.
Mechanisms Patterns and frameworks are discussed in Chapter The ComponentPeer object then calls its target's paint operation. Processes and threads are discussed in Chapter Studying the Java library reveals that HelloWorld's paint operation is inherited from Component. The other objects are a part of the Java environment and so. The HelloWorld object has a name target known by the ComponentPeer object.
This figure shows the collaboration of several objects. The ComponentPeer object assumes that its target is a Component. You can model the ordering of events using a sequence diagram. The hardest part of mastering a library as rich as Java's is learning how its parts work together. The binary applet HelloWorld. Because these latter three components use user-defined graphical symbols.
You can model this physical view using a component diagram. The icon for the Web page hello. The applet starts when its enclosing page is opened. This suggests a very different perspective of the system. As the figure indicates.
The icon for the hello. This source code can be transformed into the binary applet hello. The canonical icon for a component is a rectangle with two tabs. The component called hello.
Whereas all the earlier diagrams represented a logical view of the applet. The relationships among the class HelloWorld. Advanced features of classes are discussed in Chapter 9.
A class is a description of a set of objects that share the same attributes. On the other hand. Part II: Basic Structural Modeling Chapter 4. These things form the vocabulary of the system you are modeling. Each of these things can be distinguished from the other. Well-structured classes have crisp boundaries and form a part of a balanced distribution of responsibilities across the system.
Getting Started Modeling a system involves identifying the things that are important to your particular view.
A class is an abstraction of the things that are a part of your vocabulary. Windows are usually but not always designed so that you can look out of them instead of pass through them. You use classes to capture the vocabulary of the system you are developing. That's excellent. Walls have a height and a width and are solid. You can use classes to represent software things. A class is not an individual object.
Each of them also has a set of properties. This notation permits you to visualize an abstraction apart from any specific programming language and in a way that lets you emphasize the most important parts of an abstraction: The things you identify and the relationships you choose to establish among them will be affected by how you expect to use the various rooms of your home. Individual walls. Windows are similar to doors in that both are openings that pass through walls.
You may also think of individual instances of wall. Doors also have a height and a width and are solid. These classes may include abstractions that are part of the problem domain.
Users will be concerned about different things. A class may be drawn showing only its name. That name alone is known as a simple name. Terms and Concepts A class is a description of a set of objects that share the same attributes. A name is a textual string. Every class must have a name that distinguishes it from other classes. Names A class name must be unique within its enclosingpackage. An attribute is therefore an abstraction of the kind of data or state an object of the class might encompass.
At a given moment. An attribute represents some property of the thing you are modeling that is shared by all objects of that class. Attributes may be drawn showing only their names. Figure Attributes and Their Class. You can specify other features of anattribute. A class may have any number of attributes or no attributes at all. An attribute is a named property of a class that describes a range of values that instances of the property may hold.
You can further specify an attribute by stating its class and possibly a default initial value. Figure Attributes Note An attribute name may be text. Attributes Attributes arerelated to the semantics ofaggregation. Often but not always. Operations You can further specify the implementation of anoperation by using a note.
Operations may be drawn showing only their names. Figure Operations Note An operation name may be text. A class may have any number of operations or no operations at all.
An operation is the implementation of a service that can be requested from any object of the class to affect behavior. Stereotypes are discussed in Chapter 6. To better organize long lists of attributes and operations. An empty compartment doesn't necessarily mean there are no attributes or operations. You can specify an operation by stating its signature. Figure Stereotypes for Class Features. You can specify other features of an operation. For these reasons.
You can explicitly specify that there are more attributes or properties than shown by ending each list with an ellipsis ".. A Wall class is responsible for knowing about height. Figure Responsibilities. As you refine your models. When you model classes. You can also draw the responsibilities of a class in a note. Responsibilities Responsibilities are an example of a defined stereotype.
At a more abstract level. A class may have any number of responsibilities. A responsibility is a contract or an obligation of a class.
When you create a class. Techniques like CRC cards and use case-based analysis are especially helpful here. Modeling the semantics of aclass is discussed in Chapter 9. Because these kinds of classes are so common and because they represent important architectural abstractions.
Note Responsibilities are just free-form text. Java Beans. When you build models. These and many other features can be expressed in the UML. Web pages. Active classes. Class diagrams are discussed in Chapter 8. When you start building more complex models. Other Features Advanced class concepts are discussed in Chapter 9. For users. To model the vocabulary of a system. Make sure that each class is crisply defined and that there is a good balance of responsibilities among all your classes.
This figure includes a few other related abstractions drawn from the vocabulary of the problem. Invoice used to bill orders. Figure shows a set of classes drawn from a retail system.
Techniques such as CRC cards and use case-based analysis are excellent ways to help users find these abstractions. Common Modeling Techniques Modeling the Vocabulary of a System You'll use classes most commonly to model abstractions that are drawn from the problem you are trying to solve or from the technology you are using to implement a solution to that problem.
Each of these abstractions is a part of the vocabulary of your system. For each abstraction. Figure Modeling the Vocabulary of a System. For implementers. Provide the attributes and operations that are needed to carry out these responsibilities for each class.
There is also one solution-related abstraction. Use CRC cards and use case-based analysis to help find these abstractions. To model the distribution of responsibilities in a system. If you abstract classes that are too small. As your models get larger. What this means is that you don't want any one class to be too big or too small. If you abstract classes that are too big. Each class should do one thing well. Modeling behavior is discussed in Sections 4 and 5.
Modeling the Distribution of Responsibilities in a System Once you start modeling more than just a handful of classes. Most of your models will rarely be completely static. You can use the UML to help you visualize and specify this balance of responsibilities. Notice how all these classes work together such that no one class does too much or too little. Figure shows a set of classes drawn from Smalltalk. Consider the ways in which those classes collaborate with one another.
To model nonsoftware things. Look at this set of classes as a whole. Your application might not have any software that represents them unlike customers in the example above. This set of classes forms a pattern. Things that are external to your system are often modeled as actors. Constraints are described in Chapter 6. If you want to distinguish these things from the UML's defined building blocks. If you need to specify the range of values associated with this type.
Note The UML is mainly intended for modeling software-intensive systems. If the thing you are modeling is some kind of hardware that itself contains software. To model primitive types.
At the other extreme. Types are discussed in Chapter Provides a clear separation of the abstraction's specification and its implementation. Things like integers represented by the class Int are modeled as types. You can model this in the UML by marking the attributes that denote an enumeration with a constant default initial value. Embodies a small. Is understandable and simple yet extensible and adaptable.
Some windows have a single pane of glass. When you draw a class in the UML. None of these things stands alone. Not only will you find structural relationships among these things. Show related classes in the same class diagrams. Cabinets and lights are physically attached to walls and ceilings. Chapter 5. Building webs of relationships is not unlike creating a balanced distribution of responsibilities among your classes.
Advanced features of relationships are discussed in Chapter Getting Started If you are building a house. Walls connect to other walls. Some of your windows might open up and down. You might have large bay windows that don't open. Doors and windows are placed in walls to form openings for people and for light. You group walls.
Organize long lists of attributes and operations by grouping them according to their category. In object-oriented modeling. Each of these relationships provides a different way of combining your abstractions. Not surprisingly. Figure Relationships Terms and Concepts A relationship is a connection among things. These three kinds of relationships cover most of the important ways in which things collaborate with one another. Dependencies are using relationships. This notation permits you to visualize relationships apart from any specific programming language.
The UML provides a graphical representation for each of these kinds of relationships. Each is an opening in a wall. Other kinds of relationships. Associations are structural relationships among instances. No matter their differences. Use dependencies when you want to show one thing using another. Most often. A child inherits the properties of its parents.
In the UML you can also create dependencies among many other things. A dependency is a using relationship that states that a change in specification of one thing for example. Figure Dependencies Different kinds of dependencies are discussed in Chapter More commonly.
Generalization A generalization is a relationship between a general thing called the superclass or parent and a more specific kind of that thing called the subclass or child. Generalization means that objects of the child may be used anywhere the parent may appear.
Note A dependency can have a name. Generalization is sometimes called an "is-a-kind-of" relationship: An operation of a child that has the same signature as an operation in a parent overrides the operation of the parent. Association Associations and dependencies but not generalization relationships may be reflective.
A class that has exactly one parent is said to use single inheritance. A class that has no parents and one or more children is called a root class or a base class. Note A generalization can have a name. A class that has no children is called a leaf class. Given an association connecting two classes. An association is a structural relationship that specifies that objects of one thing are connected to objects of another.
Figure Generalization A class may have zero. Don't confuse name direction with association navigation.
This is especially true when you have more than one association connecting the same classes. This means that. Beyond this basic form. It's quite legal to have both ends of an association circle back to the same class. Role When a class participates in an association.
You can explicitly name the role a class plays in an association. So that there is no ambiguity about its meaning.
Name An association can have a name. Figure Association Names Note Although an association may have a name. Use associations when you want to show structural relationships. Although it's not as common.
Figure Roles. An association that connects exactly two classes is called a binary association. Roles are related to the semantics of interfaces. An instance of an association is called a link.. Multiplicity An association represents a structural relationship among objects.
Figure Multiplicity Note You can specify more complex multiplicities by using a list. This "how many" is called the multiplicity of an association's role. You can even state an exact number for example. When you state a multiplicity at one end of an association.. Note The same class can play the same or different roles in other associations In many modeling situations.
You can show a multiplicity of exactly one 1. This kind of relationship is called aggregation. Aggregation has a number of important variations. Other Features Advanced relationship concepts are discussed in Chapter Aggregation is really just a special kind of association and is specified by adorning a plain association with an open diamond at the whole end. Aggregation A plain association between two classes represents a structural relationship between peers. Figure Aggregation Note The meaning of this simple form of aggregation is entirely conceptual.
The open diamond distinguishes the "whole" from the "part. This means that simple aggregation does not change the meaning of navigation across the association between the whole and its parts.
Common Modeling Techniques Modeling Simple Dependencies The most common kind of dependency relationship is the connection between a class that only uses another class as a parameter to an operation.
Figure shows a set of classes drawn from a system that manages the assignment of students and instructors to courses in a university. Other relationship stereotypes are discussed in Chapter This figure shows a dependency from CourseSchedule to Course. Figure Dependency Relationships If you provide the full signature of the operation as in this figure.
Links are discussed in Chapter To model this using relationship. When you start modeling at the object level. Modeling Single Inheritance In modeling the vocabulary of your system. Elevate these common responsibilities. This figure shows one other dependency. Figure Inheritance Relationships. The dependency from Iterator shows that the Iterator uses the CourseSchedule. If necessary. Because Security is their parent. You'll notice that Security includes two operations: A better way would be to extract any common structural and behavioral features and place them in more-general classes from which the specialized ones inherit.
To model inheritance relationships. Figure shows a set of classes drawn from a trading application. Security is the parent. It made sense to continue that evolution together rather than apart, eliminating the potential for any unnecessary and gratuitous differences that would further confuse users.
Second, by unifying our methods, we could bring some stability to the object-oriented marketplace, allowing projects to settle on one mature modeling language and letting tool builders focus on delivering more useful features. Third, we expected that our collaboration would yield improvements for all three earlier methods, helping us to capture lessons learned and to address problems that none of our methods previously handled well.
Devising a language for use in object-oriented analysis and design is not unlike designing a programming language. First, we had to constrain the problem: Should the language encompass requirements specification? Should the language be sufficient to permit visual programming? Second, we had to strike a balance between expressiveness and simplicity.
Too simple a language would limit the breadth of problems that could be solved; too complex a language would overwhelm the mortal developer. In the case of unifying existing methods, we also had to be sensitive to the installed base. Make too many changes and we would confuse existing users; resist advancing the language and we would miss the opportunity to engage a much broader set of users and to make the language simpler. The UML definition strives to make the best trade-offs in each of these areas.
Our project's initial focus was the unification of the Booch and OMT methods. The version 0. Our efforts resulted in the release of the UML version 0. Throughout , we invited and received feedback from the general software engineering community. During this time, it also became clear that many software organizations saw the UML as strategic to their business. We established a UML consortium, with several organizations willing to dedicate resources to work toward a strong and complete UML definition.
Those partners contributing to the UML 1. This collaboration resulted in the UML 1. UML 1. A revised version of the UML version 1. From to , a new and expanded set of partners produced an updated specification of UML, version 2. UML 2. In addition, many changes were made to previous constructs based on experience with the previous version. UML is the work of a large number of individuals, and the ideas in it come from a wide range of previous works. It would be a major historical research project to reconstruct a complete list of sources, and even more difficult to identify the many predecessors who have influenced UML in manners large and small.
As with all scientific research and engineering practice, UML is a small hill atop a large mountain of previous experience. Download the Index file related to this title. Get unlimited day access to over 30, books about UX design, leadership, project management, teams, agile development, analytics, core programming, and so much more.
SysML Distilled: Add To My Wish List. Book Sorry, this book is no longer in print. Not for Sale. Description Copyright Dimensions: Highlights include: A new chapter on components and internal structure, including significant new capabilities for building encapsulated designs New details and updated coverage of provided and required interfaces, collaborations, and UML profiles Additions and changes to discussions of sequence diagrams, activity diagrams, and more Coverage of many other changes introduced by the UML 2.
Goodness of Fit On Architecture: Table of Contents Preface xiii Part 1: Hello, World! Basic Structural Modeling 45 Chapter 4: Advanced Structural Modeling Chapter 9: Basic Behavioral Modeling Chapter Advanced Behavioral Modeling Chapter Architectural Modeling Chapter Wrapping Up Chapter This book teaches you how to use the UML effectively.
This book covers UML version 2. Goals In this book, you will Learn what the UML is, what it is not, and why the UML is relevant to the process of developing software-intensive systems. Master the vocabulary, rules, and idioms of the UML and, in general, learn how to "speak" the language effectively.
Understand how to apply the UML to solve a number of common modeling problems. Audience The UML is applicable to anyone involved in the production, deployment, and maintenance of software. Organization and Special Features The user guide is organized into seven parts: Each chapter addresses the use of a specific UML feature, and most are organized into the following four sections: Modeling Architectural Patterns Each chapter begins with a summary of the features it covers, as in the following example.
In this chapter Active objects, processes, and threads Modeling multiple flows of control Modeling interprocess communication Building thread-safe abstractions Similarly, parenthetical comments and general guidance are set apart as notes, as in the following example. Blue highlights are used in figures to indicate explanations about a model, as opposed to the model itself, which is always shown in black.
Code is distinguished by displaying it in a monospace font, as in this example. As we began our unification, we established three goals for our work: To model systems, from concept to executable artifact, using object- oriented techniques To address the issues of scale inherent in complex, mission-critical systems To create a modeling language usable by both humans and machines Devising a language for use in object-oriented analysis and design is not unlike designing a programming language.
Index Download the Index file related to this title.