207,824 research outputs found
Designing Software Architectures As a Composition of Specializations of Knowledge Domains
This paper summarizes our experimental research and software development activities in designing robust, adaptable and reusable software architectures. Several years ago, based on our previous experiences in object-oriented software development, we made the following assumption: ‘A software architecture should be a composition of specializations of knowledge domains’. To verify this assumption we carried out three pilot projects. In addition to the application of some popular domain analysis techniques such as use cases, we identified the invariant compositional structures of the software architectures and the related knowledge domains. Knowledge domains define the boundaries of the adaptability and reusability capabilities of software systems. Next, knowledge domains were mapped to object-oriented concepts. We experienced that some aspects of knowledge could not be directly modeled in terms of object-oriented concepts. In this paper we describe our approach, the pilot projects, the experienced problems and the adopted solutions for realizing the software architectures. We conclude the paper with the lessons that we learned from this experience
Advancing sCool - Game Type Research and Development
The proposed project, sCool, is an adaptive game-based learning experience designed for STEM education. In this work, we present a new iteration of sCool in efforts to further examine contributing factors of engagement, usability, and comprehension. The newly developed game experience for acquiring object-oriented programming skills is divided into two parts: concept learning and practical challenge. The concept learning part teaches students theoretical lessons of programming through fun gameplay. The practical challenge part allows students to practice programming by completing tasks. This project presents several new game types for both the concept learning and practical challenge parts. The development of these game types spreads across two phases. The first phase introduces two new game types and focuses on extending sCool to support learning object-oriented programming and improve student’s learning comprehension. The second phase builds off of the first phase, introducing another new game type to improve the object-oriented programming learning experience and the game’s overall usability and engagement. During the first phase, three experiments were conducted in a classroom setting with a computer science teacher. Conducting a study involving a total of 39 school students and three teachers, we are able to successfully display an enhanced understanding of different programming concepts. During the second phase, a single experiment was held remotely among a wide group of people, and the participants were self-guided by an instruction document and the sCool application. Conducting a study with 25 participants, we are able to show a significant improvement in the game’s usability and engagement. For future works, further evaluations in-classroom and over a longer course will be useful in assessing the new game type’s effectiveness in teaching object oriented programming. Furthermore, the game should be expanded to support learning more complex concepts in object oriented programming
The AutoProof Verifier: Usability by Non-Experts and on Standard Code
Formal verification tools are often developed by experts for experts; as a
result, their usability by programmers with little formal methods experience
may be severely limited. In this paper, we discuss this general phenomenon with
reference to AutoProof: a tool that can verify the full functional correctness
of object-oriented software. In particular, we present our experiences of using
AutoProof in two contrasting contexts representative of non-expert usage.
First, we discuss its usability by students in a graduate course on software
verification, who were tasked with verifying implementations of various sorting
algorithms. Second, we evaluate its usability in verifying code developed for
programming assignments of an undergraduate course. The first scenario
represents usability by serious non-experts; the second represents usability on
"standard code", developed without full functional verification in mind. We
report our experiences and lessons learnt, from which we derive some general
suggestions for furthering the development of verification tools with respect
to improving their usability.Comment: In Proceedings F-IDE 2015, arXiv:1508.0338
Lessons and challenges from software quality assessment: The case of space systems software
Software development activities have continued to be plagued by a number of problems even with the availability of so many esoteric software technologies and paradigms such as object oriented development, etc.Several studies can be traced back to the software processes adopted. Other contributing factors include lack of knowledge of available systems standards, tools and techniques employed by system practitioners. This paper presents lessons and challenges gained over the last 10 years of experience as software system administrator as well as lecturers in the computer science department. Over this period of time, we have managed a number of in-house and purchased project software amongst them are banking, airtime billing, human resource, result computation etc. We discussed these lessons and challenges across two measurable  characteristics namely quality of design (life cycle stages) and quality of conformance. Finally, we also recommended the lessons and challenges from software quality management for space system software
The Effects of Using Living Sea Animals on the Student’s Emotional States
Using living animals in school lessons makes it possible for students to have an emotionally charged learning experience. With the example of Thornback rays (Raja clavata), the emotional affects of sea animals on students are investigated. Theoretical aspects can be found in the explanation of activity-oriented teaching, which is organised holistically and student-active. The preparation for and confrontation with the thornback ray was successfully adjusted to the individual needs of the students. The students collectively worked on research issues and the ray was presented as a research object. Besides the emotional adventures of touching a living ray, the students took notes of the most important growth characteristics of the ray. Hence the students encounter the ray as a living animal on different levels. To check the hypotheses of how a living animal influences the students’ emotional state, the PANAS questionnaire is applied. PANAS serves as a snap-shot of the students’ emotional state. Whilst there are no differences found concerning the negative affects, the positive affects show a significant difference between a lesson with and a lesson without a real object. If the lesson comprises a real object, the item attentive is chosen significantly more often than in a lesson without real objects. Additionally, the data was analysed with a t-test, whereat the students in the framework of an activity-oriented lesson show significantly more positive affects compared to a lesson without real objects. The study gives a comprehensive insight into the different emotions of students when confronting them with a real object
Knowledge formalization in experience feedback processes : an ontology-based approach
Because of the current trend of integration and interoperability of industrial systems, their size and complexity continue to grow making it more difficult to analyze, to understand and to solve the problems that happen in their organizations. Continuous improvement methodologies are powerful tools in order to understand and to solve problems, to control the effects of changes and finally to capitalize knowledge about changes and improvements. These tools involve suitably represent knowledge relating to the concerned system. Consequently, knowledge management (KM) is an increasingly important source of competitive advantage for organizations. Particularly, the capitalization and sharing of knowledge resulting from experience feedback are elements which play an essential role in the continuous improvement of industrial activities. In this paper, the contribution deals with semantic interoperability and relates to the structuring and the formalization of an experience feedback (EF) process aiming at transforming information or understanding gained by experience into explicit knowledge. The reuse of such knowledge has proved to have significant impact on achieving themissions of companies. However, the means of describing the knowledge objects of an experience generally remain informal. Based on an experience feedback process model and conceptual graphs, this paper takes domain ontology as a framework for the clarification of explicit knowledge and know-how, the aim of which is to get lessons learned descriptions that are significant, correct and applicable
Software development: A paradigm for the future
A new paradigm for software development that treats software development as an experimental activity is presented. It provides built-in mechanisms for learning how to develop software better and reusing previous experience in the forms of knowledge, processes, and products. It uses models and measures to aid in the tasks of characterization, evaluation and motivation. An organization scheme is proposed for separating the project-specific focus from the organization's learning and reuse focuses of software development. The implications of this approach for corporations, research and education are discussed and some research activities currently underway at the University of Maryland that support this approach are presented
Logic programming in the context of multiparadigm programming: the Oz experience
Oz is a multiparadigm language that supports logic programming as one of its
major paradigms. A multiparadigm language is designed to support different
programming paradigms (logic, functional, constraint, object-oriented,
sequential, concurrent, etc.) with equal ease. This article has two goals: to
give a tutorial of logic programming in Oz and to show how logic programming
fits naturally into the wider context of multiparadigm programming. Our
experience shows that there are two classes of problems, which we call
algorithmic and search problems, for which logic programming can help formulate
practical solutions. Algorithmic problems have known efficient algorithms.
Search problems do not have known efficient algorithms but can be solved with
search. The Oz support for logic programming targets these two problem classes
specifically, using the concepts needed for each. This is in contrast to the
Prolog approach, which targets both classes with one set of concepts, which
results in less than optimal support for each class. To explain the essential
difference between algorithmic and search programs, we define the Oz execution
model. This model subsumes both concurrent logic programming
(committed-choice-style) and search-based logic programming (Prolog-style).
Instead of Horn clause syntax, Oz has a simple, fully compositional,
higher-order syntax that accommodates the abilities of the language. We
conclude with lessons learned from this work, a brief history of Oz, and many
entry points into the Oz literature.Comment: 48 pages, to appear in the journal "Theory and Practice of Logic
Programming
Levels of inquiry: Hierarchies of pedagogical practices and inquiry processes
Provides pedagogical insight concerning the skill of inquiry The resource being annotated is: http://www.dlese.org/dds/catalog_COSEE-1808.htm
- …