首页>参考读物>计算机科学与技术>软件工程及软件方法学

UML和模式应用(英文版·第3版)
作者 : Craig Larman
丛书名 : 经典原版书库
出版日期 : 2005-12-27
ISBN : 7-111-17841-6
定价 : 75.00元
扩展资源下载
扩展信息
语种 : 英文
页数 : 703
开本 : 16开
原书名 : Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development
原出版社: Prentice Hall
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

“人们经常问我,介绍OO设计的最佳图书是哪一本。读过本书之后,我毫无保留地选择了它。”Martin Fowler,《UML Distilled》和《Refactoring》的作者
  “这一版体现了Larman一贯的风格,精确且富有思想,确实是一本上乘之作。”Alistair Cockburn,《Writing Effective Use Cases》和《Surviving OO Projects》的作者
  “很少有人拥有解释事物的技巧,拥有软件分析和设计能力的人就更少了,但Craig Larman同时拥有这两种能力。”John Vlissides,《Design Patterns》和《Pattern Hatching》的作者

  ●享誉世界的崭新版本,面向对象分析与设计及UML的介绍。
  ●全面升级到UML 2和最新的迭代/敏捷实践。
  ●增加了全新的案例研究,阐述了大量关键思想。
  
  无论对于专业人士还是教师来说,本书都堪称世界一流。书中介绍了“对象思想”,并在实际的面向对象分析和设计中应用了这一思想,即如何以对象进行思考和设计,以及如何创建精致、健壮和可维护的系统。
  开发者和学生可以通过贯穿全书的两个案例研究的三次迭代来学习面向对象分析和设计 (OOA/D) ,这两个案例研究增量地介绍了关键技能、OO的本质原则和模式、UML表示法和最佳实践。读者不仅可以从中学习到UML图,更重要的是可以学习到如何在OO软件开发环境下应用UML。
  基于广受赞誉的前两版,本版进行了修订,充分反映了新的UML 2标准,提倡了具有高度影响的、迭代的和有效的敏捷建模实践,有助于读者掌握对象设计,理解进化式需求和用例、领域对象建模、职责驱动设计、OO设计本质、分层架构、GoF设计模式、GRASP、迭代方法、UP的敏捷途径等。该版本的主要改进包括:
  ●更专注于帮助读者掌握OOA/D,通过案例研究论述了关键的OO原则和模式,同时还应用了UML。
  ●涵盖了UML 2、敏捷建模、测试驱动开发和重构。
  ●针对迭代和进化式开发与OOA/D的结合增加了大量技巧。
  ●更加易于学习,引入了新的学习帮助和插图。
  ●增加了新的教学资源。
  ●对以轻量和敏捷精神应用UP给予了指导,补充了诸如XP和Scrum等其他迭代方法。
  ●增加了应用UML对架构进行文档化的技术。
  ●对进化式需求增加了新的章节。

图书特色

作者简介

Craig Larman:Craig Larman: Craig Larman Valtech公司首席科学家,Valtech是一家领先的跨国技术咨询公司,在美国、欧洲和亚洲都有分支机构。他是国际软件界知名的专家和导师,专长为OOA/D与设计模式、敏捷/迭代方法、统一过程的敏捷途径和UML建模。除本书外,他还著有畅销的《Agile and Iterative Development: A Manager's Guide》(敏捷迭代开发,该书影印版由机械工业出版社引进出版)一书,并且与Rhett Guthrie合著了《Java 2Performance and Idiom Guide》一书。Larman是ACM和IEEE会员,拥有计算机科学学士和硕士学位。他的中文网站是www.craiglarman.cn。

图书目录

I. INTRODUCTION.
1. Object-Oriented Analysis and Design.
  What Will You Learn Is it Useful
  The Most Important Learning Goal
  What is Analysis and Design
  What is Object-Oriented Analysis and Design
  A Short Example.
  What is the UML
  Visual Modeling is a Good Thing.
  History.
  Recommended Resources.
