Following the familiar “Design Patterns” format, expert cloud developer Chris Moyer introduces proven patterns for cloud platforms from Amazon, Google, and other providers. Moyer demonstrates these patterns at work through extensive example code and case study applications for Amazon Web Services (AWS). As you increasingly move to the cloud, you’ll constantly encounter the challenges this book solves. You’ll rely on it for years–whenever you need a cloud solution you can trust.
Books Guide: Designing Software
List of books available on the topic of designing software.
One of the most exciting recent changes in the computing world is cloud computing. Cloud computing is a dramatic shift in how applications are developed and used---and even in what applications are. With cloud computing, developers are no longer building applications that run on a user's desktop computer. Instead, they're building services on the network that can be used by thousands of users at the same time.
Design for Trustworthy Software will help you improve quality whether you develop in-house, outsource, consult, or provide support. It offers breakthrough solutions for the entire spectrum of software and quality professionals–from developers to project leaders, chief software architects to customers.
Agile has become today’s dominant software development paradigm, but agile methods remain difficult to measure and improve. Essential Skills for the Agile Developer fills this gap from the bottom up, teaching proven techniques for assessing and optimizing both individual and team agile practices.
Many enterprises unfortunately depend on software that is insecure, unreliable, and fragile. They compensate by investing heavily in workarounds and maintenance, and by employing hordes of "gurus" to manage their systems' flaws. This must change. And it can. In this book, respected software architect Clifford J. Berg shows how to design high-assurance applications-applications with proven, built-in reliability, security, manageability, and maintainability.
Software continues to become more and more complex, while software consumers’ expectations for performance, reliability, functionality, and speed-to-market are also growing exponentially. H. S. Lahman shows how to address all these challenges by integrating proven object-oriented techniques with a powerful new methodology—model-based development
Model-based Software Performance Analysis introduces performance concerns in the scope of software modeling, thus allowing the developer to carry on performance analysis throughout the software lifecycle.
Refactoring has proven its value in a wide range of development projects—helping software professionals improve system designs, maintainability, extensibility, and performance. Now, for the first time, leading agile methodologist Scott Ambler and renowned consultant Pramodkumar Sadalage introduce powerful refactoring techniques specifically designed for database systems.
The role of UX manager is of vital importance–it means leading a productive team, influencing businesses to adopt user-centered design, and delivering valuable products customers. Few UX professionals who find themselves in management positions have formal training in management. More often than not they are promoted to a management position after having proven themselves as an effective and successful practitioner.
Most software developers have inherited legacy or brownfield projects that require maintenance, incremental improvements, or even cleaning up the mess another programmer left behind.
People are beginning to demand a higher standard of user experience (UX) quality from the software systems they use in their business and personal lives, and companies are looking to UX to help drive business value and increase brand strength.
Why don't typical enterprise projects go as smoothly as projects you develop for the Web? Does the REST architectural style really present a viable alternative for building distributed systems and enterprise-class applications?
Although many software books highlight open problems in secure software development, few provide easily actionable, ground-level solutions. Breaking the mold, Secure and Resilient Software Development teaches you how to apply best practices and standards for consistent and secure software development. It details specific quality software development strategies and practices that stress resilience requirements with precise, actionable, and ground-level inputs.
To understand the principles and practice of software development, there is no better motivator than participating in a software project with real-world value and a life beyond the academic arena. Software Development: An Open Source Approach immerses students directly into an agile free and open source software (FOSS) development process.
In The Art of Scalability, AKF Partners cofounders Martin L. Abbott and Michael T. Fisher cover everything IT and business leaders must know to build technology infrastructures that can scale smoothly to meet any business requirement. Drawing on their unparalleled experience managing some of the world’s highest-transaction-volume Web sites, the authors provide detailed models and best-practice approaches available in no other book.
What are the ingredients of robust, elegant, flexible, and maintainable software architecture? Beautiful Architecture answers this question through a collection of intriguing essays from more than a dozen of today's leading software designers and architects. In each essay, contributors present a notable software architecture, and analyze what makes it innovative and ideal for its purpose.
Cloud Computing and SOA Convergence in Your Enterprise offers a clear-eyed assessment of the challenges associated with this new world—and offers a step-by-step program for getting there with maximum return on investment and minimum risk. Using multiple examples, Linthicum:
Thousands of enterprises have adopted Service Oriented Architecture (SOA) based on its promise to help them respond more rapidly to changing business requirements by composing new solutions from existing business services. To deliver on this promise, however, companies need to integrate solid but flexible Business Process Management (BPM) plans into their SOA initiatives. Dynamic SOA and BPM offers a pragmatic, efficient approach for doing so.
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.
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.
In Mashup Patterns, Michael Ogrinz applies the concept of software development patterns to mashups, systematically revealing the right ways to build enterprise mashups and providing useful insights to help organizations avoid the mistakes that cause mashups to fail.
Based on the authors' more than fifteen years of experience in software agent technology, this book first presents the essential basics, aspects, and structures of the agent technology. It then covers the main quality aspects in software system development and gives current examples of agent measurement and evaluation. Focusing on software agent systems and multi-agent systems (MAS), the authors discuss the determination of quality properties.
In Seam Framework, Second Edition, the authors of the leading guide to Seam programming have systematically updated their text to reflect the major improvements introduced with Seam 2.x. This author team–all key Seam project contributors–teach Seam 2.x through detailed example applications that reveal how Seam simplifies many tasks that were previously difficult or impractical.
Software Engineering provides the software engineering fundamentals, principles and skills needed to develop and maintain high-quality software products. The software engineering processes and techniques covered include requirements specification, design, implementation, testing and management of software projects. This up-to-date book is modeled on the recommendations and guidelines prescribed in the Guide to the SWEBOK.
Software Estimation Best Practices, Tools & Techniques covers all facets of software estimation. It provides a detailed explanation of the various methods for estimating software size, development effort, cost, and schedule, including a comprehensive explanation of test effort estimation.
With insights direct from Microsoft s own development teams and across the software-development life cycle learn best practices for writing solid, well-formed, efficient code. Ideal for new to intermediate level developers, but with fresh insights for more experienced programmers, SOLID CODE will help improve your coding techniques at each phase of product development: design, prototyping, implementation, debugging, and testing.
The IBM SOA Foundation Suite is an integrated, open-standards-based set of software, best practices, and patterns that help you systematically maximize the business value of SOA. Understanding IBM SOA Foundation Suite brings together 26 hands-on tutorials that will help you master IBM SOA Foundation and apply it successfully in your organization.
So you think you want to be Agile. But what does it mean? How can you develop software in an agile manner? How can you reap the benefits of agile modelling or Extreme Programming (XP)? What tools might you use to help you become more agile? This book tells you!
The challenge today's IT professionals face is not how to build a service. It's how to build a quality service, based on solid design principles and integrated into an architecture that enhances overall business processes. If you are a systems architect or designer, a business analyst, or an IT manager, this book gives you the architecture and design principles along with a methodology that empowers you to meet that challenge.
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.
For software to consistently deliver promised results, software development must mature into a true profession. Emergent Design points the way. As software continues to evolve and mature, software development processes become more complicated, relying on a variety of methodologies and approaches. This book illuminates the path to building the next generation of software. Author Scott L.
Companies moving toward flexible SOA architectures often face difficult information management and integration challenges. The master data they rely on is often stored and managed in ways that are redundant, inconsistent, inaccessible, non-standardized, and poorly governed. Using Master Data Management (MDM), organizations can regain control of their master data, improve corresponding business processes, and maximize its value in SOA environments.
Object-Oriented Design with Applications has long been the essential reference to object-oriented technology, which, in turn, has evolved to join the mainstream of industrial-strength software development. In this third edition, eaders can learn to apply object-oriented methods using new paradigms such as Java, the Unified Modeling Language (UML) 2.0, and .NET.
The multicore revolution has reached the deployment stage in embedded systems ranging from small ultramobile devices to large telecommunication servers. The transition from single to multicore processors, motivated by the need to increase performance while conserving power, has placed great responsibility on the shoulders of software engineers. In this new embedded multicore era, the toughest task is the development of code to support more sophisticated systems.
Numerous books abound for the beginning programmer who wants to learn XML, but there are few learning resources available for those who are already proficient in XML and need expert-level advice to help maximize their workflow. Advanced XML Applications from the Experts at The XML Guild provides such a resource, written by the expert programmers at The XML Guild. The book is not intended to be another exhaustive XML bible.
Agile Java™ Development With Spring, Hibernate and Eclipse is a book about robust technologies and effective methods which help bring simplicity back into the world of enterprise Java development. The three key technologies covered in this book, the Spring Framework, Hibernate and Eclipse, help reduce the complexity of enterprise Java development significantly.
Driven by the need for global excellence and customer value, agility and innovation have become imperative for business. However, most business process engineering and information system approaches address only operational efficiency and economics. This unique book closes this gap. It shows you how innovation can be systematized with normalized patterns of information.
Patterns, Domain-Driven Design (DDD), and Test-Driven Development (TDD) enable architects and developers to create systems that are powerful, robust, and maintainable. Now, there's a comprehensive, practical guide to leveraging all these techniques primarily in Microsoft .NET environments, but the discussions are just as useful for Java developers.
first truly object-oriented language, .NET, software designers from an even broader range of business and programming spheres have been looking for ways to refine and write better code. Many have turned toward design patterns, iterative and AGILE design methodologies, and other more defined ways to improve performance, maintainability, portability, and scalability of code as well as design processes.
Designing the Obvious belongs in the toolbox of every person charged with the design and development of Web-based software, from the CEO to the programming team. Designing the Obvious explores the character traits of great Web applications and uses them as guiding principles of application design so the end result of every project instills customer satisfaction and loyalty.
Interface Oriented Design focuses how to create designs composed of interfaces to objects, components and services. You'll see techniques for breaking down solutions into interfaces and then determining appropriate implementation of those interfaces to create a well structured, robust, working program.
UML expert author Dr. Doron Drusinsky compiles all the latest information on the application of UML (Universal Modeling Language) statecharts, temporal logic, automata, and other advanced tools for run-time monitoring and verification.
Software Engineering Quality Practices describes how software engineers and the managers that supervise them can develop quality software in an effective, efficient, and professional manner. This volume conveys practical advice quickly and clearly while avoiding the dogma that surrounds the software profession.
Software Specification and Design: An Engineering Approach proposes a strategy for software development that emphasizes measurement. It promotes the measurement of every aspect of the software environment - from initial testing through test activity and deployment/operation. This book details the path to effective software and design. It recognizes that each project is different, with its own set of problems, so it does not propose a specific model.
This is one of the most detailed, sophisticated, and useful guides to software security auditing ever written. The authors are leading security consultants and researchers who have personally uncovered vulnerabilities in applications ranging from sendmail to Microsoft Exchange, Check Point VPN to Internet Explorer.
For all the buzz about trendy IT techniques, data processing is still at the core of our systems, especially now that enterprises all over the world are confronted with exploding volumes of data. Database performance has become a major headache, and most IT departments believe that developers should provide simple SQL code to solve immediate problems and let DBAs tune any "bad SQL" later.
The software industry has been struggling with how to create and release software that is more security-enhanced and reliable—the Security Development Lifecycle (SDL) provides a methodology that works. Adapted from Microsoft’s standard development process, SDL is a critical way to help reduce the number of security defects in code at every stage of the development process, from design to release.
How do we ensure that our Web sites actually give users what they need? What are the best ways to understand our users' goals, behaviors, and attitudes, and then turn that understanding into business results? Personas bring user research to life and make it actionable, ensuring we're making the right decisions based on the right information. This practical guide explains how to create and use personas to make your site more successful.
Mobile computing devices have evolved from fixed-purpose communications tools to compelling and extensible mass-market computing platforms. Now, they stand poised to offer truly ubiquitous and mobile computing—and to revolutionize the way people work, communicate, and interact with the world around them.
Master Java 5.0, object-oriented design, and Test-Driven Development (TDD) by learning them together. Agile Java weaves all three into a single coherent approach to building professional, robust software systems. Jeff Langr shows exactly how Java and TDD integrate throughout the entire development lifecycle, helping you leverage today's fastest, most efficient development techniques from the very outset.
You will become a master at .NET database development with the help of Alison Balter's Mastering Database Development with .NET. You will learn step-by-step how to use data bound forms to build applications in the .NET framework. Alison will also show you how you can customize forms by adding combo boxes and list boxes. Or, if you already know how to create forms using an application wizard, discover the advantages and disadvantages associated with this technique.
Aspect-oriented software development (AOSD) is emerging as a proven approach for allowing the separate expression of multiple concerns along with 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.
Shows companies how to secure their databases with cryptography, thereby helping them comply with a bevy of new regulations.
As with any burgeoning technology that enjoys commercial attention, the use of data mining is surrounded by a great deal of hype. Exaggerated reports tell of secrets that can be uncovered by setting algorithms loose on oceans of data. But there is no magic in machine learning, no hidden power, no alchemy. Instead there is an identifiable body of practical techniques that can extract useful information from raw data. This book describes these techniques and shows how they work.
"Design Patterns Explained, Second Edition" is a simple, clear, and practical introduction to patterns. Using dozens of new C# and updated Java examples, it shows students how to use patterns to design, develop, and deliver software far more effectively. Students should read this book before they they try and tackle Gamma's well-known work, Design Patterns.
Designing Effective Database Systems shows you how to design an effective, high-performance database to solve it. Riordan begins by thoroughly demystifying the principles of relational design, making them accessible to every professional developer. Next, she offers the field's clearest introduction to dimensional database modeling, practical insight for designing today's increasingly important analytical applications.
The rise of network-based, automated services in the past decade has definitely changed the way businesses operate, but not always for the better. Offering services, conducting transactions and moving data on the Web opens new opportunities, but many CTOs and CIOs are more concerned with the risks. Like the rulers of medieval cities, they've adopted a siege mentality, building walls to keep the bad guys out. It makes for a secure perimeter, but hampers the flow of commerce.
Written for object-oriented software developers, this book describes an approach to creating software that is meaningfully involved in user's activities and takes the ultimate application into consideration.
Learn to Protect Your Assets and Prevent Attacks!
"Flexible Software Design: Systems Development for Changing Requirements" begins by introducing the fundamental concepts of flexibility, explaining the reality of imperfect knowledge and how development participants must change their thinking to implement flexible software. The second part covers design guidelines, stable identifiers, stable information structures, the Generic Entity Cloud concept, and the regulation that prevents IT intervention.
This book is an absolute must-read for all .NET developers. It gives clear do and don't guidance on how to design class libraries for .NET. It also offers insight into the design and creation of .NET that really helps developers understand the reasons why things are the way they are. This information will aid developers designing their own class libraries and will also allow them to take advantage of the .NET class library more effectively."
A revision of a "classic", ground-breaking, best-seller that set the standards for Object-Oriented Modeling and Design provides a proven software development process for using the most important concepts and notation of UML.
The long awaited fifth volume in a collection of key practices for pattern languages and design. Patterns are on the rise! In 2005, three of the four books considered as finalists for 15th Annual Jolt book awards were about patterns. All patterns featured have been presented at recent PLoP conferences. To be released 12/2005.
More often than not, developers will stop a large project in the middle of the build stage to rethink and recode the software design so it's cleaner and more efficient. Known as "refactoring," this process eats up valuable time and money. To help offset refactoring, this book presents a new process called "prefactoring," the premise of which states that you're better off considering the best possible design patterns before you even begin your project.
This book describes how to make requirements easy to change by using encapsulation. It introduces the Freedom methodology that shows how to encapsulate requirements thereby promoting reuse and quality. Encapsulating requirements reduces software lifecycle costs by making requirements and code that implements them into more adaptable to changing technology and business needs.
This book introduces the most frequently used UML diagramming notation, while emphasizing that OOA/D is much more than knowing UML notation. The book is now compliant with UML 2.0.
All case study iterations and skills are presented in the context of an "Agile" version of the Unified Process—a popular, modern iterative approach to software development.
Enterprise Integration Patterns provides an invaluable catalog of sixty-five patterns, with real-world solutions that demonstrate the formidable of messaging and help you to design effective messaging solutions for your enterprise.
Software engineering and computer science students need a resource that explains how to apply design patterns at the enterprise level, allowing them to design and implement systems of high stability and quality. Software Architecture Design Patterns in Java is a detailed explanation of how to apply design patterns and develop software architectures. It provides in-depth examples in Java, and guides students by detailing when, why, and how to use specific patterns.
You code. And code. And code. You build only to rebuild. You focus on making your site compatible with almost every browser or wireless device ever put out there. Then along comes a new device or a new browser, and you start all over again.
You can get off the merry-go-round.
(From the Back Cover)
(Back Cover Copy)
Introducing the first complete guide to the theory and practice of software design!
Until now it's been hard to find one, complete, up-to-date guide to software design theory and practice.
Not any more! Starting where programming and data structure courses end, this indispensable book is a comprehensive guide to the theory and actual practice of software design.
Building Web Applications with UML is a guide to building robust, scalable, and feature-rich web applications using proven object-oriented techniques. Written for the project manager, architect, analyst, designer, and programmer of web applications, this book examines the unique aspects of modeling web applications with the Web Application Extension (WAE) for the Unified Modeling Language (UML).
(from Book Info) Provides comprehensive coverage of database performance tuning using Oracle 8i and select 9i examples as the RDBMS. Combines theory with practical tools to address the tuning and optimization issues of DBAs and developers, irrespective of whether they use Oracle.
This book provides an excellent introduction to Web site concepts and offers insight into what makes Web sites different from other kinds of development. Information Architecture for the World Wide Web helps you to blend aesthetics and mechanics for distinctive, cohesive web sites that work. This book focuses on the framework that holds graphics and the technical issues of a site together.
Object Design: Roles, Responsibilities, and Collaborations focuses on the practice of designing objects as integral members of a community where each object has specific roles and responsibilities. The authors present the latest practices and techniques of Responsibility-Driven Design and show how you can apply them as you develop modern object-based applications.
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.
"Component-Based Software Engineering: Putting the Pieces Together" is an edited, state-of-the-art text composed of 42 chapters by 40 of the world's best known authors in the fields of component-based development, component-based software engineering, and component reuse. The book, although multi-authored, was designed from inception to read as if written by one author for the sake of the intended audience.
Executable UML is a graphical specification language. It combines a subset of the UML (Unified Modeling Language) graphical notation with executable semantics and timing rules taken from the Shlaer-Mellor Method - the best of both worlds. You can use this language to build a fully executable system specification consisting of class, state, and, action models. Unlike traditional specifications, an executable specification can be run, tested, debugged, and measured for performance.
In Executable UML, Leon Starr shows how to build precise class models that form the foundation of rigorous software specifications. These specifications can be tested, debugged and optimized to generate code for multiple languages and platforms. Leon presents a wide range of examples from his projects in the fields of science and engineering-focusing on real-time environments where precise and accurate software specification is especially critical.
(From the Back Cover)
Why do so many software projects fail? The reality is that many of these projects are led by programmers or developers thrown into the role of project manager without the necessary skills or training to see a project through successfully. Patricia Ensworth has written a hands-on survival guide designed to rescue the "accidental project manager" and help them to quickly ramp up on all key areas involved in software project management.
User-Centered Design can make any technology product or service far more successful by optimizing your customers' total experience from purchase and unpacking through support, upgrades, and beyond. Now, for the first time, there's a practical guide to introducing, deploying, and optimizing UCD. The field's leading experts present specific methods and techniques for building products that are simpler, more elegant, more powerful, and more profitable.
This book presents an integrated framework for testing object-oriented software throughout the software engineering lifecycle. It discusses recipes for testing of requirements, designs, base classes, derived classes, and integrated systems. For each phase the authors describe objectives of testing, approaches used, testing techniques, ordered sets of activities, planned efforts, and acceptance criteria for transition to the next phase.
Verification and Validation of Modern Software-Intensive Systems brings the classic approaches up to date to apply them to contemporary computing methods. Based on the latest standards and research, the authors cover V&V for areas that have not been previously treated collectively, including:
If you're a programmer using C++, Smalltalk, or Eiffel, or if you're about to migrate to object orientation for the first time, you need to know the most important principles of object-oriented design. For example: In a reliable design, why must a variable's cone of polymorphism lie within that of a method? Is connascence good or bad? How could the inherited methods of a superclass violate the invariant of a subclass—and how can you prevent this?
An Embedded Software Primer is a clearly written, insightful manual for engineers interested in writing embedded-system software. The example-driven approach puts you on a fast track to understanding embedded-system programming and applying what you learn to your projects. This book will give you the necessary foundation to work confidently in this field.
Building on a basic knowledge of computer programming concepts, this book will help you to:
Bestselling authors deliver an authoritative, hands-on book of tools for maintaining constant system availability. Reliability is not a quality that can simply be purchased; instead, it needs to be engineered into a system or product. Here is the only top-to-bottom guide available for the assessment, design, implementation, and testing of a system for 100% reliability.
Whether building a relational, object-relational, or object-oriented database, database developers are increasingly relying on an object-oriented design approach as the best way to meet user needs and performance criteria. This book teaches you how to use the Unified Modeling Language--the official standard of the Object Management Group--to develop and implement the best possible design for your database.
Object technology is increasingly recognized as a valuable tool in application development, but what is not yet recognized is the importance of design in the construction of robust and adaptable object-oriented (OO) applications. With the recent introduction and widespread adoption of the Unified Modeling Language (UML), programmers are now equipped with a powerful tool for expressing software designs.
Now you can dramatically improve the design, performance, and manageability of object-oriented code without altering its interfaces or behavior. Refactoring shows
you exactly how to spot the best opportunities for refactoring and exactly how to do it-step by step. Through more than forty detailed case studies, you'll learn powerful - and surprisingly simple - ways to redesign code that is already in production.
KEY BENEFIT: Virtually overnight, capacity planning has become the most critical issue for Web and intranet developers. This is the first comprehensive guide to every aspect of making sure your Web and intranet servers will deliver the performance your users and executives expect.
In a fundamentally new approach, this comprehensive two-volume set teaches all the techniques a modern analyst needs. The authors explain all the methods, models, and techniques of analysis, and simulate an actual project executed for a British television company. The reader is guided through each step of the project by exercises and the authors' advice.
Learn how to build high-performance client/server systems from the leading expert on database and client/server software performance. Chris Loosley is the recognized expert on high-performance client/server, and here he shows software developers how to build client/server applications that run fast without hogging computer resources.
This book meets the demand for an accessible explanation of the popular Object Modeling Technique (OMT).
This book is a classic high-level management theoretical text. Its contents strongly concentrate on management styles such as TQM (Total Quality Management) and QFD (Quality Function Deployment). Its subject matter lacks the practical descriptions of test procedures such as White Box testing, Black Box testing, Integration, etc.
With tongue in cheek and pun in hand, Will Tracz explores the very serious and important topic of software reuse. Tracz is notorious for his well-known work in "Confessions of a Used Program Salesman," articles popularized by IEEE Computer, IEEE Software, and ACM Software Engineering Notes.
Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves.
This book provides a throrough overview of the entire software-development process, from initial specification to final testing. The individual components are described in a cohesive manner such that, if these guidelines are adhered to, the product will be accurate, maintainable, and well documented. The book is ideal for a college-level computer science course. It is also ideal for a software manager who is starting a new project and is in a position to enforce these policies.
Few books on software project management have been as influential and timeless as this one. With a blend of software engineering facts and thought-provoking opinions, Fred Brooks offers insight for anyone managing complex projects.
This book comprises a fascinating collection of essays and profiles focused on a wide variety of definitions of software design and approaches to improving it. In the preface, Terry Winograd defines the goal: “to improve the practice of software design, through thinking about design from a broader perspective, and exploring how lessons from all areas of design can be applied to software.”
This book contains a broad overview of object-oriented software engineering. Even though the name implies that it only covers the design phase, it actually covers analysis and design in a fair amount of detail. The author mentions each of the common methodologies (diagramming techniques) for object-oriented language but does not give any details about coding.
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 excellent book lives up to its title in delivering practical and application-oriented advice for project and process managers. The book highlights Hewlett Packard’s experiences using software metrics, incorporates more than seventy charts and graphs from real projects, and shows how the metrics can be rolled up into useful and workable organization indicators. The book includes a good bibliography.
The creation of an effective design that satisfies the requirements is often the greatest obstacle to overcome during project development. This book discusses both specification and design, including software and systems engineering interface. It provides a consistent set of notations, guidelines, and a step-by-step process to explain the methodology.
This exploration of object-oriented design builds upon three consistently employed methods of organization: objects and attributes, wholes and parts, and classes and members.
Phadke was trained in robust design techniques by Genichi Taguchi, the mastermind behind Japanese quality manufacturing technologies and the father of Japanese quality control. Taguchi's approach is currently under consideration to be adopted as a student protocol with the US government. The foreword is written by Taguchi.