The Essence of Software Engineering.
Saved in:
: | |
---|---|
TeilnehmendeR: | |
Place / Publishing House: | Cham : : Springer International Publishing AG,, 2018. ©2018. |
Year of Publication: | 2018 |
Edition: | 1st ed. |
Language: | English |
Online Access: | |
Physical Description: | 1 online resource (247 pages) |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
id |
5005521167 |
---|---|
ctrlnum |
(MiAaPQ)5005521167 (Au-PeEL)EBL5521167 (OCoLC)1040617119 |
collection |
bib_alma |
record_format |
marc |
spelling |
Gruhn, Volker. The Essence of Software Engineering. 1st ed. Cham : Springer International Publishing AG, 2018. ©2018. 1 online resource (247 pages) text txt rdacontent computer c rdamedia online resource cr rdacarrier Intro -- Preface -- Contents -- List of Contributors -- The Leading Role of Software and Systems Architecture in the Age of Digitization -- 1 Introduction: Software Is Eating the World -- 2 Structuring Architecture: Future Reference Architecture -- 3 On Systems, Their Interfaces and Properties -- 3.1 About Architecture -- 3.2 On the Essence of Architecture: Architecture Design Is Architecture Specification -- 3.3 Logical Subsystem Architectures -- 4 Interfaces Everywhere -- 4.1 Property-Oriented Specification of Interfaces of Systems -- 4.2 Composition -- 4.3 Structuring Interfaces -- 5 Composition: Interfaces in Architectures -- 5.1 Interaction Assertions -- 5.2 Using Different Types of Interfaces Side by Side -- 5.3 Layered Architectures -- 6 On the Asset of Foundations -- 6.1 Not Formal Methods but Formal Foundation -- 6.2 Flexibility and Universality of the Presented Approach -- 6.3 System Components as Schedulable and Deployable Units -- 6.4 Modularity -- 6.5 Strict Property Orientation: Architecture Designs by Specifications -- 6.6 Real Time and Probability: Functional Quality Properties -- 7 Concluding Remarks -- Appendix: A Formal Model of Interfaces -- Data Models -- Syntactic Interfaces and Interface Behavior -- Syntactic Interfaces -- System Interaction: Timed Data Streams -- Interface Behavior -- Interface Assertions -- Composing Interfaces -- Specifying Contracts -- Interface Assertions for Assumption/Commitment Contracts -- Contracts in Architectures -- References -- Formal Methods and Agile Development: Towards a Happy Marriage -- 1 Introduction -- 2 Understanding Change -- 2.1 The Machine and the World -- 2.2 Evolution and Adaptation -- 3 Achieving Self-adaptive Software -- 4 Supporting Dependable Evolution -- 5 Towards a Unified View of Development and Operation -- 6 Concluding Remarks -- References. Escaping Method Prison - On the Road to Real Software Engineering -- 1 Typical Methods and Their Problems -- 2 Method Prisons -- 3 A History of Methods and Method Prison -- 3.1 Gurus, Method Wars and Zig-Zag Paths -- 3.2 Lifecycles and Method Prisons -- 3.3 Practices and Method Prisons -- 4 What to do to Escape Method Prisons -- 5 How to Escape the Method Prison -- 5.1 Essence - the common ground of software engineering -- 5.2 Using Essence -- 5.3 Reflection -- 6 Out of the Method Prison -- References -- What is software? -- 1 Apologia -- 1.1 Why ask the Question? -- 1.2 The Importance of Measurement -- 2 Other Kinds of Software -- 2.1 Processes are (like?) software -- 2.1.1 Measurement of Processes: -- 2.2 Legislation is (like?) software development: -- 2.2.1 Measurement of Laws -- 2.3 Recipes are software -- 2.3.1 Measurement of Recipes -- 2.4 Other Types of Software -- 3 What makes these different types of software like each other? -- 3.1 They are non-tangible, and non-physical, but often intended to manage tangibles -- 3.2 Hierarchical Structure is a common feature. -- 3.3 They consist of components having different purposes -- 3.4 All are expected to require modification/evolution -- 3.5 Interconnections are key -- 3.6 Analysis and verification are universal underlying needs -- 4 Characterizing software -- 5 What can computer software engineering contribute to other forms of software engineering? -- 6 What can computer software engineers learn from the study of other forms of software? -- 6.1 Resources -- 6.2 Timing -- 6.3 Verification and analysis of legislation -- 7 Conclusion -- References -- Only the Architecture You Need -- 1 Introduction -- 2 Software Architecture: Essence, Benefits, and Costs -- 2.1 Benefits -- 2.2 Techniques… and Costs -- 2.3 Summary and Roadmap -- 3 Personal Software Architecture -- 4 Team Software Architecture. 4.1 Communication -- 4.2 Complexity -- 5 Summary -- 6 High-Consequence Software -- 7 Conclusion: Excuses Are Not Strategies -- References -- Variability in Standard Software Products -- 1 Introduction -- 2 Software Product Line Engineering -- 3 SPLE in the Insurance Industry -- 3.1 Current Situation -- 3.2 Transition Strategies -- 4 The Extended Pilot Project -- 4.1 The Setup -- 4.2 Selecting Charter Clients -- 4.3 Cooperation of Software Vendor and Charter Clients -- 4.4 Pros and Cons -- 5 Summary -- References -- Using Design Thinking for Requirements Engineering in the Context of Digitalization and Digital Transformation: A Motivation and an Experience Report -- 1 Introduction and Motivation -- 2 From Digitization to Digital Transformation -- 2.1 Level 1: Digitization -- 2.2 Level 2: Digitalization -- 2.3 Level 3: Digital Transformation -- 2.4 Conclusion: The Growing Need for a Holistic Design Competence in Software Engineering -- 3 Design Thinking as a Method to Think About Software -- 3.1 A Brief Overview of Design Thinking -- 3.2 Example 1: Online Jewelry Shopping -- 3.3 Example 2: Developing Innovative Software for Dentists -- 4 Summary and Conclusions -- References -- Towards Deviceless Edge Computing: Challenges, Design Aspects, and Models for Serverless Paradigm at the Edge -- 1 Introduction -- 2 Related Work -- 3 Deviceless Edge Platform -- 3.1 Approach -- 3.2 Platform Usage and Architecture Overview -- 4 Programming Support for Deviceless Edge Computing -- 4.1 Programming Support for Deviceless Edge Functions -- 4.2 Intents and IntentScopes -- 4.3 Data and Control Points -- 5 Provisioning Support for Deviceless Edge Computing -- 5.1 Software-Defined Gateways -- 5.2 Deviceless Provisioning Middleware -- 6 Conclusion -- References -- Data-Driven Decisions and Actions in Today's Software Development -- 1 Introduction -- 2 Recommendation. 2.1 Code Example Recommendation Systems -- 2.2 Naturalness of Software -- 2.3 Evaluation -- 3 Testing -- 3.1 Automated Unit Test Case Generation -- 3.1.1 Single-Target Approaches -- 3.1.2 Multi-Target Approaches -- 3.1.3 Limitations and Outlook -- 3.2 Performance Testing -- 3.2.1 Problems -- 3.2.2 Current Solutions -- 3.2.3 Outlook -- 4 Continuous Delivery -- 4.1 Build Breakage -- 4.2 Release Confidence and Velocity -- 4.2.1 Model of Release Confidence and Velocity -- 4.2.2 Transitioning Between Categories -- 5 Deployment -- 6 Summarization Techniques for Code, Change, Testing, Software Reuse, and User Feedback -- 6.1 Source Code Summarization -- 6.2 Task-Driven Software Summarization -- 6.2.1 Code Change Summarization -- 6.2.2 Summarization Techniques for Testing and Code Reuse -- 6.3 Summarization of Textual User Feedback -- 6.4 Future Research -- 7 Summary -- References -- Software Architecture: Past, Present, Future -- 1 Introduction -- 2 Past: Focus on Architecture Description and Reuse -- 2.1 Formalization of Architectural Models -- 2.2 Software Product Lines for Reusing Software Components -- 3 Present: Establishment of Domain-Specific Architectures and Focus on Quality Attributes -- 3.1 Example: Microservice Architectures -- 3.2 Focus on Quality Requirements -- 4 Future: Proper Integration of Architecture Work into Agile Software Development -- 4.1 Integrating Architecture Owners into Agile Teams -- 4.2 Integrating Software Development and Operations: DevOps -- 4.3 Achieving Reliability with Agile Software Development -- 4.4 Using Architecture Models for Runtime Adaptability -- 4.5 Keeping Architecture Knowledge up to Date for Long-Living Software Systems -- 5 Summary -- References -- Software Product Lines -- 1 Introduction -- 2 Differences Between SPLE and Single System Development -- 2.1 Two Development Processes. 2.2 Product Line Variability -- 2.3 Software Variability Versus Product Line Variability -- 3 Domain Engineering -- 3.1 Product Management -- 3.2 Domain Requirements Engineering -- 3.3 Domain Design -- 3.4 Domain Realization -- 3.5 Domain Quality Assurance -- 4 Application Engineering -- 4.1 Application Requirements Engineering -- 4.2 Application Design -- 4.3 Application Realization -- 4.4 Application Quality Assurance -- 5 Modeling Product Line Variability -- 5.1 Key Modeling Constructs -- 5.2 Integrated Versus Orthogonal Modeling of Variability -- 6 Variability Modeling in Non-Product-Line Settings -- 7 Summary -- References -- Enabling Flexible and Robust Business Process Automation for the Agile Enterprise -- 1 Introduction -- 2 Traditional Process-Aware Information Systems -- 2.1 Business Process Modeling -- 2.2 Architectural Principles of a PAIS -- 2.3 Process Enactment Based on Executable Process Models -- 2.4 Traditional Process Lifecycle Support -- 2.5 Key Features of a Process-Aware Information System -- 3 Enabling Process Flexibility at the Operational Level -- 4 Adaptive Process-Aware Information Systems -- 4.1 The AristaFlow Process Management Technology -- 4.2 Support for Process Adaptation and Process Evolution -- 4.3 Advanced Process Lifecycle Support in Adaptive PAIS -- 4.4 Making Process Implementations Flexible and Robust -- 4.4.1 Error Prevention -- 4.4.2 Error and Exception Handling in the AristaFlow BPM Suite -- 5 Conclusions -- References -- Achievements, Failures, and the Future of Model-Based Software Engineering -- 1 Introduction -- 2 Model-Based Software Engineering -- 2.1 Unified Modeling Language and Systems Modeling Language -- 2.2 Constructive Model Use: Interpreters and Code Generators -- 2.3 Benefits and Drawbacks of Using Models Constructively -- 3 Failures of Model-Based Software Engineering. 4 Where Model-Based Software Engineering Is Successful. Description based on publisher supplied metadata and other sources. Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2024. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries. Electronic books. Striemer, Rüdiger. Print version: Gruhn, Volker The Essence of Software Engineering Cham : Springer International Publishing AG,c2018 9783319738963 ProQuest (Firm) https://ebookcentral.proquest.com/lib/oeawat/detail.action?docID=5521167 Click to View |
language |
English |
format |
eBook |
author |
Gruhn, Volker. |
spellingShingle |
Gruhn, Volker. The Essence of Software Engineering. Intro -- Preface -- Contents -- List of Contributors -- The Leading Role of Software and Systems Architecture in the Age of Digitization -- 1 Introduction: Software Is Eating the World -- 2 Structuring Architecture: Future Reference Architecture -- 3 On Systems, Their Interfaces and Properties -- 3.1 About Architecture -- 3.2 On the Essence of Architecture: Architecture Design Is Architecture Specification -- 3.3 Logical Subsystem Architectures -- 4 Interfaces Everywhere -- 4.1 Property-Oriented Specification of Interfaces of Systems -- 4.2 Composition -- 4.3 Structuring Interfaces -- 5 Composition: Interfaces in Architectures -- 5.1 Interaction Assertions -- 5.2 Using Different Types of Interfaces Side by Side -- 5.3 Layered Architectures -- 6 On the Asset of Foundations -- 6.1 Not Formal Methods but Formal Foundation -- 6.2 Flexibility and Universality of the Presented Approach -- 6.3 System Components as Schedulable and Deployable Units -- 6.4 Modularity -- 6.5 Strict Property Orientation: Architecture Designs by Specifications -- 6.6 Real Time and Probability: Functional Quality Properties -- 7 Concluding Remarks -- Appendix: A Formal Model of Interfaces -- Data Models -- Syntactic Interfaces and Interface Behavior -- Syntactic Interfaces -- System Interaction: Timed Data Streams -- Interface Behavior -- Interface Assertions -- Composing Interfaces -- Specifying Contracts -- Interface Assertions for Assumption/Commitment Contracts -- Contracts in Architectures -- References -- Formal Methods and Agile Development: Towards a Happy Marriage -- 1 Introduction -- 2 Understanding Change -- 2.1 The Machine and the World -- 2.2 Evolution and Adaptation -- 3 Achieving Self-adaptive Software -- 4 Supporting Dependable Evolution -- 5 Towards a Unified View of Development and Operation -- 6 Concluding Remarks -- References. Escaping Method Prison - On the Road to Real Software Engineering -- 1 Typical Methods and Their Problems -- 2 Method Prisons -- 3 A History of Methods and Method Prison -- 3.1 Gurus, Method Wars and Zig-Zag Paths -- 3.2 Lifecycles and Method Prisons -- 3.3 Practices and Method Prisons -- 4 What to do to Escape Method Prisons -- 5 How to Escape the Method Prison -- 5.1 Essence - the common ground of software engineering -- 5.2 Using Essence -- 5.3 Reflection -- 6 Out of the Method Prison -- References -- What is software? -- 1 Apologia -- 1.1 Why ask the Question? -- 1.2 The Importance of Measurement -- 2 Other Kinds of Software -- 2.1 Processes are (like?) software -- 2.1.1 Measurement of Processes: -- 2.2 Legislation is (like?) software development: -- 2.2.1 Measurement of Laws -- 2.3 Recipes are software -- 2.3.1 Measurement of Recipes -- 2.4 Other Types of Software -- 3 What makes these different types of software like each other? -- 3.1 They are non-tangible, and non-physical, but often intended to manage tangibles -- 3.2 Hierarchical Structure is a common feature. -- 3.3 They consist of components having different purposes -- 3.4 All are expected to require modification/evolution -- 3.5 Interconnections are key -- 3.6 Analysis and verification are universal underlying needs -- 4 Characterizing software -- 5 What can computer software engineering contribute to other forms of software engineering? -- 6 What can computer software engineers learn from the study of other forms of software? -- 6.1 Resources -- 6.2 Timing -- 6.3 Verification and analysis of legislation -- 7 Conclusion -- References -- Only the Architecture You Need -- 1 Introduction -- 2 Software Architecture: Essence, Benefits, and Costs -- 2.1 Benefits -- 2.2 Techniques… and Costs -- 2.3 Summary and Roadmap -- 3 Personal Software Architecture -- 4 Team Software Architecture. 4.1 Communication -- 4.2 Complexity -- 5 Summary -- 6 High-Consequence Software -- 7 Conclusion: Excuses Are Not Strategies -- References -- Variability in Standard Software Products -- 1 Introduction -- 2 Software Product Line Engineering -- 3 SPLE in the Insurance Industry -- 3.1 Current Situation -- 3.2 Transition Strategies -- 4 The Extended Pilot Project -- 4.1 The Setup -- 4.2 Selecting Charter Clients -- 4.3 Cooperation of Software Vendor and Charter Clients -- 4.4 Pros and Cons -- 5 Summary -- References -- Using Design Thinking for Requirements Engineering in the Context of Digitalization and Digital Transformation: A Motivation and an Experience Report -- 1 Introduction and Motivation -- 2 From Digitization to Digital Transformation -- 2.1 Level 1: Digitization -- 2.2 Level 2: Digitalization -- 2.3 Level 3: Digital Transformation -- 2.4 Conclusion: The Growing Need for a Holistic Design Competence in Software Engineering -- 3 Design Thinking as a Method to Think About Software -- 3.1 A Brief Overview of Design Thinking -- 3.2 Example 1: Online Jewelry Shopping -- 3.3 Example 2: Developing Innovative Software for Dentists -- 4 Summary and Conclusions -- References -- Towards Deviceless Edge Computing: Challenges, Design Aspects, and Models for Serverless Paradigm at the Edge -- 1 Introduction -- 2 Related Work -- 3 Deviceless Edge Platform -- 3.1 Approach -- 3.2 Platform Usage and Architecture Overview -- 4 Programming Support for Deviceless Edge Computing -- 4.1 Programming Support for Deviceless Edge Functions -- 4.2 Intents and IntentScopes -- 4.3 Data and Control Points -- 5 Provisioning Support for Deviceless Edge Computing -- 5.1 Software-Defined Gateways -- 5.2 Deviceless Provisioning Middleware -- 6 Conclusion -- References -- Data-Driven Decisions and Actions in Today's Software Development -- 1 Introduction -- 2 Recommendation. 2.1 Code Example Recommendation Systems -- 2.2 Naturalness of Software -- 2.3 Evaluation -- 3 Testing -- 3.1 Automated Unit Test Case Generation -- 3.1.1 Single-Target Approaches -- 3.1.2 Multi-Target Approaches -- 3.1.3 Limitations and Outlook -- 3.2 Performance Testing -- 3.2.1 Problems -- 3.2.2 Current Solutions -- 3.2.3 Outlook -- 4 Continuous Delivery -- 4.1 Build Breakage -- 4.2 Release Confidence and Velocity -- 4.2.1 Model of Release Confidence and Velocity -- 4.2.2 Transitioning Between Categories -- 5 Deployment -- 6 Summarization Techniques for Code, Change, Testing, Software Reuse, and User Feedback -- 6.1 Source Code Summarization -- 6.2 Task-Driven Software Summarization -- 6.2.1 Code Change Summarization -- 6.2.2 Summarization Techniques for Testing and Code Reuse -- 6.3 Summarization of Textual User Feedback -- 6.4 Future Research -- 7 Summary -- References -- Software Architecture: Past, Present, Future -- 1 Introduction -- 2 Past: Focus on Architecture Description and Reuse -- 2.1 Formalization of Architectural Models -- 2.2 Software Product Lines for Reusing Software Components -- 3 Present: Establishment of Domain-Specific Architectures and Focus on Quality Attributes -- 3.1 Example: Microservice Architectures -- 3.2 Focus on Quality Requirements -- 4 Future: Proper Integration of Architecture Work into Agile Software Development -- 4.1 Integrating Architecture Owners into Agile Teams -- 4.2 Integrating Software Development and Operations: DevOps -- 4.3 Achieving Reliability with Agile Software Development -- 4.4 Using Architecture Models for Runtime Adaptability -- 4.5 Keeping Architecture Knowledge up to Date for Long-Living Software Systems -- 5 Summary -- References -- Software Product Lines -- 1 Introduction -- 2 Differences Between SPLE and Single System Development -- 2.1 Two Development Processes. 2.2 Product Line Variability -- 2.3 Software Variability Versus Product Line Variability -- 3 Domain Engineering -- 3.1 Product Management -- 3.2 Domain Requirements Engineering -- 3.3 Domain Design -- 3.4 Domain Realization -- 3.5 Domain Quality Assurance -- 4 Application Engineering -- 4.1 Application Requirements Engineering -- 4.2 Application Design -- 4.3 Application Realization -- 4.4 Application Quality Assurance -- 5 Modeling Product Line Variability -- 5.1 Key Modeling Constructs -- 5.2 Integrated Versus Orthogonal Modeling of Variability -- 6 Variability Modeling in Non-Product-Line Settings -- 7 Summary -- References -- Enabling Flexible and Robust Business Process Automation for the Agile Enterprise -- 1 Introduction -- 2 Traditional Process-Aware Information Systems -- 2.1 Business Process Modeling -- 2.2 Architectural Principles of a PAIS -- 2.3 Process Enactment Based on Executable Process Models -- 2.4 Traditional Process Lifecycle Support -- 2.5 Key Features of a Process-Aware Information System -- 3 Enabling Process Flexibility at the Operational Level -- 4 Adaptive Process-Aware Information Systems -- 4.1 The AristaFlow Process Management Technology -- 4.2 Support for Process Adaptation and Process Evolution -- 4.3 Advanced Process Lifecycle Support in Adaptive PAIS -- 4.4 Making Process Implementations Flexible and Robust -- 4.4.1 Error Prevention -- 4.4.2 Error and Exception Handling in the AristaFlow BPM Suite -- 5 Conclusions -- References -- Achievements, Failures, and the Future of Model-Based Software Engineering -- 1 Introduction -- 2 Model-Based Software Engineering -- 2.1 Unified Modeling Language and Systems Modeling Language -- 2.2 Constructive Model Use: Interpreters and Code Generators -- 2.3 Benefits and Drawbacks of Using Models Constructively -- 3 Failures of Model-Based Software Engineering. 4 Where Model-Based Software Engineering Is Successful. |
author_facet |
Gruhn, Volker. Striemer, Rüdiger. |
author_variant |
v g vg |
author2 |
Striemer, Rüdiger. |
author2_variant |
r s rs |
author2_role |
TeilnehmendeR |
author_sort |
Gruhn, Volker. |
title |
The Essence of Software Engineering. |
title_full |
The Essence of Software Engineering. |
title_fullStr |
The Essence of Software Engineering. |
title_full_unstemmed |
The Essence of Software Engineering. |
title_auth |
The Essence of Software Engineering. |
title_new |
The Essence of Software Engineering. |
title_sort |
the essence of software engineering. |
publisher |
Springer International Publishing AG, |
publishDate |
2018 |
physical |
1 online resource (247 pages) |
edition |
1st ed. |
contents |
Intro -- Preface -- Contents -- List of Contributors -- The Leading Role of Software and Systems Architecture in the Age of Digitization -- 1 Introduction: Software Is Eating the World -- 2 Structuring Architecture: Future Reference Architecture -- 3 On Systems, Their Interfaces and Properties -- 3.1 About Architecture -- 3.2 On the Essence of Architecture: Architecture Design Is Architecture Specification -- 3.3 Logical Subsystem Architectures -- 4 Interfaces Everywhere -- 4.1 Property-Oriented Specification of Interfaces of Systems -- 4.2 Composition -- 4.3 Structuring Interfaces -- 5 Composition: Interfaces in Architectures -- 5.1 Interaction Assertions -- 5.2 Using Different Types of Interfaces Side by Side -- 5.3 Layered Architectures -- 6 On the Asset of Foundations -- 6.1 Not Formal Methods but Formal Foundation -- 6.2 Flexibility and Universality of the Presented Approach -- 6.3 System Components as Schedulable and Deployable Units -- 6.4 Modularity -- 6.5 Strict Property Orientation: Architecture Designs by Specifications -- 6.6 Real Time and Probability: Functional Quality Properties -- 7 Concluding Remarks -- Appendix: A Formal Model of Interfaces -- Data Models -- Syntactic Interfaces and Interface Behavior -- Syntactic Interfaces -- System Interaction: Timed Data Streams -- Interface Behavior -- Interface Assertions -- Composing Interfaces -- Specifying Contracts -- Interface Assertions for Assumption/Commitment Contracts -- Contracts in Architectures -- References -- Formal Methods and Agile Development: Towards a Happy Marriage -- 1 Introduction -- 2 Understanding Change -- 2.1 The Machine and the World -- 2.2 Evolution and Adaptation -- 3 Achieving Self-adaptive Software -- 4 Supporting Dependable Evolution -- 5 Towards a Unified View of Development and Operation -- 6 Concluding Remarks -- References. Escaping Method Prison - On the Road to Real Software Engineering -- 1 Typical Methods and Their Problems -- 2 Method Prisons -- 3 A History of Methods and Method Prison -- 3.1 Gurus, Method Wars and Zig-Zag Paths -- 3.2 Lifecycles and Method Prisons -- 3.3 Practices and Method Prisons -- 4 What to do to Escape Method Prisons -- 5 How to Escape the Method Prison -- 5.1 Essence - the common ground of software engineering -- 5.2 Using Essence -- 5.3 Reflection -- 6 Out of the Method Prison -- References -- What is software? -- 1 Apologia -- 1.1 Why ask the Question? -- 1.2 The Importance of Measurement -- 2 Other Kinds of Software -- 2.1 Processes are (like?) software -- 2.1.1 Measurement of Processes: -- 2.2 Legislation is (like?) software development: -- 2.2.1 Measurement of Laws -- 2.3 Recipes are software -- 2.3.1 Measurement of Recipes -- 2.4 Other Types of Software -- 3 What makes these different types of software like each other? -- 3.1 They are non-tangible, and non-physical, but often intended to manage tangibles -- 3.2 Hierarchical Structure is a common feature. -- 3.3 They consist of components having different purposes -- 3.4 All are expected to require modification/evolution -- 3.5 Interconnections are key -- 3.6 Analysis and verification are universal underlying needs -- 4 Characterizing software -- 5 What can computer software engineering contribute to other forms of software engineering? -- 6 What can computer software engineers learn from the study of other forms of software? -- 6.1 Resources -- 6.2 Timing -- 6.3 Verification and analysis of legislation -- 7 Conclusion -- References -- Only the Architecture You Need -- 1 Introduction -- 2 Software Architecture: Essence, Benefits, and Costs -- 2.1 Benefits -- 2.2 Techniques… and Costs -- 2.3 Summary and Roadmap -- 3 Personal Software Architecture -- 4 Team Software Architecture. 4.1 Communication -- 4.2 Complexity -- 5 Summary -- 6 High-Consequence Software -- 7 Conclusion: Excuses Are Not Strategies -- References -- Variability in Standard Software Products -- 1 Introduction -- 2 Software Product Line Engineering -- 3 SPLE in the Insurance Industry -- 3.1 Current Situation -- 3.2 Transition Strategies -- 4 The Extended Pilot Project -- 4.1 The Setup -- 4.2 Selecting Charter Clients -- 4.3 Cooperation of Software Vendor and Charter Clients -- 4.4 Pros and Cons -- 5 Summary -- References -- Using Design Thinking for Requirements Engineering in the Context of Digitalization and Digital Transformation: A Motivation and an Experience Report -- 1 Introduction and Motivation -- 2 From Digitization to Digital Transformation -- 2.1 Level 1: Digitization -- 2.2 Level 2: Digitalization -- 2.3 Level 3: Digital Transformation -- 2.4 Conclusion: The Growing Need for a Holistic Design Competence in Software Engineering -- 3 Design Thinking as a Method to Think About Software -- 3.1 A Brief Overview of Design Thinking -- 3.2 Example 1: Online Jewelry Shopping -- 3.3 Example 2: Developing Innovative Software for Dentists -- 4 Summary and Conclusions -- References -- Towards Deviceless Edge Computing: Challenges, Design Aspects, and Models for Serverless Paradigm at the Edge -- 1 Introduction -- 2 Related Work -- 3 Deviceless Edge Platform -- 3.1 Approach -- 3.2 Platform Usage and Architecture Overview -- 4 Programming Support for Deviceless Edge Computing -- 4.1 Programming Support for Deviceless Edge Functions -- 4.2 Intents and IntentScopes -- 4.3 Data and Control Points -- 5 Provisioning Support for Deviceless Edge Computing -- 5.1 Software-Defined Gateways -- 5.2 Deviceless Provisioning Middleware -- 6 Conclusion -- References -- Data-Driven Decisions and Actions in Today's Software Development -- 1 Introduction -- 2 Recommendation. 2.1 Code Example Recommendation Systems -- 2.2 Naturalness of Software -- 2.3 Evaluation -- 3 Testing -- 3.1 Automated Unit Test Case Generation -- 3.1.1 Single-Target Approaches -- 3.1.2 Multi-Target Approaches -- 3.1.3 Limitations and Outlook -- 3.2 Performance Testing -- 3.2.1 Problems -- 3.2.2 Current Solutions -- 3.2.3 Outlook -- 4 Continuous Delivery -- 4.1 Build Breakage -- 4.2 Release Confidence and Velocity -- 4.2.1 Model of Release Confidence and Velocity -- 4.2.2 Transitioning Between Categories -- 5 Deployment -- 6 Summarization Techniques for Code, Change, Testing, Software Reuse, and User Feedback -- 6.1 Source Code Summarization -- 6.2 Task-Driven Software Summarization -- 6.2.1 Code Change Summarization -- 6.2.2 Summarization Techniques for Testing and Code Reuse -- 6.3 Summarization of Textual User Feedback -- 6.4 Future Research -- 7 Summary -- References -- Software Architecture: Past, Present, Future -- 1 Introduction -- 2 Past: Focus on Architecture Description and Reuse -- 2.1 Formalization of Architectural Models -- 2.2 Software Product Lines for Reusing Software Components -- 3 Present: Establishment of Domain-Specific Architectures and Focus on Quality Attributes -- 3.1 Example: Microservice Architectures -- 3.2 Focus on Quality Requirements -- 4 Future: Proper Integration of Architecture Work into Agile Software Development -- 4.1 Integrating Architecture Owners into Agile Teams -- 4.2 Integrating Software Development and Operations: DevOps -- 4.3 Achieving Reliability with Agile Software Development -- 4.4 Using Architecture Models for Runtime Adaptability -- 4.5 Keeping Architecture Knowledge up to Date for Long-Living Software Systems -- 5 Summary -- References -- Software Product Lines -- 1 Introduction -- 2 Differences Between SPLE and Single System Development -- 2.1 Two Development Processes. 2.2 Product Line Variability -- 2.3 Software Variability Versus Product Line Variability -- 3 Domain Engineering -- 3.1 Product Management -- 3.2 Domain Requirements Engineering -- 3.3 Domain Design -- 3.4 Domain Realization -- 3.5 Domain Quality Assurance -- 4 Application Engineering -- 4.1 Application Requirements Engineering -- 4.2 Application Design -- 4.3 Application Realization -- 4.4 Application Quality Assurance -- 5 Modeling Product Line Variability -- 5.1 Key Modeling Constructs -- 5.2 Integrated Versus Orthogonal Modeling of Variability -- 6 Variability Modeling in Non-Product-Line Settings -- 7 Summary -- References -- Enabling Flexible and Robust Business Process Automation for the Agile Enterprise -- 1 Introduction -- 2 Traditional Process-Aware Information Systems -- 2.1 Business Process Modeling -- 2.2 Architectural Principles of a PAIS -- 2.3 Process Enactment Based on Executable Process Models -- 2.4 Traditional Process Lifecycle Support -- 2.5 Key Features of a Process-Aware Information System -- 3 Enabling Process Flexibility at the Operational Level -- 4 Adaptive Process-Aware Information Systems -- 4.1 The AristaFlow Process Management Technology -- 4.2 Support for Process Adaptation and Process Evolution -- 4.3 Advanced Process Lifecycle Support in Adaptive PAIS -- 4.4 Making Process Implementations Flexible and Robust -- 4.4.1 Error Prevention -- 4.4.2 Error and Exception Handling in the AristaFlow BPM Suite -- 5 Conclusions -- References -- Achievements, Failures, and the Future of Model-Based Software Engineering -- 1 Introduction -- 2 Model-Based Software Engineering -- 2.1 Unified Modeling Language and Systems Modeling Language -- 2.2 Constructive Model Use: Interpreters and Code Generators -- 2.3 Benefits and Drawbacks of Using Models Constructively -- 3 Failures of Model-Based Software Engineering. 4 Where Model-Based Software Engineering Is Successful. |
isbn |
9783319738970 9783319738963 |
callnumber-first |
Q - Science |
callnumber-subject |
QA - Mathematics |
callnumber-label |
QA76 |
callnumber-sort |
QA 276.758 |
genre |
Electronic books. |
genre_facet |
Electronic books. |
url |
https://ebookcentral.proquest.com/lib/oeawat/detail.action?docID=5521167 |
illustrated |
Not Illustrated |
oclc_num |
1040617119 |
work_keys_str_mv |
AT gruhnvolker theessenceofsoftwareengineering AT striemerrudiger theessenceofsoftwareengineering AT gruhnvolker essenceofsoftwareengineering AT striemerrudiger essenceofsoftwareengineering |
status_str |
n |
ids_txt_mv |
(MiAaPQ)5005521167 (Au-PeEL)EBL5521167 (OCoLC)1040617119 |
carrierType_str_mv |
cr |
is_hierarchy_title |
The Essence of Software Engineering. |
author2_original_writing_str_mv |
noLinkedField |
marc_error |
Info : MARC8 translation shorter than ISO-8859-1, choosing MARC8. --- [ 856 : z ] |
_version_ |
1792331055271772160 |
fullrecord |
<?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>10952nam a22004453i 4500</leader><controlfield tag="001">5005521167</controlfield><controlfield tag="003">MiAaPQ</controlfield><controlfield tag="005">20240229073831.0</controlfield><controlfield tag="006">m o d | </controlfield><controlfield tag="007">cr cnu||||||||</controlfield><controlfield tag="008">240229s2018 xx o ||||0 eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783319738970</subfield><subfield code="q">(electronic bk.)</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="z">9783319738963</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(MiAaPQ)5005521167</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(Au-PeEL)EBL5521167</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1040617119</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">MiAaPQ</subfield><subfield code="b">eng</subfield><subfield code="e">rda</subfield><subfield code="e">pn</subfield><subfield code="c">MiAaPQ</subfield><subfield code="d">MiAaPQ</subfield></datafield><datafield tag="050" ind1=" " ind2="4"><subfield code="a">QA76.758</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Gruhn, Volker.</subfield></datafield><datafield tag="245" ind1="1" ind2="4"><subfield code="a">The Essence of Software Engineering.</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">1st ed.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Cham :</subfield><subfield code="b">Springer International Publishing AG,</subfield><subfield code="c">2018.</subfield></datafield><datafield tag="264" ind1=" " ind2="4"><subfield code="c">©2018.</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">1 online resource (247 pages)</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="a">text</subfield><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="a">computer</subfield><subfield code="b">c</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="a">online resource</subfield><subfield code="b">cr</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="505" ind1="0" ind2=" "><subfield code="a">Intro -- Preface -- Contents -- List of Contributors -- The Leading Role of Software and Systems Architecture in the Age of Digitization -- 1 Introduction: Software Is Eating the World -- 2 Structuring Architecture: Future Reference Architecture -- 3 On Systems, Their Interfaces and Properties -- 3.1 About Architecture -- 3.2 On the Essence of Architecture: Architecture Design Is Architecture Specification -- 3.3 Logical Subsystem Architectures -- 4 Interfaces Everywhere -- 4.1 Property-Oriented Specification of Interfaces of Systems -- 4.2 Composition -- 4.3 Structuring Interfaces -- 5 Composition: Interfaces in Architectures -- 5.1 Interaction Assertions -- 5.2 Using Different Types of Interfaces Side by Side -- 5.3 Layered Architectures -- 6 On the Asset of Foundations -- 6.1 Not Formal Methods but Formal Foundation -- 6.2 Flexibility and Universality of the Presented Approach -- 6.3 System Components as Schedulable and Deployable Units -- 6.4 Modularity -- 6.5 Strict Property Orientation: Architecture Designs by Specifications -- 6.6 Real Time and Probability: Functional Quality Properties -- 7 Concluding Remarks -- Appendix: A Formal Model of Interfaces -- Data Models -- Syntactic Interfaces and Interface Behavior -- Syntactic Interfaces -- System Interaction: Timed Data Streams -- Interface Behavior -- Interface Assertions -- Composing Interfaces -- Specifying Contracts -- Interface Assertions for Assumption/Commitment Contracts -- Contracts in Architectures -- References -- Formal Methods and Agile Development: Towards a Happy Marriage -- 1 Introduction -- 2 Understanding Change -- 2.1 The Machine and the World -- 2.2 Evolution and Adaptation -- 3 Achieving Self-adaptive Software -- 4 Supporting Dependable Evolution -- 5 Towards a Unified View of Development and Operation -- 6 Concluding Remarks -- References.</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">Escaping Method Prison - On the Road to Real Software Engineering -- 1 Typical Methods and Their Problems -- 2 Method Prisons -- 3 A History of Methods and Method Prison -- 3.1 Gurus, Method Wars and Zig-Zag Paths -- 3.2 Lifecycles and Method Prisons -- 3.3 Practices and Method Prisons -- 4 What to do to Escape Method Prisons -- 5 How to Escape the Method Prison -- 5.1 Essence - the common ground of software engineering -- 5.2 Using Essence -- 5.3 Reflection -- 6 Out of the Method Prison -- References -- What is software? -- 1 Apologia -- 1.1 Why ask the Question? -- 1.2 The Importance of Measurement -- 2 Other Kinds of Software -- 2.1 Processes are (like?) software -- 2.1.1 Measurement of Processes: -- 2.2 Legislation is (like?) software development: -- 2.2.1 Measurement of Laws -- 2.3 Recipes are software -- 2.3.1 Measurement of Recipes -- 2.4 Other Types of Software -- 3 What makes these different types of software like each other? -- 3.1 They are non-tangible, and non-physical, but often intended to manage tangibles -- 3.2 Hierarchical Structure is a common feature. -- 3.3 They consist of components having different purposes -- 3.4 All are expected to require modification/evolution -- 3.5 Interconnections are key -- 3.6 Analysis and verification are universal underlying needs -- 4 Characterizing software -- 5 What can computer software engineering contribute to other forms of software engineering? -- 6 What can computer software engineers learn from the study of other forms of software? -- 6.1 Resources -- 6.2 Timing -- 6.3 Verification and analysis of legislation -- 7 Conclusion -- References -- Only the Architecture You Need -- 1 Introduction -- 2 Software Architecture: Essence, Benefits, and Costs -- 2.1 Benefits -- 2.2 Techniques… and Costs -- 2.3 Summary and Roadmap -- 3 Personal Software Architecture -- 4 Team Software Architecture.</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">4.1 Communication -- 4.2 Complexity -- 5 Summary -- 6 High-Consequence Software -- 7 Conclusion: Excuses Are Not Strategies -- References -- Variability in Standard Software Products -- 1 Introduction -- 2 Software Product Line Engineering -- 3 SPLE in the Insurance Industry -- 3.1 Current Situation -- 3.2 Transition Strategies -- 4 The Extended Pilot Project -- 4.1 The Setup -- 4.2 Selecting Charter Clients -- 4.3 Cooperation of Software Vendor and Charter Clients -- 4.4 Pros and Cons -- 5 Summary -- References -- Using Design Thinking for Requirements Engineering in the Context of Digitalization and Digital Transformation: A Motivation and an Experience Report -- 1 Introduction and Motivation -- 2 From Digitization to Digital Transformation -- 2.1 Level 1: Digitization -- 2.2 Level 2: Digitalization -- 2.3 Level 3: Digital Transformation -- 2.4 Conclusion: The Growing Need for a Holistic Design Competence in Software Engineering -- 3 Design Thinking as a Method to Think About Software -- 3.1 A Brief Overview of Design Thinking -- 3.2 Example 1: Online Jewelry Shopping -- 3.3 Example 2: Developing Innovative Software for Dentists -- 4 Summary and Conclusions -- References -- Towards Deviceless Edge Computing: Challenges, Design Aspects, and Models for Serverless Paradigm at the Edge -- 1 Introduction -- 2 Related Work -- 3 Deviceless Edge Platform -- 3.1 Approach -- 3.2 Platform Usage and Architecture Overview -- 4 Programming Support for Deviceless Edge Computing -- 4.1 Programming Support for Deviceless Edge Functions -- 4.2 Intents and IntentScopes -- 4.3 Data and Control Points -- 5 Provisioning Support for Deviceless Edge Computing -- 5.1 Software-Defined Gateways -- 5.2 Deviceless Provisioning Middleware -- 6 Conclusion -- References -- Data-Driven Decisions and Actions in Today's Software Development -- 1 Introduction -- 2 Recommendation.</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">2.1 Code Example Recommendation Systems -- 2.2 Naturalness of Software -- 2.3 Evaluation -- 3 Testing -- 3.1 Automated Unit Test Case Generation -- 3.1.1 Single-Target Approaches -- 3.1.2 Multi-Target Approaches -- 3.1.3 Limitations and Outlook -- 3.2 Performance Testing -- 3.2.1 Problems -- 3.2.2 Current Solutions -- 3.2.3 Outlook -- 4 Continuous Delivery -- 4.1 Build Breakage -- 4.2 Release Confidence and Velocity -- 4.2.1 Model of Release Confidence and Velocity -- 4.2.2 Transitioning Between Categories -- 5 Deployment -- 6 Summarization Techniques for Code, Change, Testing, Software Reuse, and User Feedback -- 6.1 Source Code Summarization -- 6.2 Task-Driven Software Summarization -- 6.2.1 Code Change Summarization -- 6.2.2 Summarization Techniques for Testing and Code Reuse -- 6.3 Summarization of Textual User Feedback -- 6.4 Future Research -- 7 Summary -- References -- Software Architecture: Past, Present, Future -- 1 Introduction -- 2 Past: Focus on Architecture Description and Reuse -- 2.1 Formalization of Architectural Models -- 2.2 Software Product Lines for Reusing Software Components -- 3 Present: Establishment of Domain-Specific Architectures and Focus on Quality Attributes -- 3.1 Example: Microservice Architectures -- 3.2 Focus on Quality Requirements -- 4 Future: Proper Integration of Architecture Work into Agile Software Development -- 4.1 Integrating Architecture Owners into Agile Teams -- 4.2 Integrating Software Development and Operations: DevOps -- 4.3 Achieving Reliability with Agile Software Development -- 4.4 Using Architecture Models for Runtime Adaptability -- 4.5 Keeping Architecture Knowledge up to Date for Long-Living Software Systems -- 5 Summary -- References -- Software Product Lines -- 1 Introduction -- 2 Differences Between SPLE and Single System Development -- 2.1 Two Development Processes.</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">2.2 Product Line Variability -- 2.3 Software Variability Versus Product Line Variability -- 3 Domain Engineering -- 3.1 Product Management -- 3.2 Domain Requirements Engineering -- 3.3 Domain Design -- 3.4 Domain Realization -- 3.5 Domain Quality Assurance -- 4 Application Engineering -- 4.1 Application Requirements Engineering -- 4.2 Application Design -- 4.3 Application Realization -- 4.4 Application Quality Assurance -- 5 Modeling Product Line Variability -- 5.1 Key Modeling Constructs -- 5.2 Integrated Versus Orthogonal Modeling of Variability -- 6 Variability Modeling in Non-Product-Line Settings -- 7 Summary -- References -- Enabling Flexible and Robust Business Process Automation for the Agile Enterprise -- 1 Introduction -- 2 Traditional Process-Aware Information Systems -- 2.1 Business Process Modeling -- 2.2 Architectural Principles of a PAIS -- 2.3 Process Enactment Based on Executable Process Models -- 2.4 Traditional Process Lifecycle Support -- 2.5 Key Features of a Process-Aware Information System -- 3 Enabling Process Flexibility at the Operational Level -- 4 Adaptive Process-Aware Information Systems -- 4.1 The AristaFlow Process Management Technology -- 4.2 Support for Process Adaptation and Process Evolution -- 4.3 Advanced Process Lifecycle Support in Adaptive PAIS -- 4.4 Making Process Implementations Flexible and Robust -- 4.4.1 Error Prevention -- 4.4.2 Error and Exception Handling in the AristaFlow BPM Suite -- 5 Conclusions -- References -- Achievements, Failures, and the Future of Model-Based Software Engineering -- 1 Introduction -- 2 Model-Based Software Engineering -- 2.1 Unified Modeling Language and Systems Modeling Language -- 2.2 Constructive Model Use: Interpreters and Code Generators -- 2.3 Benefits and Drawbacks of Using Models Constructively -- 3 Failures of Model-Based Software Engineering.</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">4 Where Model-Based Software Engineering Is Successful.</subfield></datafield><datafield tag="588" ind1=" " ind2=" "><subfield code="a">Description based on publisher supplied metadata and other sources.</subfield></datafield><datafield tag="590" ind1=" " ind2=" "><subfield code="a">Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2024. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries. </subfield></datafield><datafield tag="655" ind1=" " ind2="4"><subfield code="a">Electronic books.</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Striemer, Rüdiger.</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Print version:</subfield><subfield code="a">Gruhn, Volker</subfield><subfield code="t">The Essence of Software Engineering</subfield><subfield code="d">Cham : Springer International Publishing AG,c2018</subfield><subfield code="z">9783319738963</subfield></datafield><datafield tag="797" ind1="2" ind2=" "><subfield code="a">ProQuest (Firm)</subfield></datafield><datafield tag="856" ind1="4" ind2="0"><subfield code="u">https://ebookcentral.proquest.com/lib/oeawat/detail.action?docID=5521167</subfield><subfield code="z">Click to View</subfield></datafield></record></collection> |