2. Iterative, Evolutionary, and Agile.
  What is the UP Are Other Methods Complementary
  What is Iterative and Evolutionary Development
  What About the Waterfall Lifecycle
  How to do Iterative and Evolutionary Analysis and Design
  What is Risk-Driven and Client-Driven Iterative Planning
  What are Agile Methods and Attitudes
  What is Agile Modeling
  What is an Agile UP
  Are There Other Critical UP Practices
  What are the UP Phases
  Whatare the UP Disciplines
  How to Customize the Process The UP Development Case.
  You Know You Didn't Understand Iterative Development or the UP When.
  History.
  Recommended Resources.
3. Case Studies.
  What is and isn't Covered in the Case Studies
  Case Study Strategy: Iterative Development + Iterative Learning.
  Case One: The NextGen POS System.
  Case Two: The Monopoly Game System.

II. INCEPTION.
4. Inception is Not the Requirements Phase.
  What is Inception
  How Long is Inception
  What Artifacts May Start in Inception
  You Know You Didn't Understand Inception When...
  How Much UML During Inception
5. Evolutionary Requirements.
  Definition: Requirements.
  Evolutionary vs. Waterfall Requirements.
  What are Skillful Means to Find Requirements
  What are the Types and Categories of Requirements
  How are Requirements Organized in UP Artifacts
  Does the Book Contain Examples of These Artifacts
  Recommended Resources.
6. Use Cases.
  Example.
  Definition: What are Actors, Scenarios, and Use Cases
  Use Cases and the Use-Case Model.
  Motivation: Why Use Cases
  Definition: Are Use Cases Functional Requirements    
  Definition: What are Three Kinds of Actors
  Notation: What are Three Common Use Case Formats
  Example: Process Sale, Fully Dressed Style.
  What do the Sections Mean
  Notation: Are There Other Formats A Two-Column Variation.
  Guideline: Write in an Essential UI-Free Style.
  Guideline: Write Terse Use Cases.
  Guideline: Write Black-Box Use Cases.
  Guideline: Take an Actor and Actor-Goal Perspective.
  Guideline: How to Find Use Cases.
  Guideline: What Tests Can Help Find Useful Use Cases
  Applying UML: Use Case Diagrams.
  Applying UML: Activity Diagrams.
  Motivation: Other Benefits of Use Cases Requirements in Context.
  Example: Monopoly Game.
  Process: How to Work With Use Cases in Iterative Methods
  History.
  Recommended Resources.
7. Other Requirements.
  How Complete are these Examples
  Guideline: Should We Analyze These Thoroughly During Inception
  Guideline: Should These Artifacts be at the Project Website
  NextGen Example: (Partial) Supplementary Specification.
  Commentary: Supplementary Specification.
  NextGen Example: (Partial) Vision.
  Commentary: Vision.
  NextGen Example: A (Partial) Glossary.
  Commentary: Glossary (Data Dictionary).
  NextGen Example: Business Rules (Domain Rules).
  Commentary: Domain Rules.
  Process: Evolutionary Requirements in Iterative Methods.
  Recommended Resources.

III. ELABORATION ITERATION 1-BASICS.
8. Iteration 1-Basics.
  Iteration 1 Requirements and Emphasis: Core OOA/D Skills.
  Process: Inception and Elaboration.
  Process: Planning the Next Iteration.
9. Domain Models.
  Example.
  What is a Domain Model
  Motivation: Why Create a Domain Model
  Guideline: How to Create a Domain Model
  Guideline: How to Find Conceptual Classes
  Example: Find and Draw Conceptual Classes.
  Guideline: Agile Modeling-Sketching a Class Diagram.
  Guideline: Agile Modeling-Maintain the Model in a Tool
  Guideline: Report Objects-Include 'Receipt' in the Model
  Guideline: Think Like a Mapmaker; Use Domain Terms.
  Guideline: How to Model the Unreal World
  Guideline: A Common Mistake with Attributes vs. Classes.
  Guideline: When to Model with 'Description' Classes
  Associations.
  Example: Associations in the Domain Models.
  Attributes.
  Example: Attributes in the Domain Models.
  Conclusion: Is the Domain Model Correct
  Process: Iterative and Evolutionary Domain Modeling.
  Recommended Resources.
