Model-driven software development (MDSD) aims to support the development and evolution of software intensive systems using the basic concepts of model, metamodel, and model transformation. In parallel with the ongoing academic research, MDSD is more and more applied in industrial practices. After being accepted both by a broad community of researchers and the industry, it is now being introduced in university courses. This article describes the experiences of three years of teaching of the graduate course Model-Driven Software Development at Bilkent University in Turkey. The lessons learned can be useful for peer educators who teach or aim to teach a similar course.
Changes in requirements may have a severe impact on development processes. For example, if requirements change during the course of a software development activity, it may be necessary to reschedule development activities so that the new requirements can be addressed in a timely manner. Unfortunately, current software development methods do not provide explicit means to adapt development processes with respect to changes in requirements. The paper proposes a method based on Markov decision theory, which determines the estimated optimal development schedule with respect to probabilistic product demands and resource constraints. This method is supported by a tool and applied to an industrial case.
Model Driven Architecture Based Testing (MDABT) is a testing approach exploiting the knowledge in the design phase to test the software system. MBT can use different representations of the system to generate testing procedures for different aspects of the software systems. The overall objective of this paper is to present a model-driven architecture based testing tool framework whereby the adopted models represent models of the architecture. Based on the model-based testing approach we propose the MDABT process and the corresponding tool. The tool has been implemented using the Eclipse Epsilon Framework. We illustrate the MDABT tool framework for deriving test cases from different architecture views.
Abstract In the rapidly evolving landscape of cyber threats, effective defense strategies are crucial for safeguarding sensitive information and critical systems. Deep learning methods, notably the Transformer architecture, have shown immense potential in addressing cybersecurity challenges. However, customizing, and adapting Transformer architectures for cybersecurity applications presents a challenge, demanding the utilization of effective strategies to achieve optimal performance. This study presents a comprehensive analysis of design tactics employed in tailoring Transformer architectures specifically for cybersecurity problems. Design tactics, defined as strategic solutions to architectural challenges based on well-justified design decisions, are explored in-depth within the context of cybersecurity. By examining the modifications and adaptations made to the original Transformer architecture, this study unveils the design decisions and strategies crucial for successful implementation in diverse cybersecurity domains. The findings emphasize the significance of aligning design tactics with the unique business requirements and quality factors of each specific application domain. This study contributes valuable insights into the utilization of design tactics for customizing Transformer architectures in cybersecurity, paving the way for enhanced defense strategies against the dynamic and evolving nature of cyber threats.
In general, a common reference architecture can be derived for Software as a Service (SaaS). However, while designing particular applications one may derive various application design alternatives from the same reference SaaS architecture specification. To meet the required functional and nonfunctional requirements of different enterprise applications it is important to model the possible design so that a feasible alternative can be defined. In this paper, we propose a systematic approach and corresponding tool support for guiding the design of SaaS application architectures. The approach defines a SaaS reference architecture, a family feature model and a set of reference design rules. Based on the business requirements an application feature model is defined using the family feature model. Selected features are related to design decisions and a SaaS application architecture design is derived.
Aspect-oriented software development has focused on the software life cycle's implementation phase: developers identify and capture aspects mainly in code. But aspects are evident earlier in the life cycle, such as during requirements engineering and architecture design. Early aspects are concerns that crosscut an artifact's dominant decomposition or base modules derived from the dominant separation-of-concerns criterion, in the early stages of the software life cycle. In this article, we describe how to identify and capture early aspects in requirements and architecture activities and how they're carried over from one phase to another. We'll focus on requirements and architecture design activities to illustrate the points, but the same ideas apply in other phases as well, such as domain analysis or in the fine-grained design activities that lie between architecture and implementation.