343,689 research outputs found
Automated Verification of Design Patterns with LePUS3
Specification and [visual] modelling languages are expected to combine strong abstraction mechanisms with rigour, scalability, and parsimony. LePUS3 is a visual, object-oriented design description language axiomatized in a decidable subset of the first-order predicate logic. We demonstrate how LePUS3 is used to formally specify a structural design pattern and prove (‗verify‘) whether any JavaTM 1.4 program satisfies that specification. We also show how LePUS3 specifications (charts) are composed and how they are verified fully automatically in the Two-Tier Programming Toolkit
Recommended from our members
Using formal methods to support testing
Formal methods and testing are two important approaches that assist in the development of high quality software. While traditionally these approaches have been seen as rivals, in recent
years a new consensus has developed in which they are seen as complementary. This article reviews the state of the art regarding ways in which the presence of a formal specification can be used to assist testing
Philosophy of Computer Science: An Introductory Course
There are many branches of philosophy called “the philosophy of X,” where X = disciplines ranging from history to physics. The philosophy of artificial intelligence has a long history, and there are many courses and texts with that title. Surprisingly, the philosophy of computer science is not nearly as well-developed. This article proposes topics that might constitute the philosophy of computer science and describes a course covering those topics, along with suggested readings and assignments
Informaticology: combining Computer Science, Data Science, and Fiction Science
Motivated by an intention to remedy current complications with Dutch
terminology concerning informatics, the term informaticology is positioned to
denote an academic counterpart of informatics where informatics is conceived of
as a container for a coherent family of practical disciplines ranging from
computer engineering and software engineering to network technology, data
center management, information technology, and information management in a
broad sense.
Informaticology escapes from the limitations of instrumental objectives and
the perspective of usage that both restrict the scope of informatics. That is
achieved by including fiction science in informaticology and by ranking fiction
science on equal terms with computer science and data science, and framing (the
study of) game design, evelopment, assessment and distribution, ranging from
serious gaming to entertainment gaming, as a chapter of fiction science. A
suggestion for the scope of fiction science is specified in some detail.
In order to illustrate the coherence of informaticology thus conceived, a
potential application of fiction to the ontology of instruction sequences and
to software quality assessment is sketched, thereby highlighting a possible
role of fiction (science) within informaticology but outside gaming
A Conceptual UX-aware Model of Requirements
User eXperience (UX) is becoming increasingly important for success of
software products. Yet, many companies still face various challenges in their
work with UX. Part of these challenges relate to inadequate knowledge and
awareness of UX and that current UX models are commonly not practical nor well
integrated into existing Software Engineering (SE) models and concepts.
Therefore, we present a conceptual UX-aware model of requirements for software
development practitioners. This layered model shows the interrelation between
UX and functional and quality requirements. The model is developed based on
current models of UX and software quality characteristics. Through the model we
highlight the main differences between various requirement types in particular
essentially subjective and accidentally subjective quality requirements. We
also present the result of an initial validation of the model through
interviews with 12 practitioners and researchers. Our results show that the
model can raise practitioners' knowledge and awareness of UX in particular in
relation to requirement and testing activities. It can also facilitate
UX-related communication among stakeholders with different backgrounds.Comment: 6th International Working Conference on Human-Centred Software
Engineerin
Modal logics for reasoning about object-based component composition
Component-oriented development of software supports the adaptability and maintainability of large systems, in particular if requirements change over time and parts of a system have to be modified or replaced. The software architecture in such systems can be described by components
and their composition. In order to describe larger architectures, the composition concept becomes crucial. We will present a formal framework for component composition for object-based software development. The deployment of modal logics for defining components and component composition will allow us to reason about and prove properties of components and compositions
Structured Review of the Evidence for Effects of Code Duplication on Software Quality
This report presents the detailed steps and results of a structured review of code clone literature. The aim of the review is to investigate the evidence for the claim that code duplication has a negative effect on code changeability. This report contains only the details of the review for which there is not enough place to include them in the companion paper published at a conference (Hordijk, Ponisio et al. 2009 - Harmfulness of Code Duplication - A Structured Review of the Evidence)
- …