Computer Science Artificial Intelligence

Advanced Software Engineering Methodologies

Description

This cluster of papers focuses on autonomic computing, self-adaptive systems, and their related concepts such as software architecture, aspect-oriented programming, requirements engineering, feature models, variability management, middleware, and dynamic software product lines. The papers cover topics like modeling and reasoning support for early-phase requirements engineering, architecture-based self-adaptation, automated analysis of feature models, and the challenges in automotive software engineering.

Keywords

Autonomic Computing; Self-Adaptive Systems; Software Architecture; Aspect-Oriented Programming; Requirements Engineering; Feature Models; Variability Management; Middleware; Dynamic Software Product Lines; Model-Based Development

Software systems dealing with distributed applications in changing environments normally require human supervision to continue operation in all conditions. These (re-)configuring, troubleshooting, and in general maintenance tasks lead to costly … Software systems dealing with distributed applications in changing environments normally require human supervision to continue operation in all conditions. These (re-)configuring, troubleshooting, and in general maintenance tasks lead to costly and time-consuming procedures during the operating phase. These problems are primarily due to the open-loop structure often followed in software development. Therefore, there is a high demand for management complexity reduction, management automation, robustness, and achieving all of the desired quality requirements within a reasonable cost and time range during operation. Self-adaptive software is a response to these demands; it is a closed-loop system with a feedback loop aiming to adjust itself to changes during its operation. These changes may stem from the software system's self (internal causes, e.g., failure) or context (external events, e.g., increasing requests from users). Such a system is required to monitor itself and its context, detect significant changes, decide how to react, and act to execute such decisions. These processes depend on adaptation properties (called self-* properties), domain characteristics (context information or models), and preferences of stakeholders. Noting these requirements, it is widely believed that new models and frameworks are needed to design self-adaptive software. This survey article presents a taxonomy, based on concerns of adaptation, that is, how , what , when and where , towards providing a unified view of this emerging area. Moreover, as adaptive systems are encountered in many disciplines, it is imperative to learn from the theories and models developed in these other areas. This survey article presents a landscape of research in self-adaptive software by highlighting relevant disciplines and some prominent research projects. This landscape helps to identify the underlying research gaps and elaborates on the corresponding challenges.
Requirements definition encompasses all aspects of system development prior to actual system design. We see the lack of an adequate approach to requirements definition as the source of major difficulties … Requirements definition encompasses all aspects of system development prior to actual system design. We see the lack of an adequate approach to requirements definition as the source of major difficulties in current systems worlk This paper examines the needs for requirements definition, and proposes meeting those objectives with three interrelated subjects: context analysis, functional specification, and design constraints. Requirements definition replaces the widely used, but never well-defined, term "requirements analysis."
Article Free Access Share on N degrees of separation: multi-dimensional separation of concerns Authors: Peri Tarr IBM Watson Research Center, P.O. Box 704, Yorktown Heights, NY IBM Watson Research Center, … Article Free Access Share on N degrees of separation: multi-dimensional separation of concerns Authors: Peri Tarr IBM Watson Research Center, P.O. Box 704, Yorktown Heights, NY IBM Watson Research Center, P.O. Box 704, Yorktown Heights, NYView Profile , Harold Ossher IBM Watson Research Center, P.O. Box 704, Yorktown Heights, NY IBM Watson Research Center, P.O. Box 704, Yorktown Heights, NYView Profile , William Harrison IBM Watson Research Center, P.O. Box 704, Yorktown Heights, NY IBM Watson Research Center, P.O. Box 704, Yorktown Heights, NYView Profile , Stanley M. Sutton EC Cubed, Inc., 15 River Road, Suite 310, Wilton, CT EC Cubed, Inc., 15 River Road, Suite 310, Wilton, CTView Profile Authors Info & Claims ICSE '99: Proceedings of the 21st international conference on Software engineeringMay 1999 Pages 107–119https://doi.org/10.1145/302405.302457Online:16 May 1999Publication History 699citation3,639DownloadsMetricsTotal Citations699Total Downloads3,639Last 12 Months46Last 6 weeks18 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF
As software systems become more complex, the overall system structure—or software architecture—becomes a central design problem. An important step toward an engineering discipline of software is a formal basis for … As software systems become more complex, the overall system structure—or software architecture—becomes a central design problem. An important step toward an engineering discipline of software is a formal basis for describing and analyzing these designs. In the article we present a formal approach to one aspect of architectural design: the interactions among components. The key idea is to define architectural connectors as explicit semantic entities. These are specified as a collection of protocols that characterize each of the participant roles in an interaction and how these roles interact. We illustrate how this scheme can be used to define a variety of common architectural connectors. We further provide a formal semantics and show how this leads to a system in which architectural compatibility can be checked in a way analogous to type-checking in programming languages.
article Free Access Share on End-to-end arguments in system design Authors: J. H. Saltzer M.I.T. Laboratory for Computer Science, 545 Technology Square, Cambridge, MA M.I.T. Laboratory for Computer Science, 545 … article Free Access Share on End-to-end arguments in system design Authors: J. H. Saltzer M.I.T. Laboratory for Computer Science, 545 Technology Square, Cambridge, MA M.I.T. Laboratory for Computer Science, 545 Technology Square, Cambridge, MAView Profile , D. P. Reed Software Arts, Inc., 27 Mica Lane, Wellesley, MA Software Arts, Inc., 27 Mica Lane, Wellesley, MAView Profile , D. D. Clark M.I.T. Laboratory for Computer Science, 545 Technology Square, Cambridge, MA M.I.T. Laboratory for Computer Science, 545 Technology Square, Cambridge, MAView Profile Authors Info & Claims ACM Transactions on Computer SystemsVolume 2Issue 4Nov. 1984 pp 277–288https://doi.org/10.1145/357401.357402Online:01 November 1984Publication History 1,259citation21,347DownloadsMetricsTotal Citations1,259Total Downloads21,347Last 12 Months1,460Last 6 weeks358 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my Alerts New Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF
No abstract available. No abstract available.
This lecture maps the concepts and templates explored in this tutorial with well-known architectural prescriptions, including the 4+1 approach of the Rational Unified Process, the Siemens Four Views approach, and … This lecture maps the concepts and templates explored in this tutorial with well-known architectural prescriptions, including the 4+1 approach of the Rational Unified Process, the Siemens Four Views approach, and the ANSI/IEEE-1471-2000 recommended best practice for documenting architectures for software-intensive systems. The lecture concludes by re-capping the highlights of the tutorial, and asking for feedback.
Self-adaptive software requires high dependability robustness, adaptability, and availability. The article describes an infrastructure supporting two simultaneous processes in self-adaptive software: system evolution, the consistent application of change over time, … Self-adaptive software requires high dependability robustness, adaptability, and availability. The article describes an infrastructure supporting two simultaneous processes in self-adaptive software: system evolution, the consistent application of change over time, and system adaptation, the cycle of detecting changing circumstances and planning and deploying responsive modifications.
Application software development has been an area of organizational effort that has not been amenable to the normal managerial and cost controls. Instances of actual costs of several times the … Application software development has been an area of organizational effort that has not been amenable to the normal managerial and cost controls. Instances of actual costs of several times the initial budgeted cost, and a time to initial operational capability sometimes twice as long as planned are more often the case than not.
Structured analysis (SA) combines blueprint-like graphic language with the nouns and verbs of any other language to provide a hierarchic, top-down, gradual exposition of detail in the form of an … Structured analysis (SA) combines blueprint-like graphic language with the nouns and verbs of any other language to provide a hierarchic, top-down, gradual exposition of detail in the form of an SA model. The things and happenings of a subject are expressed in a data decomposition and an activity decomposition, both of which employ the same graphic building block, the SA box, to represent a part of a whole. SA arrows, representing input, output, control, and mechanism, express the relation of each part to the whole. The paper describes the rationalization behind some 40 features of the SA language, and shows how they enable rigorous communication which results frorn disciplined, recursive application of the SA maxim: "Everything worth saying about anything worth saying something about must be expressed in six or fewer pieces."
The purpose of this paper is to build the foundation for software architecture. We first develop an intuition for software architecture by appealing to several well-established architectural disciplines. On the … The purpose of this paper is to build the foundation for software architecture. We first develop an intuition for software architecture by appealing to several well-established architectural disciplines. On the basis of this intuition, we present a model of software architecture that consists of three components: elements, form, and rationale. Elements are either processing, data, or connecting elements. Form is defined in terms of the properties of, and the relationships among, the elements --- that is, the constraints on the elements. The rationale provides the underlying basis for the architecture in terms of the system constraints, which most often derive from the system requirements. We discuss the components of the model in the context of both architectures and architectural styles and present an extended example to illustrate some important architecture and style considerations. We conclude by presenting some of the benefits of our approach to software architecture, summarizing our contributions, and relating our approach to other current work.
This article presents a model for describing the architecture of software-intensive systems, based on the use of multiple, concurrent views. This use of multiple views allows to address separately the … This article presents a model for describing the architecture of software-intensive systems, based on the use of multiple, concurrent views. This use of multiple views allows to address separately the concerns of the various stakeholders of the architecture: end-user, developers, systems engineers, project managers, etc., and to handle separately the functional and non functional requirements. Each of the five views is described, together with a notation to capture it. The views are designed using an architecture-centered, scenario-driven, iterative development process.
Article Free Access Share on Requirements engineering: a roadmap Authors: Bashar Nuseibeh Department of Computing, Imperial College, 180 Queen's Gate, London SW7 2BZ, U.K. Department of Computing, Imperial College, 180 … Article Free Access Share on Requirements engineering: a roadmap Authors: Bashar Nuseibeh Department of Computing, Imperial College, 180 Queen's Gate, London SW7 2BZ, U.K. Department of Computing, Imperial College, 180 Queen's Gate, London SW7 2BZ, U.K.View Profile , Steve Easterbrook Department of Computer Science, University of Toronto, 6 King's College Road, Toronto, Ontario M5S 3H5, Canada Department of Computer Science, University of Toronto, 6 King's College Road, Toronto, Ontario M5S 3H5, CanadaView Profile Authors Info & Claims ICSE '00: Proceedings of the Conference on The Future of Software EngineeringMay 2000Pages 35–46https://doi.org/10.1145/336512.336523Published:01 May 2000Publication History 980citation24,641DownloadsMetricsTotal Citations980Total Downloads24,641Last 12 Months1,634Last 6 weeks149 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF
article A spiral model of software development and enhancement Share on Author: B Boehm View Profile Authors Info & Claims ACM SIGSOFT Software Engineering NotesVolume 11Issue 4August 1986 pp 14–24https://doi.org/10.1145/12944.12948Online:01 … article A spiral model of software development and enhancement Share on Author: B Boehm View Profile Authors Info & Claims ACM SIGSOFT Software Engineering NotesVolume 11Issue 4August 1986 pp 14–24https://doi.org/10.1145/12944.12948Online:01 August 1986Publication History 390citation9,286DownloadsMetricsTotal Citations390Total Downloads9,286Last 12 Months288Last 6 weeks30 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteGet Access
Although many view iterative and incremental development as a modern practice, its application dates as far back as the mid-1950s. Prominent software-engineering thought leaders from each succeeding decade supported IID … Although many view iterative and incremental development as a modern practice, its application dates as far back as the mid-1950s. Prominent software-engineering thought leaders from each succeeding decade supported IID practices, and many large projects used them successfully. These practices may have differed in their details, but all had a common theme-to avoid a single-pass sequential, document-driven, gated-step approach.
Architectures for software use rich abstractions and idioms to describe system components, the nature of interactions among the components, and the patterns that guide the composition of components into systems. … Architectures for software use rich abstractions and idioms to describe system components, the nature of interactions among the components, and the patterns that guide the composition of components into systems. These abstractions are higher level than the elements usually supported by programming languages and tools. They capture packaging and interaction issues as well as computational functionality. Well-established (if informal) patterns guide the architectural design of systems. We sketch a model for defining architectures and present an implementation of the basic level of that model. Our purpose is to support the abstractions used in practice by software designers. The implementation provides a testbed for experiments with a variety of system construction mechanisms. It distinguishes among different types of components and different ways these components can interact. It supports abstract interactions such as data flow and scheduling on the same footing as simple procedure call. It can express and check appropriate compatibility restrictions and configuration constraints. It accepts existing code as components, incurring no runtime overhead after initialization. It allows easy incorporation of specifications and associated analysis tools developed elsewhere. The implementation provides a base for extending the notation and validating the model.< <ETX xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">&gt;</ETX>
We survey the literature available on the topic of domain-specific languages as used for the construction and maintenance of software systems. We list a selection of 75 key publications in … We survey the literature available on the topic of domain-specific languages as used for the construction and maintenance of software systems. We list a selection of 75 key publications in the area, and provide a summary for each of the papers. Moreover, we discuss terminology, risks and benefits, example domain-specific languages, design methodologies, and implementation techniques.
Software architectures shift the focus of developers from lines-of-code to coarser-grained architectural elements and their overall interconnection structure. Architecture description languages (ADLs) have been proposed as modeling notations to support … Software architectures shift the focus of developers from lines-of-code to coarser-grained architectural elements and their overall interconnection structure. Architecture description languages (ADLs) have been proposed as modeling notations to support architecture-based development. There is, however, little consensus in the research community on what is an ADL, what aspects of an architecture should be modeled in an ADL, and which of several possible ADLs is best suited for a particular problem. Furthermore, the distinction is rarely made between ADLs on one hand and formal specification, module interconnection, simulation and programming languages on the other. This paper attempts to provide an answer to these questions. It motivates and presents a definition and a classification framework for ADLs. The utility of the definition is demonstrated by using it to differentiate ADLs from other modeling notations. The framework is used to classify and compare several existing ADLs, enabling us, in the process, to identify key properties of ADLs. The comparison highlights areas where existing ADLs provide extensive support and those in which they are deficient, suggesting a research agenda for the future.
The term model-driven engineering (MDE) is typically used to describe software development approaches in which abstract models of software systems are created and systematically transformed to concrete implementations. In this … The term model-driven engineering (MDE) is typically used to describe software development approaches in which abstract models of software systems are created and systematically transformed to concrete implementations. In this paper we give an overview of current research in MDE and discuss some of the major challenges that must be tackled in order to realize the MDE vision of software development. We argue that full realizations of the MDE vision may not be possible in the near to medium-term primarily because of the wicked problems involved. On the other hand, attempting to realize the vision will provide insights that can be used to significantly reduce the gap between evolving software complexity and the technologies used to manage complexity.
A comprehensive framework for representing and using nonfunctional requirements during the development process is proposed. The framework consists of five basic components which provide the representation of nonfunctional requirements in … A comprehensive framework for representing and using nonfunctional requirements during the development process is proposed. The framework consists of five basic components which provide the representation of nonfunctional requirements in terms of interrelated goals. Such goals can be refined through refinement methods and can be evaluated in order to determine the degree to which a set of nonfunctional requirements is supported by a particular design. Evidence for the power of the framework is provided through the study of accuracy and performance requirements for information systems.< <ETX xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">&gt;</ETX>
While attractive in principle, architecture-based self-adaptation raises a number of research and engineering challenges. First, the ability to handle a wide variety of systems must be addressed. Second, the need … While attractive in principle, architecture-based self-adaptation raises a number of research and engineering challenges. First, the ability to handle a wide variety of systems must be addressed. Second, the need to reduce costs in adding external control to a system must be addressed. Our rainbow framework attempts to address both problems. By adopting an architecture-based approach, it provides reusable infrastructure together with mechanisms for specializing that infrastructure to the needs of specific systems. The specialization mechanisms let the developer of self-adaptation capabilities choose what aspects of the system to model and monitor, what conditions should trigger adaptation, and how to adapt the system.
1. The Tar Pit. 2. The Mythical Man-Month. 3. The Surgical Team. 4. Aristocracy, Democracy, and System Design. 5. The Second-System Effect. 6. Passing the Word. 7. Why Did the … 1. The Tar Pit. 2. The Mythical Man-Month. 3. The Surgical Team. 4. Aristocracy, Democracy, and System Design. 5. The Second-System Effect. 6. Passing the Word. 7. Why Did the Tower of Babel Fail? 8. Calling the Shot. 9. Ten Pounds in a Five-Pound Sack. 10. The Documentary Hypothesis. 11. Plan to Throw One Away. 12. Sharp Tools. 13. The Whole and the Parts. 14. Hatching a Castrophe. 15. The Other Face. 16. Silver -- Essence and Accident. 17. No Silver Bullet ReFired. 18. Propositions of The Mythical Man-Month: True or False? 19. The Mythical Man-Month After 20 Years. Epilogue. Notes and references. Index. 0201835959T04062001
Michael Ballantyne , Raffaella Sanna , Jason Hemann +2 more | Proceedings of the ACM on Programming Languages
We transport multi-stage programming from functional to relational programming, with novel constructs to give programmers control over staging and non-determinism. We stage interpreters written as relations, in which the programs … We transport multi-stage programming from functional to relational programming, with novel constructs to give programmers control over staging and non-determinism. We stage interpreters written as relations, in which the programs under interpretation can contain holes representing unknown expressions or values. By compiling the known parts without interpretive overhead and deferring interpretation to run time only for the unknown parts, we compound the benefits of staging (e.g., turning interpreters into compilers) and relational interpretation (e.g., turning functions into relations and synthesizing from sketches). We extend miniKanren with staging constructs and apply the resulting multi-stage language to relational interpreters for subsets of Racket and miniKanren as well as a relational recognizer for context-free grammars. We demonstrate significant performance gains across multiple synthesis problems, systematically comparing unstaged and staged computation, as well as indicatively comparing with an existing hand-tuned relational interpreter.
Laila Vaivode | Environment Technology Resources Proceedings of the International Scientific and Practical Conference
Several crisis communication models can be applied in the discourse of man-made crises occurrence, such as terrorist attacks, cyber-attacks, or explosions caused by negligence and other similar events. However, one … Several crisis communication models can be applied in the discourse of man-made crises occurrence, such as terrorist attacks, cyber-attacks, or explosions caused by negligence and other similar events. However, one of the most comprehensive models in practical terms- and yet one of the least scientifically researched- is the Joint Information System (JIS) model. By nature, the resolution of such critical incidents, which are driven by human intention and action, requires the involvement of multiple actors, primarily state security institutions, as well as non-governmental organizations and possibly others. The JIS model thus provides a collaborative framework for crisis communication, involving multiple stakeholders, including government emergency responders, media representatives, community leaders and other actors depending on the type of incident. The JIS approach subsequently ensures that critical information dissemination is coordinated, consistent and effective in addressing the needs of all involved parties. The JIS model is based on five key principles: 1) Integrated communication, which requires collaboration among all stakeholders to ensure a unified message development and delivery, 2) Audience-focused communication, which prioritizes understanding the concerns and informational needs of different audiences to tailor messages accordingly, 3) Timely and accurate communication, which ensures that stakeholders receive reliable and up-to-date information throughout the various crisis phases, 4) Credible communication, which focuses on building trust and maintaining the credibility of information sources and 5) Continuous communication, which highlights the importance of sustained information-sharing in the precrisis stage and throughout both the crisis management and recovery phases. Recovery from a man-made crisis, including but not limited to terrorist incidents, is a complex and multifaceted process that encompasses physical, emotional, social, and economic dimensions. In the aftermath of such events, effective communication is crucial for maintaining public safety, disseminating critical information and mitigating the psychological and social impacts of the crisis on affected areas and citizens. This paper examines the application of the JIS model in man-made crisis scenarios, analysing its effectiveness in ensuring structured and transparent communication. The research employs a qualitative analysis of past crisis events where the JIS model has been implemented, drawing insights from case studies and best practices that are available online. The findings indicate that the JIS model significantly enhances crisis response by fostering coordination among stakeholders, reducing misinformation and improving public trust, consequently- maintaining reputational aspects of the state authorities high, that is one of the cornerstones of the successful crisis management. Overall, the JIS model is a highly effective approach to crisis communication, particularly in the context of man-made crises. By adhering to its principles, organizations can enhance their crisis management capabilities, minimize the adverse impacts on affected communities, and facilitate a more efficient recovery process.
AbstractAuthentication mechanisms are still the standard way to allowaccess to systems and devices within an organization. Throughcredentials (login and password) and other associated methods(multi-factor authentication, such as tokens, biometrics, or … AbstractAuthentication mechanisms are still the standard way to allowaccess to systems and devices within an organization. Throughcredentials (login and password) and other associated methods(multi-factor authentication, such as tokens, biometrics, or onetimepasswords sent to additional devices), access control is implemented,and user activity across different necessary systems isrecorded. However, organizations are concerned that access controlmay be bypassed due to the loss or theft of authentication information/devices, potentially leading to intellectual property breachesthrough industrial espionage. In this context, User and Entity BehaviorAnalytics (UEBA) has been studied and applied to profile usersand identify anomalous patterns that could, for example, block auser from accessing another account. However, achieving this levelof protection in real-world systems may be unfeasible. This articleexamines the feasibility of distinguishing user behavior in organizationsbased on the most frequently used applications and theirusage time. To this end, a real dataset was collected, consisting ofdata from over 700 organizations and nearly 60,000 users betweenMarch and September 2024. The results discuss the techniques used,the possibility of detecting real intruder users, and the false alarmrates observed in the dataset, paving the way for future research inthe field.
ABSTRACT Context Reactive Programming (RP) provides powerful abstractions for managing asynchronous and event‐driven behaviors, but its APIs are often perceived as complex and difficult to use, particularly due to their … ABSTRACT Context Reactive Programming (RP) provides powerful abstractions for managing asynchronous and event‐driven behaviors, but its APIs are often perceived as complex and difficult to use, particularly due to their reliance on functional programming concepts. Objective This study investigates the usability of two prominent JavaScript RP libraries, RxJS and Bacon.js, to identify common usability issues and suggest improvements. Method A mixed‐method evaluation was conducted. First, objective structural metrics were applied to assess the libraries' design. Then, a user‐centered study was performed involving programming tasks, a post‐task questionnaire based on the Cognitive Dimensions of Notation (CDN) framework, and follow‐up interviews. Results Both libraries exhibited moderate usability. Metrics revealed strengths in reusability and parameter design, while user studies highlighted challenges in learnability, error handling, and documentation. RxJS generally performed better in metrics, while Bacon.js had stronger task completion rates. Conclusion The findings suggest that despite their popularity, RP APIs can still hinder adoption due to usability issues. Improvements such as enhanced documentation, guided error‐handling strategies, and reduced operator complexity can significantly improve developer experience.
Autonomous robots must operate in diverse environments and handle multiple tasks despite uncertainties. This creates challenges in designing software architectures and task decision-making algorithms, as different contexts may require distinct … Autonomous robots must operate in diverse environments and handle multiple tasks despite uncertainties. This creates challenges in designing software architectures and task decision-making algorithms, as different contexts may require distinct task logic and architectural configurations. To address this, robotic systems can be designed as self-adaptive systems capable of adapting their task execution and software architecture at runtime based on their context. This paper introduces ROSA, a novel knowledge-based framework for RObot Self-Adaptation, which enables task-and-architecture co-adaptation (TACA) in robotic systems. ROSA achieves this by providing a knowledge model that captures all application-specific knowledge required for adaptation and by reasoning over this knowledge at runtime to determine when and how adaptation should occur. In addition to a conceptual framework, this work provides an open-source ROS 2-based reference implementation of ROSA and evaluates its feasibility and performance in an underwater robotics application. Experimental results highlight ROSA’s advantages in reusability and development effort for designing self-adaptive robotic systems.
Software engineering has evolved dramatically from a discipline focused primarily on code implementation to a multifaceted profession encompassing comprehensive system design, cross-functional collaboration, and strategic decision-making. This transformation reflects the … Software engineering has evolved dramatically from a discipline focused primarily on code implementation to a multifaceted profession encompassing comprehensive system design, cross-functional collaboration, and strategic decision-making. This transformation reflects the increasing complexity of technology ecosystems and the critical need for engineers who can navigate both technical depth and interdisciplinary breadth. The journey from coding specialist to versatile software professional involves mastering architectural thinking, developing adaptive expertise, and cultivating communication capabilities that bridge technical and domain-specific contexts. As systems grow increasingly interconnected, software engineers must balance innovation with stability, employing sophisticated approaches to requirements gathering, system design, implementation, testing, and maintenance. The integration of artificial intelligence into development workflows represents the latest evolutionary phase, augmenting human capabilities while raising important questions about ethical implementation and appropriate collaboration models. The most successful software professionals navigate this landscape by maintaining strong foundational knowledge while embracing continuous learning and adaptation. This comprehensive perspective positions software engineering as a dynamic journey rather than a static skillset, requiring practitioners to evolve alongside technology while preserving core engineering principles that transcend specific tools or frameworks.
Abstract: In the era of digital transformation, enterprises demand robust, scalable, and maintainable software architectures that can support dynamic business needs. Java Full Stack Development has emerged as a comprehensive … Abstract: In the era of digital transformation, enterprises demand robust, scalable, and maintainable software architectures that can support dynamic business needs. Java Full Stack Development has emerged as a comprehensive approach to address these challenges, integrating frontend, backend, and database technologies to deliver end-to-end enterprise solutions. This paper explores the key components and best practices in Java Full Stack Development, including the use of modern frontend frameworks (e.g., Angular, React), backend technologies (e.g., Spring Boot, RESTful APIs), and databases (SQL and NoSQL). It also examines architectural patterns such as microservices and layered architecture that enhance scalability, fault tolerance, and maintainability. Emphasis is placed on how Java’s platform independence, strong community support, and vast ecosystem contribute to building resilient enterprise applications. Through case studies and performance evaluations, the paper demonstrates how full stack Java development facilitates rapid development cycles, seamless integration, and long-term sustainability of enterprise systems. Keywords: Java Full Stack, Enterprise Architecture, Spring Boot, Microservices, Angular, RESTful APIs, Scalability, Robustness, Web Application Development, Backend Integration, Frontend Frameworks, Cloud Deployment, Software Engineering
<title>Abstract</title> Software has become an integral part of modern life, serving various purposes in personal, professional, and recreational domains. This research addresses the growing need for software systems that are … <title>Abstract</title> Software has become an integral part of modern life, serving various purposes in personal, professional, and recreational domains. This research addresses the growing need for software systems that are not only functional but also emotionally resonant with users. While traditional software development focuses on functional and non-functional requirements, the emotional impact of systems on users, referred to as emotional requirements (ERs), remains underexplored. Existing research on ERs has limitations, focusing primarily on specific domains like healthcare or gaming and employing manual, data-dependent elicitation methods. This work proposes a novel and semi-automated approach to derive ERs from system requirements. The proposed methodology addresses three main concerns: (1) identifying requirements with potential emotional triggers, (2) defining a software-specific taxonomy of ERs, and (3) proposing appropriate artifacts and methodology for ER elicitation. A two-way approach is proposed for ER elicitation using- formal goal modeling and generative AI. The framework leverages insights from emotional knowledge bases, user behavior patterns, and contextual analysis to systematically derive ERs from requirements. The proposed methodology is experimentally evaluated using case studies of software of different domains.
Kevin Kolyakov , Lina Marsso , Nick Feng +2 more | 2022 IEEE/ACM 44th International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)
Today, the operating system Linux is widely used in diverse environments, as its kernel can be configured flexibly. In many configurable systems, managing such variability can be facilitated in all … Today, the operating system Linux is widely used in diverse environments, as its kernel can be configured flexibly. In many configurable systems, managing such variability can be facilitated in all development phases with product-line analyses. These analyses often require knowledge about the system's features and their dependencies, which are documented in a feature model. Despite their potential, product-line analyses are rarely applied to the Linux kernel in practice, as its feature model still challenges scalability and accuracy of analyses. Unfortunately, these challenges also severely limit our knowledge about two fundamental metrics of the kernel's configurability, namely its number of features and configurations. We identify four key limitations in the literature related to the scalability, accuracy, and influence factors of these metrics, and, by extension, other product-line analyses: (1) Analysis results for the Linux kernel are not comparable, because relevant information is not reported; (2) there is no consensus on how to define features in Linux, which leads to flawed analysis results; (3) only few versions of the Linux kernel have ever been analyzed, none of which are recent; and (4) the kernel is perceived as complex, although we lack empirical evidence that supports this claim. In this paper, we address these limitations with a comprehensive, empirical study of the Linux kernel's configurability, which spans its feature model's entire history from 2002 to 2024. We address the above limitations as follows: (1) We characterize parameters that are relevant when reporting analysis results; (2) we propose and evaluate a novel definition of features in Linux as a standardization effort; (3) we contribute torte , a tool that analyzes arbitrary versions of the Linux kernel's feature model; and (4) we investigate the current and possible future configurability of the kernel on more than 3,000 feature-model versions. Based on our results, we highlight eleven major insights into the Linux kernel's configurability and make seven actionable recommendations for researchers and practitioners.
Architecture design is a critical step in software development. However, creating a high-quality architecture is often costly due to the significant need for human expertise and manual effort. Recently, agents … Architecture design is a critical step in software development. However, creating a high-quality architecture is often costly due to the significant need for human expertise and manual effort. Recently, agents built upon Large Language Models (LLMs) have achieved remarkable success in various software engineering tasks. Despite this progress, the use of agents to automate the architecture design process remains largely unexplored. To address this gap, we envision a Knowledge-based Multi-Agent Architecture Design (MAAD) framework. MAAD uses agents to simulate human roles in the traditional software architecture design process, thereby automating the design process. To empower these agents, MAAD incorporates knowledge extracted from three key sources: 1) existing system designs, 2) authoritative literature, and 3) architecture experts. By envisioning the MAAD framework, we aim to advance the full automation of application-level system development.