Model-Driven Composition of Non-Functional Concerns
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Software systems often fail to fully address non-functional concerns such as security, availability, and performance due to the complexity of interdependencies between these concerns, requiring specialized knowledge that developers may not possess.
Innovation Solution
A multi-phase, model-driven approach for composing non-functional concerns, involving requirements specification, action definition, action composition, and action mapping, with graphical editors to generate computer-executable code that addresses these concerns, using Business Process Modeling Notation (BPMN) for defining execution orders and interdependencies.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If developers attempt to address all non-functional concerns (security, availability, performance, etc.) in software systems, then the system quality and reliability improve, but the complexity of the development process increases significantly due to interdependencies between concerns
Solution Approach 1:
The patent segments non-functional concerns into distinct, independently manageable units called 'aspect-oriented' components. Each non-functional concern (security, logging, performance) is separated into its own aspect that can be defined, composed, and executed independently through model-driven engineering, reducing the complexity of managing interdependencies while maintaining comprehensive system quality.
Solution Approach 2:
The patent introduces an intermediary layer of abstraction between the core software system and non-functional concerns. This intermediary uses formal models (requirements models, action models, composition models) to mediate the integration of non-functional aspects, allowing developers to address reliability concerns without directly managing the complexity of their interactions.
2Ease of manufacture
If developers lack specialized knowledge in all non-functional domains, then the ease of development is maintained, but the ability to fully address non-functional concerns is compromised
Solution Approach 1:
The patent enables self-service through automated model-driven engineering tools that guide developers through the process of defining and composing non-functional aspects. The system provides templates, validation, and automated code generation, allowing developers without deep specialized knowledge in each non-functional domain to still achieve comprehensive coverage through structured, tool-supported processes.
Solution Approach 2:
The patent creates a universal framework that handles multiple non-functional concerns through a single integrated approach. The model-driven engineering methodology provides a unified language and process for addressing security, performance, logging, and other concerns simultaneously, eliminating the need for developers to be experts in each specific domain while maintaining comprehensive coverage.
3Productivity
If non-functional concerns are addressed without a structured composition approach, then the development speed is maintained, but the correctness and optimization of concern integration deteriorates
Solution Approach 1:
The patent applies preliminary action by requiring the definition of requirements models and action models before implementation. Non-functional aspects are specified, validated, and composed in advance using formal models, ensuring integration correctness is established before code generation. This upfront structuring maintains productivity by avoiding rework while ensuring precision in the final integration.
Solution Approach 2:
The patent replaces manual, ad-hoc integration mechanisms with an automated model-driven engineering system. Formal models and automated code generation tools substitute for manual integration efforts, maintaining development speed through automation while ensuring integration correctness through formal validation and structured composition rules.
Data Source
AI summary
Methods, systems, and computer-readable media include actions for composing non-functional concerns to be implemented with an application. In implementations, actions include receiving a requirements model that defines non-functional requirements and non-functional attributes associated with the non-functional requirements, for each non-functional attribute, identifying one or more actions, properties of each action and interdependencies between actions to provide an action model, defining an action composition model based on the action model, the action composition model defining orders of execution of actions and one or more activities, defining an action mapping model, the action mapping model mapping actions and activities to the application, generating computer-executable code based on the action mapping model, the computer-executable code being executable to provide a non-functional concern.


