1. Trang chủ
  2. » Công Nghệ Thông Tin

Addison wesley aspect oriented software development with use cases jan 2005 ISBN 0321268881

661 163 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 661
Dung lượng 7,61 MB

Nội dung

Aspect-Oriented Software Development with Use Cases By Ivar Jacobson, Pan-Wei Ng Publisher : Addison Wesley Professional Pub Date : December 30, 2004 ISBN : 0-321-26888-1 Pages : 464 Table of Contents • Index • Aspect-oriented programming (AOP) is a revolutionary new way to think about software engineering AOP was introduced to address crosscutting concerns such as security, logging, persistence, debugging, tracing, distribution, performance monitoring, and exception handling in a more effective manner Unlike conventional development techniques, which scatter the implementation of each concern into multiple classes, aspect-oriented programming localizes them Aspect-oriented software development (AOSD) uses this approach to create a better modularity for functional and nonfunctional requirements, platform specifics, and more, allowing you to build more understandable systems that are easier to configure and extend to meet the evolving needs of stakeholders In this highly anticipated new book, Ivar Jacobson and Pan-Wei Ng demonstrate how to apply use casesa mature and systematic approach to focusing on stakeholder concernsand aspect-orientation in building robust and extensible systems Throughout the book, the authors employ a single, real-world example of a hotel management information system to make the described theories and practices concrete and understandable The authors show how to identify, design, implement, test, and refactor usecase modules, as well as extend them They also demonstrate how to design use-case modules with the Unified Modeling Language (UML)emphasizing enhancements made in UML 2.0and how to achieve use-case modularity using aspect technologies, notably AspectJ Key topics include Making the case for use cases and aspects Capturing and modeling concerns with use cases Keeping concerns separate with use-case modules Modeling use-cases slices and aspects using the newest extensions to the UML notation Applying use cases and aspects in projects Whatever your level of experience with aspect-oriented programming, Aspect-Oriented Software Development with Use Cases will teach you how to develop better software by embracing the paradigm shift to AOSD Aspect-Oriented Software Development with Use Cases By Ivar Jacobson, Pan-Wei Ng Publisher : Addison Wesley Professional Pub Date : December 30, 2004 Table of ISBN : 0-321-26888-1 • Contents Pages : 464 • Index Copyright Praise for Aspect-Oriented Software Development with Use Cases The Addison-Wesley Object Technology Series The Component Software Series Preface What Is Aspect-Oriented Programming? What Is Aspect-Oriented Software Development? AOSD with Use Cases What This Book Is What This Book Is Not What You Need Before Reading This Book How to Read This Book How This Book Came About Acknowledgments Part I: The Case for Use Cases and Aspects Chapter 1 Problem to Attack Section 1.1 The Use of Components Today Section 1.2 Limitation of Components Section 1.3 Approaching a Solution Section 1.4 Keeping Concerns Separate Chapter 2 Attacking the Problem with Aspects Section 2.1 Approaching a Solution with Aspects Section 2.2 Keeping Peers Separate with Aspects Section 2.3 Keeping Extensions Separate with Aspects Section 2.4 Need for Methodological Guidance Chapter 3 Today with Use Cases Section 3.1 Use Cases in Brief Section 3.2 Use-Case-Driven Development Section 3.3 Roles and Benefits of Use Cases Section 3.4 Gaps in the Use-Case Technique Section 3.5 Bridging the Gaps with Aspects Chapter 4 Tomorrow with Use-Case Modules Section 4.1 Building Systems in Overlays with Use-Case Slices Section 4.2 Keeping Peer Use Cases Separate Section 4.3 Keeping Extension Use Cases Separate Section 4.4 Developing with Use-Case Modules Part II: Modeling and Capturing Concerns with Use Cases Chapter 5 Modeling Concerns with Use Cases Section 5.1 Use-Case Modeling Section 5.2 Use-Case Instances and Flows of Events Section 5.3 Describing Use Cases Section 5.4 Visualizing Use-Case Flows Section 5.5 Summary and Highlights Chapter 6 Structuring Use Cases Section 6.1 Use-Case Relationships Section 6.2 Use-Case Extend Relationship Section 6.3 Use-Case Include Relationship Section 6.4 Use-Case Generalization Section 6.5 Utility Use Cases Section 6.6 Summary and Highlights Chapter 7 Capturing Concerns with Use Cases Section 7.1 Understanding Stakeholder Concerns Section 7.2 Capturing Application Use Cases Section 7.3 Capturing Infrastructure Use Cases Section 7.4 Summary and Highlights Part III: Keeping Concerns Separate with Use-Case Modules Chapter 8 Keeping Peer Use-Case Realizations Separate with Aspects Section 8.1 Realizing Peer Use Cases Section 8.2 Keeping Use-Case Specifics Separate Section 8.3 Dealing with Overlap Section 8.4 Summary and Highlights Chapter 9 Keeping Extensions Separate with Pointcuts Section 9.1 Realizing Extension Use Cases Section 9.2 Keeping Modularity of Extension Use-Case Realizations Section 9.3 Parameterizing Pointcuts Section 9.4 Generalizing Extension Use-Case Realizations Section 9.5 Templating Use-Case Slices Section 9.6 Summary and Highlights Chapter 10 Building Systems with Use-Case Modules Section 10.1 A System Comprises Models Section 10.2 Use-Case Model Section 10.3 Analysis Model Section 10.4 Design and Implementation Models Section 10.5 Use-Case Modules Cut Across Models Section 10.6 Composing and Configuring Use-Case Modules Section 10.7 Summary and Highlights Part IV: Establishing an Architecture Based on Use Cases and Aspects Chapter 11 Road to a Resilient Architecture Section 11.1 What Is Architecture? Section 11.2 What Is a Good Architecture? Section 11.3 Steps to Establish an Architecture Baseline Section 11.4 Begin with a Platform-Independent Structure Section 11.5 Overlay Platform Specifics on Top Section 11.6 Summary and Highlights Chapter 12 Separating Functional Requirements with Application Peer Use Cases Section 12.1 Analyzing Application Use Cases Section 12.2 Keeping Application Use Cases Separate Section 12.3 Designing Application Use Cases Section 12.4 Refining Design Elements Section 12.5 Summary and Highlights Chapter 13 Separating Functional Requirements with Application-Extension Use Cases Section 13.1 Analyzing Application-Extension Use Cases Section 13.2 Keeping Application-Extension Use Cases Separate Section 13.3 Designing Application-Extension Use Cases Section 13.4 Dealing with Changes in the Base Section 13.5 Summary and Highlights [M] [N] [O] [P] [R] [S] [T] [U] [W] [Z] Rational Unified Process (RUP) Rectangular classifier notation Reflection, applying Relational persistency mechanism, in J2EE Relationships, use-case modules Remote Method Invocation (RMI) Requirements Reservation Channels variables Reservation entity class Reservation state chart Reservation-persistence slice Reserve Facility use case 2nd Reserve Facility use-case module Reserve Restaurant use case Reserve Room distribution slice Reserve Room use case 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th using ellipse notation Reserve Room use case instance, execution of Reserve Room use-case module 2nd Reserve Room use-case slice 2nd 3rd 4th Reserve Room use-case specification 2nd ReserveRoom class extension ReserveRoom use-case slice ReserveRoomDistributionClient, source code for ReserveRoomForm class ReserveRoomHandler class 2nd 3rd 4th 5th 6th makeReservation() operation ReserveRoomHandler, simplified source code to Resilient architecture 2nd [See also Architecture] retrieve() operation 2nd Reusability, evaluating/achieving Reusable Asset Specification (RAS) Room class roomAccessOperation pararmeter 2nd RoomAccessor parameter RoomAccessor pointcut roomCall pointcut 2nd 3rd Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [R] [S] [T] [U] [W] [Z] Scattering Selection selectMenuOption() Separation of concerns 2nd advanced automating the evaluation defined design elements design packages enforcing evaluating use-case structures Sequence variator 2nd Service packages Servlets Size, of system Skinny system [See Architecture baseline] Software development and model building difficulty of Software Reuse (Jacobson) SQL Stakeholder concerns functional and nonfunctional requirements, dealing with problem domain system features, eliciting understanding Stereotypes, analysis Structural context, identifying Subflow, referencing Subject-oriented programming, and hyperslices Summation Supporting classes System(s) and models development effort estimation effort estimation technique estimation at the beginning of a project refining the estimates iterative development activities in an iteration and aspect orientation phases in a project planning shifting emphasis in planning/controlling the project estimating project delays keeping the project on track platform specifics Systemwide concerns, evaluating/achieving extensibility maintainability performance and reliability portability reusability Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [R] [S] [T] [U] [W] [Z] Tangling Template parameter Templating use-case slices Test-case slices Three-tier systems Tier packages 2nd use cases and tiers «TRace» dependencies Track Preferences use case 2nd 3rd Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [R] [S] [T] [U] [W] [Z] UML aspect UML package «merge» dependency Unified Modeling Language (UML) classifier in extension points in modeling aspects and use-case slices in parameterized element support for extensions in UML updateAvailability() 2nd 3rd 4th 5th 6th 7th 8th Upstream models Use cases advantage of and classes and required usages of a system and tiers aspects early capturing concerns with defined 2nd describing flows functional decomposition, avoiding modeling concerns with multiple basic flows notation peer, keeping separate referencing subflows roles/benefits of specification template structuring technique, gaps in usage use-case specifications compared to utility when to use rectangular notation for Use-case analysis structure Use-case behavior, allocating to classes Use-case design structure Use-case diagram Use-case extensions Use-case flows describing visualizing Use-case instances and flows of events execution of Use-case model and user's/stakeholders' concerns architectural view of partitioning into use-case packages preserving the structure of and traceability Use-case modeling 2nd 3rd Use-Case Modeling (Bitner/Spence) Use-case modules 2nd 3rd architecture building systems with composing and configuring composing iteratively cutting across models defective, removing out deriving relationships from use cases developing incremental development with parallel development with relationships use-case slices within Use-case realizations 2nd Use-case relationships 2nd extend relationship 2nd generalization relationship 2nd include relationship 2nd Use-case scenario Use-case slices 2nd 3rd 4th 5th and element structure as reusable elements building systems in overlays with collaboration in composing peer use-case realizations with defined element structure space and extending use-case slices extension, keeping separate generalized use-case slice implementing with Eclipse included use-case slice keeping infrastructure separate in modeling non-use-case-specific slice relationship to hyperslices templating updating models in development using to improve reuse Use-case specifications template Use-case specifics contents of keeping separate Use-case structure 2nd 3rd 4th 5th evaluating preserving slices in Use-case technique 2nd defined Use-case test slices control designing tests elements to be tested, identifying implementing tests instrumentation separating tests with test cases design identifying from use cases test data and verification test infrastructure slice test infrastructure, designing test sequence, controlling/instrumenting test-case slice test-first approach use-case design slice Use-case variability handling 2nd identifying Use-case variables, organizing alternate flows with Use-case-driven development 2nd models Use-case-specific class extensions, composing Use-case-specific classes, composing Use-Cases: Patterns and Modeling Problems (Overgaard) User interfaces, overlaying Utility extensions Utility inclusions Utility use cases types of Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [R] [S] [T] [U] [W] [Z] Waiting List Handler Waiting List service package WaitingList class Web container withincode Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [R] [S] [T] [U] [W] [Z] Zooming ... Modeling use- cases slices and aspects using the newest extensions to the UML notation Applying use cases and aspects in projects Whatever your level of experience with aspect- oriented programming, Aspect- Oriented Software Development with Use Cases will teach you how to develop better software by... transition from expressing requirements of stakeholder concerns with use- cases to implementing them with aspects Briefly, you conduct AOSD with use- cases as follows: You model crosscutting concerns with use- cases You design use- cases in terms of... Table of ISBN : 0-321-26888-1 • Contents Pages : 464 • Index Copyright Praise for Aspect- Oriented Software Development with Use Cases The Addison- Wesley Object Technology Series The Component Software Series

Ngày đăng: 26/03/2019, 16:27

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN