8 research outputs found

    Machine code and metaphysics : a perspective on software engineering

    Get PDF
    This is an open access article distributed under the Creative Commons Attribution License (CC BY) which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly citedA major, but too-little-considered problem for Software Engineering (SE) is a lack of consensus concerning Computer Science (CS) and how this relates to developing unpredictable computing technology. We consider some implications for SE of computer systems differing scientific basis, exemplified with the International Standard Organisations Open Systems Interconnection (ISO-OSI) layered architectural model. An architectural view allows comparison of computing technology components facilitating a view of computing as a continuum. For example, at one layer of computer architecture, components written in Turing-complete machine language can be seen as deterministic and consistent with a theoretical paradigm of CS. At another layer, components (applications) closer to the human sphere have been seen as non-deterministic and inconsistent with theoretical CS. We compare unpredictable development of computing technology against the cyclic legacy of technological advance and scientific discovery, and suggest that SE indicates an enabling cycle, discernible in previous scientific revolution(s), is stalled or possibly hidden. The CS consequence of divorcing technological advance from scientific consensus is particularly concerning. For example human/computing events could be seen as unpredictable virtual phenomena that somehow extend the ontology of CS. Our approach challenges practical and philosophical boundaries by investigating if applying scientific method (SM) resolves any SE/Science dichotomy.Peer reviewedFinal Published versio

    Visions of Automation and Realities of Certification

    Get PDF
    Quite a lot of people envision automation as the solution to many of the problems in aviation and air transportation today, across all sectors: commercial, private, and military. This paper explains why some recent experiences with complex, highly-integrated, automated systems suggest that this vision will not be realized unless significant progress is made over the current state-of-the-practice in software system development and certification

    The Omnibus language and integrated verification approach

    Get PDF
    This thesis describes the Omnibus language and its supporting framework of tools. Omnibus is an object-oriented language which is superficially similar to the Java programming language but uses value semantics for objects and incorporates a behavioural interface specification language. Specifications are defined in terms of a subset of the query functions of the classes for which a frame-condition logic is provided. The language is well suited to the specification of modelling types and can also be used to write implementations. An overview of the language is presented and then specific aspects such as subtleties in the frame-condition logic, the implementation of value semantics and the role of equality are discussed. The challenges of reference semantics are also discussed. The Omnibus language is supported by an integrated verification tool which provides support for three assertion-based verification approaches: run-time assertion checking, extended static checking and full formal verification. The different approaches provide different balances between rigour and ease of use. The Omnibus tool allows these approaches to be used together in different parts of the same project. Guidelines are presented in order to help users avoid conflicts when using the approaches together. The use of the integrated verification approach to meet two key requirements of safe software component reuse, to have clear descriptions and some form of certification, are discussed along with the specialised facilities provided by the Omnibus tool to manage the distribution of components. The principles of the implementation of the tool are described, focussing on the integrated static verifier module that supports both extended static checking and full formal verification through the use of an intermediate logic. The different verification approaches are used to detect and correct a range of errors in a case study carried out using the Omnibus language. The case study is of a library system where copies of books, CDs and DVDs are loaned out to members. The implementation consists of 2278 lines of Omnibus code spread over 15 classes. To allow direct comparison of the different assertion-based verification approaches considered, run-time assertion checking, extended static checking and then full formal verification are applied to the application in its entirety. This directly illustrates the different balances between error coverage and ease-of-use which the approaches offer. Finally, the verification policy system is used to allow the approaches to be used together to verify different parts of the application

    The development of computer science a sociocultural perspective

    Get PDF

    Композиційні засади проектування баз даних

    Get PDF
    Монографія присвячена розгляду питань організації адекватної людино-машинної взаємодії в галузі автоматизації вирішення задач проектування програмного забезпечення та баз даних. Саме така взаємодія є ключовим елементом для вирішення надважливих сьогодні задач галузі – управління якістю, підвищення ефективності та збереження інвестицій в ній. В монографії пропонується принципово новий відкрито-замкнений підхід до вирішення задач проектування програмного забезпечення. Змістовну основу його складає точка зору на проектування, як на розвинену суб’єкто-об’єктну взаємодію активної та пасивної складових процесу з домінуванням в ньому саме активної ролі суб’єкта. Під таке бачення в монографії підведена прагматико-обумовлена понятійна система. Основу її складає поняття сутесутнісного відношення, що адекватним чином підтримує взаємодоповнення процесу проектування програмного забезпечення та його наслідку. Сучасний рівень проблем є таким, що потребує засобів їх вирішення, які ефективно б еволюціонували разом з вирішенням будь-якої окремої або загальної задачі, проблеми. Сьогодні пріоритетним стає забезпечення здатності засобів вирішення задач до реальної підтримки вирішення кожної конкретної задачі. Для цього пропонується перейти від традиційного тренду продукування універсальних систем вирішення програмістських задач до розробки адаптивних середовищ проектування як «спільного знаменника», що логіко-предметно поєднує в собі різні підходи, методи, способи проектування програмного забезпечення та баз даних. Основу таких середовищ складає розроблений метод концептомонадної релятивізації, що є прагматико-обумовленим збагаченням сутесутнісного відношення між релятивними логікою і предметом. В монографії, окрім викладення суто теоретичних результатів дослідження, докладно розглянуті прикладні аспекти адаптивних середовищ проектування програмного забезпечення. Запропоновано відкрито-замкнену архітектуру адаптивного середовища проектування та розглянута його дослідна реалізація. Для науковців, викладачів, докторантів, аспірантів і студентів вищих навчальних закладів, фахівців аграрної сфери, працівників органів державної влади та дослідників формування маркетингової стратегії тепличних господарств

    Compositional verification of industrial control systems : methods and case studies

    Get PDF
    The main obstacles in the formal verification of industrial control systems are the lack of precise semantics for its programming languages, and the complexity problems which arise during the verification process. This work addresses both issues by defining an operational semantics for Sequential Function Charts, a widely-used language for Programmable Logic Controllers (PLCs), and by presenting modular and compositional methods to reduce the complexity arising from parallel structures in the system. These methods are illustrated by the verification of two PLC-controlled chemical batch plants

    The end of computing science?

    No full text
    corecore