12 research outputs found
Parallel programming with PICSIL1
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
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”).
Recommended from our members
Requirements modelling of real-time systems
Real-time systems are characterised by the critical nature of their missions, and the demanding environment with which they interact. Real-time systems are used for dedicated applications. Every application is the subject of special requirements enforced by the customer. Considering the vital role that these systems play, it is imperative that a systematic approach be adopted in modelling their unique requirements. In this thesis I propose such a treatment.
Real-time systems are time critical. Temporal requirements are the timing restrictions imposed by the application environment. Previous studies in requirements modelling of real-time systems have focused on adding the notion of time to modelling techniques of traditional systems without regard to the realities of requirements modelling. The information should be presented in the way the user handles it, and not the way which is convenient to the software engineer. I attempt to understand the needs of the users better by modelling the real world as close to the user's perspective as possible, and propose the Real World Model (RWM). RWM is assumed to be developed by users, and requirements engineers. An engineering approach to building the model is provided.
A real-time system has a well defined use to its community. A requirements model must rely on the user level activities, and aid the human understanding and communication. In the RWM, a real-time system is viewed as a set of concurrently acting automata, each representing a system entity. This model supports temporal reasoning in easily described ways, for all classes of timing properties. A generalised classification of timing constraints is provided.
A requirements modelling language facilitates the description of requirements, and serves as a medium of communication among developers and stakeholders. Jarke et al [Jarke 94] observe that there is a need for a requirements language that manages the relationship between the meta-level domain scheme, and the scenarios that actually instantiate the scheme under development. Here I propose Timed Requirements Language (TRL) to bridge this gulf between the world of stakeholders, and the world of specifiers. TRL has natural looking expressions for formulating the needs. TRL has a number of novel features including the treatment of causality, and the description of static, and dynamic constraints all integrated into one uniform framework. TRL has been used with a number of systems. The generality of the language is validated through its application to specific systems
Recommended from our members
Formalizing graphical notations
The thesis describes research into graphical notations for software engineering, with a principal interest in ways of formalizing them. The research seeks to provide a theoretical basis that will help in designing both notations and the software tools that process them.
The work starts from a survey of literature on notation, followed by a review of techniques for formal description and for computational handling of notations. The survey concentrates on collecting views of the benefits and the problems attending notation use in software development; the review covers picture description languages, grammars and tools such as generic editors and visual programming environments. The main problem of notation is found to be a lack of any coherent, rigorous description methods. The current approaches to this problem are analysed as lacking in consensus on syntax specification and also lacking a clear focus on a defined concept of notated expression.
To address these deficiencies, the thesis embarks upon an exploration of serniotic, linguistic and logical theory; this culminates in a proposed formalization of serniosis in notations, using categorial model theory as a mathematical foundation. An argument about the structure of sign systems leads to an analysis of notation into a layered system of tractable theories, spanning the gap between expressive pictorial medium and subject domain. This notion of 'tectonic' theory aims to treat both diagrams and formulae together.
The research gives details of how syntactic structure can be sketched in a mathematical sense, with examples applying to software development diagrams, offering a new solution to the problem of notation specification. Based on these methods, the thesis discusses directions for resolving the harder problems of supporting notation design, processing and computer-aided generic editing. A number of future research areas are thereby opened up. For practical trial of the ideas, the work proceeds to the development and partial implementation of a system to aid the design of notations and editors. Finally the thesis is evaluated as a contribution to theory in an area which has not attracted a standard approach
Contribution à la méthodologie de conception système : application à la réalisation d'un microsystème multicapteurs communicant pour le génie civil
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
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
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
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