11 research outputs found

    Meshing Agile and Plan-Driven Development in Safety-Critical Software:A Case Study

    Get PDF

    Lab Package: Automated Testing Using CI/CD

    Get PDF
    Antud bakalaureusetöö põhieesmärgiks on praktikumimaterjalide loomine automaattestimise kohta kasutades pideva integratsiooni ja tarne süsteemi aine "Tarkvara testimine (LTAT.05.006)" jaoks, mida loetakse Tartu Ülikoolis. Töös kirjeldatakse loodud materjale, analüüsitakse tudengite tagasisidet ja tehakse ettepanekuid edaspidiseks arenduseks.The primary goal of this bachelor’s thesis is to create a lab package about automated testing using a continuous integration and delivery system for the course Software Testing (LTAT.05.006) at the University of Tartu. The thesis introduces the materials produced for this lab, analyses the feedback gathered from students and makes suggestions for future improvements

    Desarrollo guiado por comportamiento: buenas prácticas para la calidad de software

    Get PDF
    Asegurar la calidad y funcionalidad de un producto de software es garantizar su correcta estructura, composición, ejecución e integridad, pero en algunos casos estas características se ven afectadas. El objetivo de la revisión fue identificar buenas prácticas al usar el desarrollo guiado por comportamientos. Para su desarrollo, se indagó en artículos de investigación categorizados en revistas indexadas en bases de datos como IEEE, ScienceDirect, Scielo, Scopus y Redalyc elaboradas entre los años 2016 y 2020. El análisis y revisión permitió identificar buenas prácticas, como el uso de los escenarios solo para pruebas de funcionalidad, organizar las características en carpetas de acuerdo a los escenarios del sistema, contextualizar el funcionamiento al mismo idioma de los clientes para facilitar la comunicación, el uso de etiquetas para agrupar escenarios, organizar características según necesidades y generar escenarios sin dependencia. Se concluyó que estas buenas prácticas permiten una correcta comunicación, diseño estructurado del software, calidad funcional de cada componente de código y sobre todo un producto eficiente con riesgo mínimo de pérdida de recursos y alto margen de éxito.TARAPOTOEscuela Profesional de Ingeniería de SistemasDesarrollo de Softwar

    On the real world practice of Behaviour Driven Development

    Get PDF
    Surveys of industry practice over the last decade suggest that Behaviour Driven Development is a popular Agile practice. For example, 19% of respondents to the 14th State of Agile annual survey reported using BDD, placing it in the top 13 practices reported. As well as potential benefits, the adoption of BDD necessarily involves an additional cost of writing and maintaining Gherkin features and scenarios, and (if used for acceptance testing,) the associated step functions. Yet there is a lack of published literature exploring how BDD is used in practice and the challenges experienced by real world software development efforts. This gap is significant because without understanding current real world practice, it is hard to identify opportunities to address and mitigate challenges. In order to address this research gap concerning the challenges of using BDD, this thesis reports on a research project which explored: (a) the challenges of applying agile and undertaking requirements engineering in a real world context; (b) the challenges of applying BDD specifically and (c) the application of BDD in open-source projects to understand challenges in this different context. For this purpose, we progressively conducted two case studies, two series of interviews, four iterations of action research, and an empirical study. The first case study was conducted in an avionics company to discover the challenges of using an agile process in a large scale safety critical project environment. Since requirements management was found to be one of the biggest challenges during the case study, we decided to investigate BDD because of its reputation for requirements management. The second case study was conducted in the company with an aim to discover the challenges of using BDD in real life. The case study was complemented with an empirical study of the practice of BDD in open source projects, taking a study sample from the GitHub open source collaboration site. As a result of this Ph.D research, we were able to discover: (i) challenges of using an agile process in a large scale safety-critical organisation, (ii) current state of BDD in practice, (iii) technical limitations of Gherkin (i.e., the language for writing requirements in BDD), (iv) challenges of using BDD in a real project, (v) bad smells in the Gherkin specifications of open source projects on GitHub. We also presented a brief comparison between the theoretical description of BDD and BDD in practice. This research, therefore, presents the results of lessons learned from BDD in practice, and serves as a guide for software practitioners planning on using BDD in their projects

    A SysML profile for smart city applications

    Get PDF
    A smart city is an urban center that integrates a variety of solutions to enhance infrastructure performance and achieve sustainable urban development. Urban roads are a critical infrastructure highly demanded by citizens and organizations interested in their deployment, performance, and safety. Urban traffic signal control is a major and challenging problem in the real world, which aims to monitor and enhance traffic congestion. Therefore, the deployment of traffic signals for vehicles or pedestrians at a junction is a complex activity, as it is necessary to establish rules to control the flow of vehicles and pedestrians. Also, traffic flow at intersections changes constantly, depending on weather conditions, day of the week, and period of the year, as well as road works and accidents that further influence complexity and performance. This thesis first describes SmartCitySysML, a proposed profile that adapts SysML with special elements that are specific to smart cities. In addition, an extension of the SmartCitySysML profile to the design of the dimensions of smart cities is proposed. Finally, integration of models is performed, that is, the integration of the SmartCitySysML profile with Petri Net to separately model the basic architectural elements (sensor, controller, and actuator) of an urban traffic control system as sub-models to describe the behavior of each element, and the integration of the SmartCitySysML profile with Timed Coloured Petri Nets (TCPN) for modeling, simulation, and verification of properties of an urban traffic signal control system. CPN tools allow the evaluation of the model behavior through simulation and property verification and perform a simulation-based performance. Model simulation allows observing the behavior of the system under conditions that would be difficult to organize in a truly controlled environment. Consequently, a preliminary evaluation can be performed in the early stages of system development, significantly reducing costs of improvements and increasing quality of the final product.Coordenação de Aperfeiçoamento de Pessoal de Nível Superior - CAPESUma cidade inteligente é um centro urbano que integra uma variedade de soluções para melhorar o desempenho da infraestrutura e alcançar um desenvolvimento urbano sustentável. As estradas urbanas são uma infraestrutura crucial altamente exigida pelos cidadãos e organizações interessadas em sua implantação, desempenho e segurança. O controle de sinais de trânsito urbano é um problema importante e desafiador no mundo real, que visa monitorar e melhorar o congestionamento de trânsito. Portanto, a implantação de semáforos para veículos ou pedestres em um cruzamento é uma atividade complexa, pois é necessário estabelecer regras para controlar o fluxo de veículos e pedestres. O fluxo de tráfego no cruzamento muda constantemente, dependendo das condições climáticas, dia da semana e período do ano, assim como obras e acidentes rodoviários que influenciam ainda mais a complexidade e o desempenho. Esta dissertação descreve primeiro o SmartCitySysML, um perfil proposto que adapta a SysML com elementos especiais que são específicos para cidades inteligentes. Depois, é elaborada uma extensão do perfil SmartCitySysML para o design das dimensões das cidades inteligentes. Em seguida, é realizada a integração de modelos, ou seja, a integração do perfil SmartCitySysML com Redes de Petri para modelar separadamente os elementos arquiteturais básicos (sensor, controlador e atuador) de um sistema de controle de tráfego urbano como sub-modelos para demonstrar o comportamento de cada elemento, e a integração do perfil SmartCitySysML com Redes de Petri Colorida Temporizada (TCPN) para modelagem, simulação e verificação de propriedades do sistema de controle de sinais de trânsito urbano. As ferramentas CPN permitem avaliar o comportamento do modelo por meio de simulação e verificação de propriedades e realizar um desempenho baseado em simulação. A simulação de modelos permite observar o comportamento do sistema sob condições que seriam difíceis de organizar em um ambiente realmente controlado. Consequentemente, uma avaliação preliminar pode ser realizada nos estágios iniciais de desenvolvimento do sistema, reduzindo significativamente os custos de melhorias e aumentando a qualidade do produto final.São Cristóvão, S

    Empirical Standards for Software Engineering Research

    Full text link
    Empirical Standards are natural-language models of a scientific community's expectations for a specific kind of study (e.g. a questionnaire survey). The ACM SIGSOFT Paper and Peer Review Quality Initiative generated empirical standards for research methods commonly used in software engineering. These living documents, which should be continuously revised to reflect evolving consensus around research best practices, will improve research quality and make peer review more effective, reliable, transparent and fair.Comment: For the complete standards, supplements and other resources, see https://github.com/acmsigsoft/EmpiricalStandard

    Safety and Reliability - Safe Societies in a Changing World

    Get PDF
    The contributions cover a wide range of methodologies and application areas for safety and reliability that contribute to safe societies in a changing world. These methodologies and applications include: - foundations of risk and reliability assessment and management - mathematical methods in reliability and safety - risk assessment - risk management - system reliability - uncertainty analysis - digitalization and big data - prognostics and system health management - occupational safety - accident and incident modeling - maintenance modeling and applications - simulation for safety and reliability analysis - dynamic risk and barrier management - organizational factors and safety culture - human factors and human reliability - resilience engineering - structural reliability - natural hazards - security - economic analysis in risk managemen

    A behavior-driven approach for specifying and testing user requirements in interactive systems

    Get PDF
    Dans un processus de conception centré sur l'utilisateur, les artefacts évoluent par cycles itératifs jusqu'à ce qu'ils répondent aux exigences des utilisateurs et deviennent ensuite le produit final. Chaque cycle donne l'occasion de réviser la conception et d'introduire de nouvelles exigences qui pourraient affecter les artefacts qui ont été définis dans les phases de développement précédentes. Garder la cohérence des exigences dans tels artefacts tout au long du processus de développement est une activité lourde et longue, surtout si elle est faite manuellement. Actuellement, certains cadres d'applications implémentent le BDD (Développement dirigé par le comportement) et les récits utilisateur comme un moyen d'automatiser le test des systèmes interactifs en construction. Les tests automatisés permettent de simuler les actions de l'utilisateur sur l'interface et, par conséquent, de vérifier si le système se comporte correctement et conformément aux exigences de l'utilisateur. Cependant, les outils actuels supportant BDD requièrent que les tests soient écrits en utilisant des événements de bas niveau et des composants qui n'existent que lorsque le système est déjà implémenté. En conséquence d'un tel bas niveau d'abstraction, les tests BDD peuvent difficilement être réutilisés avec des artefacts plus abstraits. Afin d'éviter que les tests doivent être écrits sur chaque type d'artefact, nous avons étudié l'utilisation des ontologies pour spécifier à la fois les exigences et les tests, puis exécuter des tests dans tous les artefacts partageant les concepts ontologiques. L'ontologie fondée sur le comportement que nous proposons ici vise alors à élever le niveau d'abstraction tout en supportant l'automatisation de tests dans des multiples artefacts. Cette thèse présente tel ontologie et une approche fondée sur BDD et les récits utilisateur pour soutenir la spécification et l'évaluation automatisée des exigences des utilisateurs dans les artefacts logiciels tout au long du processus de développement des systèmes interactifs. Deux études de cas sont également présentées pour valider notre approche. La première étude de cas évalue la compréhensibilité des spécifications des récits utilisateur par une équipe de propriétaires de produit (POs) du département en charge des voyages d'affaires dans notre institut. À l'aide de cette première étude de cas, nous avons conçu une deuxième étude pour démontrer comment les récits utilisateur rédigés à l'aide de notre ontologie peuvent être utilisées pour évaluer les exigences fonctionnelles exprimées dans des différents artefacts, tels que les modèles de tâche, les prototypes d'interface utilisateur et les interfaces utilisateur à part entière. Les résultats ont montré que notre approche est capable d'identifier même des incohérences à grain fin dans les artefacts mentionnés, permettant d'établir une compatibilité fiable entre les différents artefacts de conception de l'interface utilisateur.In a user-centered design process, artifacts evolve in iterative cycles until they meet user requirements and then become the final product. Every cycle gives the opportunity to revise the design and to introduce new requirements which might affect the artifacts that have been set in former development phases. Keeping the consistency of requirements in such artifacts along the development process is a cumbersome and time-consuming activity, especially if it is done manually. Nowadays, some software development frameworks implement Behavior-Driven Development (BDD) and User Stories as a means of automating the test of interactive systems under construction. Automated testing helps to simulate user's actions on the user interface and therefore check if the system behaves properly and in accordance with the user requirements. However, current tools supporting BDD requires that tests should be written using low-level events and components that only exist when the system is already implemented. As a consequence of such low-level of abstraction, BDD tests can hardly be reused with more abstract artifacts. In order to prevent that tests should be written to every type of artifact, we have investigated the use of ontologies for specifying both requirements and tests once, and then run tests on all artifacts sharing the ontological concepts. The resultant behavior-based ontology we propose herein is therefore aimed at raising the abstraction level while supporting test automation on multiple artifacts. This thesis presents this ontology and an approach based on BDD and User Stories to support the specification and the automated assessment of user requirements on software artifacts along the development process of interactive systems. Two case studies are also presented to validate our approach. The first case study evaluates the understandability of User Stories specifications by a team of Product Owners (POs) from the department in charge of business trips in our institute. With the help of this first case study, we designed a second one to demonstrate how User Stories written using our ontology can be used to assess functional requirements expressed in different artifacts, such as task models, user interface (UI) prototypes, and full-fledged UIs. The results have shown that our approach is able to identify even fine-grained inconsistencies in the mentioned artifacts, allowing establishing a reliable compatibility among different user interface design artifacts
    corecore