10. System Sequence Diagrams.
  Example: NextGen SSD.
  What are System Sequence Diagrams
  Motivation: Why Draw an SSD
  Applying UML: Sequence Diagrams.
  What is the Relationship Between SSDs and Use Cases
  How to Name System Events and Operations
  How to Model SSDs Involving Other External Systems
  What SSD Information to Place in the Glossary
  Example: Monopoly SSD.
  Process: Iterative and Evolutionary SSDs.
  History and Recommended Resources.
11. Operation Contracts.
  Example.
  Definition: What are the Sections of a Contract
  Definition: What is a System Operation
  Definition: Postconditions.
  Example: enterItem Postconditions.
  Guideline: Should We Update the Domain Model
  Guideline: When Are Contracts Useful
  Guideline: How to Create and Write Contracts.
  Example: NextGen POS Contracts.
  Example: Monopoly Contracts.
  Applying UML: Operations, Contracts, and the OCL.
  Process: Operation Contracts Within the UP.
  History.
  Recommended Resources.
12. Requirements to Design-Iteratively.
  Iteratively Do the Right Thing, Do the Thing Right.
  Provoking Early Change.
  Didn't All That Analysis and Modeling Take Weeks To Do
13. Logical Architecture and UML Package Diagrams.
  Example.
  What is the Logical Architecture And Layers
  What Layers are the Focus in the Case Studies
  What is Software Architecture
  Applying UML: Package Diagrams.
  Guideline: Design with Layers.
  Guideline: The Model-View Separation Principle.
  What's the Connection Between SSDs, System Operations, and Layers
  Example: NextGen Logical Architecture and Package Diagram.
  Example: Monopoly Logical Architecture
  Recommended Resources.
14. On to Object Design.
  Agile Modeling and Lightweight UML Drawing.
  UML CASE Tools.
  How Much Time Spent Drawing UML Before Coding
  Designing Objects: What are Static and Dynamic Modeling
  The Importance of Object Design Skill over UML Notation Skill.
  Other Object Design Techniques: CRC Cards.
15. UML Interaction Diagrams.
  Sequence and Communication Diagrams.
  Novice UML Modelers Don't Pay Enough Attention to Interaction Diagrams!
  Common UML Interaction Diagram Notation.
  Basic Sequence Diagram Notation.
  Basic Communication Diagram Notation.
16. UML Class Diagrams.
  Applying UML: Common Class Diagram Notation.
  Definition: Design Class Diagram.
  Definition: Classifier.
  Ways to Show UML Attributes: Attribute Text and Association Lines.
  Note Symbols: Notes, Comments, Constraints, and Method Bodies.
  Operations and Methods.
  Keywords.
  Stereotypes, Profiles, and Tags.
  UML Properties and Property Strings.
  Generalization, Abstract Classes, Abstract Operations.
  Dependency.
  Interfaces.
  Composition Over Aggregation.
  Constraints.
  Qualified Association.
  Association Class.
  Singleton Classes.
  Template Classes and Interfaces.
  User-Defined Compartments.
  Active Class.
  What's the Relationship Between Interaction and Class Diagrams
17. GRASP: Designing Objects with Responsibilities.
  UML versus Design Pinciples.
  Object Design: Example Inputs, Activities, and Outputs.
  Responsibilities and Responsibility-Driven Design.
  GRASP: A Methodical Approach to Basic OO Design.
  What's the Connection Between Responsibilities, GRASP, and UML Diagrams
  What are Patterns
  Where are We Now
  A Short Example of Object Design with GRASP.
  Applying GRASP to Object Design.
  Creator.
  Information Expert (or Expert).
  Low Coupling.
  Controller.
  High Cohesion.
  Recommended Resources.
