Deliver bug-free software projects on schedule and within budget Get a clear, complete understanding of how to estimate software costs, schedules, and quality using the real-world information contained in this comprehensive volume. Find out how to choose the correct hardware and software tools, develop an appraisal strategy, deploy tests and prototypes, and produce accurate software cost estimates. Plus, you´ll get full coverage of cutting-edge estimating approaches using Java, object-oriented methods, and reusable components. * Plan for and execute project-, phase-, and activity-level cost estimations * Estimate regression, component, integration, and stress tests * Compensate for inaccuracies in data collection, calculation, and analysis * Assess software deliverables and data complexity * Test design principles and operational characteristics using software prototyping * Handle configuration change, research, quality control, and documentation costs ´´Capers Jones´ work offers a unique contribution to the understanding of the economics of software production. It provides deep insights into why our advances in computing are not matched with corresponding improvements in the software that drives it. This book is absolutely required reading for an understanding of the limitations of our technological advances.´´ --Paul A. Strassmann, former CIO of Xerox, the Department of Defense, and NASA
A basic primer for all employees on using Lean Six Sigma to meet your company´s goals and your customers´ needs Lean Six Sigma combines the two most important and popular quality trends of our time: Six Sigma and Lean Production. In this plain-English guide, you´ll discover how this remarkable quality improvement method will help you identify and eliminate waste, cut costs and grow revenue, enhance your job skills, and even make work more meaningful.What is Lean Six Sigma? reveals why companies are implementing this strategy, and walks you through the foundations of Lean Six Sigma, explaining the ´´four keys´´ and how they apply to your own job:Delight your customers with speed and quality Improve your processes Work together for maximum gain Base decisions on data and facts Featuring charts, diagrams, and case studies of teams who have used these methods to improve their workplace, What is Lean Six Sigma? tells you what you need to know to make this strategy a success in your organization.
Write maintainable, extensible, and durable software with modern C++. This book is a must for every developer, software architect, or team leader who is interested in good C++ code, and thus also wants to save development costs. If you want to teach yourself about writing clean C++, Clean C++ is exactly what you need. It is written to help C++ developers of all skill levels and shows by example how to write understandable, flexible, maintainable, and efficient C++ code. Even if you are a seasoned C++ developer, there are nuggets and data points in this book that you will find useful in your work. If you don´t take care with your code, you can produce a large, messy, and unmaintainable beast in any programming language. However, C++ projects in particular are prone to be messy and tend to slip into bad habits. Lots of C++ code that is written today looks as if it was written in the 1980s. It seems that C++ developers have been forg otten by those who preach Software Craftsmanship and Clean Code principles. The Web is full of bad, but apparently very fast and highly optimized C++ code examples, with cruel syntax that completely ignores elementary principles of good design and well-written code. This book will explain how to avoid this scenario and how to get the most out of your C++ code. You´ll find your coding becomes more efficient and, importantly, more fun. What You´ll Learn Gain sound principles and rules for clean coding in C++ Carry out test driven development (TDD) Discover C++ design patterns and idioms Apply these design patterns Who This Book Is For Any C++ developer and software engineer with an interest in producing better code.
Embedded Systems: ARM Programming and Optimization combines an exploration of the ARM architecture with an examination of the facilities offered by the Linux operating system to explain how various features of program design can influence processor performance. It demonstrates methods by which a programmer can optimize program code in a way that does not impact its behavior but improves its performance. Several applications, including image transformations, fractal generation, image convolution, and computer vision tasks, are used to describe and demonstrate these methods. From this, the reader will gain insight into computer architecture and application design, as well as gain practical knowledge in the area of embedded software design for modern embedded systems. Covers three ARM instruction set architectures, the ARMv6 and ARMv7-A, as well as three ARM cores, the ARM11 on the Raspberry Pi, Cortex-A9 on the Xilinx Zynq 7020, and Cortex-A15 on the NVIDIA Tegra K1 Describes how to fully leverage the facilities offered by the Linux operating system, including the Linux GCC compiler toolchain and debug tools, performance monitoring support, OpenMP multicore runtime environment, video frame buffer, and video capture capabilities Designed to accompany and work with most of the low cost Linux/ARM embedded development boards currently available
Build an inexpensive cluster of multiple Raspberry Pi computers and install all the required libraries to write parallel and scientific programs in Python 3. This book covers setting up your Raspberry Pis, installing the necessary software, and making a cluster of multiple Pis. Once the cluster is built, its power has to be exploited by means of programs to run on it. So, Raspberry Pi Supercomputing and Scientific Programming teaches you to code the cluster with the MPI4PY library of Python 3. Along the way, you will learn the concepts of the Message Passing Interface (MPI) standards and will explore the fundamentals of parallel programming on your inexpensive cluster. This will make this book a great starting point for supercomputing enthusiasts who want to get started with parallel programming. The book finishes with details of symbolic mathematics and scientific and numerical programming in Python, using SymPi, SciPy, NumPy, and Matplotlib. You´ll see how to process signals and images, carry out calculations using linear algebra, and visualize your results, all using Python code. With the power of a Raspberry Pi supercomputer at your fingertips, data-intensive scientific programming becomes a reality at home. What You Will Learn Discover the essentials of supercomputing Build a low-cost cluster of Raspberry Pis at home Harness the power of parallel programming and the Message Passing Interface (MPI) Use your Raspberry Pi for symbolic, numerical, and scientific programming Who This Book Is For Python 3 developers who seek the knowledge of parallel programming, Raspberry Pi enthusiasts, researchers, and the scientific Python community.
Learn the basics of serverless computing and how to develop event-driven architectures with the three major cloud platforms: Amazon Web Services, Microsoft Azure, and Google Cloud. This hands-on guide dives into the foundations of serverless computing, its use cases, and how to apply it using developer tools such as Node.js, Visual Studio Code, Postman, and Serverless Framework. You will apply the fundamentals of serverless technology from the ground up, and come away with a greater understanding of its power and how to make it work for you. This book teaches you how to quickly and securely develop applications without the hassle of configuring and maintaining infrastructure. You will learn how to harness serverless technology to rapidly reduce production time and minimize your costs, while still having the freedom to customize your code, without hindering functionality. Upon completion, you will have the knowledge and resources to build your own serverless application hosted in AWS, Azure, or Google Cloud and will have experienced the benefits of event-driven technology for yourself. What You´ll Learn Gain a deeper understanding of serverless computing and when to use it Use development tools such as Node.js, Postman, and VS code to quickly set up your serverless development environment and produce applications Apply triggers to your serverless functions that best suit the architecture for the problem the functions are solving Begin building applications across cloud providers that utilize the power of serverless technology Understand best development practices with serverless computing to maintain scalable and practical solutions Code with an agnostic approach to cloud providers to minimize provider dependency Who This Book Is For Any developer looking to expand current knowledge of serverless computing, its applications, and how to architect serverless solutions, or someone just beginning in these areas