940 resultados para Formal specification
Resumo:
Two types of semantics have been given to object-oriented formal specification languages. Value semantics denote a class by a set of values representing its objects. Reference semantics denote a class by a set of references, or pointers, to values representing its objects. While adopting the former facilitates formal reasoning, adopting the latter facilitates transformation to object-oriented code. In this paper, we propose a combined approach using value semantics for abstract specification and reasoning, and then refining to a reference semantics before transforming specification to code.
Resumo:
μ-Charts are a Statechart-like language which is designed for specifying reactive systems. This paper extends the language of μ-charts with a new parallel operator; it defines a formal semantics for the language, and then it explores the semantic properties of the extended language. The paper concludes with a simple case study to illustrate how the language may be used to specify and reason about reactive systems.
Resumo:
Previous work on formally modelling and analysing program compilation has shown the need for a simple and expressive semantics for assembler level programs. Assembler programs contain unstructured jumps and previous formalisms have modelled these by using continuations, or by embedding the program in an explicit emulator. We propose a simpler approach, which uses techniques from compiler theory in a formal setting. This approach is based on an interpretation of programs as collections of program paths, each of which has a weakest liberal precondition semantics. We then demonstrate, by example, how we can use this formalism to justify the compilation of block-structured high-level language programs into assembler.
Resumo:
We propose a method for the timing analysis of concurrent real-time programs with hard deadlines. We divide the analysis into a machine-independent and a machine-dependent task. The latter takes into account the execution times of the program on a particular machine. Therefore, our goal is to make the machine-dependent phase of the analysis as simple as possible. We succeed in the sense that the machine-dependent phase remains the same as in the analysis of sequential programs. We shift the complexity introduced by concurrency completely to the machine-independent phase.
Resumo:
A test oracle provides a means for determining whether an implementation behaves according to its specification. A passive test oracle checks that the correct behaviour has been implemented, but does not implement the behaviour itself. In previous work, we have presented a method that allows us to derive passive C++ test oracles from formal specifications written in Object-Z. We describe the "Warlock" prototype tool that supports the method. Warlock is built on top of an existing Object-Z type checker and generates oracle code for a substantial subset of the Object-Z language. We describe the architecture of Warlock and its application to a number of Object-Z specifications. We also discuss its current limitations.
Resumo:
We discuss a methodology for animating the Object-Z specification language using a Z animation environment. Central to the process is the introduction of a framework to handle dynamic instantiation of objects and management of object references. Particular focus is placed upon building the animation environment through pre-existing tools, and a case study is presented that implements the proposed framework using a shallow encoding in the Possum Z animator. The animation of Object-Z using Z is both automated and made transparent to the user through the use of a software tool named O-zone.
Resumo:
Effective comprehension of complex software systems requires understanding of both the individual documents that represent software and the complex relationships that exist within and between documents. Relationships of all kinds play a vital role in a software engineer's comprehension of, and navigation within and between, software documents. User-determined relationships have the additional role of enabling the engineer to create and maintain relational documentation that cannot be generated by tools or derived from other relationships. We argue that for a software development environment to effectively support the understanding of complex software systems, relational navigation must be supported at both the document-focused (intra-document) and relation-focused (inter-document) levels. The need for a relation-focused approach is highlighted by an evaluation of an existing document-focused relational interface. We conclude with the requirements for a relation-focused approach to relational navigation. These requirements focus on the user's perspective when interacting with a collection of related documents. We define the requirements for a software development environment that effectively supports the understanding of the software documents and relationships that define a complex software system.
Resumo:
The following topics are dealt with: Requirements engineering; components; design; formal specification analysis; education; model checking; human computer interaction; software design and architecture; formal methods and components; software maintenance; software process; formal methods and design; server-based applications; review and testing; measurement; documentation; management and knowledge-based approaches.
Resumo:
The paper introduces a framework for the formal specification of autonomic computing policies, and uses it to define a new type of autonomic computing policy termed a resource-definition policy. We describe the semantics of resource-definition policies, explain how they can be used as a basis for the development of autonomic system of systems, and present a sample data-centre application built using the new policy type.
Resumo:
A key objective of autonomic computing is to reduce the cost and expertise required for the management of complex IT systems. As a growing number of these systems are implemented as hierarchies or federations of lower-level systems, techniques that support the development of autonomic systems of systems are required. This article introduces one such technique, which involves the run-time synthesis of autonomic system connectors. These connectors are specified by means of a new type of autonomic computing policy termed a resource definition policy, and enable the dynamic realisation of collections of collaborating autonomic systems, as envisaged by the original vision of autonomic computing. We propose a framework for the formal specification of autonomic computing policies, and use it to define the new policy type and to describe its application to the development of autonomic system of systems. To validate the approach, we present a sample data-centre application that was built using connectors synthesised from resource-definition policies.
Resumo:
Concurrent software executes multiple threads or processes to achieve high performance. However, concurrency results in a huge number of different system behaviors that are difficult to test and verify. The aim of this dissertation is to develop new methods and tools for modeling and analyzing concurrent software systems at design and code levels. This dissertation consists of several related results. First, a formal model of Mondex, an electronic purse system, is built using Petri nets from user requirements, which is formally verified using model checking. Second, Petri nets models are automatically mined from the event traces generated from scientific workflows. Third, partial order models are automatically extracted from some instrumented concurrent program execution, and potential atomicity violation bugs are automatically verified based on the partial order models using model checking. Our formal specification and verification of Mondex have contributed to the world wide effort in developing a verified software repository. Our method to mine Petri net models automatically from provenance offers a new approach to build scientific workflows. Our dynamic prediction tool, named McPatom, can predict several known bugs in real world systems including one that evades several other existing tools. McPatom is efficient and scalable as it takes advantage of the nature of atomicity violations and considers only a pair of threads and accesses to a single shared variable at one time. However, predictive tools need to consider the tradeoffs between precision and coverage. Based on McPatom, this dissertation presents two methods for improving the coverage and precision of atomicity violation predictions: 1) a post-prediction analysis method to increase coverage while ensuring precision; 2) a follow-up replaying method to further increase coverage. Both methods are implemented in a completely automatic tool.
Resumo:
MAIDL, André Murbach; CARVILHE, Claudio; MUSICANTE, Martin A. Maude Object-Oriented Action Tool. Electronic Notes in Theoretical Computer Science. [S.l:s.n], 2008.
Resumo:
We systematically develop a functional program that solves the countdown problem, a numbers game in which the aim is to construct arithmetic expressions satisfying certain constraints. Starting from a formal specification of the problem, we present a simple but inefficient program that solves the problem, and prove that this program is correct. We then use program fusion to calculate an equivalent but more efficient program, which is then further improved by exploiting arithmetic properties.
Resumo:
MAIDL, André Murbach; CARVILHE, Claudio; MUSICANTE, Martin A. Maude Object-Oriented Action Tool. Electronic Notes in Theoretical Computer Science. [S.l:s.n], 2008.
Resumo:
Nos últimos anos, um conjunto de mudanças de natureza tecnológica institucional, legal e cultural alteraram as funções, a responsabilidade social e a estrutura das organizações de saúde. Estas transformações estão na base do debate actual sobre supervisão clínica em enfermagem enquanto estratégia de promoção da satisfação profissional, segurança e qualidade dos cuidados. A emergência da supervisão clínica em enfermagem permitiu interrogar e dar visibilidade a novas modalidades de formação no contexto de trabalho. A supervisão clínica é um processo multidimensional que inclui encontros regulares entre supervisores e supervisados, com o objectivo de analisar experiências de trabalho e de formação. Dedica-se especial atenção às dimensões emocionais, qualidade de cuidados, relação terapêutica e desenvolvimento pessoal e profissional. A presente pesquisa assume a forma de um estudo de caso realizado num hospital psiquiátrico (Hospital Magalhães Lemos). O objectivo principal do estudo consistiu em compreender o processo amplo e complexo de aprendizagens desenvolvidas em contexto clínico e a forma como estas condicionam as estratégias supervisivas. Recorrendo ao modelo bioecológico de Bronfenbrenner, o estudo interroga de forma sistemática a origem e as relações entre formação e supervisão. Os participantes do estudo foram 18 enfermeiros do referido hospital. Contamos, igualmente, com a colaboração de três peritos com profundo conhecimento da cultura e realidade hospitalar. A informação foi colhida com base em questionários e entrevistas semiestruturadas. O questionário (Clinical Supervision Nursing Inventory – CSNI - V1) inclui três partes. A parte I e II foram relevantes para caracterizar os participantes e o contexto clínico. A parte III do instrumento inclui um inventário com 24 itens. O Alfa de Cronbach calculado pelo autor foi de 0,93 para os 24 itens da escala, indicando excelentes resultados psicométricos. A entrevista semi-estruturada foi usada para a recolha de dados junto dos três peritos. Os enfermeiros possuem uma atitude positiva perante a supervisão clínica. O desenvolvimento pessoal e profissional dos enfermeiros estava relacionado com as oportunidades de formação emergentes no contexto das práticas. Embora a expressão “supervisão clínica” seja por vezes utilizada de forma incorrecta nas organizações, concluímos que existiam no hospital boas práticas a nível da supervisão dos cuidados, relacionando desenvolvimento pessoal, qualidade de cuidados e competências profissionais. Tentámos problematizar as experiências supervisivas partindo de teorias sócio-culturais e bio-ecológicas. Os participantes do estudo referiram que há necessidade de formalizar o sistema de supervisão clínica em enfermagem, evitando relacionálo com o sistema de supervisão de gestão. São apresentados e discutidos diversos subsídios para o desenvolvimento do sistema de supervisão clínica em enfermagem, no hospital.