1,513 research outputs found

    Programming patterns and development guidelines for Semantic Sensor Grids (SemSorGrid4Env)

    No full text
    The web of Linked Data holds great potential for the creation of semantic applications that can combine self-describing structured data from many sources including sensor networks. Such applications build upon the success of an earlier generation of 'rapidly developed' applications that utilised RESTful APIs. This deliverable details experience, best practice, and design patterns for developing high-level web-based APIs in support of semantic web applications and mashups for sensor grids. Its main contributions are a proposal for combining Linked Data with RESTful application development summarised through a set of design principles; and the application of these design principles to Semantic Sensor Grids through the development of a High-Level API for Observations. These are supported by implementations of the High-Level API for Observations in software, and example semantic mashups that utilise the API

    Strategies for doing Agile in a non-Agile Environment

    Get PDF
    Background: Most companies practicing Agile are not fully Agile but instead they combine both Agile and traditional practices in their operations. It is not clear how these practices can be successfully used together in an organisation.Aims: We investigate practitioners' mitigation strategies related to the challenge of doing Agile in a non-Agile environment.Method: Strategies were collected during two studies, an online survey and an interactive workshop run at an Agile meetup and analysed thematically.Results: Strategies related to the wider organisation and not just software development. Two perspectives emerged from the data: an organisational and a change perspective. Five organisational themes were identified with Management and decision-making and Culture the two biggest themes. Nine change themes were identified, with Being open, Using specific approaches and Educating the biggest themes.Conclusions: Better understanding is needed of how Agile practitioners can accomplish bottom-up change in their organisation

    An agile based integrated framework for software development.

    Get PDF
    Doctor of Philosophy in Management. University of KwaZulu-Natal. Durban, 2018.Software development practice has been guided by practitioners and academics along an evolutionary path that extends from a Waterfall approach, characterised as highly prescriptive, to an approach that is agile, embracing the dynamic context in which software is developed. Agile Methodology is informed by a set of generic principles and agile methods that are customised by practitioners to meet the requirements of the environment in which it is used. Insight into the customisation of agile methods is pivotal to uphold the evolutionary trajectory of software development methodology. The study adopted a ‘socio-technical’ orientation to enhance the implementation of Agile Methodology. The social component of the study was aligned to the role played by organisational culture in the adoption of software development methodology. The amorphous concept of organisational culture has been operationalised by implementing the Competing Values Framework to develop a model that aligns organisational culture to an optimal methodology for software development. The technical component of the study has a software engineering focus. The study leveraged experiential knowledge of software development by South African software practitioners to develop a customised version of a prominent agile software development method. The model has been developed so that it is compatible with a variant of organisational culture that is aligned with agile methodology. The study implemented a sequential research design strategy consisting of two phases. The first phase was qualitative consisting of a phenomenological approach to develop the study’s main models. The second phase was quantitative, underpinned by technology acceptance theory, consisting of a survey based approach to determine South African software practitioners’ acceptance of the agile-oriented technical model that was developed in the study. The results from the survey indicated an 80% acceptance of the model proposed in study. Structural Equation Modelling was used to demonstrate that the inclusion of organisational culture as an independent construct improved the predictive capacity of technology acceptance theory in the context of software development methodology adoption. The study’s overall theoretical contribution was to highlight the significance of organisational culture in the implementation of agile methodology and to extend the evolutionary path of software development methodology by proposing an agile oriented model that scales the software process to an organisational infrastructure level

    “Best Practice” without Evidence – Agile Software Methodology as Example

    Get PDF
    Despite the essentiality of education, and the widely known unscientific nature of expert opinion, education in general appears to be based on expert opinion. The example analyzed herein is of Agile software methodology, which is deemed a best practice and therefore taught in most IT studies, in Norway and most probably internationally. This is despite that it appears to be a well known fact within its respective field that the Agile methodology lacks scientific justification. A tertiary analysis was conducted to test this well known fact and to serve as basis for exploring what should be considered sufficient evidence for inclusion within official education. The result of the tertiary study is that, indeed, the evidence for the Agile methodology is scarce at best. A method to avoid such mistake is suggested, which could be valuable to science in general. This method entails employing philosophers of science, epistemologists, to counteract potential expert biases and verify the curriculum before it is accepted in official education

    Software engineering perspectives on physiological computing

    Get PDF
    Physiological computing is an interesting and promising concept to widen the communication channel between the (human) users and computers, thus allowing an increase of software systems' contextual awareness and rendering software systems smarter than they are today. Using physiological inputs in pervasive computing systems allows re-balancing the information asymmetry between the human user and the computer system: while pervasive computing systems are well able to flood the user with information and sensory input (such as sounds, lights, and visual animations), users only have a very narrow input channel to computing systems; most of the time, restricted to keyboards, mouse, touchscreens, accelerometers and GPS receivers (through smartphone usage, e.g.). Interestingly, this information asymmetry often forces the user to subdue to the quirks of the computing system to achieve his goals -- for example, users may have to provide information the software system demands through a narrow, time-consuming input mode that the system could sense implicitly from the human body. Physiological computing is a way to circumvent these limitations; however, systematic means for developing and moulding physiological computing applications into software are still unknown. This thesis proposes a methodological approach to the creation of physiological computing applications that makes use of component-based software engineering. Components help imposing a clear structure on software systems in general, and can thus be used for physiological computing systems as well. As an additional bonus, using components allow physiological computing systems to leverage reconfigurations as a means to control and adapt their own behaviours. This adaptation can be used to adjust the behaviour both to the human and to the available computing environment in terms of resources and available devices - an activity that is crucial for complex physiological computing systems. With the help of components and reconfigurations, it is possible to structure the functionality of physiological computing applications in a way that makes them manageable and extensible, thus allowing a stepwise and systematic extension of a system's intelligence. Using reconfigurations entails a larger issue, however. Understanding and fully capturing the behaviour of a system under reconfiguration is challenging, as the system may change its structure in ways that are difficult to fully predict. Therefore, this thesis also introduces a means for formal verification of reconfigurations based on assume-guarantee contracts. With the proposed assume-guarantee contract framework, it is possible to prove that a given system design (including component behaviours and reconfiguration specifications) is satisfying real-time properties expressed as assume-guarantee contracts using a variant of real-time linear temporal logic introduced in this thesis - metric interval temporal logic for reconfigurable systems. Finally, this thesis embeds both the practical approach to the realisation of physiological computing systems and formal verification of reconfigurations into Scrum, a modern and agile software development methodology. The surrounding methodological approach is intended to provide a frame for the systematic development of physiological computing systems from first psychological findings to a working software system with both satisfactory functionality and software quality aspects. By integrating practical and theoretical aspects of software engineering into a self-contained development methodology, this thesis proposes a roadmap and guidelines for the creation of new physiological computing applications.Physiologisches Rechnen ist ein interessantes und vielversprechendes Konzept zur Erweiterung des Kommunikationskanals zwischen (menschlichen) Nutzern und Rechnern, und dadurch die Berücksichtigung des Nutzerkontexts in Software-Systemen zu verbessern und damit Software-Systeme intelligenter zu gestalten, als sie es heute sind. Physiologische Eingangssignale in ubiquitären Rechensystemen zu verwenden, ermöglicht eine Neujustierung der Informationsasymmetrie, die heute zwischen Menschen und Rechensystemen existiert: Während ubiquitäre Rechensysteme sehr wohl in der Lage sind, den Menschen mit Informationen und sensorischen Reizen zu überfluten (z.B. durch Töne, Licht und visuelle Animationen), hat der Mensch nur sehr begrenzte Einflussmöglichkeiten zu Rechensystemen. Meistens stehen nur Tastaturen, die Maus, berührungsempfindliche Bildschirme, Beschleunigungsmesser und GPS-Empfänger (zum Beispiel durch Mobiltelefone oder digitale Assistenten) zur Verfügung. Diese Informationsasymmetrie zwingt die Benutzer zur Unterwerfung unter die Usancen der Rechensysteme, um ihre Ziele zu erreichen - zum Beispiel müssen Nutzer Daten manuell eingeben, die auch aus Sensordaten des menschlichen Körpers auf unauffällige weise erhoben werden können. Physiologisches Rechnen ist eine Möglichkeit, diese Beschränkung zu umgehen. Allerdings fehlt eine systematische Methodik für die Entwicklung physiologischer Rechensysteme bis zu fertiger Software. Diese Dissertation präsentiert einen methodischen Ansatz zur Entwicklung physiologischer Rechenanwendungen, der auf der komponentenbasierten Softwareentwicklung aufbaut. Der komponentenbasierte Ansatz hilft im Allgemeinen dabei, eine klare Architektur des Software-Systems zu definieren, und kann deshalb auch für physiologische Rechensysteme angewendet werden. Als zusätzlichen Vorteil erlaubt die Komponentenorientierung in physiologischen Rechensystemen, Rekonfigurationen als Mittel zur Kontrolle und Anpassung des Verhaltens von physiologischen Rechensystemen zu verwenden. Diese Adaptionstechnik kann genutzt werden um das Verhalten von physiologischen Rechensystemen an den Benutzer anzupassen, sowie an die verfügbare Recheninfrastruktur im Sinne von Systemressourcen und Geräten - eine Maßnahme, die in komplexen physiologischen Rechensystemen entscheidend ist. Mit Hilfe der Komponentenorientierung und von Rekonfigurationen wird es möglich, die Funktionalität von physiologischen Rechensystemen so zu strukturieren, dass das System wartbar und erweiterbar bleibt. Dadurch wird eine schrittweise und systematische Erweiterung der Funktionalität des Systems möglich. Die Verwendung von Rekonfigurationen birgt allerdings Probleme. Das Systemverhalten eines Software-Systems, das Rekonfigurationen unterworfen ist zu verstehen und vollständig einzufangen ist herausfordernd, da das System seine Struktur auf schwer vorhersehbare Weise verändern kann. Aus diesem Grund führt diese Arbeit eine Methode zur formalen Verifikation von Rekonfigurationen auf Grundlage von Annahme-Zusicherungs-Verträgen ein. Mit dem vorgeschlagenen Annahme-Zusicherungs-Vertragssystem ist es möglich zu beweisen, dass ein gegebener Systementwurf (mitsamt Komponentenverhalten und Spezifikation des Rekonfigurationsverhaltens) eine als Annahme-Zusicherungs-Vertrag spezifizierte Echtzeiteigenschaft erfüllt. Für die Spezifikation von Echtzeiteigenschaften kann eine Variante von linearer Temporallogik für Echtzeit verwendet werden, die in dieser Arbeit eingeführt wird: Die metrische Intervall-Temporallogik für rekonfigurierbare Systeme. Schließlich wird in dieser Arbeit sowohl ein praktischer Ansatz zur Realisierung von physiologischen Rechensystemen als auch die formale Verifikation von Rekonfigurationen in Scrum eingebettet, einer modernen und agilen Softwareentwicklungsmethodik. Der methodische Ansatz bietet einen Rahmen für die systematische Entwicklung physiologischer Rechensysteme von Erkenntnissen zur menschlichen Physiologie hin zu funktionierenden physiologischen Softwaresystemen mit zufriedenstellenden funktionalen und qualitativen Eigenschaften. Durch die Integration sowohl von praktischen wie auch theoretischen Aspekten der Softwaretechnik in eine vollständige Entwicklungsmethodik bietet diese Arbeit einen Fahrplan und Richtlinien für die Erstellung neuer physiologischer Rechenanwendungen

    Cultures of Agility – Agile Software Development in Practice

    Get PDF
    Agile Software Development (ASD) has gained much attention as an approach that provides values and principles for dealing with turbulent environments and change as they are now common for many systems development projects. Literature stresses the importance of organizational culture for agile development, but only little empirical research about their relationship has been conducted. On this background we carried out a cultural analysis in 3 organizations which perform systems and software development according to agile principles. We found that agile development thrives in different organizational cultures as long as the 4 core values are present to a significant extent. This is possible because agile methods bear to compromise even with central elements of the agile approach; this is the essence of agility

    Co-creation for transdisciplinarity - Adoption of participatory design and agile project management in collaborative research processes

    Get PDF
    Aquest projecte doctoral explora mètodes de cocreació aplicats a la recerca transdisciplinària. En el context de la societat de la informació, la col·laboració en recerca ha crescut en popularitat entre els equips científics, sota molts enfocaments i formes. Entre aquests, la transdisciplinarietat representa un tipus específic d'activitat científica col·laborativa. La investigació transdisciplinària va més enllà de la col·laboració d'experts de diferents disciplines, ja que també pot involucrar no experts i comunitats no científiques per abordar de manera integral diferents qüestions i problemàtiques, com és el cas de la ciència ciutadana o la recerca acció. La transdisciplinarietat implica processos de recerca complexos i nous desafiaments, com la forma d'abordar la diversitat dels participants, especialment per planificar i gestionar projectes. Aquesta tesi, articulada al voltant d'un compendi de publicacions, explora fins a quin punt i en quina mesura les metodologies de cocreació poden contribuir a abordar aquests desafiaments, en diferents contextos i fases de la recerca transdisciplinària.Este proyecto de doctorado explora métodos de cocreación aplicados a la investigación transdisciplinaria. En el contexto de la sociedad de la información, la colaboración en investigación ha crecido en popularidad entre equipos científicos, bajo muchos enfoques y formas. Entre ellos, la transdisciplinariedad representa un tipo específico de actividad científica colaborativa. La investigación transdisciplinaria va más allá de la colaboración de expertos de diferentes disciplinas, ya que también puede involucrar a no expertos y comunidades no científicas para abordar de manera integral diferentes cuestiones y problemáticas, como en el caso de la ciencia ciudadana o la investigación acción. La transdisciplinariedad implica procesos de investigación complejos y nuevos desafíos, como la forma de abordar la diversidad de los participantes, especialmente para planificar y gestionar proyectos. Esta tesis explora hasta qué punto y en qué medida las metodologías de cocreación pueden contribuir a abordar estos desafíos, en diferentes contextos y fases de la investigación transdisciplinaria.Collaborative research in the network society has taken on a number of approaches and forms and has grown in popularity among scientific teams. One specific example of this is transdisciplinary research, which not only depends on the collaboration of experts from different disciplines, but also turns to non-experts and non-scientific communities of stakeholders in order to holistically address a range of different problems and issues, as is the case with citizen science and action research. Transdisciplinarity encompasses complex research processes and faces new challenges, such as how to deal with participant diversity, especially in terms of project planning and management. This doctoral thesis, founded upon a compendium of previous research, explores if and to what extent co-creation methodologies can aid in overcoming these challenges in different contexts and phases of transdisciplinary research
    corecore