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!
Table of 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.