Addison-Wesley / Prentice Hall
My Instructor Resource Center : Log in or request access
Aspect-Oriented Analysis and Design: The Theme Approach
Siobhán Clarke
Elisa Baniassad
ISBN-10: 0321246748
ISBN-13: 9780321246745
Publisher: Addison-Wesley Professional
Copyright: 2005
Format: Paper; 400 pp
Published: 03/23/2005
Status: Instock
Suggested retail price: $54.99 Buy from myPearsonStore
Suggested retail price: $54.99
Buy from myPearsonStore
Net price: $34.64 (What's this?)
Aspect-oriented software development is emerging as a proven approach for
allowing the separate expression of multiple concerns, along with "weaving"
technologies for knitting together these separate expressions into coherent
systems. In other words, it offers great promise as an approach to simplifying
the development of complex modern software systems. Many expert observers
view AOSD as a worthwhile successor to the popular object-oriented paradigm
that is prevalent in contemporary software engineering. In this new book,
AOSD experts Clarke and Baniassad apply proven theory to the practical realm
of real-world development. The result is an applicable and easy-to-digest
methodology for simplifying and optimizing the development of thoroughly
modern software systems.
An introduction for developers who need practical information to make the significant shift to aspect-oriented development.
° The first proven methodology for moving beyond aspect-oriented programming to the discipline of analysis and design
° Introduces aspects, helps the reader identify them, and provides guidance on successful implementation
° The aspect-oriented model is particularly well-suited for transaction handling, tracing, database compatibility, performance management, exception handling, and more
Preface.
1. Introduction.
2. The Object-Oriented Way.
3. The Theme Approach.
4. Analysis.
5. Theme Design.
6. Theme Composition.
7. Map to Implementation.
8. Case Study: Phone Features.
9. Case Study: Usage Licensing.
Appendix. The Crystal Game.
Index.
Other Loose Elements.
"Developers who are using aspect-oriented programming will appreciate this contribution to aspect-oriented analysis and design. The authors are pioneers in this area and have elaborated on past research to produce a detailed methodology and notation for early aspects."
—Ron Bodkin, Chief Technology Officer, New Aspects of Software
"Aspect-orientation is a powerful approach for programming complex systems. There is a lot to be gained from applying this approach during modeling and designing, as well. The Theme approach in this book represents an important advancement in AOP adoption by providing practitioners means to apply aspect-orientation early on."
—Ramnivas Laddad, Author of AspectJ in Action
"Clarke & Baniassad have written an interesting book that shows how to use aspects to solve a difficult problem: composing independent program fragments with overlapping functionality. The included case studies well illustrate the principles. I recommend the book.
—Charles B. Haley, Research Fellow, The Open University
"This book presents a very useful set of techniques for helping software developers to identify the aspects. I am sure that this book will rapidly become a landmark reference for the software community!"
—João M. Fernandes, Ph.D., Universidade do Minho
Aspect-oriented software development (AOSD) is emerging as a viable approach for allowing the separate expression of multiple concerns along with "weaving" technologies for knitting together these separate expressions into coherent systems. Thanks to its great promise as an approach to simplifying the development of complex systems, many expert observers view AOSD as a worthwhile successor to the prevalent object-oriented paradigm.
In this new book, two AOSD experts apply theory to the practical realm of real-world development. They explain the different kinds of aspects, help the reader identify them, and provide guidance on successful design and implementation. The result is an applicable and easy-to-digest methodology for simplifying and optimizing the development of software systems.
Aspect-Oriented Analysis and Design: The Theme Approach will be particularly helpful for developers who are trying to answer the common questions of "What is an aspect?", "Which aspects should I be coding?", and "How do I design aspects?" Readers will come away with a starting point for thinking about aspects and accounting for them in requirements and design.
Meanwhile, seasoned AO practitioners will learn more about different models of decomposition, identifying aspect functionality in requirements documentation, designing aspects, and how to map aspect designs to code. The authors’ groundbreaking Theme approach to AOSD offers both a flexible way to identify aspect functionality and a UML-based design modeling language that can describe aspects independently of programming language.
In short, practitioners and early adopters of AO alike will appreciate this book’s practical information on how to make the significant shift to AOSD.
© Copyright Pearson Education. All rights reserved.
This title is a member of the The Addison-Wesley Object Technology Series Series, which also contains the titles below . You can also visit the
Addison-Wesley Object Technology Series Series page.

Guidance, advice, and a real-world case study teach the reader how to successfully implement the Rational Unified Process (RUP). The reader will find a management-perspective description of the RUP, and details on the effects that the RUP has on projects. In exploring an actual implementation, the authors present a definition of goals and metrics, advice on selecting strategies, and steps toward the development of an implementation plan. A discussion of implementation best practices and proven strategies is included. The book ends with descriptions from actual implementations, and a comparison of the content of the book with what can be found regarding this subject in the RUP itself.






Use case analysis is a methodology for defining the outward features of a software system from the user's point of view. Applying Use Cases, Second Edition, offers a clear and practical introduction to this cutting-edge software development technique. Using numerous realistic examples and a detailed case study, students are guided through the application of use case analysis in the development of software systems.
This new edition has been updated and expanded to reflect the Unified Modeling Language (UML) version 1.3. It also includes more complex and precise examples, descriptions of the pros and cons of various use case documentation techniques, and discussions on how other modeling approaches relate to use cases.



Aspect-oriented software development is emerging as a proven approach for
allowing the separate expression of multiple concerns, along with "weaving"
technologies for knitting together these separate expressions into coherent
systems. In other words, it offers great promise as an approach to simplifying
the development of complex modern software systems. Many expert observers
view AOSD as a worthwhile successor to the popular object-oriented paradigm
that is prevalent in contemporary software engineering. In this new book,
AOSD experts Clarke and Baniassad apply proven theory to the practical realm
of real-world development. The result is an applicable and easy-to-digest
methodology for simplifying and optimizing the development of thoroughly
modern software systems.

Aspect orientation promises to be the next big wave in software engineering,
following on the heels of the object-oriented paradigm. Proponents tout the
value of aspect orientation in providing the ability to add extremely useful
mechanisms such as security, logging, persistence, debugging, tracing,
distribution, performance monitoring, and exception handling. To state it
simply, it makes programming and programs more efficient.
This highly-anticipated new book demonstrates how to apply use cases and
aspect orientation in building robust and extensible systems. The authors show
you how to identify, design, implement, test, and refactor use case modules and
how to extend them. The book also demonstrates how to design use case
modules with UML including some enhancements made in UML 2.0 to better
support the modeling of use case modules.



Applying the object-oriented paradigm to the development of software requires individuals and teams to think and act differently than when designing procedural projects. While proponents of the object paradigm often say identifying objects is a simple and intuitive process, experienced developers know that this is not always true. The solution is the CRC (Classes, Responsibilities, Collaboration) Card method, a proven technique for identifying classes and visualizing and testing different class-based models during the design phase.
The CRC Card Book covers the CRC method from start to finish, illustrating its application in three different in-depth case studies which supply tips and pointers drawn from real world experience. The case studies are presented in the engaging style of a novella to demonstrate how personalities and organizational culture come into play when using the CRC technique. C++, Java, and Smalltalk experts provide implementation examples in each language. The CRC Card Book demonstrates how to: - Discover classes through team brainstorming
- Refine project requirements
- Test the conception of the system and evaluate potential paths of collaboration using role play.
- Manage an object-oriented project.
- Implement a CRC design in C++, Java, and Smalltalk; all source code is available via the World Wide Web.
Includes language implementation examples from such noted experts as:- Java: Cay Horstman, San Jose State University
- Smalltalk: Larry Smith, IBM Corp.
- C++: Jeremy Raw, Interactive Software









In Effective COM, the authors, Don Box, Keith Brown, Tim Ewald, and Chris Sells, offer 50 concrete guidelines for creating COM based applications that are more efficient, robust, and maintainable. Drawn from the authors' extensive practical experience working with and teaching COM, these rules of thumb, pitfalls to avoid, and experience-based pointers will enable you to become a more productive and successful COM programmer.
These guidelines appear under six major headings: the transition from C++ to COM; interfaces, the fundamental element of COM development; implementation issues; the unique concept of apartments; security; and transactions. Throughout this book, the issues unique to the MTS programming model are addressed in detail.
Readers will gain a deeper understanding of COM concepts, capabilities, and drawbacks, and the know-how to employ COM effectively for high quality distributed application development. A supporting Web site, including source code, can be found at http://www.develop.com/effectivecom.






Iterative processes help software developers reduce risk and cost, manage change, improve productivity, and deliver more effective, timely solutions. Now, there’s a practical, easy guide to planning, organizing, estimating, staffing, and running any iterative project: Managing Iterative Software Development Projects. Kurt Bittner and Ian Spence introduce a proven approach that improves both agility and control, satisfying developers, managers, and the business. Their techniques can be used with any iterative methodology, and scaled from the smallest projects to the very largest. For everyone involved in iterative projects: team leaders, program managers, project managers, developers, sponsors, and user representatives alike.

This Second Edition of the popular text Managing Software Requirements focuses on this critical cause of failure and offers a practical, proven approach to building systems that meet customers' needs on time and within budget.
Using an approachable style, their own war stories and a comprehensive case study, the authors show how students can effectively identify requirements by applying a variety of techniques, centered on the power of use cases. The book illustrates proven techniques for determining, implementing, and validating requirements.






The previous editions of this book have taught tens of thousands how to apply the concepts and ideas behind object technology to design successful software applications. This revision will bring the book up to date with the many changes in technology that have happened since the second edition was first published in 1994. New topics covered in the third edition include the Unified Software Development Process, UML, Patterns, Java, and Components.

In the Second Edition of his award-winning book, Grady Booch draws upon the rich and varied results of the hundreds of projects which have applied the notation and method presented in the First Edition to offer improved methods for object development-including a unified notation. The winner of the Jolt Cola book award in both editions, Object-Oriented Analysis and Design with Applications has been a major force in moving object technology into the mainstream of software development. With numerous examples, now implemented in C++, the Second Edition illustrates essential concepts, explains the method, and shows successful applications in a variety of fields. It also offers pragmatic advice on a variety of issues-including classification, implementation strategies, and cost-effective project management.


This book teaches the student how to use objects, frameworks, and UML notation to design, build, and reuse component-based software. Catalysis is a rapidly emerging UML-based method for object- and component-based development. It provides a clear meaning of and systematic uses for the UML notation. "The Catalysis Approach" explains how patterns can be characterized as model frameworks. Through the application of frameworks in requirements, specifications, architectures, and designs, students will find that all models contain recurring patterns of structure, behavior, and refinement. This opens the way to building models and designs rapidly by adapting and composing both generic and domain-specific modeling frameworks.





This book is a comprehensive guide to modern software development practices, as embodied in the Rational Unified Process, or RUP. The Rational Unified Process Made Easy will teach students the key points involved in planning and managing iterative projects, the fundamentals of component design and software architecture, and the proper employment of use cases. Students will learn that the RUP is a flexible, versatile process framework that can be tailored to suit the needs of development projects of all types and sizes.

The Rational Unified Process, Third Edition, is a concise introduction to IBM's Web-enabled software engineering process. Rational Unified Process®, or RUP®, Lead Architect Philippe Kruchten quickly and clearly describes the concepts, structure, content, and motivation that are central to the RUP. Readers will learn how this approach to software development can be used to produce high-quality software, on schedule and on budget, using the Unified Modeling Language (UML), software automation, and other industry best practices.

The two previous editions were written as easy-to-read introductions to the UML, and how to apply its notation and semantics to the unique requirements involved with the development of real-time and embedded systems. This third edition is no exception. Although the book's emphasis is on UML, it is also about capturing the requirements, structure, and behavior of real-time systems. The most significant change in this revision will be it's integration throughout the book of UML 2.0, and all indications are that UML 2.0 is even more accepting of the unique aspects of real-time and embedded systems development.


Refactoring is about improving the design of existing code. It is the process of changing a software system in such a way that it does not alter the external behavior of the code, yet improves its internal structure. With refactoring you can even take a bad design and rework it into a good one. This book offers a thorough discussion of the principles of refactoring, including where to spot opportunities for refactoring, and how to set up the required tests. There is also a catalog of more than 40 proven refactorings with details as to when and why to use the refactoring, step by step instructions for implementing it, and an example illustrating how it works The book is written using Java as its principle language, but the ideas are applicable to any OO language.

In this comprehensive introduction to Ada programming, programmers learn how to maximize the potential of this powerful language using an object-oriented methodology. Grady Booch and Doug Bryan combine their expertise to explain how to create large-scale Ada systems using good software engineering principles. Five large-scale Ada programming examples build upon these principles using an object-oriented methodology while illuminating topics such as database systems and generic tree packages. The Third Edition also incorporates more small-sized code examples, exercises based on the programming applications, a new chapter on Ada's impact on the software crisis, and an appendix on Ada 9X.

This book provides a clear and provocative discussion of the economics, metrics, and management strategies necessary to plan and execute a software project successfully. Royce discusses, with refreshing candor, some of the fads, follies, and excesses of the software industry, clearly differentiating proven techniques and obsolete methods. Paired with this insightful examination are compelling arguments for new management approaches that are sure to stimulate debate. The relative impacts of these new techniques are quantified through simple economic analyses, common sense, and anecdotal evidence. The resulting framework strikes a pragmatic balance between theory and practice that can be readily applied in today's challenging development environment. An extensive case study analysis of a large-scale, million-line project deployed successfully on schedule and under budget using these methods further illustrates their application.


This thoroughly revised second edition is based upon the authors' successful
training courses, and gives the reader a quick, focused tour through a proven
object-oriented analysis and design process. It introduces and explains the
need-to-know concepts and key elements of both Unified Modeling Language
(UML) and the Unified Process (UP). The book allows the reader to get up to
speed on successful techniques that can be immediately applied. The structure
of the book aims to give the reader as clear and uncomplicated a guide as
possible. It takes the reader through an introduction to UML, an introduction
to the UP, then covers the basics of software requirements and use case
modeling. The key aspects of the analysis and design stages are covered in stepby-
step detail, finishing off with implementation.

Series: The Addison-Wesley Object Technology Series
The long-awaited third edition of the best-selling UML book on the market; fully-updated and compliant with UML 2.0. This eagerly-anticipated third edition gets students thinking about efficient object-oriented software design using the latest version of the industry-standard for modeling software: UML 2.0. The author has retained the book's convenient, concise format that has made it an essential resource in courses introducing UML. The book describes all the major UML 2.0 diagram types, what they are intended to do, and the basic notation involved in creating and deciphering them. A true treasure for the software engineering community.



The latest version of the Unified Modeling Language–UML 2.0–has increased its capabilities as the standard notation for modeling software-intensive systems. Like most standards documents, however, the official UML specification is difficult to read and navigate. In addition, UML 2.0 is far more complex than previous versions, making a thorough reference book more essential than ever.
In this significantly updated and expanded edition of the definitive reference to the standard, James Rumbaugh, Ivar Jacobson, and Grady Booch–the UML’s creators–clearly and completely describe UML concepts, including major revisions to sequence diagrams, activity models, state machines, components, internal structure of classes and components, and profiles.



This landmark book provides a thorough overview of the Unified Process for software development, with a practical focus on modeling using the Unified Modeling Language. The Unified Process goes beyond mere object-oriented analysis and design to spell out a proven family of techniques that supports the complete software development life cycle. The result is a component-based process that is use-case driven, architecture-centric, iterative, and incremental. The Unified Process takes full advantage of the industry-standard Unified Modeling Language. This book demonstrates how the notation and process complement one another, using UML models to illustrate the new process in action. The authors clearly describe the semantics and notation of the different higher-level constructs used in the models. Constructs such as use cases, actors, subsystems, classes, interfaces, active classes, processes, threads, nodes, and most relations are described in the context of a model. Object technology practitioners and software engineers familiar with the authors' past work will appreciate The Unified Software Development Process as a useful means of learning the current best practices in software development.



Fully updated and revised, Visual Modeling with Rational Rose 2002 and UML is a comprehensive introduction and tutorial that shows how to use a tool (Rational Rose 2002), a process (the Rational Unified Process), and a language (the UML) to successfully visualize, specify, document, and construct a software system. This timely new edition, written by the UML Evangelist at Rational Software Corporation, breaks the technology down to its essentials and provides clear explanations of each element. The book follows a simplified version of the Rational Unified Process from project inception through system analysis and design. The popular sample case study from the previous editions (a registration system for a fictional university) has been retained and updated, now better illustrating the iterative development process in practice, the UML in action, and the proper application of Rational Rose 2002. Newly updated appendixes demonstrate code generation and reverse engineering using Rational Rose 2002 with the C++, Visual C++, and Visual Basic programming languages. In addition, a handy glossary defines key object technology and software modeling terms.
Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students contact your Pearson Higher Education representative.
Copyright © Pearson Education, All rights reserved. Legal Notice | Privacy Policy | Permissions