201 Principles of Software Development


Book Description

Software -- Software Engineering.




Facts and Fallacies of Software Engineering


Book Description

Regarding the controversial and thought-provoking assessments in this handbook, many software professionals might disagree with the authors, but all will embrace the debate. Glass identifies many of the key problems hampering success in this field. Each fact is supported by insightful discussion and detailed references.




Principles of Software Engineering and Design


Book Description

Concentrates on the design aspects of programming for software engineering, while also covers the full range of software development cycles.




The Practice of Programming


Book Description

With the same insight and authority that made their book The Unix Programming Environment a classic, Brian Kernighan and Rob Pike have written The Practice of Programming to help make individual programmers more effective and productive. The practice of programming is more than just writing code. Programmers must also assess tradeoffs, choose among design alternatives, debug and test, improve performance, and maintain software written by themselves and others. At the same time, they must be concerned with issues like compatibility, robustness, and reliability, while meeting specifications. The Practice of Programming covers all these topics, and more. This book is full of practical advice and real-world examples in C, C++, Java, and a variety of special-purpose languages. It includes chapters on: debugging: finding bugs quickly and methodically testing: guaranteeing that software works correctly and reliably performance: making programs faster and more compact portability: ensuring that programs run everywhere without change design: balancing goals and constraints to decide which algorithms and data structures are best interfaces: using abstraction and information hiding to control the interactions between components style: writing code that works well and is a pleasure to read notation: choosing languages and tools that let the machine do more of the work Kernighan and Pike have distilled years of experience writing programs, teaching, and working with other programmers to create this book. Anyone who writes software will profit from the principles and guidance in The Practice of Programming.




Head First Software Development


Book Description

Provides information on successful software development, covering such topics as customer requirements, task estimates, principles of good design, dealing with source code, system testing, and handling bugs.




System Engineering Analysis, Design, and Development


Book Description

Praise for the first edition: “This excellent text will be useful to everysystem engineer (SE) regardless of the domain. It covers ALLrelevant SE material and does so in a very clear, methodicalfashion. The breadth and depth of the author's presentation ofSE principles and practices is outstanding.” –Philip Allen This textbook presents a comprehensive, step-by-step guide toSystem Engineering analysis, design, and development via anintegrated set of concepts, principles, practices, andmethodologies. The methods presented in this text apply to any typeof human system -- small, medium, and large organizational systemsand system development projects delivering engineered systems orservices across multiple business sectors such as medical,transportation, financial, educational, governmental, aerospace anddefense, utilities, political, and charity, among others. Provides a common focal point for “bridgingthe gap” between and unifying System Users, System Acquirers,multi-discipline System Engineering, and Project, Functional, andExecutive Management education, knowledge, and decision-making fordeveloping systems, products, or services Each chapter provides definitions of key terms,guiding principles, examples, author’s notes, real-worldexamples, and exercises, which highlight and reinforce key SE&Dconcepts and practices Addresses concepts employed in Model-BasedSystems Engineering (MBSE), Model-Driven Design (MDD), UnifiedModeling Language (UMLTM) / Systems Modeling Language(SysMLTM), and Agile/Spiral/V-Model Development such asuser needs, stories, and use cases analysis; specificationdevelopment; system architecture development; User-Centric SystemDesign (UCSD); interface definition & control; systemintegration & test; and Verification & Validation(V&V) Highlights/introduces a new 21st Century SystemsEngineering & Development (SE&D) paradigm that is easy tounderstand and implement. Provides practices that are critical stagingpoints for technical decision making such as Technical StrategyDevelopment; Life Cycle requirements; Phases, Modes, & States;SE Process; Requirements Derivation; System ArchitectureDevelopment, User-Centric System Design (UCSD); EngineeringStandards, Coordinate Systems, and Conventions; et al. Thoroughly illustrated, with end-of-chapter exercises andnumerous case studies and examples, Systems EngineeringAnalysis, Design, and Development, Second Edition is a primarytextbook for multi-discipline, engineering, system analysis, andproject management undergraduate/graduate level students and avaluable reference for professionals.




