Language : English
Published : 2014-08-18
Pages : 448
Foundations of Software and System Performance Engineering: Process, Performance Modeling, Requirements, Testing, Scalability, and Practice
“If this book had been available to Healthcare.gov’s contractors, and they read and followed its life cycle performance processes, there would not have been the enormous problems apparent in that application. In my 40 years of experience in building leading-edge products, poor performance is the single most frequent cause of the failure or cancellation of software-intensive projects. This book provides techniques and skills necessary to implement performance engineering at the beginning of a project and manage it throughout the product’s life cycle. I cannot recommend it highly enough.” -Don Shafer, CSDP, Technical Fellow, Athens Group, LLC Poor performance is a frequent cause of software project failure. Performance engineering can be extremely challenging. In Foundations of Software and System Performance Engineering, leading software performance expert Dr. Andre Bondi helps you create effective performance requirements up front, and then architect, develop, test, and deliver systems that meet them. Drawing on many years of experience at Siemens, AT&T Labs, Bell Laboratories, and two startups, Bondi offers practical guidance for every software stakeholder and development team participant. He shows you how to define and use metrics; plan for diverse workloads; evaluate scalability, capacity, and responsiveness; and test both individual components and entire systems. Throughout, Bondi helps you link performance engineering with everything else you do in the software life cycle, so you can achieve the right performance-now and in the future-at lower cost and with less pain. This guide will help you * Mitigate the business and engineering risk associated with poor system performance * Specify system performance requirements in business and engineering terms * Identify metrics for comparing performance requirements with actual performance * Verify the accuracy of measurements * Use simple mathematical models to make predictions, plan performance tests, and anticipate the impact of changes to the system or the load placed upon it * Avoid common performance and scalability mistakes * Clarify business and engineering needs to be satisfied by given levels of throughput and response time * Incorporate performance engineering into agile processes * Help stakeholders of a system make better performance-related decisions * Manage stakeholders’ expectations about system performance throughout the software life cycle, and deliver a software product with quality performance Andre B. Bondi is a senior staff engineer at Siemens Corp., Corporate Technologies in Princeton, New Jersey. His specialties include performance requirements, performance analysis, modeling, simulation, and testing. Bondi has applied his industrial and academic experience to the solution of performance issues in many problem domains. In addition to holding a doctorate in computer science and a master’s in statistics, he is a Certified Scrum Master.
About the Author
Andre B. Bondi is a senior staff engineer at Siemens Corp., Corporate Technologies in Princeton, New Jersey. His specialties include performance requirements, performance analysis, modeling, simulation, and testing. Bondi has applied his industrial and academic experience to the solution of performance issues in many problem domains. In addition to holding a doctorate in computer science and a master’s in statistics, he is a Certified Scrum Master.
Out of stock
Empirical research has now become an essential component of software engineering yet software practitioners and researchers often lack an understanding of how the empirical procedures and practices are applied in the field. Empirical Research in Software Engineering: Concepts, Analysis, and Applications shows how to implement empirical research processes, procedures, and practices in software engineering. Written by a leading researcher in empirical software engineering, the book describes the necessary steps to perform replicated and empirical research. It explains how to plan and design experiments, conduct systematic reviews and case studies, and analyze the results produced by the empirical studies. The book balances empirical research concepts with exercises, examples, and real-life case studies, making it suitable for a course on empirical software engineering. The author discusses the process of developing predictive models, such as defect prediction and change prediction, on data collected from source code repositories. She also covers the application of machine learning techniques in empirical software engineering, includes guidelines for publishing and reporting results, and presents popular software tools for carrying out empirical studies.
About the Author
Ruchika Malhotra is an assistant professor in the Department of Software Engineering at Delhi Technological University (formerly Delhi College of Engineering). She was awarded the prestigious UGC Raman Fellowship for pursuing post-doctoral research in the Department of Computer and Information Science at Indiana University-Purdue University. She received her master’s and doctorate degrees in software engineering from the University School of Information Technology of Guru Gobind Singh Indraprastha University. She received the IBM Best Faculty Award in 2013 and has published more than 100 research papers in international journals and conferences. Her research interests include software testing, improving software quality, statistical and adaptive prediction models, software metrics, neural nets modeling, and the definition and validation of software metrics.
How do you handle API method deprecation over time? Or simultaneously support multiple versions of the same API? How do you partition an application by function in a scalable environment? This practical book provides developers, DevOps practitioners, software architects, and IT managers with a foundational understanding of HTTP proxy-based architectures and how HTTP messages flow through them. You’ll also learn how to use Node.js to implement a variety of architectural patterns commonly used to support continuous deployment. These examples will provide not only an architectural overview, but also code samples to enable development of customized solutions. Master modern HTTP architectures with an expert, in-depth look at agile development methods, proxies, proxy architecture, and message flow Get a playbook for blue/green deployment architecture with example code and Node modules required Learn Application Function partitioning as an efficient scaling strategy.
About the Author
Lori MacVittie is currently a Senior Technology Editor with Network Computing Magazine. In past lives she has been a software developer, a network administrator, and an enterprise architect specializing in web-based technologies. Through the course of her career she has nearly coded her way through the alphabet, starting with Apple BASIC, hitting “L” for LISP while consulting for Autodesk, and is currently on the letter “Y”. Lori holds an M.S. in Computer Science from Nova Southeastern University, and lives with her husband and children in the technological mecca of the midwest, Green Bay, Wisconsin.
Mastering Unix Shell Scripting: Bash, Bourne, and Korn Shell Scripting for Programmers, System Administrators, and UNIX Gurus 2nd Edition
UNIX expert Randal K. Michael guides you through every detail of writing shell scripts to automate specific tasks. Each chapter begins with a typical, everyday UNIX challenge, then shows you how to take basic syntax and turn it into a shell scripting solution. Covering Bash, Bourne, and Korn shell scripting, this updated edition provides complete shell scripts plus detailed descriptions of each part. UNIX programmers and system administrators can tailor these to build tools that monitor for specific system events and situations, building solid UNIX shell scripting skills to solve real-world system administration problems.
About the Author
Randal K. Michael is a UNIX Systems Administrator working as a contract consultant. He teaches UNIX shell scripting in corporate settings, where he writes shell scripts to address a variety of problems and tasks ranging from monitoring systems to replicating large databases. He has more than 30 years of experience in the industry and 15 years of experience as a UNIX Systems Administrator, working on AIX, HP-UX, Linux, OpenBSD, and Solaris.
The definitive guide to the software requirements process, now updated for the needs of today’s business analysts at all experience levels * *Walks step-by-step through the entire requirements process, introducing Volere, the authors’ detailed, proven model. *Teaches powerful new ‘Thinking Above the Line’ techniques for identifying the real business problem to be solved, and communicating it to all project participants. *Presents extensive new coverage, including new ways to integrate innovation and agility into requirements. One of the most crucial tasks in software development is identifying and specifying requirements: in other words, clarifying what the customer or user really needs. As development teams have learned the hard way, this is no small undertaking. It can only be managed with a clearly defined process. In Mastering the Requirements Process, Third Edition, Suzanne and James Robertson present Volere, their detailed, start-to-finish model for successfully developing and communicating requirements. Over decades, the Robertsons have helped hundreds of companies improve their requirements processes. In this new edition, they’ve reflected all the new lessons they’ve learned, refining their processes to work even more effectively in today’s agile and fast-changing environments. This edition’s coverage includes: * *Comprehensive techniques for uncovering the true business problem – including advanced ‘Thinking Above the Line’ approaches. *Four views of the problem domain: making it easier to understand the problem and communicate the solution. *Detailed linkages showing connections among deliverables through every stage of development. *Updated guidance on connecting stakeholders via the requirements process. *Better ways to develop requirements for agile projects. *How to incorporate innovation when discovering requirements