69,106 research outputs found
Recommended from our members
Prototyping a process-centered environment
This paper describes an experimental system developed and used as a vehicle for prototyping the Arcadia-1 software development environment. Prototyping is viewed as a knowledge acquisition process and is used to reduce risks in software development by gaining rapid feedback about the suitability of a production system before the system is completed. Prototyping a software development environment is particularly important due to the lack of experience with them. There is an acute need to acquire knowledge about user interaction requirements for software environments. These needs are especially important for the Arcadia project, as it is one of the first attempts to construct a process-centered environment. Our prototyping effort addresses questions about effective interaction with a process-centered environment by simulating how Arcadia-1 would interact with users in a representative range of usage scenarios. We built a prototyping system, called PRODUCER, and used it to generate a variety of prototypes simulating user interactions with Arcadia-1 process programs.Experience with PRODUCER indicates that our approach is effective at risk reduction. The prototypes greatly improved communication with our customer. They confirmed some of our design decisions but also redirected our research efforts as a result of unexpected insight. We also found that prototyping usage scenarios provides conceptual guides and design information for process programmers. Most of the benefits of our prototyping effort derive from developing and interacting with usage scenarios, so our approach is generalizable to other prototyping systems. This paper reports on our prototyping approach and our experience in prototyping a process-centered environment
Development and Verification of a Flight Stack for a High-Altitude Glider in Ada/SPARK 2014
SPARK 2014 is a modern programming language and a new state-of-the-art tool
set for development and verification of high-integrity software. In this paper,
we explore the capabilities and limitations of its latest version in the
context of building a flight stack for a high-altitude unmanned glider. Towards
that, we deliberately applied static analysis early and continuously during
implementation, to give verification the possibility to steer the software
design. In this process we have identified several limitations and pitfalls of
software design and verification in SPARK, for which we give workarounds and
protective actions to avoid them. Finally, we give design recommendations that
have proven effective for verification, and summarize our experiences with this
new language
Barriers to and Supports for Work Among Adults with Disabilities: Results from the NHIS-D
This paper examines barriers to work among adults with disabilities in two specific areas -- searching for jobs and workplace accommodations -- using data from the 1994/95 National Health Interview Survey Disability Supplement. Focusing on the subgroup with a high likelihood of future work, we find that a majority report difficulties searching for work, particularly in gaining information about appropriate jobs and having transportation to search. About a third of non-workers report needing workplace accommodations in order to work. The specific types of accommodations needed are similar to those being used by current workers with disabilities. We also find that need for accommodation, even after controlling for severity of disability, reduces the probability of work
Formal modelling for Ada implementations: tasking Event-B
This paper describes a formal modelling approach, where Ada code is automatically generated from the modelling artefacts. We introduce an implementation-level specification, Tasking Event-B, which is an extension to Event-B. Event-B is a formal method, that can be used to model safety-, and business-critical systems. The work may be of interest to a section of the Ada community who are interested in applying formal modelling techniques in their development process, and automatically generating Ada code from the model. We describe a streamlined process, where the abstract modelling artefacts map easily to Ada language constructs. Initial modelling takes place at a high level of abstraction. We then use refinement, decomposition, and finally implementation-level annotations, to generate Ada code. We provide a brief introduction to Event-B, before illustrating the new approach using small examples taken from a larger case study
Run-time implementation issues for real-time embedded Ada
A motivating factor in the development of Ada as the department of defense standard language was the high cost of embedded system software development. It was with embedded system requirements in mind that many of the features of the language were incorporated. Yet it is the designers of embedded systems that seem to comprise the majority of the Ada community dissatisfied with the language. There are a variety of reasons for this dissatisfaction, but many seem to be related in some way to the Ada run-time support system. Some of the areas in which the inconsistencies were found to have the greatest impact on performance from the standpoint of real-time systems are presented. In particular, a large part of the duties of the tasking supervisor are subject to the design decisions of the implementer. These include scheduling, rendezvous, delay processing, and task activation and termination. Some of the more general issues presented include time and space efficiencies, generic expansions, memory management, pragmas, and tracing features. As validated compilers become available for bare computer targets, it is important for a designer to be aware that, at least for many real-time issues, all validated Ada compilers are not created equal
Formal verification and testing: An integrated approach to validating Ada programs
An integrated set of tools called a validation environment is proposed to support the validation of Ada programs by a combination of methods. A Modular Ada Validation Environment (MAVEN) is described which proposes a context in which formal verification can fit into the industrial development of Ada software
The discourses of doing science in English
In January 2003, Malaysia re-adopted the English language as a medium of instruction for science and mathematics. This change in the medium of instruction brings with it challenges of its own. What does it mean to 'do' science in the Malaysian context and to do so in English? How
does the change in the medium of instruction from Bahasa Malaysia to English impinge upon current instructional and literacy practicesof teachers and learners? What kinds of change are required of the community that is invested in the teaching of science? This paper will address
these questions by troubling some common-sense assumptions of 'doing' science in the Malaysian context in the light of findings of a qualitative case study conducted to investigate how one two teachers working in different contexts in a Malaysian school copes with the new
medium of instruction and the myriad of issues that come with it
The TASTE Toolset: turning human designed heterogeneous systems into computer built homogeneous software.
The TASTE tool-set results from spin-off studies of the ASSERT project, which started in 2004 with the objective to propose innovative and pragmatic solutions to develop real-time software. One of the primary targets was satellite flight software, but it appeared quickly that their characteristics were shared among various embedded systems. The solutions that we developed now comprise a process and several tools ; the development process is based on the idea that real-time, embedded systems are heterogeneous by nature and that a unique UML-like language was not helping neither their construction, nor their validation. Rather than inventing yet another "ultimate" language, TASTE makes the link between existing and mature technologies such as Simulink, SDL, ASN.1, C, Ada, and generates complete, homogeneous software-based systems that one can straightforwardly download and execute on a physical target. Our current prototype is moving toward a marketed product, and sequel studies are already in place to support, among others, FPGA systems
The computerization of programming: Ada (R) lessons learned
One of the largest systems yet written in Ada has been constructed. This system is the Intermetrics Ada compiler. Many lessons have been learned during the implementation of this Ada compiler. Some of these lessons, concentrating on those lessons relevant to large system implementations are described. The characteristics of the Ada compiler implementation project at Intermetrics are also described. Some specific experiences during the implementation are pointed out
Recommended from our members
Safety verification of ADA programs in MURPHY
MURPHY is a experimental methodology, which will include an integrated tool set, for building safety-critical, real-time software. Although it is language independent, many safety-critical software projects are currently planning to use Ada. This paper presents the semantic templates for the verification of the safety of Ada programs using Software Fault Tree Analysis. An example is shown of applying the technique to an Ada program, and the tools in the MURPHY tool set to aid in this type of analysis are described
- …