The Infona portal uses cookies, i.e. strings of text saved by a browser on the user's device. The portal can access those files and use them to remember the user's data, such as their chosen settings (screen view, interface language, etc.), or their login data. By using the Infona portal the user accepts automatic saving and using this information for portal operation purposes. More information on the subject can be found in the Privacy Policy and Terms of Service. By closing this window the user confirms that they have read the information on cookie usage, and they accept the privacy policy and the way cookies are used by the portal. You can change the cookie settings in your browser.
Model-View-Controller (MVC) is an established architectural design pattern for developing interactive, object-oriented applications. Numerous MVC-based application development approaches have been proposed in the literature, the more recent of which incorporate the domain-oriented design approach. From the architectural design view point, however, domain-oriented design has only been applied at the...
Information and automated production systems are long-living, evolvable systems. Consequently, modifications are performed to correct, improve or adapt the respective system. We introduce different approaches to analyze maintainability of software-intensive systems and propose two different case studies from the information and from the automated production systems domain as a basis to validate approaches...
The paper introduces the design of Modbus slave based on Modbus RTU over RS-485 and its implementation. By designing a new software architecture and embedded open stacks, development lifetime is shortened as well as the software is easy to port, maintain, and reuse. A new approach inspired from Modbus functionality makes it easier for developer to divide program into three tasks and synchronize them...
Software architecture decision-making is critical to the success of a software system as software architecture sets the structure of the system, determines its qualities, and has far-reaching consequences throughout the system life cycle. The complex nature of the software development context and the importance of the problem has led the research community to develop several techniques, tools, and...
Many techniques have been proposed in the literature to support architecture definition, conformance, and analysis. However, there is a lack of adoption of such techniques by the industry. Previous work have analyzed this poor support. Specifically, former approaches lack proper analysis techniques (e.g., detection of architectural inconsistencies), and they do not provide extension and addition of...
The specific challenges for maintenance of software and its related hardware for the domain of automated Production Systems is discussed. Presenting four industrial case studies from renowned and world market leading German machine and plant manufacturing companies, these challenges and different solution approaches are introduced with a focus on software architectures to support modularity as a basis...
Feature location is a critical step in the software maintenance process where a developer identifies the software artifacts that need to be changed in order to fulfill a new feature request. Much progress has been made in understanding the feature location process and in creating new tools to help a developer in performing this task. However, there is still lack of support for locating architectural...
A product line is a family of similar products with variations in features and functions. Product Line Engineering (PLE) is an engineering discipline for product lines using a shared set of engineering assets, a managed set of features, and an efficient means of production. It takes advantage of the commonality shared across the family while efficiently and systematically managing the variation among...
Reconstructing architectural components from existing software applications is an important task during the software maintenance cycle because either those elements do not exist or are outdated. Reverse engineering techniques are used to reduce the effort demanded during the reconstruction. Unfortunately, there is no widely accepted technique to retrieve software components from source code. Moreover,...
Software development methodology is a proposition that is used to structure, plan, and control the process of developing a system. However, traditional methods, such as waterfall-like model, component-based programming, software architecture method and agile method, have encountered more fundamental difficulties in processing complex system development. To address this challenge, we have witnessed...
Cloud management becomes increasingly complex and brings high costs, especially with the advent of hybrid cloud. In a hybrid cloud, numerous resources like Virtual Machines (VMs) and Physical Machines in different clouds have to be managed together to make the whole hybrid cloud work cost-effectively. For controlling the management cost, in particular the manual management cost, many programs have...
Distributed systems are largely present and deployed in recent applications. Several systems have common basic requirements, which motivates to adapt reusable solutions for each family of systems. In this paper, we focus on distributed systems designed for large-scale applications requiring a high degree of Reliability and Dynamicity (ReDy distributed systems). We propose a basic architecture for...
Software Engineering has evolved over many years but stays human centric as it relies significantly on the technical decisions made by humans. Modeling the problem statement and arriving at the architecture and design revolves in the minds of software architects and designers. Many of the decisions stays in architect's minds and are only present in the models. The abstraction structures in software...
Software architecture is integral part of the software development; however, its integration in the development process has become more challenging with the transition from traditional to agile development methods, and with the architects becoming much more than technological experts responsible for high-level design. Some attention has been paid in recent years to the role of the architect, seeking...
Social and technical debt both represent the state of software development organizations as a result of accumulated decisions. In the case of social debt, decisions (and connected debt) weigh on people and their socio-technical interactions/characteristics. Digging deeper into social debt with an industrial case-study, we found that software architecture, the prince of development artefacts, plays...
Architecture description can be modeled as a set of alternative choices and decisions, where the rationale and tradeoffs for each decision are documented and understood as needed to inform subsequent decisions. Each decision, based on ISO/IEC/IEEE 42010, pertains to one or more stakeholder concerns. These concerns combined with the system environment and scenarios provide architecture design context...
To investigate the new requirements and challenges of architecting often safety critical software in the automotive domain, we have performed two case studies on Volvo Car Group and Volvo Group Truck Technology. Our findings suggest that automotive software architects produce two different architectures (or views) of the same system. The first one is a high-level descriptive architecture, mainly documenting...
With the increasing role played by software in supporting our society, its sustainability and environmental impact have become major factors in the development and operation of software-intensive systems. Myths and beliefs hide the real truth behind Green IT: IT is energy-inefficient because software is developed to make it so - intentionally or not. But how far are we from being able to control software...
Organizations require cost estimates for delivering and operating software-intensive solutions. One of the factors impacting these costs is the solution's architecture. Applying solution architecting practices helps improve the accuracy of early cost estimating. In CGI, we have started to emphasize the application of architecting practices in cost estimating, and this paper reports on the early experiences...
Architectural Knowledge Management (AKM) has been a major topic in software architecture research since 2004. Open AKM problems include an effective, seamless transition from reusable knowledge found in patterns books and technology blogs to project-specific decision guidance and an efficient, practical approach to knowledge application and maintenance. We extended our previous work with concepts...
Set the date range to filter the displayed results. You can set a starting date, ending date or both. You can enter the dates manually or choose them from the calendar.