12 research outputs found

    Parallel programming with PICSIL1

    Get PDF
    This paper describes the background and development of PICSIL1 a visual language for specifying parallel algorithms using structured decomposition. PICSIL1 draws upon graphical and textual specification techniques; the first for high level structure of an algorithm, the second for more detailed functional specifications. The graphical specification techniques used in PICSIL1 are based on Data Flow Diagrams (DFDs) and are well suited to the assembly and interconnection of abstract modules. Minor modifications to DFDs have however had to be made to make them suitable for describing parallel algorithms. These include the ability to dynamically replicate sections of a diagram and change the structure of parts of a diagram dependent on data being processed. Work is proceeding on the development of an editor to allow the direct capture and editing of PICSIL1 descriptions. In the near future development of compiler and visual debugging tools are planned

    Contribution to Software Development Method based on Generalized Requirement Approach

    Get PDF
    Requirements’ gathering is one of the first steps in the software development process. Gathering business requirements, when the final product requirements are dictated by a known client, can be a difficult process. Even if the client knows their own business best, often their idea about a new business product is obscure, and described by general terms that contribute very much to common misunderstandings among the participants. Business requirement verification when the requirements are gathered using text and graphics can be a slow, error-prone, and expensive process. Misunderstandings and omitted requirements cause the need for revisions and increase project costs and delays. This research work proposes a new approach to the business software development process and is focused on the client’s understanding of how the business software development process works as well as a demonstration of the business requirement practices during requirement negotiation process. While the current software development process validates the business requirement at the end of the development process, this method implementation enables business requirement validation during the requirement negotiation phase. The process of the business requirement negotiation is guided by a set of predefined questions. These questions are guidelines for specifying a sufficient level of requirement details for generating executable code that is able to demonstrate each requirement. Effective implementation of the proposed method requires employment of the GRA Framework. Besides providing guidelines for requirement specification, the Framework shall create executable and provide the test environment for a requirement demonstration. This dissertation implements an example framework that is built around a central repository. Stored within the repository is the data collected during the requirement negotiations process. Access to the repository is managed by a Web interface that enables a collaborative and paperless environment. The result is that the data is stored in one place and updates are reflected to the stakeholders immediately. The executable code is generated by the Generator, a module that provides general programming units that are able to create source code files, databases, SQL statements, classes and methods, navigation menus, and demo applications, all from the data stored in the data repository. The generated software can then be used for the business requirement demonstration. This method assumes that any further development process is built around the requirements repository, which can provide continuous tracking of implementation changes. Besides readily documenting, tracking, and validating the requirements, this method addresses multiple requirement management syndromes such as the insufficient requirements description details provision, the IKIWISI (“I’ll know it when I see it”) Syndrome, the Yes, But Syndrome (“That is not exactly what I mean”), and the Undiscovered Ruins Syndrome (“Now that I see it, I have another requirement to add”).

    The Generalized Requirement Approach for Requirement Validation with Automatically Generated Program Code

    Get PDF

    Contribution à la méthodologie de conception système : application à la réalisation d'un microsystème multicapteurs communicant pour le génie civil

    Get PDF
    Ce travail de thèse porte sur la problématique de conception et de réalisation d'un microsystème multicapteur communicant pour une application Génie Civil. Ces travaux ont associé le LAAS-CNRS et EDF R&D. Il présente et définit la problématique de recherche et de développement de nouvelles générations d'outils pour la conception système et traite conjointement un exemple d'application proposant notamment une solution de mesure de microdéplacement sur site. Ce manuscrit fait d'abord le point sur la dynamique de développement microsystème et rappelle les méthodes de conception et d'intégration de systèmes à base de composants COTS. Le projet qui nous concerne est ensuite présenté et analysé par la méthode de l'analyse du besoin pour établir un cahier des charges, porte d'entrée de la démarche générale de conception. Il montre, sur l'exemple proposé, les étapes que nous avons conduites pour atteindre le stade des spécifications validées. La méthodologie de conception amont proposée associe la démarche Top-Down et SysML pour réduire au maximum le lien entre le cahier des charges et la première représentation modélisée du système. Cette modélisation amont, indépendante de l'implémentation, est effectuée sous l'outil HiLeS et ouvre la voie de la première vérification du système, par le biais de la logique temporelle. Ensuite, les choix d'agrégation, de sélection et d'implémentation des composants sont décrits et permettent d'aboutir à la modélisation fonctionnelle sous VHDL-AMS et au prototypage virtuel. Enfin, ce travail présente les étapes d'intégration et les choix de composants qui mènent au prototype réel. Une première validation de ce prototype réalisé est effectuée par des mesures sur site. ABSTRACT : The study described in this thesis focuses on the design and realisation of a wireless multisensor microsystem for Civil Engineering. It defines the problem associated with the realisation of a new generation of system design tools. A possible solution is presented and used for the design of an autonomous micro-displacement measuring system. This microsystem has been developed in a joint collaboration between the LAAS-CNRS and EDF R&D. Initially, this manuscript examines the trends in microsystem development and points out the methods of design and integration of systems containing COTS components. The aim of this project is then presented and analysed using the requirement analysis method in order to establish the specifications of the micro-displacement measuring system. These specifications are then utilised in the general design methodology. The proposed design methodology associates Top-Down and SysML approaches to fill the gap between the system specifications and the first system model. This high level model, which is independent of the implementation, is made using the HiLeS software tool and opens the way for the first system model verification, via temporal logic. Then, aggregation, selection, and implementation choices for components enable the functional modelling under VHDL-AMS and virtual prototyping. Finally, this work presents the component choices and the integration steps that have lead to the realisation of a prototype which has been validated by laboratory tests

    Development of a graphical approach to software requirements analysis

    Get PDF
    Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Nuclear Engineering, 1998.Includes bibliographical references (p. 205-226).by Xinhui Chen.Ph.D

    Enterprise modelling and its application to organisational requirements, capture and definition

    Get PDF
    PhD ThesisComputers have gone from being solely large number crunching machines to small devices capable of performing a myriad of functions in a very small space of time. Computers are now used to control just about every facet of daily life; they can now be found in automobiles, washing machines and home heating systems. This rapid diversification brings a great many problems. Traditional software engineering methodologies are failing to meet and address these new problems. The goal of this thesis is to develop a new approach to organisational requirements engineering. A new modelling approach to representing organisations will be developed which will draw upon the concepts of a systems architecture, modelling the life cycle of responsibilities and the execution of conversations. Using this architecture an organisation will be able to embed social and cultural aspects within the modelling notation. From the modelling of responsibilities a clearer picture of the organisation's aims, objectives and policies will be developed along with a definition of what objects and access rights are required in order for the organisation to function. Using speech act and Petri net based models to model conversations a clearer understanding of the dynamics and constraints governing organisational behaviour can be developed. These modelling approaches are then applied to two real life case studies in order to demonstrate and evaluate their performance and usefulness

    Process Models for Learning Patterns in FLOSS Repositories

    Get PDF
    Evidence suggests that Free/Libre Open Source Software (FLOSS) environments provide unlimited learning opportunities. Community members engage in a number of activities both during their interaction with their peers and while making use of these environments’ repositories. To date, numerous studies document the existence of learning processes in FLOSS through surveys or by means of questionnaires filled by FLOSS projects participants. At the same time, there is a surge in developing tools and techniques for extracting and analyzing data from different FLOSS data sources that has birthed a new field called Mining Software Repositories (MSR). In spite of these growing tools and techniques for mining FLOSS repositories, there is limited or no existing approaches to providing empirical evidence of learning processes directly from these repositories. Therefore, in this work we sought to trigger such an initiative by proposing an approach based on Process Mining. With this technique, we aim to trace learning behaviors from FLOSS participants’ trails of activities as recorded in FLOSS repositories. We identify the participants as Novices and Experts. A Novice is defined as any FLOSS member that benefits from a learning experience through acquiring new skills while the Expert is the provider of these skills. The significance of our work is mainly twofold. First and foremost, we extend the MSR field by showing the potential of mining FLOSS repositories by applying Process Mining techniques. Lastly, our work provides critical evidence that boosts the understanding of learning behavior in FLOSS communities by analyzing the relevant repositories. In order to accomplish this, we have proposed and implemented a methodology that follows a seven-step approach including developing an appropriate terminology or ontology for learning processes in FLOSS, contextualizing learning processes through a-priori models, generating Event Logs, generating corresponding process models, interpreting and evaluating the value of process discovery, performing conformance analysis and verifying a number of formulated hypotheses with regard to tracing learning patterns in FLOSS communities. The implementation of this approach has resulted in the development of the Ontology of Learning in FLOSS (OntoLiFLOSS) environments that defines the terms needed to describe learning processes in FLOSS as well as providing a visual representation of these processes through Petri net-like Workflow nets. Moreover, another novelty pertains to the mining of FLOSS repositories by defining and describing the preliminaries required for preprocessing FLOSS data before applying Process Mining techniques for analysis. Through a step-by-step process, we effectively detail how the Event Logs are constructed through generating key phrases and making use of Semantic Search. Taking a FLOSS environment called Openstack as our data source, we apply our proposed techniques to identify learning activities based on key phrases catalogs and classification rules expressed through pseudo code as well as the appropriate Process Mining tool. We thus produced Event Logs that are based on the semantic content of messages in Openstack’s Mailing archives, Internet Relay Chat (IRC) messages, Reviews, Bug reports and Source code to retrieve the corresponding activities. Considering these repositories in light of the three learning process phases (Initiation, Progression and maturation), we produced an Event Log for each participant (Novice or Expert) in every phase on the corresponding dataset. Hence, we produced 14 Event Logs that helped build 14 corresponding process maps which are visual representation of the flow occurrence of learning activities in FLOSS for each participant. These process maps provide critical indications that speak volumes in terms of the presence of learning processes in the analyzed repositories. The results show that learning activities do occur at a significant rate during messages exchange on both Mailing archives and IRC messages. The slight differences between the two datasets can be highlighted in two ways. First, the involvement of Experts is more on iv IRC than it is on Mailing archives with 7.22% and 0.36% of Expert involvement respectively on IRC forums and Mailing lists. This can be justified by the differences in the length of messages sent on these two datasets. The average length of sent messages is 3261 characters for an email compared to 60 characters for a chat message. The evidence produced from this mining experiment solidifies the finding in terms of the existence of learning processes in FLOSS as well as the scale at which they occur. While the Initiation phase shows the Novice as the most involved in the start of the learning process, during Progression phase the involvement of the Expert can be seen to be significantly increasing. In order to trace the advanced skills in the Maturation phase, we look at repositories that store data about developing, creating code, examining and reviewing the code, identifying and fixing possible bugs. Therefore, we consider three repositories including Source Code, Bug reports and Reviews. The results obtained in this phase largely justify the choice of these three datasets to track learning behavior at this stage. Both the Bug reports and the Source code demonstrate the commitment of the Novice to seek answers and interact as much as possible in strengthening the acquired skills. With a participation of 49.22% for the Novice against 46.72% for the Expert and 46.19 % against 42.04% respectively on Bug reports and Source code, the Novice still engages significantly in learning. On the last dataset, Reviews, we notice an increase in the Expert’s role. The Expert performs activities to the tune of 40.36 % of total number of activities against 22.17 % for the Novice. The last steps of our methodology steer the comparison of the defined a-priori models with final models that describe how learning processes occur according to the actual behavior from Event Logs. Our attempts to producing process models start with depicting process maps to track the actual behaviour as it occurs in Openstack repositories, before concluding with final Petri net models representative of learning processes in FLOSS as a result of conformance analysis. For every dataset in the corresponding learning phase, we produce 3 process maps respectively depicting the overall learning behaviour for all FLOSS community members (Novice or Expert together), then the Novice and Expert. In total, we produced 21 process maps, empirically describing process models on real data, 14 process models in the form of Petri nets for every participant on each dataset. We make use of the Artificial Immune System (AIS) algorithms to merge the 14 Event Logs that uniquely capture the behaviour of every participant on different datasets in the three phases. We then reanalyze the resulting logs in order to produce 6 global models that inclusively provide a comprehensive depiction of participants’ learning behavior in FLOSS communities. This description hints that Workflow nets introduced as our a-priori models give rather a more simplistic representation of learning processes in FLOSS. Nevertheless, our experiments with Event Logs starting from process discovery to conformance checking from Openstack repositories demonstrate that the real learning behaviors are more complete and most importantly largely submerge these simplistic a-priori models. Finally, our methodology has proved to be effective in both providing a novel alternative for mining FLOSS repositories and providing empirical evidence that describes how knowledge is exchanged in FLOSS environments. Moreover, our results enrich the MSR field by providing a reproducible step-by-step problem solving approach that can be customized to answer subsequent research questions in FLOSS repositories using Process Mining
    corecore