Many organizations use Capability Maturity Models® (CMMs®) to assess development and maintenance processes, implement improvements, and measure progress. Although consistent in purpose, these models differ in terminology and design--enough sometimes to cause conflict and confusion when used within the same organization.
Books Guide: Software Engineering
The Certified Function Point Specialist Examination Guide provides a complete and authoritative review of the rules and guidelines prescribed in the release of version 4.3 of the Function Point Counting Practices Manual (CPM). Providing a fundamental understanding of the IFPUG Functional Size Measurement method, this is the ideal study guide for the CFPS examination. The text:
Safety-critical systems, by definition those systems whose failure can cause catastrophic results for people, the environment, and the economy, are becoming increasingly complex both in their functionality and their interactions with the environment. Unfortunately, safety assessments are still largely done manually, a time-consuming and error-prone process.
In this book, leading thinkers such as Steve McConnell, Barry Boehm, and Barbara Kitchenham offer essays that uncover the truth and unmask myths commonly held among the software development community.
In Managing Software Debt, leading Agile expert Chris Sterling shows how understanding software debt can help you move products to market faster, with a realistic plan for refactoring them based on experience.
In Patterns-Based Engineering, two leading experts bring together true best practices for developing and deploying successful software-intensive systems.
Over the last decade, software product line engineering (SPLE) has emerged as one of the most promising software development paradigms for increasing productivity in IT-related industries. Detailing the various aspects of SPLE implementation in different domains, Applied Software Product Line Engineering documents best practices with regard to system development.
Get ready for a more robust approach to project management--one that recognizes the project environment and adapts accordingly. This resource first introduces you to the tools, templates, and processes that you'll need in your toolkit. You'll then explore five different project management life cycle (PMLC) models for managing a project: Linear, Incremental, Iterative, Adaptive, and Extreme. Along the way, you'll find step-by-step guidance on how to apply each technique.
Effective decisions are crucial to the success of any software project, but to make better decisions you need a better decision-making process. In Evaluating Project Decisions, leading project management experts introduce an innovative decision model that helps you tailor your decision-making process to systematically evaluate all of your decisions and avoid the bad choices that lead to project failure.
Maintaining compatibility among all affected network and application interfaces of modern enterprise systems can quickly become costly and overwhelming. This handbook presents the knowledge and practical experience of a global group of experts from varying disciplines to help you plan and implement enterprise integration projects that respond to business needs quickly and are seamless to business users.
Effectively forecast, manage, and control software across the entire project lifecycle. Accurately size, estimate, and administer software projects with real-world guidance from an industry expert. Fully updated to cover the latest tools and techniques, Applied Software Measurement, Third Edition details how to deploy a cost-effective and pragmatic analysis strategy.
This book is about a new way of approaching process improvement for engineering development. Process improvement is a generally well-understood and accepted means of achieving quality and productivity gains for software development, and the recognition of its importance for other engineering disciplines is growing. The success and wide adoption of the Capability Maturity Model for Softwareâ has led to increased development of similar models in disciplines other than software.
CMMI is a well-known and standardized model for assessing and improving software and systems development processes. It can be used to guide process improvement across a project, a division, or an entire organization. CMMI was developed at the Carnegie Mellon Software Engineering Institute (SEI). The current version, 1.2, was published in 2006 and is being adopted worldwide.
Richard Hopkins and Kevin Jenkins explain why accumulated business and IT complexity is the root cause of large-scale project failure and show how to overcome that complexity "one bite of the elephant at a time." You'll learn how to manage every phase of the Brownfield project, leveraging breakthrough collaboration, communication, and visualization tools--including Web 2.0, semantic software engineering, model-driven development and architecture, and even virtual worlds.
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.
This book describes an approach to software management based on establishing an infrastructure that serves as the foundation for the project. This infrastructure defines people roles, necessary technology, and interactions between people and technology. This infrastructure automates repetitive tasks, organizes project activities, tracks project status, and seamlessly collects project data to provide measures necessary for decision making.
Novel in its approach to software design, development, and management, Building Software: A Practitioner's Guide shows you how to successfully build and manage a system. The approach the authors recommend is a simple, effective framework known as Solution Engineering Execution (SEE). Through SEE, you create a successful solution by following a highly organized, well-planned process. This process makes you view the solution from a holistic, systematic perspective.
A successful Six Sigma business strategy provides a suite of cross-functional and vertically aligned metrics that lead to significant improvements in customer satisfaction and the bottom line. At first glance, Six Sigma may seem in direct competition with SEI's Capability Maturity Model Integration (CMMI®). However, with its domain-specific approach to improving the engineering process, CMMI offers the process infrastructure that is fundamental to effective Six Sigma strategy.
For any software developer who has spent days in "integration hell," cobbling together myriad software components, Continuous Integration: Improving Software Quality and Reducing Risk illustrates how to transform integration from a necessary evil into an everyday part of the development process. The key, as the authors show, is to integrate regularly and often using continuous integration (CI) practices and techniques.
Software is easy to make, except when you want it to do something new, Rosenberg observes -- but the catch is that "the only software worth making is software that does something new." This two-tiered insight comes from years of observing a team led by Mitch Kapor (the creator of the Lotus 1-2-3 spreadsheet) in its efforts to create a "personal information manager" that can handle to-do lists as easily as events scheduling and address books.
This book delivers all the knowledge and insight you need to succeed with the IBM Rational Unified Process and Solutions. Joshua Barnes presents a start-to-finish, best-practice roadmap to the complete implementation cycle of IBM RUP–from projecting ROI and making the business case through piloting, implementation, mentoring, and beyond.
In Search of Stupidity: Over Twenty Years of High-Tech Marketing Disasters, Second Edition is National Lampoon meets Peter Drucker. It's a funny and well-written business book that takes a look at some of the most influential marketing and business philosophies of the last twenty years. Through the dark glass of hindsight, it provides an educational and entertaining look at why these philosophies didn't work for many of the country's largest and best-known high-tech companies.
In Outside-in Software Development, two of IBM's most respected software leaders, Carl Kessler and John Sweitzer, show you how to identify the stakeholders who'll determine your project's real value, shape every decision around their real needs, and deliver software that achieves broad, rapid, enthusiastic adoption.
AntiPatterns: Identification, Refactoring, and Management catalogs 48 bad management practices and environments common to software development, IT, and other organizations. The authors cover antipatterns of management, along with environmental/cultural antipatterns and personality antipatterns/phenotypes. Through the classification of these harmful practices, you will be able to identify problems in your own work environment, and take action to correct them.
Defining and Deploying Software Processes provides expert guidance that allows you to create efficient and effective processes that let you better manage project schedules and software quality. The author's organized approach details how to deploy into your company culture processes that are embraced by employees, and a Web-based process architecture that is completely flexible and extensible.
Get a handle on skyrocketing software costs. Are your software costs spiraling out of control? Do your projects chronically run late, exceed budget, and go out the door bug-laden, if at all? Have you discovered a commercial software cost estimating tool that works for your situation? Are you even familiar with how these increasingly sophisticated tools operate?
Micro-ISV: From Vision to Reality explains what works and why in today's emerging micro-ISV sector. Currently, thousands of programmers build and deliver great solutions ISV-style, earning success and revenues much larger than you might guess.
A breakthrough approach to managing Agile software development . . . Agile methods might just be the alternative to outsourcing. However, Agile development must scale in scope and discipline to be acceptable in the boardrooms of the Fortune 1000. In "Agile Management for Software Engineering," David J.
Many software projects fail because their leaders don't know how to estimate, schedule, or measure them accurately. Fortunately, proven tools and techniques exist for every facet of software estimation. Estimating Software-Intensive Systems brings them together in a real-world guidebook that will help software managers, engineers, and customers immediately improve their estimates -- and drive continuing improvements over time.
This ground-breaking professional reference integrates converging views of e-business processes and offers ways to manage their inherent risks with advanced modeling techniques.
This book will aim to explain some of the complexities of project management and managerial relationships with stakeholders by discussing the practice of stakeholder engagement, dialog, measurement and management and the consequences of this practice for reporting and productivity, and performance within project management.
Maximizing ROI on Software Development explains how to execute best quality software development and testing while maximizing business value.
It discusses Applied ROI in the context of methodologies such as Agile and Extreme Programming, and traditional methodologies including Six Sigma, the Capability Maturity Model® (CMM®), Total Cost of Ownership (TCO), and Product Line Models (PLM). T
This resource offers you insights for building and evolving open systems using the best mix of standards for your software development projects. Open Systems and Standards for Software Product Development presents a framework for distinguishing between them.
Many people are confused about corrective action. They know it's a requirement for compliance to standards like ISO 9001. In some cases, the mandate is imposed by their customers or by regulatory agencies. What people often don't understand is what the requirement actually entails.
Managing Software Engineering Knowledge illustrates several theoretical examples of this vision and solutions applied to industrial practice. It is structured in four parts addressing the motives for knowledge management, the concepts and models used in knowledge management for software engineering, their application to software engineering, and practical guidelines for managing software engineering knowledge.
The easy, complete guide to statistical methods for software project management and process improvement.
Together: supercharging software development, from start to finish! Together delivers a superbly integrated set of lifecycle tools for building software with breakthrough quality, efficiency, and performance. Now there's a definitive guide to making the most of Together: Better Software Faster.
From the Back Cover: The practice of building software is a "new kid on the block" technology. To those who have been in this field for all of their professional careers, it may not seem that way. But in the overall scheme of professions, software builders are relative “newbies.” In the short history of the software field, a lot of facts have been identified, and a lot of fallacies promulgated. Those facts and fallacies are what this book is about.
This book provides selective, in-depth coverage of the fundamentals of software engineering by stressing principles and methods through rigorous formal and informal approaches. In contrast to other books which are based on the lifecycle model of software development, the authors emphasize identifying and applying fundamental principles that are applicable throughout the software lifecycle.
In Legacy Systems: Transformation Strategies, you'll discover exactly how to maximize the business value of legacy systems as you build the flexible, high-value, component-based architectures you need to stay competitive.
This is the first systematic guide to defect identification, correction, and prevention in object-oriented software development projects. Houman Younessi covers every aspect of defect reduction, going far beyond testing to cover key aspects of the software development process, from planning through software delivery.
Software Configuration Management Patterns alleviates software engineers' most common concerns about software configuration management (SCM)--perceived rigidity and an overemphasis on process. This book demonstrates how effective SCM strategies promote a healthy, team-oriented culture that produces better software. Through the use of patterns, the authors show that properly managed workflow can avert delays, morale problems, and cost overruns. The patterns approach illustrates how SCM can be easily and successfully applied in small- to mid-sized organizations. By learning how these patterns relate to each other, readers can avoid common mistakes that too often result in frustrated developers and reduced productivity. Key coverage includes instruction on how to: develop the next version of a product while fixing problems with the current one; develop code in parallel with others and join up with the current state of code line; identify what versions of code went into a particular component; analyze where a change happened in the history of a component's development; use current tools more effectively, and decide when to use a manual process; introduce good practices into individual workspaces and throughout the organization; identify crucial aspects of the software process, so that team projects can run smoothly; build and foster a development environment focused on producing optimal teamwork and quality products.
Steve McConnell, a leader in defining software engineering's best practices, asserts that software development is entering a new era. Now's the time, McConnell says, for the industry to take notice and take action--and establish a true profession of software engineering.
Contrary to popular opinion, you can build extraordinarily high-quality software—and this book shows you exactly how the world's best development organizations do it.
Most people are tired of being put on hold for an hour by technical support staff, only to be told, "Gosh, we've never heard of that problem before. There must be something wrong with your video card." This book shows you how to negotiate more effectively with a software publisher. It will help you with refunds, bug fixes, additional support, and sometimes, repayment for other losses caused by defective software.
In this book, Bob Glass has assembled a fascinating collection of stories about computing companies, projects, and products that failed. While the stories are interesting in their own right, the importance of learning from these failures is underscored by the fact that the world economy has become increasingly dependent on computer technology.
Textbooks tell us how to define metrics, but there is little guidance about exactly how to start and what has proven most effective in actual use. This book helps bridge that gap by bringing together important and practical papers on applying software metrics. Each chapter addresses a significant question whose answer is essential to building an effective measurement program.
This book is a brief, eight-chapter paperback book containing multiple authors’ thoughts about management issues involved in system life cycles.
Written for busy professionals charged with delivering high-quality products on time and within budget, this book is a comprehensive guide that describes a success formula for managing software risk. The book is divided into five parts that describe a risk-management roadmap designed to take you from crisis to control of your software project.
The award-winning book on software strategy for managers--now in paperback! Roger Pressman, best-selling computer author and internationally recognized consultant, uses clear, conversational language and real-world examples to explain what software engineering means for managers as their roles change to include more technical responsibilities.
The ISO 9000 standard is becoming increasingly important in the software industry--many European firms now require it. This book is a "what-to-do" and "how-to-do-it" guide to applying the ISO 9000 standard to building quality software. The book outlines what the ISO 9000 standard is, how it is to be applied to software development, where it stands in the overall world of software quality approaches, and what has happened in specific applications of the standard.
The book presents a well-balanced view of, and approach to, improving the software development process. The book looks at two sides of software engineering improvement: what kills and what helps. It's a must-read book for those who want to improve the way they build software and manage projects. The book is particularly suitable for software process engineers, quality assurance officers, and project managers.
If you are considering ISO 9000 certification, and all of the quality improvements and business expansion it can mean, this book will explain exactly what you need to know. It will help you understand ISO 9000 fundamentals, learn about the steps you will need to take, and evaluate whether ISO 9000 certification is the best move for your organization.
The author provides a wide range of examples about computers, and the associated weaknesses that we have not been able to overcome. The book highlights the extent to which computers control our environment and our lives, and the consequent risks. The accounts provided in the book are interesting and varied--most people will benefit from this illuminating exposé. Stories about airplanes, medical equipment, banking, Y2K, and others will captivate you until you reach the last chapter.
This book contains 201 top principles, rules of thumb, assumptions, proverbs of software development. Each principle has a short explanation and its reference on a single page, and they are organized by lifecycle phase (requirements, design, etc.). The purpose of the book is to enumerate the underlying principles of good software development, not teach specific techniques.
This book provides an in-depth means for software engineers to improve their own practice of software engineering. A variety of small projects are designed to lead the reader to identify specific ways their own work can benefit from process improvement based on measurement and statistical analyses.
This book tells you how to manage a complex software development project using RCS and SCCS. The book tells you much more than how to use each command; it's organized in terms of increasingly complex management problems, from simple source management, to managing multiple releases, to coordinating teams of developers on a project involving many files and more than one target platform.
From the preface: The book is based on a collection of mishaps and oddities relating to computer technology. It considers what has gone wrong in the past, what is likely to go wrong in the future, and what can be done to minimize the occurrence of further problems.
This book addresses the specifics of implementation by providing detailed steps for middle managers who need to acquire organization and management skills for coordinating a successful implementation project. It explains exactly how to execute a complex information system even when it crosses many organizational boundaries and hardware platforms.
This is a handy collection of pithy quotations about computers: advice, put-downs, off-the-mark predictions, and other snippets from experts such as Steve Jobs, Ted Nelson, Thomas J. Watson, George Bush, and Duckman.
We've been looking for a good book on Joint Application Development (JAD). This is the best we've seen. It includes a case study chapter on the design for a fixed-assets system.
Most of this book is based on what the authors describe as unusually candid interviews with thirty-eight senior microsoft employees and the analysis of several thousand pages of confidential internal documents and project data. The book has high praise for Microsoft's approach to product development and team management, which they describe as the synch-and-stabilize process. The book devotes one chapter to each of seven strategies that the authors view as characterizing how Microsoft works.
An introduction to Software Quality Assurance and its Implementation will show you how to build up an efficient, workable system from fundamental principles through to writing procedures and gaining ISO 9001 certification. The book begins by providing an introduction to software quality and the technical background to the various software tasks.
The author of the award-winning Writing Solid Code takes a compelling look at the people who develop the code and the group dynamics behind the scenes. Steve Maguire draws on his real-world experiences at Microsoft for candid accounts of how he brought together and maintained effective teams to develop timely, high-quality commercial applications.
This book is a basic introduction to measurement and the validation and use of metrics.
Inside RAD takes you into the workaday world of building applications in a rapid but controlled fashion. It describes the mechanics behind the process and illustrates their application through a project diary. Each day of the diary describes real-world problems and how they are addressed.
This book is an introduction and discussion of rapid systems development--getting software developed quickly.
This handbook summarizes more than 50 of the major problems of building and maintaining software projects, and outlines the prevention/control "therapies" available. It considers in depth the software-related risks in the domains of methodologies, tools, organization structures, skills and specialization, client relations, and sociological issues.
This practical handbook of software construction covers the art and science of the entire development process, from designing to testing. Examples are provided in C, Pascal, Basic, Fortran, and Ada--but the focus is on programming techniques rather than the requirements of a specific programming language or environment.
This book presents, in clear and sometimes entertaining language, a basic background useful for understanding software. It explains why we should be cautious about introducing software into systems, and suggests criteria we might use to evaluate proposals to do so.
This is an uncommon book in that it offers a balance of technical and practical information. On the technical side, it provides an analysis of models and formulas of software reliability. But it also outlines their practical application within industry.
Based on the late Dr. Perry Gluckman's personal experience as a consultant implementing the theories of W. Edwards Deming, this book brings you into the lives of six people who put themselves on the front line of the battle for quality improvement. The stories tell experiences of people who work in America's companies, from top executives to line workers.
This is very much a hands-on and how-to description of ways to organize and present documentation of automated systems. While intended for technical writers, the book offers value to others. The text emphasizes that documenation should take a strong customer/reader orientation. Both developers and testers would be well advised to follow the methods the authors suggest for understanding customer needs.
Using a rigorous, technical approach, the book is written by a leader in the field who has developed his own object-oriented design techniques. It covers object-oriented design of software. The book discusses requirements analysis, design, and principles that can be applied for all types of software: large, extremely complex, and real-time systems.
Software developers and managers intrigued with the potential of object-oriented technology will find this book an eye-opener. The 19 applications showcased here indicate that object-oriented technology has moved from the realm of theoretical to full-scale, working applications.
This book is one of the first to apply object-oriented techniques to the whole software lifecycle. It describes a complete development environment (Objectory) for the development of large software systems with an object-oriented approach.
This book emphasizes the premise that, at its core, software quality is a technical problem that must be addressed by good technical people working with good methods and techniques. The book describes a menu of some five dozen quality-oriented techniques and then addresses how quality organizations and management can facilitate their use. Special features include good annotated references throughout the book and a helpful section of company case studies.
This edition of the author's popular book on CASE (Computer-Aided Software Engineering) addresses the entire software development cycle. The book provides information on every key aspect of automated software engineering.
This is one of the very few books we've seen that tries to make practical sense and takes formal mathematical methods through application. (This replaces Baber's earlier book, "The Spine of Software: Designing Provably Correct Software--Theory & Practice.")
Any book that Yourdon works on belongs in the library of a practicing software engineer. The book is aimed at the practicing systems analyst tackling real-world projects. The book can be read and understood easily by managers, testers, and quality assurance people as well.
This book describes the software process maturity levels developed by the Software Engineering Institute at Carnegie Mellon University. The process-maturity framework outlines five stages from initial ad hoc approaches to repeatable, defined, managed and optimized.
This is a short paperback describing some big computer failures, mostly drawn from Datamation.
In a nontechnical style, this book shows managers how to organize software projects effectively so they are objectively measurable. The book prescribes techniques for making and updating accurate projections of time and cost to deliver. DeMarco provides a number of helpful methods to forecast the costs of future software projects and to track a project's progress with respect to its estimates.