396 research outputs found

    A know your customer solution over the Portuguese citizenship card

    Get PDF
    Trabalho de projecto de mestrado, Engenharia Informática (Arquitetura, Sistemas e Redes de Computadores) Universidade de Lisboa, Faculdade de Ciências, 2019Nos dias que correm, temos observado avanços significativos nas diversas áreas da informática. Não obstante, ainda é frequente encontrarmos, nas soluções existentes no mercado, aquelas que exigem processos manuais e por vezes morosos, como por exemplo, os relacionados com a atividade de adesão, engajamento, ou, usando o termo técnico, Know Your Customer (KYC). Estes processos consistem em identificar e validar clientes ou membros de uma instituição. Se um cidadão se deslocar a um banco para abrir uma conta ou pedir um empréstimo, é obrigado a entregar um conjunto de documentos e provas da sua identidade, documentação essa que será alvo de análise humana. Em média, de acordo com estudos efetuados, os atuais mecanismos de KYC consomem às grandes empresas e instituições (com cerca de 10 mil milhões de dólares de lucro anuais) perto de 150 milhões de dólares. Para além disso, em média, o custo de um processo que envolva mecanismos de KYC nos trâmites atuais, varia entre os 15 e os 20 dólares. Adicionalmente, dado que estas tarefas são realizadas manualmente por olho humano, estão – como seria de esperar – sujeitas a erros, assim como a um maior consumo de tempo em relação ao comportamento de tarefas automatizadas. Hoje em dia num mercado globalizado e extremamente competitivo, é fulcral que estas empresas e instituições sejam o mais eficientes possível. Neste caso concreto, o facto destas tarefas de KYC estarem a ser realizadas manualmente, prejudica em muito a eficiência destas entidades, uma vez que poderiam realocar este esforço noutros cenários que lhes poderiam ser mais vantajosas. De forma a agilizar estes processos, a Caixa Mágica Software serviu de incubadora para um projeto denominado WalliD. O WalliD é um protocolo open source que tem como objetivo guardar identidades na blockchain Ethereum. Embora já existam algumas soluções deste género, este protocolo garante também a segurança e a confiança destas identidades, desde que as mesmas tenham associado um certificado X.509 confiável. Embora esta solução esteja assente numa blockchain, a identidade do cidadão é cifrada com recurso a criptografia assimétrica, possibilitando que apenas o próprio tenha acesso aos dados. Desta forma, o cidadão é livre de deliberar a quem facultará os seus dados pessoais para efeitos de verificação da sua identidade. A utilidade deste protocolo é notória, especialmente porque permite de forma fácil e transparente a implementação de um sistema de KYC automatizado, eliminando assim o erro humano e automatizando processos que anteriormente eram manuais. Este trabalho retrata o desenvolvimento do primeiro KYC assente no protocolo WalliD utilizando o Cartão de Cidadão português. Este sistema de KYC resulta numa arquitetura genérica e modular que possibilite, através de testes unitários, testar as funcionalidades implementadas, assim como adicionar novas identidades para além do Cartão de Cidadão português, com o mínimo de esforço possível. Para isso, foram utilizadas técnicas de injeção de dependências, uma vez que promovem a construção de módulos com uma elevada independência entre eles. Este sistema de KYC contempla três grandes validações. Em primeiro lugar, a validação do certificado existente no Cartão de Cidadão português. Esta validação permite identificar casos em que o documento de identificação já se encontra expirado, revogado, ou que não seja confiável por impossibilidade da criação de uma cadeia de certificados de confiança. Uma vez que a identidade dos utilizadores é guardada na blockchain, o passo seguinte resume-se à verificação de uma assinatura criptográfica disponível pelo Cartão de Cidadão português, aplicada à wallet address da conta Ethereum do utilizador em questão. A verificação desta assinatura é realizada com recurso ao certificado verificado no passo anterior. Finalmente, é necessário aferir a validade dos atributos de identidade e de morada do utilizador. Esta validação é efetuada recorrendo a um ficheiro existente no Cartão de Cidadão português denominado de Document Security Object (SOD). Este ficheiro contém um conjunto de hashes que são gerados através da concatenação de todos os atributos de identificação e de morada do utilizador. Seguidamente, são assinados criptograficamente de forma a serem verificáveis através de uma chave pública existente num certificado digital residente no ficheiro SOD. No entanto, a verificação destes atributos só se considerará válida caso este certificado seja confiável. Para isso, é necessário verificar se o mesmo não se encontra expirado, nem revogado e se é possível construir uma cadeia de certificados de confiança. Para além da definição da arquitetura, este trabalho também resultou numa implementação piloto para o já referido Cartão de Cidadão português. Esta solução foi realizada através da linguagem de programação Java, e a razão da escolha desta linguagem prendeu-se essencialmente por dois motivos, (i) é uma linguagem open source; (ii) de forma a facilitar a implementação de certas funcionalidades, recorreu-se a uma biblioteca também open source denominada de Bouncy Castle. Visto que esta biblioteca apenas está disponível para C# e Java, optou-se uma vez mais por esta última. Ainda de modo a que esta solução fosse o mais modular possível, foi utilizado um padrão de injeção de dependências através de uma biblioteca desenvolvida pela Google denominada de Guice. Desta forma, foi possível construir uma solução que abstrai na totalidade o documento de identificação em questão (neste caso, o Cartão de Cidadão), garantindo assim que os módulos desenvolvidos sirvam para outros tipos de documentos. Adicionalmente, a utilização deste padrão facilitou o desenvolvimento de testes unitários. Atendendo às necessidades deste trabalho e da linguagem de programação utilizada, optou-se por gerar uma biblioteca no formato Java Archive (JAR). Assim, um programador poderá encapsular o serviço de KYC num web service, através de um servidor que responde com recurso a sockets, entre outras formas, para que não exista uma dependência relativamente à tecnologia utilizada. De forma a facilitar a instalação, manutenção e a escalabilidade deste serviço, este web service foi configurado numa imagem de Docker. Pretende-se, no final, que este trabalho dê resposta a quatro questões de investigação, nomeadamente, (i) se é possível verificar a identidade de uma pessoa através de uma blockchain; (ii) se com a utilização da blockchain é possível mitigar o uso descontrolado da nossa identidade, no sentido em que, ao facultarmos a nossa identidade para identificação de terceiros, perdemos o rasto completo do nosso documento de identificação; (iii) se através dos certificados digitais é possível aumentarmos a eficiência da forma como as identidades são verificadas, minimizando assim o erro humano; finalmente, (iv) se é possível, através de tarefas automatizadas, verificar identidades mais rapidamente, em contraponto com as tarefas realizadas atualmente de forma manual. Caso seja possível dar resposta a todas estas questões, a utilidade do protocolo do WalliD pode ser demonstrada através de um caso de uso, que neste caso envolve a entidade bancária fictícia denominada Credibank. Esta empresa tem como objetivo fornecer créditos aos seus clientes e, para tal, necessita de validar as suas identidades. Através do mecanismo de KYC desenvolvido neste trabalho, o Credibank poderá atuar somente como uma entidade online. Visto que o WalliD privilegia a metodologia open source, tanto o código da biblioteca desenvolvida, assim como, o código do web service, serão disponibilizados de forma open source, permitindo assim a melhoria continua assim como dos processos implementados. O trabalho descrito neste documento já conta com uma publicação científica na 9ª Conferência Internacional em Sistemas Inteligentes IEEE-TEMS realizada na Madeira, Portugal, no ano de 2018 com o título “WalliD: Secure your ID in an Ethereum Wallet”. Adicionalmente, encontra-se em processo de aprovação um segundo artigo na revista “IEEE Instrumentation and Measurement Magazine”, com o título “Instrumentation and Measurement context: From a methodological point of view”.At the present time we observe several improvements in many informatics topics. Despite that, we still find too many manual processes which could be automated such as the Know Your Customer (KYC) processes. The goal of these processes is to identify and validate current or future customers or members of an institution. As an example, trivial operations such as opening a bank account, at least in Portugal, is a task that in most of the cases is not able to be performed online. The process must be conducted in person, involving signing and delivering all documentation needed or uploading a set of documentation that needs to be analyzed and checked. Additionally, that personal documentation is manually verified by a bank employee, and of course this process can be subject to errors, resulting in further delays to the account approval. In order to solve these issues, Caixa Mágica Software, on its Startup Lab, developed and incubated a project called WalliD. WalliD is an open source protocol whose goal is to solve the type of issues aforementioned. This means that with the proposed solution, users are able to store their own identity in the Ethereum blockchain. Although the market already contains some solutions with similar purposes, WalliD brings trustworthiness to the users’ identities as long as they have a X.509 certificate attached. Despite having the user’s identity being stored in a blockchain, only the user himself has access to it because that data is encrypted using an asymmetric pair of keys. This solution gives the identity owner the ability to choose who, and when, an entity has access to his identity attributes. As an open source protocol, anyone can help improve it and verify how secure and simple it is. Developing KYC solutions based on WalliD could avoid human misbehaviors and speed up this kind of processes as well. This work describes the development of a KYC solution based on WalliD over the Portuguese Citizenship Card (PTCC)

    Scalable Reliable SD Erlang Design

    Get PDF
    This technical report presents the design of Scalable Distributed (SD) Erlang: a set of language-level changes that aims to enable Distributed Erlang to scale for server applications on commodity hardware with at most 100,000 cores. We cover a number of aspects, specifically anticipated architecture, anticipated failures, scalable data structures, and scalable computation. Other two components that guided us in the design of SD Erlang are design principles and typical Erlang applications. The design principles summarise the type of modifications we aim to allow Erlang scalability. Erlang exemplars help us to identify the main Erlang scalability issues and hypothetically validate the SD Erlang design

    Corporate influence and the academic computer science discipline. [4: CMU]

    Get PDF
    Prosopographical work on the four major centers for computer research in the United States has now been conducted, resulting in big questions about the independence of, so called, computer science

    Real-time app development approach for indoor monitoring

    Get PDF
    Após uma descrição das aplicações móveis, este artigo apresenta uma abordagem para o desenvolvimento de aplicações móveis real-time para localização e monitorização em ambiente fechado. Através da abordagem apresentada propõe-se utilizar diferentes componentes de hardware e tecnologias acessíveis nos dispositivos móveis, nomeadamente WIFI, GSM, sensores para localização indoor, e redes de Petri coloridas para a modelação do comportamento do sistema.info:eu-repo/semantics/acceptedVersio

    IoT data processing pipeline in FoF perspective

    Get PDF
    With the development in the contemporary industry, the concepts of ICT and IoT are gaining more importance, as they are the foundation for the systems of the future. Most of the current solutions converge into transforming the traditional industry in new smart interconnected factories, aware of its context, adaptable to different environments and capable of fully using its resources. However, the full potential for ICT manufacturing has not been achieved, since there is not a universal or standard architecture or model that can be applied to all the existing systems, to tackle the heterogeneity of the existing devices. In a common factory, exists a large amount of information that needs to be processed into the system in order to define event rules accordingly to the related contextual knowledge, to later execute the needed actions. However, this information is sometimes heterogeneous, meaning that it cannot be accessed or understood by the components of the system. This dissertation analyses the existing theories and models that may lead to seamless and homogeneous data exchange and contextual interpretation. A framework based on these theories is proposed in this dissertation, that aims to explore the situational context formalization in order to adequately provide appropriate actions

    Evaluation of low-power architectures in a scientific computing environment

    Get PDF
    HPC (High Performance Computing) represents, together with theory and experiments, the third pillar of science. Through HPC, scientists can simulate phenomena otherwise impossible to study. The need of performing larger and more accurate simulations requires to HPC to improve every day. HPC is constantly looking for new computational platforms that can improve cost and power efficiency. The Mont-Blanc project is a EU funded research project that targets to study new hardware and software solutions that can improve efficiency of HPC systems. The vision of the project is to leverage the fast growing market of mobile devices to develop the next generation supercomputers. In this work we contribute to the objectives of the Mont-Blanc project by evaluating performance of production scientific applications on innovative low power architectures. In order to do so, we describe our experiences porting and evaluating sate of the art scientific applications on the Mont-Blanc prototype, the first HPC system built with commodity low power embedded technology. We then extend our study to compare off-the-shelves ARMv8 platforms. We finally discuss the most impacting issues encountered during the development of the Mont-Blanc prototype system

    Identity Management and Authorization Infrastructure in Secure Mobile Access to Electronic Health Records

    Get PDF
    We live in an age of the mobile paradigm of anytime/anywhere access, as the mobile device is the most ubiquitous device that people now hold. Due to their portability, availability, easy of use, communication, access and sharing of information within various domains and areas of our daily lives, the acceptance and adoption of these devices is still growing. However, due to their potential and raising numbers, mobile devices are a growing target for attackers and, like other technologies, mobile applications are still vulnerable. Health information systems are composed with tools and software to collect, manage, analyze and process medical information (such as electronic health records and personal health records). Therefore, such systems can empower the performance and maintenance of health services, promoting availability, readability, accessibility and data sharing of vital information about a patients overall medical history, between geographic fragmented health services. Quick access to information presents a great importance in the health sector, as it accelerates work processes, resulting in better time utilization. Additionally, it may increase the quality of care. However health information systems store and manage highly sensitive data, which raises serious concerns regarding patients privacy and safety, and may explain the still increasing number of malicious incidents reports within the health domain. Data related to health information systems are highly sensitive and subject to severe legal and regulatory restrictions, that aim to protect the individual rights and privacy of patients. Along side with these legislations, security requirements must be analyzed and measures implemented. Within the necessary security requirements to access health data, secure authentication, identity management and access control are essential to provide adequate means to protect data from unauthorized accesses. However, besides the use of simple authentication models, traditional access control models are commonly based on predefined access policies and roles, and are inflexible. This results in uniform access control decisions through people, different type of devices, environments and situational conditions, and across enterprises, location and time. Although already existent models allow to ensure the needs of the health care systems, they still lack components for dynamicity and privacy protection, which leads to not have desire levels of security and to the patient not to have a full and easy control of his privacy. Within this master thesis, after a deep research and review of the stat of art, was published a novel dynamic access control model, Socio-Technical Risk-Adaptable Access Control modEl (SoTRAACE), which can model the inherent differences and security requirements that are present in this thesis. To do this, SoTRAACE aggregates attributes from various domains to help performing a risk assessment at the moment of the request. The assessment of the risk factors identified in this work is based in a Delphi Study. A set of security experts from various domains were selected, to classify the impact in the risk assessment of each attribute that SoTRAACE aggregates. SoTRAACE was integrated in an architecture with requirements well-founded, and based in the best recommendations and standards (OWASP, NIST 800-53, NIST 800-57), as well based in deep review of the state-of-art. The architecture is further targeted with the essential security analysis and the threat model. As proof of concept, the proposed access control model was implemented within the user-centric architecture, with two mobile prototypes for several types of accesses by patients and healthcare professionals, as well the web servers that handles the access requests, authentication and identity management. The proof of concept shows that the model works as expected, with transparency, assuring privacy and data control to the user without impact for user experience and interaction. It is clear that the model can be extended to other industry domains, and new levels of risks or attributes can be added because it is modular. The architecture also works as expected, assuring secure authentication with multifactor, and secure data share/access based in SoTRAACE decisions. The communication channel that SoTRAACE uses was also protected with a digital certificate. At last, the architecture was tested within different Android versions, tested with static and dynamic analysis and with tests with security tools. Future work includes the integration of health data standards and evaluating the proposed system by collecting users’ opinion after releasing the system to real world.Hoje em dia vivemos em um paradigma móvel de acesso em qualquer lugar/hora, sendo que os dispositivos móveis são a tecnologia mais presente no dia a dia da sociedade. Devido à sua portabilidade, disponibilidade, fácil manuseamento, poder de comunicação, acesso e partilha de informação referentes a várias áreas e domínios das nossas vidas, a aceitação e integração destes dispositivos é cada vez maior. No entanto, devido ao seu potencial e aumento do número de utilizadores, os dispositivos móveis são cada vez mais alvos de ataques, e tal como outras tecnologias, aplicações móveis continuam a ser vulneráveis. Sistemas de informação de saúde são compostos por ferramentas e softwares que permitem recolher, administrar, analisar e processar informação médica (tais como documentos de saúde eletrónicos). Portanto, tais sistemas podem potencializar a performance e a manutenção dos serviços de saúde, promovendo assim a disponibilidade, acessibilidade e a partilha de dados vitais referentes ao registro médico geral dos pacientes, entre serviços e instituições que estão geograficamente fragmentadas. O rápido acesso a informações médicas apresenta uma grande importância para o setor da saúde, dado que acelera os processos de trabalho, resultando assim numa melhor eficiência na utilização do tempo e recursos. Consequentemente haverá uma melhor qualidade de tratamento. Porém os sistemas de informação de saúde armazenam e manuseiam dados bastantes sensíveis, o que levanta sérias preocupações referentes à privacidade e segurança do paciente. Assim se explica o aumento de incidentes maliciosos dentro do domínio da saúde. Os dados de saúde são altamente sensíveis e são sujeitos a severas leis e restrições regulamentares, que pretendem assegurar a proteção dos direitos e privacidade dos pacientes, salvaguardando os seus dados de saúde. Juntamente com estas legislações, requerimentos de segurança devem ser analisados e medidas implementadas. Dentro dos requerimentos necessários para aceder aos dados de saúde, uma autenticação segura, gestão de identidade e controlos de acesso são essenciais para fornecer meios adequados para a proteção de dados contra acessos não autorizados. No entanto, além do uso de modelos simples de autenticação, os modelos tradicionais de controlo de acesso são normalmente baseados em políticas de acesso e cargos pré-definidos, e são inflexíveis. Isto resulta em decisões de controlo de acesso uniformes para diferentes pessoas, tipos de dispositivo, ambientes e condições situacionais, empresas, localizações e diferentes alturas no tempo. Apesar dos modelos existentes permitirem assegurar algumas necessidades dos sistemas de saúde, ainda há escassez de componentes para accesso dinâmico e proteção de privacidade , o que resultam em níveis de segurança não satisfatórios e em o paciente não ter controlo directo e total sobre a sua privacidade e documentos de saúde. Dentro desta tese de mestrado, depois da investigação e revisão intensiva do estado da arte, foi publicado um modelo inovador de controlo de acesso, chamado SoTRAACE, que molda as diferenças de acesso inerentes e requerimentos de segurança presentes nesta tese. Para isto, o SoTRAACE agrega atributos de vários ambientes e domínios que ajudam a executar uma avaliação de riscos, no momento em que os dados são requisitados. A avaliação dos fatores de risco identificados neste trabalho são baseados num estudo de Delphi. Um conjunto de peritos de segurança de vários domínios industriais foram selecionados, para classificar o impacto de cada atributo que o SoTRAACE agrega. O SoTRAACE foi integrado numa arquitectura para acesso a dados médicos, com requerimentos bem fundados, baseados nas melhores normas e recomendações (OWASP, NIST 800-53, NIST 800-57), e em revisões intensivas do estado da arte. Esta arquitectura é posteriormente alvo de uma análise de segurança e modelos de ataque. Como prova deste conceito, o modelo de controlo de acesso proposto é implementado juntamente com uma arquitetura focada no utilizador, com dois protótipos para aplicações móveis, que providênciam vários tipos de acesso de pacientes e profissionais de saúde. A arquitetura é constituída também por servidores web que tratam da gestão de dados, controlo de acesso e autenticação e gestão de identidade. O resultado final mostra que o modelo funciona como esperado, com transparência, assegurando a privacidade e o controlo de dados para o utilizador, sem ter impacto na sua interação e experiência. Consequentemente este modelo pode-se extender para outros setores industriais, e novos níveis de risco ou atributos podem ser adicionados a este mesmo, por ser modular. A arquitetura também funciona como esperado, assegurando uma autenticação segura com multi-fator, acesso e partilha de dados segura baseado em decisões do SoTRAACE. O canal de comunicação que o SoTRAACE usa foi também protegido com um certificado digital. A arquitectura foi testada em diferentes versões de Android, e foi alvo de análise estática, dinâmica e testes com ferramentas de segurança. Para trabalho futuro está planeado a integração de normas de dados de saúde e a avaliação do sistema proposto, através da recolha de opiniões de utilizadores no mundo real

    Development of a Smart Lighting Android-based Application using Bluetooth Low Energy

    Get PDF
    The emergence of the Internet of Things (IoT) allowed new developments on home and building automation with devices that provide more power efficiency and adaptation to our needs. Therefore, this thesis presents a study about Blue- tooth Low-Energy and its application on a IoT context, through smart devices designed for home applications and to be integrated in smart home system. It is also investigated the advantages and disadvantages of Bluetooth Low Energy (BLE) over other communication protocols for IoT end-devices. State-of-art Smart Lighting Android-based Application using Bluetooth Low Energy (SLABLE) is implemented with BLE and covers three application layers: first a interactive mobile application for Android OS. Then the middleware to manage communication and the data gathered, implemented in a BLE built-in System-on-Chip (SoC) with the respective programming for tasks as sending and receiving informations or commands and an illumination automatic control, de- veloped in Arduino IDE. Lastly, an hardware layer that consists in sensors and a lamp dimming driver, to be integrated on a circuit board small enough to fit in already installed equipment boxes. The implemented system purpose is a transversal integration between all layers . Moreover, based on energy consumption study, it is shown that BLE modules are proven to be a good solution for IoT development due to their low-power consumption, also, for data exchange reliability and processing capacity to control and perform several actions at the same time.O aparecimento da Internet-das-Coisas(IoT) permitiu novos desenvolvimen- tos na área da automação para casas e edifícios com recurso a dispositivos que nos oferecem uma melhor eficiência energética e uma melhor adaptação às nossas necessidades. Desta forma, esta dissertação apresenta um estudo sobre Bluetooth Low-Energy e a sua aplicação no contexto da IoT, através de dispositivos inteli- gentes para aplicações domésticas e para integração em sistemas inteligentes. É também investigado as vantagens e desvantagens do mesmo face a outros proto- colos de comunicação para dispositivos IoT. O sistema doméstico inteligente e interactivo (SLABLE) apresentado no Estado- da-Arte abrange três camadas da implementação: primeiro uma aplicação móvel interativa para Android OS. A camada intermédia para gerir comunicações e reco- lha de dados, implementada num módulo SoC com BLE embutido, programado para desenvolver tarefas como enviar e receber dados ou instruções e o controlo automático da iluminação, desenvolvido em Arduino IDE. Por fim a última ca- mada consiste em sensores e um circuito de dimming para lâmpadas, para serem integrados numa PCB suficientemente pequena para caber em caixas de apare- lhagem. O objectivo do sistema implementado é a comunicação transversal entre todas as camadas. Além disso, com base no consumo de potência, mostra-se que os módulos BLE são uma boa solução para desenvolvimento de aplicações IoT devido ao seu baixo consumo energético, e também, fiabilidade da troca de dados e capacidade de processamento para controlar e realizar várias acções ao mesmo tempo

    Experiences with formal engineering: model-based specification, implementation and testing of a software bus at Neopost

    Get PDF
    We report on the actual industrial use of formal methods during the development of a software bus. During an internship at Neopost Inc., of 14 weeks, we developed the server component of a software bus, called the XBus, using formal methods during the design, validation and testing phase: we modeled our design of the XBus in the process algebra mCRL2, validated the design using the mCRL2-simulator, and fully automatically tested our implementation with the model-based test tool JTorX. This resulted in a well- tested software bus with a maintainable architecture. Writing the model (mdev), simulating it, and testing the implementation with JTorX only took 17% of the total development time. Moreover, the errors found with model-based testing would have been hard to find with conventional test methods. Thus, we show that formal engineering can be feasible, beneficial and cost-effective.\ud The findings above, reported earlier by us in (Sijtema et al., 2011) [1], were well- received, also in industrially oriented conferences (Ferreira and Romanenko, 2010) [2] and [3]. In this paper, we look back on the case study, and carefully analyze its merits and shortcomings. We reflect on (1) the added benefits of model checking, (2) model completeness and (3) the quality and performance of the test process.\ud Thus, in a second phase, after the internship, we model checked the XBus protocol—this was not done in [1] since the Neopost business process required a working implementation after 14 weeks. We used the CADP tool evaluator4 to check the behavioral requirements obtained during the development. Model checking did not uncover errors in model mdev, but revealed that model mdev was neither complete nor optimized: in particular, requirements to the so-called bad weather behavior (exceptions, unexpected inputs, etc.) were missing. Therefore, we created several improved models, checked that we could validate them, and used them to analyze quality and performance of the test process. Model checking was expensive: it took us approx. 4 weeks in total, compared to 3 weeks for the entire model-based testing approach during the internship.\ud In the second phase, we analyzed the quality and performance of the test process, where we looked at both code and model coverage. We found that high code coverage (almost 100%) is in most cases obtained within 1000 test steps and 2 minutes, which matches the fact that the faults in the XBus were discovered within a few minutes.\ud Summarizing, we firmly believe that the formal engineering approach is cost-effective, and produces high quality software products. Model checking does yield significantly better models, but is also costly. Thus, system developers should trade off higher model quality against higher costs
    corecore