5 research outputs found

    A reusable application framework for context-aware mobile patient monitoring systems

    Get PDF
    The development of Context-aware Mobile Patient Monitoring Systems (CaMPaMS) using wireless sensors is very complex. To overcome this problem, the Context-aware Mobile Patient Monitoring Framework (CaMPaMF) was introduced as an ideal reuse technique to enhance the overall development quality and overcome the development complexity of CaMPaMS. While a few studies have designed reusable CaMPaMFs, there has not been enough study looking at how to design and evaluate application frameworks based on multiple reusability aspects and multiple reusability evaluation approaches. Furthermore, there also has not been enough study that integrates the identified domain requirements of CaMPaMS. Therefore, the aim of this research is to design a reusable CaMPaMF for CaMPaMS. To achieve this aim, twelve methods were used: literature search, content analysis, concept matrix, feature modelling, use case assortment, domain expert review, model-driven architecture approach, static code analysis, reusability model approach, prototyping, amount of reuse calculation, and software expert review. The primary outcome of this research is a reusable CaMPaMF designed and evaluated to capture reusability from different aspects. CaMPaMF includes a domain model validated by consultant physicians as domain experts, an architectural model, a platform-independent model, a platform-specific model validated by software expert review, and three CaMPaMS prototypes for monitoring patients with hypertension, epilepsy, or diabetes, and multiple reusability evaluation approaches. This research contributes to the body of software engineering knowledge, particularly in the area of design and evaluation of reusable application frameworks. Researchers can use the domain model to enhance the understanding of CaMPaMS domain requirements, thus extend it with new requirements. Developers can also reuse and extend CaMPaMF to develop various CaMPaMS for different diseases. Software industries can also reuse CaMPaMF to reduce the need to consult domain experts and the time required to build CaMPaMS from scratch, thus reducing the development cost and time

    Notes on the synthesis of context: a novel approach to model context in software engineering

    No full text
    Context is often considered as a source for system change and variation. But the term ‘context’ has been typically used to mean the act of setting boundaries and setting system scope in software engineering. In this thesis, I challenge this view by suggesting that context should be applied to imply system variation on all levels of software (system) development. It constitutes as a more complex phenomena of how the system interacts with the world. The suggested approach synthesises context in terms of influence and perception through 'context states'. Context states are represented by a sixteen context state matrix, I refer to as The Context Dynamics Matrix (CDM). Context states are the result of two dimensions of context, perception on the x-axis, and influence on the y-axis. Analysts may identify context of a system using the CDM when they identify the influence that an element exerts and assign their perception of how they identified the influence. Each of the influence and perception dimensions is modelled using one model. First, the force model of influence, which identifies four levels of influence that an element may apply, each level showing a different implication on variation. Second, the knowledge model for perception, which shows five sources of knowledge about the influence. Accordingly, an analyst may describe the context of a system by matching the level of influence with the level of perception to obtain the context state of a given system element. A context state may imply a high or low level of variability, and a high or low level of perception. The use of context states is independent from any modelling view of a system that either describes functionality or system structure. Because context states describe the context of a system independently from the level or view in which they are described, it is possible to map the context states to enrich the description of a given view. Accordingly, I show how to map a context state to a functional description of a system by assigning a context state to Data Flow Diagram (DFD) element. Each process and data flow is assigned a context state that enriches its description of the system, in terms of levels of variation that the system’s context may imply. A proof-of-concept is provided to demonstrate howto apply context states to the analysis of the requirements of a system from industry. The results of the study show the viability of using context states to describe the context of systems, and support the argument to experiment further to evaluate the effectiveness of context states in areas of system development not covered by my research

    Techniques and Practices for Software Architecture Work in Agile Software Development

    Get PDF
    Since the publishing of Agile Manifesto in 2001, the agile software development has taken the world by storm. Agile software development does not emphasize the importance of software architecture, even though software architecture is often seen as a key factor for achieving the quality goals set for the software system. It has been even said that agile software development and software architecture are a clash of two cultures.In many software projects there is no need to consider software architecture anymore. For example, when designing a mobile application, the ecosystem forces the developer to use certain architecture style provided by the platform. In web development ready-made frameworks and project templates are available offering complete software architecture designs for the application developer.There are still domains and systems where careful architecture design is needed. When developing complex systems or systems with a long lifecycle, diligent software architecture design is a key to avoid massive rework during the development. It cannot be a coincidence that companies developing these kinds of systems struggle with agile software development the most.On the one hand, the goal of this thesis was to study software architecture practices used in agile software development in the industry. On the other hand, the goal was to develop new methods and techniques to support incremental software architecture working practices which can be aligned with agile methods such as Scrum. The study applied case study, interviews and design science as the main research methods.The results show that there are four main ways to carry out software architecture work while using agile methods. Basing on this result, models for aligning software architec-ture knowledge management were developed. These models can be used as guidelines for selecting the appropriate software architecture practices in an organization.As a part of the research work, an architecture knowledge repository was developed for sharing the knowledge in agile projects and for automatic software architecture document generation. Additionally, the results of this study show that by taking a decision-centric approach to software architecture evaluation, the evaluation method can be lightweight enough to make incremental evaluation a viable option. Similarly, existing software architecture evaluation methods can be boosted to fit agile software development by utilizing domain knowledge
    corecore