18. Object Design Exaples with GRASP.
  What is a Use Case Realization
  Artifact Comments.
  What's Next
  Use Case Realizations for the NextGen Iteration.
  Use Case Realizations for the Monopoly Iteration.
  Process: Iterative and Evolutionary Object Design.
  Summary.
19. Designing for Visibility.
  Visibility Between Objects.
  What is Visibility
20. Mapping Designs to Code.
  Programming and Iterative, Evolutionary Development.
  Mapping Designs to Code.
  Creating Class Definitions from DCDs.
  Creating Methods from Interaction Diagrams.
  Collection Classes in Code.
  Exceptions and Error Handling.
  Defining the Sale.makeLineItem Method.
  Order of Implementation.
  Test-Driven or Test-First Development.
  Summary of Mapping Designs to Code.
  Introduction to the NextGen POS Program Solution.
  Introduction to the Monopoly Program Solution.
21. Test-Driven Development and Refactoring.
  Test-Driven Development.
  Refactoring.
  Recommended Resources.

IV. ELABORATION ITERATION 2-MORE PATTERNS.
22. UML Tools and UML as Blueprint.
  Forward, Reverse, and Round-Trip Engineering.
  What is a Common Repot of Valuable Features
  What to Look For in a Tool
  If Sketching UML, How to Update the Diagrams After Coding
  Recommended Resources.
23. Quick Analysis Update.
  Case Study: NextGen POS.
  Case Study: Monopoly.
24. Iteration 2-More Patterns.
  From Iteration 1 to 2.
  Iteration-2 Requirements and Emphasis: Object Design and Patterns.
25. GRASP: More Objects with Responsibilities.
  Polymorphism.
  Pure Fabrication.
  Indirection.
  Protected Variations.
26. Applying GoF Design Patterns.
  Adapter (GoF).
  Some GRASP Principles as a Generalization of Other Patterns.
  "Analysis" Discoveries During Design: Domain Model.
  Factory.
  Singleton (GoF).
  Conclusion of the External Services with Varying Interfaces Problem.
  Strategy (GoF).
  Composite (GoF) and Other Design Principles.
  Facade (GoF).
  Observer/Publish-Subscribe/Delegation Event Model (GoF).
  Conclusion.
  Recommended Resources.

V. ELABORATION ITERATION 3-INTERMEDIATE TOPICS.
27. Iteration 3-Intermediate Topics.
  NextGen POS.
  Monopoly.
28. UML Activity Diagrams and Modeling.
  Example.
  How to Apply Activity Diagrams
  More UML Activity Diagram Notation.
   Guidelines.
  Example: NextGen Activity Diagram.
  Process: Activity Diagrams in the UP.
  Background.
29. UML State Machine Diagrams and Modeling.
  Example.
  Definitions: Events, States, and Transitions.
  How to Apply State Machine Diagrams
  More UML State Machine Diagram Notation.
  Example: UI Navigation Modeling with State Machines.
  Example: NextGen Use Case State Machine Diagram.
  Process: State Machine Diagrams in the UP.
  Recommended Resources.
30. Relating Use Cases.
  The include Relationship.
  Terminology: Concrete, Abstract, Base, and Addition Use Cases.
  The extend Relationship.
  The generalize Relationship.
  Use Case Diagrams.
31. More SSDs and Contracts.
  NextGen POS.
32. Domain Model Refinement.
  New Concepts for the NextGen Domain Model.
  Generalization.
  Defining Conceptual Superclasses and Subclasses.
  When to Define a Conceptual Subclass
  When to Define a Conceptual Superclass
  NextGen POS Conceptual Class Hierarchies.
   Abstract Conceptual Classes.
  Modeling Changing States.
  Class Hierarchies and Inheritance in Software.
  Association Classes.
  Aggregation and Composition.
  Time Intervals and Product Prices-Fixing an Iteration 1 "Error".
  Association Role Names.
  Roles as Concepts versus Roles in Associations.
  Derived Elements.
  Qualified Associations.
  Reflexive Associations.
  Using Packages to Organize the Domain Model.
  Example: Monopoly Domain Model Refinements.
