16 research outputs found

    Efficient abstractions for visualization and interaction

    Get PDF
    Abstractions, such as functions and methods, are an essential tool for any programmer. Abstractions encapsulate the details of a computation: the programmer only needs to know what the abstraction achieves, not how it achieves it. However, using abstractions can come at a cost: the resulting program may be inefficient. This can lead to programmers not using some abstractions, instead writing the entire functionality from the ground up. In this thesis, we present several results that make this situation less likely when programming interactive visualizations. We present results that make abstractions more efficient in the areas of graphics, layout and events

    Software development process mining: discovery, conformance checking and enhancement

    Get PDF
    Context. Modern software projects require the proper allocation of human, technical and financial resources. Very often, project managers make decisions supported only by their personal experience, intuition or simply by mirroring activities performed by others in similar contexts. Most attempts to avoid such practices use models based on lines of code, cyclomatic complexity or effort estimators, thus commonly supported by software repositories which are known to contain several flaws. Objective. Demonstrate the usefulness of process data and mining methods to enhance the software development practices, by assessing efficiency and unveil unknown process insights, thus contributing to the creation of novel models within the software development analytics realm. Method. We mined the development process fragments of multiple developers in three different scenarios by collecting Integrated Development Environment (IDE) events during their development sessions. Furthermore, we used process and text mining to discovery developers’ workflows and their fingerprints, respectively. Results. We discovered and modeled with good quality developers’ processes during programming sessions based on events extracted from their IDEs. We unveiled insights from coding practices in distinct refactoring tasks, built accurate software complexity forecast models based only on process metrics and setup a method for characterizing coherently developers’ behaviors. The latter may ultimately lead to the creation of a catalog of software development process smells. Conclusions. Our approach is agnostic to programming languages, geographic location or development practices, making it suitable for challenging contexts such as in modern global software development projects using either traditional IDEs or sophisticated low/no code platforms.Contexto. Projetos de software modernos requerem a correta alocação de recursos humanos, técnicos e financeiros. Frequentemente, os gestores de projeto tomam decisões suportadas apenas na sua própria experiência, intuição ou simplesmente espelhando atividades executadas por terceiros em contextos similares. As tentativas para evitar tais práticas baseiam-se em modelos que usam linhas de código, a complexidade ciclomática ou em estimativas de esforço, sendo estes tradicionalmente suportados por repositórios de software conhecidos por conterem várias limitações. Objetivo. Demonstrar a utilidade dos dados de processo e respetivos métodos de análise na melhoria das práticas de desenvolvimento de software, colocando o foco na análise da eficiência e revelando aspetos dos processos até então desconhecidos, contribuindo para a criação de novos modelos no contexto de análises avançadas para o desenvolvimento de software. Método. Explorámos os fragmentos de processo de vários programadores em três cenários diferentes, recolhendo eventos durante as suas sessões de desenvolvimento no IDE. Adicionalmente, usámos métodos de descoberta e análise de processos e texto no sentido de modelar o fluxo de trabalho dos programadores e as suas características individuais, respetivamente. Resultados. Descobrimos e modelámos com boa qualidade os processos dos programadores durante as suas sessões de trabalho, usando eventos provenientes dos seus IDEs. Revelámos factos desconhecidos sobre práticas de refabricação, construímos modelos de previsão da complexidade ciclomática usando apenas métricas de processo e criámos um método para caracterizar coerentemente os comportamentos dos programadores. Este último, pode levar à criação de um catálogo de boas/más práticas no processo de desenvolvimento de software. Conclusões. A nossa abordagem é agnóstica em termos de linguagens de programação, localização geográfica ou prática de desenvolvimento, tornando-a aplicável em contextos complexos tal como em projetos modernos de desenvolvimento global que utilizam tanto os IDEs tradicionais como as atuais e sofisticadas plataformas "low/no code"

    Technology 2001: The Second National Technology Transfer Conference and Exposition, volume 2

    Get PDF
    Proceedings of the workshop are presented. The mission of the conference was to transfer advanced technologies developed by the Federal government, its contractors, and other high-tech organizations to U.S. industries for their use in developing new or improved products and processes. Volume two presents papers on the following topics: materials science, robotics, test and measurement, advanced manufacturing, artificial intelligence, biotechnology, electronics, and software engineering

    Human decision-making in computer security incident response

    Get PDF
    Background: Cybersecurity has risen to international importance. Almost every organization will fall victim to a successful cyberattack. Yet, guidance for computer security incident response analysts is inadequate. Research Questions: What heuristics should an incident analyst use to construct general knowledge and analyse attacks? Can we construct formal tools to enable automated decision support for the analyst with such heuristics and knowledge? Method: We take an interdisciplinary approach. To answer the first question, we use the research tradition of philosophy of science, specifically the study of mechanisms. To answer the question on formal tools, we use the research tradition of program verification and logic, specifically Separation Logic. Results: We identify several heuristics from biological sciences that cybersecurity researchers have re-invented to varying degrees. We consolidate the new mechanisms literature to yield heuristics related to the fact that knowledge is of clusters of multi-field mechanism schema on four dimensions. General knowledge structures such as the intrusion kill chain provide context and provide hypotheses for filling in details. The philosophical analysis answers this research question, and also provides constraints on building the logic. Finally, we succeed in defining an incident analysis logic resembling Separation Logic and translating the kill chain into it as a proof of concept. Conclusion: These results benefits incident analysis, enabling it to expand from a tradecraft or art to also integrate science. Future research might realize our logic into automated decision-support. Additionally, we have opened the field of cybersecuity to collaboration with philosophers of science and logicians

    A report on the commercial and educational applications of expert systems

    Get PDF
    Expert, or intelligent knowledge-based, systems have emerged as the main practical application of Artificial Intelligence research. This thesis reports on their history, development and increasing commercial application. An analysis of the tasks and domains of 785 systems is reported which indicated a level of task specificity. The technology is suggestive of significant educational relevance as it is closely linked with concepts of expertise, intelligence, knowledge and learning. These basic educational concepts are discussed. The thesis reports on a survey of the use of the NCC Expert System Starter Pack in Further and Higher Education. The relationship between other computer-based learning systems and expert systems are discussed and it is argued that the development of intelligent tutoring systems is a more complex operation than the educational application of expert systems. A wide spectrum of potential educational applications is indicated. It is suggested that placing pupils in the position of knowledge engineers provides an exciting curriculum application. It is further argued that the use of expert systems in a commercial training role promises to be a major future development. Other educational applications are considered and the wider social implications associated with the use of expert systems are summarised

    2003-2004

    Get PDF
    Contains information on courses and class descriptions as well as campus resources at Collin College.https://digitalcommons.collin.edu/catalogs/1015/thumbnail.jp

    Techniques in Active and Generic Software Libraries

    Get PDF
    Reusing code from software libraries can reduce the time and effort to construct software systems and also enable the development of larger systems. However, the benefits that come from the use of software libraries may not be realized due to limitations in the way that traditional software libraries are constructed. Libraries come equipped with application programming interfaces (API) that help enforce the correct use of the abstractions in those libraries. Writing new components and adapting existing ones to conform to library APIs may require substantial amounts of "glue" code that potentially affects software's efficiency, robustness, and ease-of-maintenance. If, as a result, the idea of reusing functionality from a software library is rejected, no benefits of reuse will be realized. This dissertation explores and develops techniques that support the construction of software libraries with abstraction layers that do not impede efficiency. In many situations, glue code can be expected to have very low (or zero) performance overhead. In particular, we describe advances in the design and development of active libraries - software libraries that take an active role in the compilation of the user's code. Common to the presented techniques is that they may "break" a library API (in a controlled manner) to adapt the functionality of the library for a particular use case. The concrete contributions of this dissertation are: a library API that supports iterator selection in the Standard Template Library, allowing generic algorithms to find the most suitable traversal through a container, allowing (in one case) a 30-fold improvement in performance; the development of techniques, idioms, and best practices for concepts and concept maps in C++, allowing the construction of algorithms for one domain entirely in terms of formalisms from a second domain; the construction of generic algorithms for algorithmic differentiation, implemented as an active library in Spad, language of the Open Axiom computer algebra system, allowing algorithmic differentiation to be applied to the appropriate mathematical object and not just concrete data-types; and the description of a static analysis framework to describe the generic programming notion of local specialization within Spad, allowing more sophisticated (value-based) control over algorithm selection and specialization in categories and domains. We will find that active libraries simultaneously increase the expressivity of the underlying language and the performance of software using those libraries

    Co-operative information system design : how multi-domain information system design takes place in UK organisations

    Get PDF
    The thesis focussed on the need to understand the nature of design processes in innovative, multi-domain, organisational information systems design. A cross-disciplinary, interpretive investigation of organisational IS design was based upon multiple literatures: information system development and methodologies, human-computer interaction, situated action, social psychology, psychology of programming, computer-supported co-operative work, computer science, design 'rationale' and organisational behaviour. Three studies were performed: 1. A case study of a user-centred design project, employing grounded theory analysis. 2. A postal survey of IS development approaches in large UK companies. 3. A longitudinal field study, involving participant observation over a period of 18 months in a cross-domain design team, employing ethnography, discourse analysis and hermeneutics. The main contributions of this research were to provide rich insights into the interior nature of IS design activity, situated in the context of the organisation (a perspective which is largely missing from the literature); to provide conceptual models to explain the management of meaning in design, and design framing activity; to produce a social action model of organisational information system development which may form the basis for communicating the situated nature of design in teaching; and to suggest elements of a process model of design activity in multi-domain, organisational information system development. The implications of the research findings for IS managers and developers are also considered a significant contribution to practice. Detailed findings from these studies relate to: I. Disparities between the technology-centred view of organisational IS development found in the literature and the business and organisation-based approaches reported in the survey. 2. The role of pre-existing 'investment in form' in shaping the meaning of design processes and outcomes for other team members and its implications for the management of expertise and for achieving double-loop leaming. 3. The detailed processes by which design is framed at individual and group levels of analysis. These findings indicated a mismatch between "top down" models of organisational IS design and observed design "abstraction" processes, which were grounded in concrete analogies and local exemplars; this finding has significant implications for organisational design approaches, such as Business Process Redesign. 4. The distributed nature of group design, which has implications for achieving a 'common vision' of the design and for the division of labour in design groups. Intersubjectivity with respect to process objectives may be more critical to design success than intersubjectivity with respect to the products of design. - 5. The political nature of design activity: it was concluded that an effective design process must manage conflict between the exploration of organisational possibilities and influential, external stakeholders' expectations of efficiency benefits. 6. Design suffers from legitimacy problems related to the investigation of a "grey area" between explicit system design goals and boundary and emergent definitions of design goals and target system boundaries; this issue needs to be managed both internally to the design-team and externally, in respect of stakeholders and influential decision-makers. It is argued that the situated nature of design requires the teaching of design skills to be achieved through simulated design contexts, rather than the communication of abstract models. It is also suggested that the findings of this thesis have implications for knowledge management and organisational innovation. If organisational problem-investigation processes are seen as involving distributed knowledge, then the focus of organisational learning and innovation shifts from sharing organisational knowledge to accessing distributed organisational knowledge which is emergent and incomplete

    Energy-saving policies in grid computing and smart environments

    Get PDF
    Texto completo descargado desde TeseoThis work studies the problem of energy consumption growth in two spheres: Grid-Computing and Smart Environments. These problems are tackled through the establishment of energy-saving policies developed for each environment in order to save the maximum energy as possible. In the Grid-Computing environment, seven energypolicies were designed in an attempt to minimize energy consumption through shutting resources down and booting them. It is proved that approximately 40% of energy can be saved. Efficiency of various grid locations was compared using Data Envelopment Analysis methodology. In Smart Environments where sensors perceive lighting conditions, the energy-saving policy adjusts lighting in order to satisfy user preferences and prevents energy from being wasted. A set of wireless sensors were deployed on two offices at the department of Computer Languages and Systems. The dataset created over several months was employed to extract information about user lighting preferences, from the application of which it is proven that around 70% of energy can be saved in lighting appliances.Premio Extraordinario de Doctorado U
    corecore