"More than ever, mission-critical and business-critical applications depend on object-oriented (OO) software. Testing Object-Oriented Systems: Models, Patterns, and Tools is an authoritative guide to designing and automating test suites for OO applications." "This comprehensive book explains why testing must be model-based and provides in-depth coverage of techniques to develop testable models from state machines, combinational logic, and the Unified Modeling Language (UML). It introduces the test design pattern and presents 37 patterns that explain how to design responsibility-based test-suites, how to tailor integration and regression testing for OO code, how to test reusable components and frameworks, and how to develop highly effective test suites from use cases."--BOOK JACKET.Title Summary field provided by Blackwell North America, Inc. All Rights Reserved
" Applying Use Case Driven Object Modeling with UML: An Annotated e-Commerce Example " is a practical, hands-on guide to putting use case methods to work in real-world situations. This workbook is a companion to "Use Case Driven Object Modeling with UML." It bridges the gap between the theory presented in the main book and the practical issues involved in the development of an Internet e-commerce application. Uniquely conceived as a workbook and featuring as a running example an e-commerce system for an online bookstore, "Applying Use Case Driven Object Modeling with UML" examines design in detail, demonstrating the most common design mistakes and the correct design solutions. The hands-on exercises allow you to detect, identify, and correct critical errors on your own, before reviewing the solutions provided in the book. Structured around the proven ICONIX Process, this workbook presents a streamlined approach to UML modeling designed to avoid analysis paralysis without skipping analysis and design. The book presents the four key phases of this minimalist approach to use case driven design--domain modeling, use case modeling, robustness analysis, and sequence diagramming--and for each topic provides an overview, detailed discussion, list of common mistakes, and a set of exercises for honing object modeling and design skills. The three chapters on reviews are also unique. The authors devote a chapter each to requirements review, preliminary design review, and critical design review. This focus on "designing quality in" by teaching how to review UML models fills a major gap in the published literature. Through examples, " Applying Use Case Driven Object Modeling with UML " shows you how to avoid more than seventy specific design errors, as illustrated by the "Top 10" error lists included as a handy key on the inside covers and within each chapter. With the information, examples, and exercises found here, you will develop the knowledge and skills you need to apply use case modeling more effectively to your next application. 0201730391B08022001
Fundamentals of Object-Oriented Design in UML shows aspiring and experienced programmers alike how to apply design concepts, the UML, and the best practices in OO development to improve both their code and their success rates with object-based projects.
Test-Driven Development (TDD) is now an established technique for delivering better software faster. TDD is based on a simple idea: Write tests for your code before you write the code itself. However, this "simple" idea takes skill and judgment to do well. Now there's a practical guide to TDD that takes you beyond the basic concepts. Drawing on a decade of experience building real-world systems, two TDD pioneers show how to let tests guide your development and “grow” software that is coherent, reliable, and maintainable. Steve Freeman and Nat Pryce describe the processes they use, the design principles they strive to achieve, and some of the tools that help them get the job done. Through an extended worked example, you’ll learn how TDD works at multiple levels, using tests to drive the features and the object-oriented structure of the code, and using Mock Objects to discover and then describe relationships between objects. Along the way, the book systematically addresses challenges that development teams encounter with TDD—from integrating TDD into your processes to testing your most difficult features. Coverage includes Implementing TDD effectively: getting started, and maintaining your momentum throughout the project Creating cleaner, more expressive, more sustainable code Using tests to stay relentlessly focused on sustaining quality Understanding how TDD, Mock Objects, and Object-Oriented Design come together in the context of a real software development project Using Mock Objects to guide object-oriented designs Succeeding where TDD is difficult: managing complex test data, and testing persistence and concurrency
Provides complete coverage of the Ada language and Ada programming in general by recognized authorities in Ada software engineering. Demonstrates the power and performance of Ada in the management of large-scale object-oriented systems, and shows how to use Ada features such as generics, packages, and tasking.
Robust Scalable Architecture for Real-time Systems
Author: Bruce Powel Douglass
Publisher: Addison-Wesley Professional
This revised and enlarged edition of a classic in Old Testament scholarship reflects the most up-to-date research on the prophetic books and offers substantially expanded discussions of important new insight on Isaiah and the other prophets.
As the application of object technology--particularly the Java programming language--has become commonplace, a new problem has emerged to confront the software development community. Significant numbers of poorly designed programs have been created by less-experienced developers, resulting in applications that are inefficient and hard to maintain and extend. Increasingly, software system professionals are discovering just how difficult it is to work with these inherited, "non-optimal" applications. For several years, expert-level object programmers have employed a growing collection of techniques to improve the structural integrity and performance of such existing software programs. Referred to as "refactoring," these practices have remained in the domain of experts because no attempt has been made to transcribe the lore into a form that all developers could use. . .until now. In Refactoring: Improving the Design of Existing Code, renowned object technology mentor Martin Fowler breaks new ground, demystifying these master practices and demonstrating how software practitioners can realize the significant benefits of this new process. With proper training a skilled system designer can take a bad design and rework it into well-designed, robust code. In this book, Martin Fowler shows you where opportunities for refactoring typically can be found, and how to go about reworking a bad design into a good one. Each refactoring step is simple--seemingly too simple to be worth doing. Refactoring may involve moving a field from one class to another, or pulling some code out of a method to turn it into its own method, or even pushing some code up or down a hierarchy. While these individual steps may seem elementary, the cumulative effect of such small changes can radically improve the design. Refactoring is a proven way to prevent software decay. In addition to discussing the various techniques of refactoring, the author provides a detailed catalog of more than seventy proven refactorings with helpful pointers that teach you when to apply them; step-by-step instructions for applying each refactoring; and an example illustrating how the refactoring works. The illustrative examples are written in Java, but the ideas are applicable to any object-oriented programming language.
This book provides an iteractive development process and an object-oriented (O-O) development methodology including techniques on scheduling, milestone completion and other requirements for tools to support O-O development. It provides a process and methodology that can be followed to accomplish an analysis, design, implementation, and test of model objects for an application being developed.
"The Japanese samurai Musashi wrote: 'One can win with the long sword, and one can win with the short sword. Whatever the weapon, there is a time and situation in which it is appropriate.' "Similarly, we have the long RUP and the short RUP, and all sizes in between. RUP is not a rigid, static recipe, and it evolves with the field and the practitioners, as demonstrated in this new book full of wisdom to illustrate further the liveliness of a process adopted by so many organizations around the world. Bravo!" --Philippe Kruchten, Professor, University of British Columbia "The Unified Process and its practices have had, and continue to have, a great impact on the software industry. This book is a refreshing new look at some of the principles underlying the Unified Process. It is full of practical guidance for people who want to start, or increase, their adoption of proven practices. No matter where you are today in terms of software maturity, you can start improving tomorrow." --Ivar Jacobson, Ivar Jacobson Consulting "Kroll and MacIsaac have written a must-have book. It is well organized with new principles for software development. I encounter many books I consider valuable; I consider this one indispensable, especially as it includes over 20 concrete best practices. If you are interested in making your software development shop a better one, read this book!" --Ricardo R. Garcia, President, Global Rational User Group Council, www.rational-ug.org/index.php "Agile software development is real, it works, and it's here to stay. Now is the time to come up to speed on agile best practices for the Unified Process, and this book provides a great starting point." --Scott W. Ambler, practice leader, Agile Modeling "IBM and the global economy have become increasingly dependent on software over the last decade, and our industry has evolved some discriminating best practices. Per and Bruce have captured the principles and practices of success in this concise book; a must for executives, project managers, and practitioners. These ideas are progressive, but they strike the right balance between agility and governance and will form the foundation for successful systems and software developers for a long time." --Walker Royce, Vice President, IBM Software Services-Rational "Finally, the RUP is presented in digestible, byte-size pieces. Kroll and MacIsaac effectively describe a set of practices that can be adopted in a low-ceremony, ad hoc fashion, suited to the culture of the more agile project team, while allowing them to understand how to scale their process as needed." --Dean Leffingwell, author and software business advisor and executive "This text fills an important gap in the knowledge-base of our industry: providing agile practices in the proven, scalable framework of the Unified Process. With each practice able to be throttled to the unique context of a development organization, Kroll and MacIsaac provide software teams with the ability to balance agility and discipline as appropriate for their specific needs." --Brian G. Lyons, CTO, Number Six Software, Inc. In Agility and Discipline Made Easy , Rational Unified Process (RUP) and Open Unified Process (OpenUP) experts Per Kroll and Bruce MacIsaac share twenty well-defined best practices that you and your team can start adopting today to improve the agility, predictability, speed, and cost of software development. Kroll and MacIsaac outline proven principles for software development, and supply a number of supporting practices for each. You'll learn what problems each practice addresses and how you can best leverage RUP and OpenUP (an open-source version of the Unified Process) to make the practice work for you. You'll find proactive, prescriptive guidance on how to adopt the practices with minimal risk and implement as much or as little of RUP or OpenUP as you want. Learn how to apply sample practices from the Unified Process so you can Execute your project in iterations Embrace and manage change Test your own code Describe requirements from the user perspective Architect with components and services Model key perspectives Whether you are interested in agile or disciplined development using RUP, OpenUP, or other agile processes, this book will help you reduce the anxiety and cost associated with software improvement by providing an easy, non-intrusive path toward improved results--without overwhelming you and your team.