Managing Technical Debt


Book Description

“This is an incredibly wise and useful book. The authors have considerable real-world experience in delivering quality systems that matter, and their expertise shines through in these pages. Here you will learn what technical debt is, what is it not, how to manage it, and how to pay it down in responsible ways. This is a book I wish I had when I was just beginning my career. The authors present a myriad of case studies, born from years of experience, and offer a multitude of actionable insights for how to apply it to your project.” –Grady Booch, IBM Fellow Master Best Practices for Managing Technical Debt to Promote Software Quality and Productivity As software systems mature, earlier design or code decisions made in the context of budget or schedule constraints increasingly impede evolution and innovation. This phenomenon is called technical debt, and practical solutions exist. In Managing Technical Debt, three leading experts introduce integrated, empirically developed principles and practices that any software professional can use to gain control of technical debt in any software system. Using real-life examples, the authors explain the forms of technical debt that afflict software-intensive systems, their root causes, and their impacts. They introduce proven approaches for identifying and assessing specific sources of technical debt, limiting new debt, and “paying off” debt over time. They describe how to establish managing technical debt as a core software engineering practice in your organization. Discover how technical debt damages manageability, quality, productivity, and morale–and what you can do about it Clarify root causes of debt, including the linked roles of business goals, source code, architecture, testing, and infrastructure Identify technical debt items, and analyze their costs so you can prioritize action Choose the right solution for each technical debt item: eliminate, reduce, or mitigate Integrate software engineering practices that minimize new debt Managing Technical Debt will be a valuable resource for every software professional who wants to accelerate innovation in existing systems, or build new systems that will be easier to maintain and evolve.




Software Testing and Analysis


Book Description

Teaches readers how to test and analyze software to achieve an acceptable level of quality at an acceptable cost Readers will be able to minimize software failures, increase quality, and effectively manage costs Covers techniques that are suitable for near-term application, with sufficient technical background to indicate how and when to apply them Provides balanced coverage of software testing & analysis approaches By incorporating modern topics and strategies, this book will be the standard software-testing textbook




Lean and Agile Software Development


Book Description

This book constitutes the proceedings of the 5th International Conference on Lean and Agile Software Development, LASD 2021, which was held online on January 23, 2021. The conference received a total of 32 submissions, of which 10 full and 2 short papers are included in this volume. In addition, one keynote paper is also included. To live the agile mindset, the LASD conference focuses on highly relevant research outcomes and fosters their way into practice. Topics discussed in this volume range from teams under COVID-19 through women in Agile, to product road-mapping and non-functional requirements.




Making the Software Business Case


Book Description

"Just the understanding and insights you will pick up about how people encounter and cope with combinations of technical, social, political, and economic opportunities and challenges make the book a joy to read and worth much more than the price of it alone." --Barry Boehm, from the Foreword This practical handbook shows you how to build an effective business case when you need to justify--and persuade management to accept--software change or improvement. Based on real-world scenarios, the book covers the most common situations in which business case analyses are required and explains specific techniques that have proved successful in practice. Drawing on years of experience in winning the "battle of the budget," the author shows you how to use commonly accepted engineering economic arguments to make your numbers "sing" to management. The book provides examples of successful business cases; along the way, tables, tools, facts, figures, and metrics guide you through the entire analytic process. Writing in a concise and witty style, the author makes this valuable guidance accessible to every software engineer, manager, and IT professional. Highlights include: How and where business case analyses fit into the software and IT life cycle process Explanations of the most common tools for business case analysis, such as present-value, return-on-investment, break-even, and cost/benefit calculation Tying the business process to the software development life cycle Packaging the business case for management consumption Frameworks and guidelines for justifying IT productivity, quality, and delivery cycle improvement strategies Case studies for applying appropriate decision situations to software process improvement Strategic guidelines for various business case analyses With this book in hand, you will find the facts, examples, hard data, and case studies needed for preparing your own winning business cases in today's complex software environment.