Designing the Requirements


Book Description

Too many software applications don’t do what’s needed or they do it clumsily, frustrating their users and owners. The core problem: poorly conceived and poorly crafted requirements. In Designing the Requirements, Chris Britton explains why it’s not enough to simply “gather” requirements—you need to design them. Britton offers powerful techniques for understanding stakeholders’ concerns and working with stakeholders to get the requirements right. Using Britton’s context-driven approach to requirements design, you can detect inconsistencies, incompleteness, poor usability, and misalignment with business goals upstream—long before developers start coding. You can also design outward-looking applications and services that will integrate more effectively in a coherent IT architecture. First, Britton explains what requirements design really means and presents a hierarchy of designs that move step by step from requirements through implementation. Next, he demonstrates how to build on requirements processes you already use and how to overcome their serious limitations in large-scale development. Then, he walks you through designing your application’s relationship with the business, users, data, and other software to ensure superior usability, security, and maximum scalability and resilience. Whether you’re a software designer, architect, project manager, or programmer, Designing the Requirements will help you design software that works—for users, IT, and the entire business. Coverage includes Designing the entire business solution, not just its software component Using engineering-style design analysis to find flaws before implementation Designing services, and splitting large development efforts into smaller, more manageable projects Planning logical user interfaces that lead to superior user experiences Designing databases and data access to reflect the meaning of your data Building application frameworks that simplify life for programmers and project managers Setting reasonable and achievable goals for performance, availability, and security Designing for security at all levels, from strategy to code Identifying new opportunities created by context-driven design




Exploring Requirements


Book Description

Negotiating a Common Understanding. Ways to the Get Started. Exploring the Possibilities. Clarifying Expectations. Greatly Improving the Odds of Success.




Security Requirements Engineering


Book Description

A novel, model-driven approach to security requirements engineering that focuses on socio-technical systems rather than merely technical systems. Security requirements engineering is especially challenging because designers must consider not just the software under design but also interactions among people, organizations, hardware, and software. Taking this broader perspective means designing a secure socio-technical system rather than a merely technical system. This book presents a novel, model-driven approach to designing secure socio-technical systems. It introduces the Socio-Technical Modeling Language (STS-ML) and presents a freely available software tool, STS-Tool, that supports this design approach through graphical modeling, automated reasoning capabilities to verify the models constructed, and the automatic derivation of security requirements documents. After an introduction to security requirements engineering and an overview of computer and information security, the book presents the STS-ML modeling language, introducing the modeling concepts used, explaining how to use STS-ML within the STS method for security requirements, and providing guidelines for the creation of models. The book then puts the STS approach into practice, introducing the STS-Tool and presenting two case studies from industry: an online collaborative platform and an e-Government system. Finally, the book considers other methods that can be used in conjunction with the STS method or that constitute an alternative to it. The book is suitable for course use or as a reference for practitioners. Exercises, review questions, and problems appear at the end of each chapter.




Requirements Analysis and System Design


Book Description

The development of an information system comprises three iterative and incremental phases: analysis, design and implementation. This book describes the methods and techniques used in the analysis and design phases.




Non-functional Requirements in Systems Analysis and Design


Book Description

This book will help readers gain a solid understanding of non-functional requirements inherent in systems design endeavors. It contains essential information for those who design, use and maintain complex engineered systems, including experienced designers, teachers of design, system stakeholders and practicing engineers. Coverage approaches non-functional requirements in a novel way by presenting a framework of four systems concerns into which the 27 major non-functional requirements fall: sustainment, design, adaptation and viability. Within this model, the text proceeds to define each non-functional requirement, to specify how each is treated as an element of the system design process and to develop an associated metric for their evaluation. Systems are designed to meet specific functional needs. Because non-functional requirements are not directly related to tasks that satisfy these proposed needs, designers and stakeholders often fail to recognize the importance of such attributes as availability, survivability, and robustness. This book gives readers the tools and knowledge they need to both recognize the importance of these non-functional requirements and incorporate them in the design process.




Human-System Integration in the System Development Process


Book Description

In April 1991 BusinessWeek ran a cover story entitled, "I Can't Work This ?#!!@ Thing," about the difficulties many people have with consumer products, such as cell phones and VCRs. More than 15 years later, the situation is much the same-but at a very different level of scale. The disconnect between people and technology has had society-wide consequences in the large-scale system accidents from major human error, such as those at Three Mile Island and in Chernobyl. To prevent both the individually annoying and nationally significant consequences, human capabilities and needs must be considered early and throughout system design and development. One challenge for such consideration has been providing the background and data needed for the seamless integration of humans into the design process from various perspectives: human factors engineering, manpower, personnel, training, safety and health, and, in the military, habitability and survivability. This collection of development activities has come to be called human-system integration (HSI). Human-System Integration in the System Development Process reviews in detail more than 20 categories of HSI methods to provide invaluable guidance and information for system designers and developers.




System Engineering Management


Book Description

