The IBM® Rational Unified Process® has become the de facto industry-standard process for large-scale enterprise software development. The IBM Certified Solution Designer - IBM Rational Unified Process V7.0 certification provides a powerful way for solutions developers to demonstrate their proficiency with RUP.
The first and only official RUP certification guide, this book fully reflects the latest versions of the Rational Unified Process and of the IBM RUP exam. Authored by two leading RUP implementers, it draws on extensive contributions and careful reviews by the IBM RUP process leader and RUP certification manager.
This book covers every facet of RUP usage. It has been carefully organized to help you prepare for your exam quickly and efficiently--and to provide a handy, compact reference you can rely on for years to come.
Ahmad K. Shuja, www.shuja.info, is an accomplished IT manager and professional who has worked at some of the major financial services (Citigroup Inc., Merrill Lynch & Co., and others) and management consulting organizations (Ernst & Young Inc. / Cap Gemini Ernst & Young Inc., and others) around the globe. He has a proven track record of successfully enabling organizations to build and manage high-quality, software-intensive products and services efficiently and effectively. Ahmad provides advisory and consulting services in IT strategy and planning, IT Service Management (ITSM) and governance, program and project management (PMO) transformation and operations, software engineering processes and agile software development (RUP, XP, SCRUM, and others), enterprise architecture, and business process management. In addition, he offers training and mentoring services across a wide range of IT disciplines.
Ahmad holds the degrees Master of Science in Management of Technology from the Massachusetts Institute of Technology (MIT Sloan School of Management), Master of Science in Computation (Mathematics and Software Engineering) from the University of Oxford, and Master of Information Systems from the University of Toronto. He also holds numerous professional certifications, including Project Management Institute (PMI) Project Management Professional (PMP), Software Engineering Institute (SEI) Certificate in Capability Maturity Model Integration (CMMI), IT Infrastructure Library (ITIL) Service Manager (ITIL Master Certification), and Certified RUP Specialist, to name a few. Ahmad can be reached directly at email@example.com.
Jochen (Joe) Krebs, www.jochenkrebs.com, is an active member of both the Agile Alliance and the Scrum Alliance. He also is a member of the Agile Project Leadership Network (APLN) and spearheads the local chapter in New York City. He is an IBM Certified Specialist — Rational Unified Process and an IBM Certified Solution Designer — Rational Unified Process 7.0. He is also a Certified ScrumMaster (CSM) and a Project Management Professional (PMP®). Joe frequently publishes articles with a focus on project management and requirements engineering, and he speaks at conferences and companies. He received his MSc in Computing for Commerce and Industry from the Open University and teaches regularly at New York University (NYU). In his current role, he is responsible for successful adoption of agile development practices in a large investment bank in New York City and provides agile mentoring services through www.incrementor.com. He is currently working on his new book, Agile Portfolio Management, to be released in 2008.
Prior to taking on his current responsibilities, Joe co-developed the latest RUP certification examination and authored content for RUP using the Rational Method Composer. In addition, he contributed to the OpenUP project within the Eclipse foundation.
Throughout his career, Joe has taught more than 1,000 professionals in the USA and Europe. The topics have included project management, requirements engineering, object-oriented analysis and design, Smalltalk, Java™, agile development processes, and the RUP.
Written by agile-mentoring expert Jochen Krebs, this book illuminates the opportunities—and rewards—of applying agile processes to your overall IT portfolio.
Whether project manager, business analyst, or executive—you’ll understand the business drivers behind agile portfolio management. And learn best practices for optimizing results.
Use agile processes to align IT and business strategyAdapt and extend core agile processes Orchestrate the collaboration between IT and business vision Eliminate wish-list driven requirements, and manage expectations instead Optimize the balance of projects, resources, and assets in your portfolio Use metrics to communicate project status, quality, even team morale Create a portfolio strategy consistent with the goals of the organization Achieve organizational and process transparency Manage your business with agility—and help maximize the returns!
At any given moment, someone struggles with the same software design problems you have. And, chances are, someone else has already solved your problem. This edition of Head First Design Patterns—now updated for Java 8—shows you the tried-and-true, road-tested patterns used by developers to create functional, elegant, reusable, and flexible software. By the time you finish this book, you’ll be able to take advantage of the best design practices and experiences of those who have fought the beast of software design and triumphed.
What’s so special about this book?
We think your time is too valuable to spend struggling with new concepts. Using the latest research in cognitive science and learning theory to craft a multi-sensory learning experience, Head First Design Patterns uses a visually rich format designed for the way your brain works, not a text-heavy approach that puts you to sleep.
Topics include:The pros and cons of braced initialization, noexcept specifications, perfect forwarding, and smart pointer make functionsThe relationships among std::move, std::forward, rvalue references, and universal referencesTechniques for writing clear, correct, effective lambda expressionsHow std::atomic differs from volatile, how each should be used, and how they relate to C++'s concurrency APIHow best practices in "old" C++ programming (i.e., C++98) require revision for software development in modern C++
Effective Modern C++ follows the proven guideline-based, example-driven format of Scott Meyers' earlier books, but covers entirely new material.
"After I learned the C++ basics, I then learned how to use C++ in production code from Meyer's series of Effective C++ books. Effective Modern C++ is the most important how-to book for advice on key guidelines, styles, and idioms to use modern C++ effectively and well. Don't own it yet? Buy this one. Now".
-- Herb Sutter, Chair of ISO C++ Standards Committee and C++ Software Architect at Microsoft
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.