Large-scale C++ Software Design


Book Description

Software -- Programming Languages.




Large-Scale C++ Volume I


Book Description

Designing scalable software in C++ requires more than just a sound understanding of logical design. Senior developers, architects, and project leaders need a grasp of high-level physical design concepts that even many software experts have never explored. In Large-Scale C++, Volume I: Process and Architecture , John Lakos takes a practitioner's view of modern large-scale software development, helping experienced professionals apply architectural-level physical design concepts in their everyday work. Lakos teaches critical concepts clearly and concisely, with new high-value examples. Up to date and modular, Large-Scale C++, Volume I, is designed to help you solve problems right now, and serve as an indispensable reference for years to come.




Large-Scale C++ Volume II


Book Description

Designing scalable software in C++ requires more than just a sound understanding of logical design. Senior developers, architects, and project leaders need a grasp of high-level physical design concepts that even many software experts have never explored. In Large-Scale C++ Volume I: Process and Architecture, John Lakos takes a practitioner's view of modern large-scale software development, helping experienced professionals apply architectural-level physical design concepts in their everyday work. Lakos teaches critical concepts clearly and concisely, with new high-value examples. Up to date and modular, Large-Scale C++ Volume I is designed to help you solve problems right now, and serve as an appealing reference for years to come.




Large-Scale Software Architecture


Book Description

The purpose of large-scale software architecture is to capture and describe practical representations to make development teams more effective. In this book the authors show how to utilise software architecture as a tool to guide the development instead of capturing the architectural details after all the design decisions have been made. * Offers a concise description of UML usage for large-scale architecture * Discusses software architecture and design principles * Technology and vendor independent




API Design for C++


Book Description

API Design for C++ provides a comprehensive discussion of Application Programming Interface (API) development, from initial design through implementation, testing, documentation, release, versioning, maintenance, and deprecation. It is the only book that teaches the strategies of C++ API development, including interface design, versioning, scripting, and plug-in extensibility. Drawing from the author's experience on large scale, collaborative software projects, the text offers practical techniques of API design that produce robust code for the long term. It presents patterns and practices that provide real value to individual developers as well as organizations. API Design for C++ explores often overlooked issues, both technical and non-technical, contributing to successful design decisions that product high quality, robust, and long-lived APIs. It focuses on various API styles and patterns that will allow you to produce elegant and durable libraries. A discussion on testing strategies concentrates on automated API testing techniques rather than attempting to include end-user application testing techniques such as GUI testing, system testing, or manual testing. Each concept is illustrated with extensive C++ code examples, and fully functional examples and working source code for experimentation are available online. This book will be helpful to new programmers who understand the fundamentals of C++ and who want to advance their design skills, as well as to senior engineers and software architects seeking to gain new expertise to complement their existing talents. Three specific groups of readers are targeted: practicing software engineers and architects, technical managers, and students and educators. - The only book that teaches the strategies of C++ API development, including design, versioning, documentation, testing, scripting, and extensibility - Extensive code examples illustrate each concept, with fully functional examples and working source code for experimentation available online - Covers various API styles and patterns with a focus on practical and efficient designs for large-scale long-term projects




Approximation of Large-Scale Dynamical Systems


Book Description

Mathematical models are used to simulate, and sometimes control, the behavior of physical and artificial processes such as the weather and very large-scale integration (VLSI) circuits. The increasing need for accuracy has led to the development of highly complex models. However, in the presence of limited computational accuracy and storage capabilities model reduction (system approximation) is often necessary. Approximation of Large-Scale Dynamical Systems provides a comprehensive picture of model reduction, combining system theory with numerical linear algebra and computational considerations. It addresses the issue of model reduction and the resulting trade-offs between accuracy and complexity. Special attention is given to numerical aspects, simulation questions, and practical applications.




The Green Computing Book


Book Description