A practical, step-by-step guide to total systems management Systems Engineering Management, Fifth Edition is a practical guide to the tools and methodologies used in the field. Using a "total systems management" approach, this book covers everything from initial establishment to system retirement, including design and development, testing, production, operations, maintenance, and support. This new edition has been fully updated to reflect the latest tools and best practices, and includes rich discussion on computer-based modeling and hardware and software systems integration. New case studies illustrate real-world application on both large- and small-scale systems in a variety of industries, and the companion website provides access to bonus case studies and helpful review checklists. The provided instructor's manual eases classroom integration, and updated end-of-chapter questions help reinforce the material. The challenges faced by system engineers are candidly addressed, with full guidance toward the tools they use daily to reduce costs and increase efficiency. System Engineering Management integrates industrial engineering, project management, and leadership skills into a unique emerging field. This book unifies these different skill sets into a single step-by-step approach that produces a well-rounded systems engineering management framework. Learn the total systems lifecycle with real-world applications Explore cutting edge design methods and technology Integrate software and hardware systems for total SEM Learn the critical IT principles that lead to robust systems Successful systems engineering managers must be capable of leading teams to produce systems that are robust, high-quality, supportable, cost effective, and responsive. Skilled, knowledgeable professionals are in demand across engineering fields, but also in industries as diverse as healthcare and communications. Systems Engineering Management, Fifth Edition provides practical, invaluable guidance for a nuanced field.




Requirements Writing for System Engineering


Book Description

Learn how to create good requirements when designing hardware and software systems. While this book emphasizes writing traditional “shall” statements, it also provides guidance on use case design and creating user stories in support of agile methodologies. The book surveys modeling techniques and various tools that support requirements collection and analysis. You’ll learn to manage requirements, including discussions of document types and digital approaches using spreadsheets, generic databases, and dedicated requirements tools. Good, clear examples are presented, many related to real-world work the author has done during his career. Requirements Writing for System Engineeringantages of different requirements approaches and implement them correctly as your needs evolve. Unlike most requirements books, Requirements Writing for System Engineering teaches writing both hardware and software requirements because many projects include both areas. To exemplify this approach, two example projects are developed throughout the book, one focusing on hardware and the other on software. This book Presents many techniques for capturing requirements. Demonstrates gap analysis to find missing requirements. Shows how to address both software and hardware, as most projects involve both. Provides extensive examples of “shall” statements, user stories, and use cases. Explains how to supplement or replace traditional requirement statements with user stories and use cases that work well in agile development environments What You Will Learn Understand the 14 techniques for capturing all requirements. Address software and hardware needs; because most projects involve both. Ensure all statements meet the 16 attributes of a good requirement. Differentiate the 19 different functional types of requirement, and the 31 non-functional types. Write requirements properly based on extensive examples of good ‘shall’ statements, user stories, and use cases. Employ modeling techniques to mitigate the imprecision of words. Audience Writing Requirements teaches you to write requirements the correct way. It is targeted at the requirements engineer who wants to improve and master his craft. This is also an excellent book from which to teach requirements engineering at the university level. Government organizations at all levels, from Federal to local levels, can use this book to ensure they begin all development projects correctly. As well, contractor companies supporting government development are also excellent audiences for this book.




Design for Maintainability


Book Description

How to design for optimum maintenance capabilities and minimize the repair time Design for Maintainability offers engineers a wide range of tools and techniques for incorporating maintainability into the design process for complex systems. With contributions from noted experts on the topic, the book explains how to design for optimum maintenance capabilities while simultaneously minimizing the time to repair equipment. The book contains a wealth of examples and the most up-to-date maintainability design practices that have proven to result in better system readiness, shorter downtimes, and substantial cost savings over the entire system life cycle, thereby, decreasing the Total Cost of Ownership. Design for Maintainability offers a wealth of design practices not covered in typical engineering books, thus allowing readers to think outside the box when developing maintainability design requirements. The books principles and practices can help engineers to dramatically improve their ability to compete in global markets and gain widespread customer satisfaction. This important book: Offers a complete overview of maintainability engineering as a system engineering discipline Includes contributions from authors who are recognized leaders in the field Contains real-life design examples, both good and bad, from various industries Presents realistic illustrations of good maintainability design principles Provides discussion of the interrelationships between maintainability with other related disciplines Explores trending topics in technologies Written for design and logistics engineers and managers, Design for Maintainability is a comprehensive resource containing the most reliable and innovative techniques for improving maintainability when designing a system or product.




Design It!


Book Description

Don't engineer by coincidence-design it like you mean it! Filled with practical techniques, Design It! is the perfect introduction to software architecture for programmers who are ready to grow their design skills. Lead your team as a software architect, ask the right stakeholders the right questions, explore design options, and help your team implement a system that promotes the right -ilities. Share your design decisions, facilitate collaborative design workshops that are fast, effective, and fun-and develop more awesome software! With dozens of design methods, examples, and practical know-how, Design It! shows you how to become a software architect. Walk through the core concepts every architect must know, discover how to apply them, and learn a variety of skills that will make you a better programmer, leader, and designer. Uncover the big ideas behind software architecture and gain confidence working on projects big and small. Plan, design, implement, and evaluate software architectures and collaborate with your team, stakeholders, and other architects. Identify the right stakeholders and understand their needs, dig for architecturally significant requirements, write amazing quality attribute scenarios, and make confident decisions. Choose technologies based on their architectural impact, facilitate architecture-centric design workshops, and evaluate architectures using lightweight, effective methods. Write lean architecture descriptions people love to read. Run an architecture design studio, implement the architecture you've designed, and grow your team's architectural knowledge. Good design requires good communication. Talk about your software architecture with stakeholders using whiteboards, documents, and code, and apply architecture-focused design methods in your day-to-day practice. Hands-on exercises, real-world scenarios, and practical team-based decision-making tools will get everyone on board and give you the experience you need to become a confident software architect.