936 research outputs found

    Applying genetic architectural synthesis in software development and run-time maintenance

    Get PDF
    Software systems are becoming complex entities with an increasing diffusion into many new domains. A complex software system requires more resources to develop and maintain. Some domains demand continuous operation like security or control systems, web services and communication systems etc. The trend will lead software industry to a situation where it will be difficult to develop software systems through traditional manual software engineering practices in a feasible budget. Any level of automation can relieve the pressure on the cost. This thesis work explores the potential of genetic architectural synthesis to introduce automation in software development and maintenance. The genetic algorithm operates at the architectural level. The fitness functions envelop the expert knowledge needed to gauge the quality (modifiability, efficiency and complexity) of architectures. The algorithm uses solutions which can be design patterns, architectural styles, best practices or application specific solutions to maintain the quality attributes. Each solution has a positive or negative impact on one or more quality attributes. Once calibrated, the genetic algorithm has been able to suggest good quality architectures. An empirical study has also been performed that suggests that the genetic algorithm’s proposals are comparatively better than the under-graduate level students’ designs. Tool support has been provided in the form of the Darwin environment. It facilitates a human architect to initiate, modify, monitor and analyze the results of a genetic architectural synthesis. Moreover, the genetic algorithm has been used to evolve software architectures to be easily distributable among the teams involved in its development. The algorithm takes into account the organizational information and proposes an initial work distribution plan along with the improved architecture. The SAGA (Self-Architecting using Genetic Algorithms) infrastructure has been developed to enable self-adaptive and manual run-time maintenance in Java-based applications. SAGA allows Java-based distributed systems to self-maintain reliability and efficiency. Furthermore, non-self-maintainable properties of a system can be maintained manually at run-time. The decision making engine is the genetic algorithm. The unit of run-time modification is an architectural solution which in its entirety enters of leaves the running instance of a system therefore affecting the system’s run-time quality. A solution is composed of roles which are bound to real artifacts in the system. Multiple attributes concerning reliability and efficiency of the running system are monitored by SAGA. In the case of poor system quality in a changed environment, SAGA triggers the genetic algorithm to propose improvements in the architecture taking into account the monitoring data. The proposal is then reflected to the run-time and the cycle continues. In the experiments, an example distributed system used in changing environment has been implemented with self-maintaining capability. A significant improvement in both reliability and efficiency of the running system has been observed

    On the Development of Real-Time Multi-User Web Applications

    Get PDF
    With the increasing popularity of the World Wide Web (WWW), end-user applications are moving from desktop to the browser. Web applications have several benefits over native applications: web applications have worldwide availability for any browsing capable device without prior installations. In addition, web applications are easy to distribute and update – once deployed, a web application is instantly available worldwide and further modifications to the system are propagated automatically. The current trend seems to be that web applications are offering collaboration, social connections, and user to user interactions as key features. This can be seen, for example, in the popularity of Facebook, Flickr, and Twitter. Despite all the benefits of the Web, web applications are suffering from the shortcomings in underlying technologies. The Web is strongly rooted in information sharing, and the current technical solutions isolate users rather than make them aware of each other. Since the data cannot be pushed from server to a client, the client must always initiate the communication, which causes a considerable impediment for real-time multi-user web applications, like online chats that have several concurrent users continuously interacting with each other. For such systems, it would be practical if the server could push messages to clients. As a further obstacle, most web application frameworks isolate users in their private sessions that only interact indirectly via the database. This main contribution of this thesis is to make the development of real-time multi-user web applications easier. We elaborate on the difficulties in implementation and design and introduce methods of circumventing them. The main argument is that the Web, the available technology stack, and the frameworks are difficult to use for developing real-time multi-user web applications. However, by selecting the proper approach, the problems can be solved. In this thesis, we have divided the frameworks in groups based on how they make separation of concerns between the client and the server. The separation is important as it determines the thickness of the client and thus where to locate the business logic and the application state. In addition, it has effect on the synchronization of the state between the clients. To collect experiences and for backing up our assumptions, we have implemented real-time multi-user web applications for several frameworks and studied how the frameworks should be used for enabling real-time multi-user application development

    Design Patterns : Implementation in video game programming

    Get PDF
    The goal of this thesis was to develop Last Planets, a social mobile game for iOS devices. The game development theory and the design patterns are portrayed in the first part of this study. The second part presents how such theories are put into practice during the development of Last Planets. The completion of the project resulted in the launch of Last Planets during spring 2016. Multiple design patterns were chosen to be implemented within the code base. Patterns such as Observer, Strategy and Model-View-Controller create the foundation architecture and convention for the code base. Meanwhile, various other support systems are implemented with the help of Singleton and Decorator pattern. However, the implementation process did not occur instantaneously nor at the beginning of the project but was rather a gradual realizing and refactoring effort. Applying these design patterns has helped ease up maintenance work as well as improved the readability of the source code. Additionally, these design patterns have also enabled several major functionalities of both client and server sides. However, in a few cases of overusing design patterns, the game source code has actually become more complex and tangled. Since the materials of this thesis are limited, readers are highly recommended to study design patterns further. Careful consideration before applying design pattern is also vital for project success. Insightful decisions can both maximize the values of design patterns as well as avoiding the risk of abusing them

    Fujaba days 2009 : proceedings of the 7th international Fujaba days, Eindhoven University of Technology, the Netherlands, November 16-17, 2009

    Get PDF
    Fujaba is an Open Source UML CASE tool project started at the software engineering group of Paderborn University in 1997. In 2002 Fujaba has been redesigned and became the Fujaba Tool Suite with a plug-in architecture allowing developers to add functionality easily while retaining full control over their contributions. Multiple Application Domains Fujaba followed the model-driven development philosophy right from its beginning in 1997. At the early days, Fujaba had a special focus on code generation from UML diagrams resulting in a visual programming language with a special emphasis on object structure manipulating rules. Today, at least six rather independent tool versions are under development in Paderborn, Kassel, and Darmstadt for supporting (1) reengineering, (2) embedded real-time systems, (3) education, (4) specification of distributed control systems, (5) integration with the ECLIPSE platform, and (6) MOF-based integration of system (re-) engineering tools. International Community According to our knowledge, quite a number of research groups have also chosen Fujaba as a platform for UML and MDA related research activities. In addition, quite a number of Fujaba users send requests for more functionality and extensions. Therefore, the 7th International Fujaba Days aimed at bringing together Fujaba developers and Fujaba users from all over the world to present their ideas and projects and to discuss them with each other and with the Fujaba core development team

    Fujaba days 2009 : proceedings of the 7th international Fujaba days, Eindhoven University of Technology, the Netherlands, November 16-17, 2009

    Get PDF
    Fujaba is an Open Source UML CASE tool project started at the software engineering group of Paderborn University in 1997. In 2002 Fujaba has been redesigned and became the Fujaba Tool Suite with a plug-in architecture allowing developers to add functionality easily while retaining full control over their contributions. Multiple Application Domains Fujaba followed the model-driven development philosophy right from its beginning in 1997. At the early days, Fujaba had a special focus on code generation from UML diagrams resulting in a visual programming language with a special emphasis on object structure manipulating rules. Today, at least six rather independent tool versions are under development in Paderborn, Kassel, and Darmstadt for supporting (1) reengineering, (2) embedded real-time systems, (3) education, (4) specification of distributed control systems, (5) integration with the ECLIPSE platform, and (6) MOF-based integration of system (re-) engineering tools. International Community According to our knowledge, quite a number of research groups have also chosen Fujaba as a platform for UML and MDA related research activities. In addition, quite a number of Fujaba users send requests for more functionality and extensions. Therefore, the 7th International Fujaba Days aimed at bringing together Fujaba developers and Fujaba users from all over the world to present their ideas and projects and to discuss them with each other and with the Fujaba core development team

    Revista Economica

    Get PDF

    Methodical support for model-driven software engineering with enterprise models

    Get PDF
    A central research goal in information systems science is to achieve a close alignment between business processes, structures of organizations, and the functionality offered by enterprise information systems (EISs), which are used to support the work of organizations. Traditionally, there is a methodical gap between describing organizational incidents and software functionality, because organizations and software systems are understood and constructed with different terminology and on different levels of abstractions, typically also by differently educated groups of people. In enterprise models (EMs), dedicated modeling language elements are used to express knowledge about processes in organizations, e. g., about who is responsible for performing actions, what resources are involved, and what strategic goals are intended to be realized by organizational means. The work at hand shows, how EISs can be created based on this knowledge, which serve as supporting software for performing these tasks. Software development traditionally has to face a distinction between people who work with software, and people who create software. With the use of EMs, a chance opens up to closer involve the users of software systems into the process of developing and configuring the software. Building software from enterprise models is desirable, because once a dedicated relationship between enterprise models and software functionality has been established by a development method, involved users and responsible stakeholders can adapt the software according to their business needs, without having to deal with programming or technical details. This increases efficiency both in developing and operating the software, because software functionality is derived from requirements implicitly stated in EMs. Such a development procedure also promises to more efficiently adapt EIS to dynamic changes in organizations and their environment. Trust in the developed software system is also increased by involving users and responsible stakeholders into specifying the resulting software functionality. The following research work elaborates a software development method to create EISs from EMs. The method is designed as a generic framework to work with any enterprise modeling language, and to generate software for any target system platforms, after appropriate configuration. Fundamental challenges in methodically transforming conceptual models to implementation artifacts, are faced by involving auxiliary models into the software creation process, and splitting up the transformation procedure into multiple dedicated phases. Using this approach, the abstraction gap between conceptual enterprise models and technical implementation artifacts gets systematically bridged by introduced methodical concepts, in order to perform an ontological turn from the bird’s-eye-view description perspective of enterprise models, to an internal system perspective describing technical details of a software system. The elaborated method provides means for efficiently guiding modelers and software developers through the software engineering process. It can be configured at multiple points, to choose the degree of automation on a continuum between a manually supervised development process with methodically scheduled manual development steps, and a zero-coding 100% code generation approach. To clarify the theoretically introduced concepts, prototypical implementation examples are included in the present work. They demonstrate how to configure the method with model-transformations, validity checks, and domain-specific modeling languages, and serve as initial example cases for enterprise model driven software development using the Software Engineering with Enterprise Models (SEEM) method.Ein zentrales Forschungsziel der Wirtschaftsinformatik ist es, einen Abgleich zwischen den Geschäftsprozessen und Strukturen von Organisationen, und der Funktionalität von Unternehmensinformationssystemen (Enterprise Information Systems, EIS), zu erreichen, mit denen die Arbeit von Organisationen unterstützt wird. Traditionell besteht eine methodische Kluft zwischen der Beschreibung organisationaler Gegebenheiten und der Funktionalität von Software, denn Organisationen und Softwaresysteme werden mit verschiedener Terminologie und auf verschiedenen Abstraktionsebenen beschrieben und konstruiert, und dies typischerweise von verschieden ausgebildeten Personengruppen. In Unternehmensmodellen werden dedizierte Sprachmittel genutzt, um Wissen über Prozesse in Organisationen zu modellieren, zum Beispiel über handelnde und verantwortliche Akteure, eingesetzte Ressourcen, oder strategische Ziele, die durch organisatorische Mittel erreicht werden sollen. Die vorliegende Arbeit zeigt, wie basierend auf diesem Wissen EIS entwickelt werden können, die als unterstützende Software zur Ausführung dieser Aufgaben dienen. Softwareentwicklung sieht sich traditionell mit einer Trennung zwischen Personen, die mit Software arbeiten, und Personen, die Software erstellen, konfrontiert. Unter Nutzung von Unternehmensmodellen eröffnet sich eine Chance, Benutzer enger in den Prozess der Entwicklung und Konfiguration von Software einzubinden. Es ist wünschenswert, Unternehmensmodelle zur Softwareentwicklung methodisch heranzuziehen, denn sobald eine nachvollziehbare Beziehung zwischen Unternehmensmodellen und Software-Funktionalität mit Hilfe einer Entwicklungsmethode etabliert ist, können beteiligte Nutzer die Software selbst entsprechend ihrer Bedürfnisse mittels Unternehmensmodellierung anpassen, ohne mit Programmierung oder technischen Details umgehen zu müssen. Das erhöht die Effizienz sowohl bei der Entwicklung als auch Anwendung der Software, denn die Software-Funktionalität wird aus Anforderungen abgeleitet, die implizit in Unternehmensmodellen erfasst sind. Eine solche Entwicklungsmethode verspricht außerdem, EIS an dynamische Veränderungen in Organisationen und deren Umgebung effizienter und kostengünstiger anpassen zu können. Außerdem wird das Vertrauen in die entwickelte Software wird durch Einbeziehung von Nutzern in die Anforderungsspezifikaton gestärkt, wenn Anwender und Leitungsverantwortliche in der Lage sind, die Funktionalität der Software in eigener Verantwortung zu gestalten. Die nachfolgend dargestellten Forschungen erarbeiten eine Software-Entwicklungsmethode zur Erstellung von EIS aus Unternehmensmodellen. Die Methode ist als generischer Rahmen entworfen und kann prinzipiell mit jeder Unternehmensmodellierungssprache verwendet werden, und für jede Zielarchitektur Software erstellen, nach entsprechender Konfiguration. Grundsätzliche Herausforderungen, die sich beim methodischen Übergang von konzeptionellen Modellen zu Implementierungsartefakten stellen, werden durch die Einführung von ergänzenden Zusatzmodellen in den Software-Entwicklungsprozess, sowie die Aufteilung des Transformationsverfahrens in mehrere dedizierte Phasen, angegangen. Mit diesem Ansatz wird die Abstraktionslücke zwischen konzeptionellen Unternehmensmodellen und Implementierungsartefakten durch methodische Konzepte systematisch überbrückt, um die Beschreibungsperspektive von der Vogelperspektive der Unternehmensmodellierung hin zur internen Systemsicht auf Details eines Softwaresystems ontologisch zu drehen. Die erarbeitete Methode erlaubt es, Software-Architekten und -Entwickler effizient durch den Entwicklungsprozess zu leiten. Sie kann an verschiedenen Stellen konfiguriert werden, um den Automationsgrad auf einem Kontinuum zwischen einem manuell beaufsichtigten Entwicklungsprozess mit methodisch vorgesehenen manuellen Entwicklungsschritten, oder einem “zero-coding” Entwicklungsansatz mit 100% Code-Generierung, auszuwählen. Zur Veranschaulichung der theoretisch eingeführten Konzepte enthält die vorliegende Arbeit prototypische Implementierungsbeispiele. Sie demonstrieren die Konfiguration der Methode mit Modelltransformationen, Modellvalidierungen und domänenspezifischen Modellierungssprachen, und dienen als erste Anwendungsbeispiele für Unternehmensmodellgetriebenen Softwareentwicklung mit der Software Engineering with Enterprise Models (SEEM) Methode

    Evolving an efficient and effective off-the-shelf computing infrastructure for schools in rural areas of South Africa

    Get PDF
    Upliftment of rural areas and poverty alleviation are priorities for development in South Africa. Information and knowledge are key strategic resources for social and economic development and ICTs act as tools to support them, enabling innovative and more cost effective approaches. In order for ICT interventions to be possible, infrastructure has to be deployed. For the deployment to be effective and sustainable, the local community needs to be involved in shaping and supporting it. This study describes the technical work done in the Siyakhula Living Lab (SLL), a long-term ICT4D experiment in the Mbashe Municipality, with a focus on the deployment of ICT infrastructure in schools, for teaching and learning but also for use by the communities surrounding the schools. As a result of this work, computing infrastructure was deployed, in various phases, in 17 schools in the area and a “broadband island” connecting them was created. The dissertation reports on the initial deployment phases, discussing theoretical underpinnings and policies for using technology in education as well various computing and networking technologies and associated policies available and appropriate for use in rural South African schools. This information forms the backdrop of a survey conducted with teachers from six schools in the SLL, together with experimental work towards the provision of an evolved, efficient and effective off-the-shelf computing infrastructure in selected schools, in order to attempt to address the shortcomings of the computing infrastructure deployed initially in the SLL. The result of the study is the proposal of an evolved computing infrastructure model for use in rural South African schools
    • …
    corecore