Sungdeok Cha, Richard N. Taylor, Kyochul Kang, editors.
Cham, Switzerland :
Springer,
2019.
1 online resource (xiv, 524 pages) :
illustrations (some color)
Includes bibliographical references and index.
Intro; Preface; Acknowledgment; Contents; Editors and Contributors; About the Editors; Contributors; Process and Workflow; 1 Background, Goals, and Motivation; 1.1 Goals and Benefits of Process; 1.1.1 Communication; 1.1.2 Coordination; 1.1.3 Training; 1.1.4 Understanding; 1.1.5 Improvement; 1.1.6 Guidance and Control; 2 History and Seminal Work; 3 Some Definitions, Unifying Assumptions, and Characterizations; 3.1 Processes and Workflows; 3.2 Process Performances; 3.3 Process Specifications; 3.4 Activities; 3.5 Process Artifacts; 3.6 Process Agents; 4 Conceptual Framework
1 Introduction; 2 Concepts and Principles; 2.1 Fundamentals: The World and the Machine; 2.2 Qualities; 2.3 Processes; 3 Organised Tour: Genealogy and Seminal Works; 3.1 Elicitation; 3.1.1 Data Gathering; 3.1.2 Collaborative; 3.1.3 Cognitive; 3.1.4 Contextual; 3.1.5 Creativity; 3.1.6 Choosing and Combining Elicitation Techniques; 3.2 Modelling and Analysis; 3.2.1 Natural Language; 3.2.2 Structural Modelling; 3.2.3 Behavioural Modelling; 3.2.4 Goal Modelling; 3.2.5 Choosing and Combining Modelling Techniques; 3.3 Assurance; 3.3.1 Validation; 3.3.2 Verification; 3.4 Management and Evolution
3.4.1 Negotiation and Prioritisation; 3.4.2 Agile Methods; 3.4.3 Reuse; 3.4.4 Adaptation; 3.4.5 Traceability; 3.5 RE for Cross-Cutting Properties; 4 Future Challenges; 4.1 Sustainability and Global Societal Challenges; 4.2 Artificial Intelligence; 4.3 Exemplars and Artefacts; 5 Conclusion; References; Software Architecture and Design; 1 Introduction; 2 An Organized Tour: Genealogy and Seminal Papers; 2.1 Domain-Independent Design; 2.1.1 Early Design Approaches and Module Interconnection Languages; 2.1.2 Initial Articulations of "Software Architecture"; 2.1.3 Styles and Patterns
4.1 Process Specification Approaches; 4.1.1 Process Specification Evaluation Criteria; 4.1.2 Example Process Specification Approaches; 4.2 Process Acquisition; 4.3 Process Analysis Facilities and Results; 4.3.1 Dynamic Analysis of Process Specifications; 4.3.2 Static Analysis of Process Specifications; 4.4 Process Evolution; 5 Specific Processes, Frameworks, and Architectures; 5.1 The Rational Unified Process; 5.2 The Spiral Model/Incremental Commitment Model; 5.3 Agile Methods; 5.4 Extreme Programming; 5.5 Scrum Development; 5.6 Adaptive Case Management; 5.7 Summary and Analysis
5.7.1 Communication; 5.7.2 Coordination; 5.7.3 Training; 5.7.4 Understanding; 5.7.5 Improvement; 5.7.6 Guidance and Control; 6 Future Directions; 6.1 Current Unmet Challenges; 6.1.1 Specification Language Issues; 6.2 Learning and Improvement Through Analysis; 6.2.1 Learning from Big Data; 6.2.2 Learning from Analysis; 6.3 Progress Toward Standardized (Yet Flexible) Processes; 6.4 Human/Computer Collaboration and Human Guidance Direction; 6.5 Application to New Domains; 6.6 Merging Process and Workflow Communities and Technologies; 7 Conclusions; References; Requirements Engineering
0
8
8
8
8
This handbook provides a unique and in-depth survey of the current state-of-the-art in software engineering, covering its major topics, the conceptual genealogy of each subfield, and discussing future research directions. Subjects include foundational areas of software engineering (e.g. software processes, requirements engineering, software architecture, software testing, formal methods, software maintenance) as well as emerging areas (e.g., self-adaptive systems, software engineering in the cloud, coordination technology). Each chapter includes an introduction to central concepts and principles, a guided tour of seminal papers and key contributions, and promising future research directions. The authors of the individual chapters are all acknowledged experts in their field and include many who have pioneered the techniques and technologies discussed. Readers will find an authoritative and concise review of each subject, and will also learn how software engineering technologies have evolved and are likely to develop in the years to come. This book will be especially useful for researchers who are new to software engineering, and for practitioners seeking to enhance their skills and knowledge.