11,443 research outputs found
Design and Development of Software Tools for Bio-PEPA
This paper surveys the design of software tools for the Bio-PEPA process algebra. Bio-PEPA is a high-level language for modelling biological systems such as metabolic pathways and other biochemical reaction networks. Through providing tools for this modelling language we hope to allow easier use of a range of simulators and model-checkers thereby freeing the modeller from the responsibility of developing a custom simulator for the problem of interest. Further, by providing mappings to a range of different analysis tools the Bio-PEPA language allows modellers to compare analysis results which have been computed using independent numerical analysers, which enhances the reliability and robustness of the results computed.
PENCIL: Towards a Platform-Neutral Compute Intermediate Language for DSLs
We motivate the design and implementation of a platform-neutral compute
intermediate language (PENCIL) for productive and performance-portable
accelerator programming
statically checking structural constraints on Java programs
It is generally desirable to detect program errors as early as possible during
software development. Statically typed languages allow many errors to be
detected at compile-time. However, many errors that could be detected
statically cannot be expressed using todayâs type systems. In this paper, we
describe a meta-programming framework for Java which allows for static
checking of structural constraints. In particular, we address how design
principles and coding rules can be captured
A heuristic-based approach to code-smell detection
Encapsulation and data hiding are central tenets of the object oriented paradigm. Deciding what data and behaviour to form into a class and where to draw the line between its public and private details can make the difference between a class that is an understandable, flexible and reusable abstraction and one which is not. This decision is a difficult one and may easily result in poor encapsulation which can then have serious implications for a number of system qualities. It is often hard to identify such encapsulation problems within large software systems until they cause a maintenance problem (which is usually too late) and attempting to perform such analysis manually can also be tedious and error prone. Two of the common encapsulation problems that can arise as a consequence of this decomposition process are data classes and god classes. Typically, these two problems occur together â data classes are lacking in functionality that has typically been sucked into an over-complicated and domineering god class. This paper describes the architecture of a tool which automatically detects data and god classes that has been developed as a plug-in for the Eclipse IDE. The technique has been evaluated in a controlled study on two large open source systems which compare the tool results to similar work by Marinescu, who employs a metrics-based approach to detecting such features. The study provides some valuable insights into the strengths and weaknesses of the two approache
Anchoring Modularity in HTML
AbstractModularity is a key feature at design, programming, proving, testing, and maintenance time, as well as a must for reusability. Most languages and systems provide built-in facilities for encapsulation, importation or parameterization. Nevertheless, there exists also languages, like HTML, with poor support for modularization. A natural idea is therefore to provide generic modularization primitives.To extend an existing language with additional and possibly formal capabilities, the notion of anchorage and Formal Island has been introduced recently. TOM for example, provides generic matching, rewriting and strategy extensions to JAVA and C.In this paper, we show on the HTML example, how to add modular features by anchoring modularization primitives in HTML. This allows one to write modular HTML descriptions, therefore facilitating their design, reusability, and maintenance, as well as providing an important step towards HTML validity checking
Quantifying the implicit process flow abstraction in SBGN-PD diagrams with Bio-PEPA
For a long time biologists have used visual representations of biochemical
networks to gain a quick overview of important structural properties. Recently
SBGN, the Systems Biology Graphical Notation, has been developed to standardise
the way in which such graphical maps are drawn in order to facilitate the
exchange of information. Its qualitative Process Diagrams (SBGN-PD) are based
on an implicit Process Flow Abstraction (PFA) that can also be used to
construct quantitative representations, which can be used for automated
analyses of the system. Here we explicitly describe the PFA that underpins
SBGN-PD and define attributes for SBGN-PD glyphs that make it possible to
capture the quantitative details of a biochemical reaction network. We
implemented SBGNtext2BioPEPA, a tool that demonstrates how such quantitative
details can be used to automatically generate working Bio-PEPA code from a
textual representation of SBGN-PD that we developed. Bio-PEPA is a process
algebra that was designed for implementing quantitative models of concurrent
biochemical reaction systems. We use this approach to compute the expected
delay between input and output using deterministic and stochastic simulations
of the MAPK signal transduction cascade. The scheme developed here is general
and can be easily adapted to other output formalisms
OGSA first impressions: a case study re-engineering a scientific applicationwith the open grid services architecture
We present a case study of our experience re-engineeringa scientific application using the Open Grid Services Architecture(OGSA), a new specification for developing Gridapplications using web service technologies such as WSDLand SOAP. During the last decade, UCL?s Chemistry departmenthas developed a computational approach for predictingthe crystal structures of small molecules. However,each search involves running large iterations of computationallyexpensive calculations and currently takes a fewmonths to perform. Making use of early implementationsof the OGSA specification we have wrapped the Fortranbinaries into OGSI-compliant service interfaces to exposethe existing scientific application as a set of loosely coupledweb services. We show how the OGSA implementationfacilitates the distribution of such applications across alarge network, radically improving performance of the systemthrough parallel CPU capacity, coordinated resourcemanagement and automation of the computational process.We discuss the difficulties that we encountered turning Fortranexecutables into OGSA services and delivering a robust,scalable system. One unusual aspect of our approachis the way we transfer input and output data for the Fortrancodes. Instead of employing a file transfer service wetransform the XML encoded data in the SOAP message tonative file format, where possible using XSLT stylesheets.We also discuss a computational workflow service that enablesusers to distribute and manage parts of the computationalprocess across different clusters and administrativedomains. We examine how our experience re-engineeringthe polymorph prediction application led to this approachand to what extent our efforts have succeeded
- âŠ