The Essence of Software Engineering.

Saved in:
Bibliographic Details
:
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>