Applying UML and patterns : an introduction to object-oriented analysis and design and iterative...
副标题:无
作 者:Craig Larman著.
分类号:
ISBN:9787111178415
微信扫一扫,移动浏览光盘
简介
无论对于专业人士还是教师来说,本书都堪称世界一流。书中介绍了“对象思想”,并在实际的面向对象分析和设计中应用了这一思想,即如何以对象进行思考和设计,以及如何创建精致、健壮和可维护的系统。
开发者和学生可以通过贯穿全书的两个案例研究的三次迭代来学习面向对象分析和设计 (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对架构进行文档化的技术。
●对进化式需求增加了新的章节。
作者简介:
graig larman,valtech公司首席科学家,valtech是一家领先的跨国技术咨询公司,在美国、欧洲和亚洲都有分支机构。他是闻名于国际软件界的专家和导师,专长于ooa/d与设计模式、敏捷/迭代方法、统一过程的敏捷途径和uml建模。除本书外,他还著有畅销的《agile and iterative development:a manager's guide》(敏捷迭代开发,该书影印版由机械工业出版社引进出版)一书,并且与rhett guthrie合著了《java performance and ldiom guide》一书,larman是acm和ieee会员,拥有计算机科学学士和硕士学位。他的中文网站是www.craiglarman.cn。
目录
foreword
preface.
part 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
part 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
part 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
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
part iv. elaboration iteration 2-more patterns
23. iteration 2-more patterns
from iteration 1 to 2
iteration-2 requirements and emphasis: object design and patterns
24. quick analysis update
case study: nextgen pos
case study: monopoly
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
part 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. 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
32. more ssds and contracts
nextgen pos
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. package design
package organization guidelines
recommended resources
36. 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
37. 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 facade
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
38. uml deployment and component diagrams
deployment diagrams
component diagrams
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
part 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...
preface.
part 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
part 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
part 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
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
part iv. elaboration iteration 2-more patterns
23. iteration 2-more patterns
from iteration 1 to 2
iteration-2 requirements and emphasis: object design and patterns
24. quick analysis update
case study: nextgen pos
case study: monopoly
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
part 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. 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
32. more ssds and contracts
nextgen pos
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. package design
package organization guidelines
recommended resources
36. 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
37. 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 facade
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
38. uml deployment and component diagrams
deployment diagrams
component diagrams
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
part 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...
Applying UML and patterns : an introduction to object-oriented analysis and design and iterative...
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×