33. Architectural Analysis.
  Process: When Do We Start Architectural Analysis
  Definition: Variation and Evolution Points.
  Architectural Analysis.
  Common Steps in Architectural Analysis.
  The Science: Identification and Analysis of Architectural Factors.
  Example: Partial NextGen POS Architectural Factor Table.
  The Art: Resolution of Architectural Factors.
  Summary of Themes in Architectural Analysis.
  Process: Iterative Architecture in the UP.
  Recommended Resources.
34. Logical Architecture Refinement.
  Example: NextGen Logical Architecture.
  Collaborations with the Layers Pattern.
  Other Layer Pattern Issues.
  Model-View Separation and "Upward" Communication.
  Recommended Resources.
35. More Object Design with GoF Patterns.
  Example: NextGen POS.
  Failover to Local Services; Performance with Local Caching.
  Handling Failure.
  Failover to Local Services with a Proxy (GoF).
  Designing for Non-Functional or Quality Requirements.
  Accessing External Physical Devices with Adapters.
  Abstract Factory (GoF) for Families of Related Objects.
  Handling Payments with Polymorphism and Do It Myself.
  Example: Monopoly.
  Conclusion.
36. Package Design.
  Package Organization Guidelines.
  Recommended Resources.
37. UML Deployment and Component Diagrams.
  Deployment Diagrams.
  Component Diagrams.
38. Designing a Persistence Framework with Patterns.
  The Problem: Persistent Objects.
  The Solution: A Persistence Service from a Persistence Framework.
  Frameworks.
  Requirements for the Persistence Service and Framework.
  Key Ideas.
  Pattern: Representing Objects as Tables.
  UML Data Modeling Profile.
  Pattern: Object Identifier.
  Accessing a Persistence Service with a Façade.
  Mapping Objects: Database Mapper or Database Broker Pattern.
  Framework Design with the Template Method Pattern.
  Materialization with the Template Method Pattern.
  Configuring Mappers with a MapperFactory.
  Pattern: Cache Management.
  Consolidating and Hiding SQL Statements in One Class.
  Transactional States and the State Pattern.
  Designing a Transaction with the Command Pattern.
  Lazy Materialization with a Virtual Proxy.
  How to Represent Relationships in Tables.
  PersistentObject Superclass and Separation of Concerns.
  Unresolved Issues.
39. Documenting Architecture: UML & the N+1 View Model.
  The SAD and Its Architectural Views.
  Notation: The Structure of a SAD.
  Example: A NextGen POS SAD.
  Example: A Jakarta Struts SAD.
  Process: Iterative Architectural Documentation.
  Recommended Resources.

VI. SPECIAL TOPICS
40. More on Iterative Development and Agile Project Management.
  How to Plan an Iteration
  Adaptive versus Predictive Planning.
  Phase and Iteration Plans.
  How to Plan Iterations with Use Cases and Scenarios
  The (In)Validity of Early Estimates.
  Organizing Project Artifacts.
  You Know You Didn't Understand Iterative Planning When...
Recommended Resources.
Bibliography.
Glossary.
Index.

教学资源推荐
作者: 窦万峰,杨坤,许敏,缪静娴,钱辰
作者: [美]罗杰 S.普莱斯曼(Roger S. Pressman) 布鲁斯 R. 马克西姆(Bruce R. Maxim) 著
作者: 赵翀 孙宁 编著 贲可荣 主审
参考读物推荐
作者: Michael Sutton, Adam Greene;Pedram Amini
作者: [美]伦·巴斯(Len Bass),[美]保罗·克莱门茨(Paul Clements),[美]瑞克·凯兹曼(Rick Kazman) 著
作者: [美] 迪恩?莱芬韦尔(Dean Leffingwell)等著