State-of-the-Art Approaches to Advance the Large-Scale Green Computing Movement Edited by one of the founders and lead investigator of the Green500 list, The Green Computing Book: Tackling Energy Efficiency at Large Scale explores seminal research in large-scale green computing. It begins with low-level, hardware-based approaches and then traverses up the software stack with increasingly higher-level, software-based approaches. In the first chapter, the IBM Blue Gene team illustrates how to improve the energy efficiency of a supercomputer by an order of magnitude without any system performance loss in parallelizable applications. The next few chapters explain how to enhance the energy efficiency of a large-scale computing system via compiler-directed energy optimizations, an adaptive run-time system, and a general prediction performance framework. The book then explores the interactions between energy management and reliability and describes storage system organization that maximizes energy efficiency and reliability. It also addresses the need for coordinated power control across different layers and covers demand response policies in computing centers. The final chapter assesses the impact of servers on data center costs.




Large-Scale Scrum


Book Description

The Go-To Resource for Large-Scale Organizations to Be Agile Rather than asking, “How can we do agile at scale in our big complex organization?” a different and deeper question is, “How can we have the same simple structure that Scrum offers for the organization, and be agile at scale rather than do agile?” This profound insight is at the heart of LeSS (Large-Scale Scrum). In Large-Scale Scrum: More with LeSS, Craig Larman and Bas Vodde have distilled over a decade of experience in large-scale LeSS adoptions towards a simpler organization that delivers more flexibility with less complexity, more value with less waste, and more purpose with less prescription. Targeted to anyone involved in large-scale development, Large-Scale Scrum: More with LeSS, offers straight-to-the-point guides for how to be agile at scale, with LeSS. It will clearly guide you to Adopt LeSS Structure a large development organization for customer value Clarify the role of management and Scrum Master Define what your product is, and why Be a great Product Owner Work with multiple whole-product focused feature teams in one Sprint that produces a shippable product Coordinate and integrate between teams Work with multi-site teams




Dimension Reduction of Large-Scale Systems


Book Description

In the past decades, model reduction has become an ubiquitous tool in analysis and simulation of dynamical systems, control design, circuit simulation, structural dynamics, CFD, and many other disciplines dealing with complex physical models. The aim of this book is to survey some of the most successful model reduction methods in tutorial style articles and to present benchmark problems from several application areas for testing and comparing existing and new algorithms. As the discussed methods have often been developed in parallel in disconnected application areas, the intention of the mini-workshop in Oberwolfach and its proceedings is to make these ideas available to researchers and practitioners from all these different disciplines.




Embracing Modern C++ Safely


Book Description

Maximize Reward and Minimize Risk with Modern C++ Embracing Modern C++ Safely shows you how to make effective use of the new and enhanced language features of modern C++ without falling victim to their potential pitfalls. Based on their years of experience with large, mission-critical projects, four leading C++ authorities divide C++11/14 language features into three categories: Safe, Conditionally Safe, and Unsafe. Safe features offer compelling value, are easy to use productively, and are relatively difficult to misuse. Conditionally safe features offer significant value but come with risks that require significant expertise and familiarity before use. Unsafe features have an especially poor risk/reward ratio, are easy to misuse, and are beneficial in only the most specialized circumstances. This book distills the C++ community's years of experience applying C++11 and C++14 features and will help you make effective and safe design decisions that reflect real-world, economic engineering tradeoffs in large-scale, diverse software development environments. The authors use examples derived from real code bases to illustrate every finding objectively and to illuminate key issues. Each feature identifies the sound use cases, hidden pitfalls, and shortcomings of that language feature. After reading this book, you will Understand what each C++11/14 feature does and where it works best Recognize how to work around show-stopping pitfalls and annoying corner cases Know which features demand additional training, experience, and peer review Gain insights for preparing coding standards and style guides that suit your organization's needs Be equipped to introduce modern C++ incrementally and judiciously into established code bases Seasoned C++ developers, team leads, and technical managers who want to improve productivity, code quality, and maintainability will find the insights in this modular, meticulously organized reference indispensable. Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.