Aspect-Oriented Software Development with Use Cases (The Addison-Wesley Object Technology Series)
Publisher: Addison-Wesley Professional
Published: December 30, 2004
Language: eng
Format: Paperback
Number of pages: 464
ISBN-13: 9780321268884
Subjects: Software engineering; Object-Oriented Programming; Software Development; Computers; Computers - Languages / Programming; Textbooks; Computer Books: Languages; Programming - Object Oriented Programming; Computers / Programming / Object Oriented; Programming - Software Development; Computer software; Development; Object-oriented programming (C; Object-oriented programming (Computer science)
First sentence: In Part I, we build the case for use cases and aspects—why we need use cases, why we need aspects, and how the two compliment each other.
Description: Gregor Kiczales said that aspect-oriented programming was wasted on programming languages, and was better used during system design.  This book shows how to add aspect-oriented thinking to UML based software design by using aspect-oriented use cases.
Table of contents: pagenum: xvii
class: section
title: Preface; pagenum: xxxi
class: part
title: Acknowledgements; title: The Case for Use Cases and Aspects
pagenum: 1
class: part
label: I; label: 1
pagenum: 3
class: part
title: Problem to Attack; label: 1.1
pagenum: 3
class: part
title: The Use of Components Today; title: Building a System with Components
pagenum: 4
class: part
label: 1.1.1; title: Benefits of Components
pagenum: 6
class: part
label: 1.1.2; label: 1.2
pagenum: 6
class: part
title: Limitation of Components; title: Inability to Keep Peers Separate
pagenum: 8
class: part
label: 1.2.1; title: Inability to Keep Extensions Separate
pagenum: 9
class: part
label: 1.2.2; title: Approaching a Solution
pagenum: 11
class: part
label: 1.3; label: 1.3.1
pagenum: 12
class: part
title: Early Support for Extensions; label: 1.3.2
pagenum: 15
class: part
title: Support for Extensions in UML; label: 1.4
pagenum: 16
class: part
title: Keeping Concerns Separate; title: Attacking the Problem with Aspects
pagenum: 17
class: part
label: 2; title: Aproaching a Solution with Aspects
pagenum: 17
class: part
label: 2.1; title: Keeping Peers Separate with Aspects
pagenum: 19
class: part
label: 2.2; label: 2.3
pagenum: 21
class: part
title: Keeping Extensions Separate with Aspects; title: Need for Methodological Guidance
pagenum: 26
class: part
label: 2.4; title: Today with Use Cases
pagenum: 29
class: part
label: 3; label: 3.1
pagenum: 29
class: part
title: Use Cases in Brief; title: Use-Case-Driven Development
pagenum: 32
class: part
label: 3.2; label: 3.3
pagenum: 34
class: part
title: Roles and Benefits of Use Cases; title: Gaps in the Use-Case Technique
pagenum: 34
class: part
label: 3.4; label: 3.5
pagenum: 35
class: part
title: Bridging the Gaps with Aspects; label: 4
pagenum: 37
class: part
title: Tomorrow with Use-Case Modules; title: Buliding Systems in Overlays with Use-Case Slices
pagenum: 38
class: part
label: 4.1; label: 4.2
pagenum: 40
class: part
title: Keeping Peer Use Cases Separate; title: Keeping Extension Use Cases Separate
pagenum: 42
class: part
label: 4.3; title: Developing with Use-Case Modules
pagenum: 45
class: part
label: 4.4; title: Modeling and Capturing Concerns with Use Cases
pagenum: 49
class: part
label: II; title: Modeling Concerns with Use Cases
pagenum: 51
class: part
label: 5; label: 5.1
pagenum: 51
class: part
title: Use-Case Modeling; label: 5.2
pagenum: 53
class: part
title: Use-Case Instances and Flows of Events; label: 5.3
pagenum: 54
class: part
title: Describing Use Cases; title: Visualizing Use-Case Flows
pagenum: 57
class: part
label: 5.4; title: Summary and Highlights
pagenum: 60
class: part
label: 5.5; label: 6
pagenum: 61
class: part
title: Structuring Use Cases; label: 6.1
pagenum: 61
class: part
title: Use-Case Relationships; title: Use-Case Extend Relationship
pagenum: 63
class: part
label: 6.2; label: 6.3
pagenum: 70
class: part
title: Use-Case Include Relationship; title: Use-Case Generalization
pagenum: 73
class: part
label: 6.4; label: 6.5
pagenum: 77
class: part
title: Utility Use Cases; label: 6.6
pagenum: 79
class: part
title: Summary and Highlights; title: Capturing Concerns with Use Cases
pagenum: 81
class: part
label: 7; title: Understanding Stakeholder Concerns
pagenum: 81
class: part
label: 7.1; title: Understanding the Problem Doain
pagenum: 82
class: part
label: 7.1.1; title: Eliciting System Features
pagenum: 83
class: part
label: 7.1.2; title: Dealing with Functional and Nonfunctional Requirements
pagenum: 84
class: part
label: 7.1.3; label: 7.2
pagenum: 86
class: part
title: Capturing Application Use Cases; label: 7.2.1
pagenum: 87
class: part
title: Identifying Use-Case Variability; title: Handling Use-Case Variability
pagenum: 88
class: part
label: 7.2.2; label: 7.2.3
pagenum: 91
class: part
title: Dealing with Extension Use Cases; label: 7.3
pagenum: 93
class: part
title: Capturing Infrastructure Use Cases; title: The Perform Transaction Use Case
pagenum: 94
class: part
label: 7.3.1; label: 7.3.2
pagenum: 96
class: part
title: Structuring Infrastructure Uses Cases; title: Describing Infrastructure Use Cases
pagenum: 98
class: part
label: 7.3.3; label: 7.3.4
pagenum: 100
class: part
title: Dealing with Systemwide Concerns; label: 7.4
pagenum: 101
class: part
title: Summary and Highlights; label: III
pagenum: 103
class: part
title: Keeping Concerns Separate with Use-Case Modules; title: Keeping Peer Use-Case Realizations Separate with Aspects
pagenum: 105
class: part
label: 8; title: Realizing Peer Use Cases
pagenum: 106
class: part
label: 8.1; label: 8.1.1
pagenum: 106
class: part
title: Collaborations; title: Realizing a Use Case
pagenum: 108
class: part
label: 8.1.2; title: Overlap between Peer Use-Case Realizations
pagenum: 110
class: part
label: 8.1.3; label: 8.2
pagenum: 111
class: part
title: Keeping Use-Case Specifics Separate; title: Composing Use-Case-Specific Classes
pagenum: 113
class: part
label: 8.2.1; title: Composing Use-Case-Specific Class Extension
pagenum: 115
class: part
label: 8.2.2; label: 8.2.3
pagenum: 117
class: part
title: Collaborations in Use-Case Slices; title: Dealing with Overlap
pagenum: 118
class: part
label: 8.3; title: Included Use-Case Slice
pagenum: 119
class: part
label: 8.3.1; label: 8.3.2
pagenum: 121
class: part
title: Generalized Use-Case Slice; label: 8.3.3
pagenum: 123
class: part
title: Non-Use-Case-Specific Slice; title: Summary and Highlights
pagenum: 125
class: part
label: 8.4; label: 9
pagenum: 127
class: part
title: Keeping Extensions Separate with Pointcuts; title: Realizing Extension Use Cases
pagenum: 128
class: part
label: 9.1; title: Keeping Modularity of Extension Use-Case Realizations
pagenum: 129
class: part
label: 9.2; title: Operation Extensions
pagenum: 130
class: part
label: 9.2.1; label: 9.2.2
pagenum: 133
class: part
title: Pointcuts; label: 9.3
pagenum: 135
class: part
title: Parameterizing Pointcuts; label: 9.3.1
pagenum: 136
class: part
title: Identifying Parameters; title: Defining Parameters
pagenum: 137
class: part
label: 9.3.2; title: Parameterizing Pointcuts in AOP
pagenum: 138
class: part
label: 9.3.3; title: Generalizing Extension Use-Case Realizations
pagenum: 139
class: part
label: 9.4; label: 9.5
pagenum: 142
class: part
title: Templating Use-Case Slices; label: 9.6
pagenum: 144
class: part
title: Summary and Highlights; title: Building Systems with Use-Case Modules
pagenum: 145
class: part
label: 10; title: A System Comprises Models
pagenum: 146
class: part
label: 10.1; label: 10.2
pagenum: 147
class: part
title: Use-Case Model; title: Analysis Model
pagenum: 148
class: part
label: 10.3; label: 10.3.1
pagenum: 149
class: part
title: Language of Analysis; label: 10.3.2
pagenum: 150
class: part
title: Conducting Analysis; title: Design and Implementation Models
pagenum: 152
class: part
label: 10.4; label: 10.4.1
pagenum: 152
class: part
title: Language of Design and Implementation; title: Conducting Design and Implementation
pagenum: 154
class: part
label: 10.4.2; title: Use-Case Modules Cut Across Models
pagenum: 154
class: part
label: 10.5; label: 10.5.1
pagenum: 155
class: part
title: Preserving the Structure of the Use-Case Model; label: 10.5.2
pagenum: 157
class: part
title: A Use-Case Module Contains Use-Case Slices; label: 10.5.3
pagenum: 158
class: part
title: Use-Case Module Relationships; label: 10.6
pagenum: 159
class: part
title: Composing and Configuring Use-Case Modules; title: Summary and Highlights
pagenum: 161
class: part
label: 10.7; label: IV
pagenum: 163
class: part
title: Establishing an Architecture Based on Use Cases and Aspects; title: Road to a Resilient Architecture
pagenum: 167
class: part
label: 11; label: 11.1
pagenum: 168
class: part
title: What Is Architecture?; label: 11.2
pagenum: 168
class: part
title: What Is a Good Architecture?; label: 11.3
pagenum: 170
class: part
title: Steps to Establish an Architecture Baseline; label: 11.4
pagenum: 174
class: part
title: Begin with a Platform-Independent Structure; label: 11.4.1
pagenum: 174
class: part
title: Element Structure; label: 11.4.2
pagenum: 177
class: part
title: Use-Case Structure; title: Overlay Platform Specifics on Top
pagenum: 179
class: part
label: 11.5; title: Choosing the Platform
pagenum: 179
class: part
label: 11.5.1; title: Keeping Platform Specifics Separate
pagenum: 181
class: part
label: 11.5.2; title: Summary and Highlights
pagenum: 184
class: part
label: 11.6; label: 12
pagenum: 187
class: part
title: Separating Functional Requirements with Application Peer Use Cases; title: Analyzing Application Use Cases
pagenum: 188
class: part
label: 12.1; label: 12.1.1
pagenum: 189
class: part
title: Identifyinhg Classes; title: Allocating Use-Case Behavior to Classes
pagenum: 190
class: part
label: 12.1.2; label: 12.2
pagenum: 195
class: part
title: Keeping Application Use Cases Separate; title: Element Structure
pagenum: 195
class: part
label: 12.2.1; label: 12.2.2
pagenum: 196
class: part
title: Use-Case Structure; label: 12.3
pagenum: 199
class: part
title: Designing Application Use Cases; title: Identifying Design Elements
pagenum: 200
class: part
label: 12.3.1; title: Identifying Components and Interfaces
pagenum: 203
class: part
label: 12.3.2; title: Refining Design Elements
pagenum: 205
class: part
label: 12.4; title: Keeping Class Extensions Separate
pagenum: 205
class: part
label: 12.4.1; label: 12.4.2
pagenum: 207
class: part
title: Keeping Operation Extensions Separate; title: Keeping StateTransitions Separate
pagenum: 209
class: part
label: 12.4.3; label: 12.5
pagenum: 211
class: part
title: Summary and Highlights; title: Separating Functional Requirements with Application-Extension Use Cases
pagenum: 213
class: part
label: 13; label: 13.1
pagenum: 214
class: part
title: Analyzing Application-Extension Use Cases; label: 13.1.1
pagenum: 215
class: part
title: Identifying Classes; title: Identifying Pointcuts
pagenum: 216
class: part
label: 13.1.2; title: Allocating Use-Case Behavior to Classes
pagenum: 218
class: part
label: 13.1.3; title: Keeping Application-Extension Use Cases Separate
pagenum: 220
class: part
label: 13.2; title: Structuring Alternate Flows
pagenum: 221
class: part
label: 13.2.1; title: Keeping Alternate Flows Separate
pagenum: 222
class: part
label: 13.2.2; label: 13.3
pagenum: 224
class: part
title: Designing Application-Extension Use Cases; label: 13.3.1
pagenum: 224
class: part
title: Designing Operation Extensions; title: Identifying Component Interfaces from Use-Case Extensions
pagenum: 225
class: part
label: 13.3.2; label: 13.3.3
pagenum: 226
class: part
title: Dealing with Multiple Extensions to a Use Case; title: Extending Multiple Use Cases
pagenum: 229
class: part
label: 13.3.4; label: 13.4
pagenum: 230
class: part
title: Dealing with Changes in the Base; title: Applying Reflection
pagenum: 232
class: part
label: 13.4.1; title: Applying Design Patterns
pagenum: 232
class: part
label: 13.4.2; title: Applying Adaptive Programming
pagenum: 235
class: part
label: 13.4.3; label: 13.5
pagenum: 236
class: part
title: Summary and Highlights; label: 14
pagenum: 239
class: part
title: Separating Nonfunctional Requirements with Infrastructure Use Cases; title: Analyzin an Infrastructure Use Case
pagenum: 240
class: part
label: 14.1; label: 14.1.1
pagenum: 241
class: part
title: Identifying Classes; title: Identifying Pointcuts
pagenum: 242
class: part
label: 14.1.2; title: Allocating Use-Case Behavior to Classes
pagenum: 245
class: part
label: 14.1.3; label: 14.2
pagenum: 247
class: part
title: Keeping Infrastructure Use Cases Separate; title: Designing Infrastructure Use Cases
pagenum: 250
class: part
label: 14.3; label: 14.3.1
pagenum: 251
class: part
title: Applying the Infrastrucure Use-Case Slice with Aspects; title: Applying the Infrastructure Use-Case Slice with Filters
pagenum: 252
class: part
label: 14.3.2; label: 14.3.3
pagenum: 255
class: part
title: Identifying Components in the Infrastructure Layer; title: Dealing with Multiple Infrastructure Use Cases
pagenum: 256
class: part
label: 14.4; label: 14.5
pagenum: 261
class: part
title: Summary and Highlights; title: Separating Platform Specifics with Platform-Specific Use-Case Slices
pagenum: 263
class: part
label: 15; title: Keeping Platform Specifics Separate
pagenum: 264
class: part
label: 15.1; label: 15.1.1
pagenum: 264
class: part
title: Three-Tier Systems; label: 15.1.2
pagenum: 266
class: part
title: Tier Packages; label: 15.1.3
pagenum: 268
class: part
title: Modeling Tiers with Infrastructure Use Cases; title: Overlaying User Interfaces
pagenum: 269
class: part
label: 15.2; title: Minimal Use-Case Design without Presentation Specifics
pagenum: 270
class: part
label: 15.2.1; title: A Web Presentation Mechanism in J2EE
pagenum: 271
class: part
label: 15.2.2; title: Designing the Presentatioh Mechanism
pagenum: 273
class: part
label: 15.2.3; title: Applying the Presentation Mechanism
pagenum: 275
class: part
label: 15.2.4; label: 15.3
pagenum: 276
class: part
title: Overlaying Persistency; label: 15.3.1
pagenum: 277
class: part
title: Minimal Use-Case Design without Distribution; title: An EJB Distribution Mechanism
pagenum: 278
class: part
label: 15.3.2; label: 15.3.3
pagenum: 281
class: part
title: Designing the Distribution Mechanism; title: Applying the Persistency Mechanism
pagenum: 297
class: part
label: 15.3.4; label: 15.4
pagenum: 290
class: part
title: Preserving the Use-Case Structure; title: Minimal Use-Case Design without Persistence
pagenum: 291
class: part
label: 15.4.1; label: 15.4.2
pagenum: 292
class: part
title: A Relational Persistency Mechanism in J2EE; title: Designing Persistency Mechanism
pagenum: 293
class: part
label: 15.4.3; label: 15.4.4
pagenum: 297
class: part
title: Applying the Persistency Mechanism; title: Preserving the Use-Case Structure
pagenum: 298
class: part
label: 15.5; label: 15.6
pagenum: 299
class: part
title: Summary and Highlights; label: 16
pagenum: 301
class: part
title: SSeparating Tests with Use-Case Test Slices; title: Test-First Approach
pagenum: 301
class: part
label: 16.1; label: 16.2
pagenum: 303
class: part
title: Identifying Test Cases from Use Cases; label: 16.2.1
pagenum: 204
class: part
title: Identifying Test Cases from Use-Case Flows; label: 16.2.2
pagenum: 305
class: part
title: Identifying Test Cases from Use-Case Variables; title: Identifying Test Cases across Multiple Application Use Cases
pagenum: 306
class: part
label: 16.2.3; title: Identifying Test Cases for the Infrastructure and the Platform Specifics
pagenum: 306
class: part
label: 16.2.4; title: Identifying Performance Test Cases
pagenum: 307
class: part
label: 16.2.5; label: 16.3
pagenum: 308
class: part
title: Identifying Elements to Be Tested; title: Designing and Implementing Tests
pagenum: 310
class: part
label: 16.4; label: 16.4.1
pagenum: 312
class: part
title: Designing a Test Infrastructure; title: Designing a Test Case
pagenum: 316
class: part
label: 16.4.2; title: Summary and Highlights
pagenum: 317
class: part
label: 16.5; label: 17
pagenum: 319
class: part
title: Evaluating the Architecture; title: Putting It Together
pagenum: 319
class: part
label: 17.1; title: Evaluating Separation of Concerns
pagenum: 324
class: part
label: 17.2; label: 17.2.1
pagenum: 325
class: part
title: Evaluating Design Elemnts; label: 17.2.2
pagenum: 325
class: part
title: Evaluating Design Packages; label: 17.2.3
pagenum: 327
class: part
title: Evaluating Use-Case Structures; title: Automating the Evaluation
pagenum: 329
class: part
label: 17.2.4; label: 17.2.5
pagenum: 330
class: part
title: Enforcing the Separation of Concerns; label: 17.3
pagenum: 332
class: part
title: Evaluating and Achieving Systemwide Concerns; label: 17.3.1
pagenum: 332
class: part
title: Evaluating and Achieving Maintainability; label: 17.3.2
pagenum: 332
class: part
title: Evaluating and Achieving Extensibility; label: 17.3.3
pagenum: 333
class: part
title: Evaluating and Achieving Portability; label: 17.3.4
pagenum: 334
class: part
title: Evaluating and Achieving Reusability; title: Evaluating and Achieving Performance and Reliability
pagenum: 334
class: part
label: 17.3.5; title: Summary and Highlights
pagenum: 336
class: part
label: 17.4; title: Describing the Architecture
pagenum: 339
class: part
label: 18; title: Architecture Description Comprises Architectural Views
pagenum: 340
class: part
label: 18.1; label: 18.2
pagenum: 342
class: part
title: Architectural View of the Use-Case Model; title: Architectural View of the Analysis Model
pagenum: 344
class: part
label: 18.3; title: Arcitecturally Significant Analysis Elements
pagenum: 344
class: part
label: 18.3.1; label: 18.3.2
pagenum: 346
class: part
title: Architecturally Significant Use-Case Analysis Slices; title: Architectural View of the Design Model
pagenum: 347
class: part
label: 18.4; label: 18.4.1
pagenum: 348
class: part
title: Architecturally Significant Deployment Elements; title: Architecturally Significant Process Elements
pagenum: 348
class: part
label: 18.4.2; title: Architecturally Significant Design Elements
pagenum: 349
class: part
label: 18.4.3; label: 18.4.4
pagenum: 351
class: part
title: Architecturally Significant Use-Case Design Slices; title: Summary and Highlights
pagenum: 352
class: part
label: 18.5; label: V
pagenum: 355
class: part
title: Applying Use Cases and Aspects in a Project; label: 19
pagenum: 357
class: part
title: Running a Project; label: 19.1
pagenum: 357
class: part
title: Iterative Development; label: 19.1.1
pagenum: 358
class: part
title: Phases in a Project; title: Activities in an Iteration
pagenum: 359
class: part
label: 19.1.2; label: 19.2
pagenum: 395
class: part
title: Estimating Development Effort; label: 19.2.1
pagenum: 360
class: part
title: Estimation at the Beginning of a Project; title: Refining the Estimates
pagenum: 362
class: part
label: 19.2.2; label: 19.3
pagenum: 363
class: part
title: Planning and Controlling the Project; title: Estimating Project Delays
pagenum: 363
class: part
label: 19.3.1; title: Keeping the Project on Track
pagenum: 364
class: part
label: 19.3.2; label: 19.4
pagenum: 365
class: part
title: Productivity Gains by Keeping Concerns Separate; title: Summary and Highlights
pagenum: 367
class: part
label: 19.5; title: Tailoring the Approach
pagenum: 369
class: part
label: 20; title: Achieving the Right Balance
pagenum: 369
class: part
label: 20.1; title: Selecting Disciplines to Apply
pagenum: 370
class: part
label: 20.2; title: Adopting at Different Phases of a Project
pagenum: 373
class: part
label: 20.3; label: 20.4
pagenum: 374
class: part
title: Summary and Highlights; label: 21
pagenum: 375
class: part
title: Aspects and Beyond; title: Building a System in Extensions
pagenum: 375
class: part
label: 21.1; label: 21.2
pagenum: 376
class: part
title: Balancing Best Practices; title: The Road Ahead
pagenum: 377
class: part
label: 21.3; title: Modeling Aspects and Use-Case Slices in UML
pagenum: 379
class: part
label: A; label: A.1
pagenum: 380
class: part
title: Modeling Intertype Declarations with Class Extensions; title: Modeling Advices with Operation Extensions
pagenum: 381
class: part
label: A.2; label: A.3
pagenum: 383
class: part
title: Modeling Pointcuts; label: A.4
pagenum: 384
class: part
title: Modeling Use-Case Slices; label: B
pagenum: 387
class: part
title: Notation Guide; label: B.1
pagenum: 387
class: part
title: Package; label: B.2
pagenum: 388
class: part
title: Actors and Use Cases; label: B.3
pagenum: 389
class: part
title: Classes and Instances; label: B.4
pagenum: 391
class: part
title: Components and Interfaces; title: Processes and Nodes
pagenum: 392
class: part
label: B.5; pagenum: 395
class: part
title: References; pagenum: 399
class: part
title: Glossary; pagenum: 407
class: part
title: Index