Although research in both requirements engineering and software architecture is quite active, it is in their combination that understanding is most needed and actively sought. Presenting the current state of the art is the purpose of this book. The editors have divided the contributions into four parts: Part 1 “Theoretical Underpinnings and Reviews” addresses the issue of requirements change management in architectural design through traceability and reasoning. Part 2 “Tools and Techniques” presents approaches, tools, and techniques for bridging the gap between software requirements and architecture. Part 3 “Industrial Case Studies” then reports industrial experiences, while part 4 on “Emerging Issues” details advanced topics such as synthesizing architecture from requirements or the role of middleware in architecting for non-functional requirements. The final chapter is a conclusions chapter identifying key contributions and outstanding areas for future research and improvement of practice.The book is targeted at academic and industrial researchers in requirements engineering or software architecture. Graduate students specializing in these areas as well as advanced professionals in software development will also benefit from the results and experiences presented in this volume.
The editors of this book have assembled an impressive selection of authors, who have contributed to an authoritative body of work tackling a wide range of issues in the field of collaborative software engineering. The resulting volume is divided into four parts, preceded by a general editorial chapter providing a more detailed review of the domain of collaborative software engineering. Part 1 is on "Characterizing Collaborative Software Engineering", Part 2 examines various "Tools and Techniques", Part 3 addresses organizational issues, and finally Part 4 contains four examples of "Emerging Issues in Collaborative Software Engineering".
As a result, this book delivers a comprehensive state-of-the-art overview and empirical results for researchers in academia and industry in areas like software process management, empirical software engineering, and global software development. Practitioners working in this area will also appreciate the detailed descriptions and reports which can often be used as guidelines to improve their daily work.
Burge, Carroll, McCall, and Mistrík describe in detail the capture and use of design rationale in software engineering to improve the quality of software. Their book is the first comprehensive and unified treatment of rationale usage in software engineering. It provides a consistent conceptual framework and a unified terminology for comparing, contrasting and combining the myriad approaches to rationale in software engineering. It is both an excellent introductory text for those new to the field and a uniquely valuable reference for experienced rationale researchers. The book covers the use of rationale for decision making throughout the software lifecycle, starting from the first decisions in a project and continuing through requirements definition, design, implementation, testing, maintenance, redesign and reuse.