In this paper, we address the problem of safety verification of nonlinear
hybrid systems and stability analysis of nonlinear autonomous systems. A hybrid
symbolic-numeric method is presented to compute exact inequality invariants of
hybrid systems and exact estimates of regions of attraction of autonomous
systems efficiently.
Software testing is presented as a so-called theme within which different
authors and groups have defined different subjects each of these subjects
having a different focus on testing. A uniform concept of software testing is
non-existent and the space of possible coherent perspectives on software
testing, each fitting within the theme, is viewed as being spanned by five
dimensions, each dimension representing two opposite views with a variety of
intermediate views in between.
This paper aims to discuss the pilot study and analysis of the current
development and measurement practices in Jordanian small software firms. It is
conducted because most developers build web applications without using any
specific development method and don't know how to integrate the suitable
measurements inside the process to improve and reduce defect, time and rework
of the development life cycle. Furthermore the objectives of this pilot study
are firstly; determine the real characteristics of small software firms in
Jordan.
The paper addresses aggregation issues for composite (modular) solutions. A
systemic view point is suggested for various aggregation problems. Several
solution structures are considered: sets, set morphologies, trees, etc. Mainly,
the aggregation approach is targeted to set morphologies. The aggregation
problems are based on basic structures as substructure, superstructure,
median/consensus, and extended median/consensus.
In this article, we describe the regression test process to test and verify
the changes made on software. A developed technique use the automation test
based on decision tree and test selection process in order to reduce the
testing cost is given. The developed technique is applied to a practical case
and the result show its improvement.
We derive an abstract computational model from a sequential computational
model that is generally used for function execution. This abstract
computational model allows for the concurrent execution of functions. We
discuss concurrent models for function execution as implementations from the
abstract computational model. We give an example of a particular concurrent
function construct that can be implemented on a concurrent machine model using
multi-threading.
In this article we extend the framework of execution of concurrent functions
on different abstract levels from previous work with communication between the
concurrent functions. We classify the communications and identify problems that
can occur with these communications. We present solutions for the problems
based on encapsulation and abstraction to obtain correct behaviours. The result
is that communication on a low level of abstraction in the form of shared
memory and message passing is dealt with on an higher level of abstraction.
Users wanting to monitor distributed or component-based systems often
perceive them as monolithic systems which, seen from the outside, exhibit a
uniform behaviour as opposed to many components displaying many local
behaviours that together constitute the system's global behaviour. This level
of abstraction is often reasonable, hiding implementation details from users
who may want to specify the system's global behaviour in terms of an LTL
formula.
Formal languages let us define the textual representation of data with
precision. Formal grammars, typically in the form of BNF-like productions,
describe the language syntax, which is then annotated for syntax-directed
translation and completed with semantic actions.
This paper consider an MMLE (Modified Maximum Likelihood Estimation) based
scheme to estimate software reliability using exponential distribution. The
MMLE is one of the generalized frameworks of software reliability models of Non
Homogeneous Poisson Processes (NHPPs). The MMLE gives analytical estimators
rather than an iterative approximation to estimate the parameters. In this
paper we proposed SPC (Statistical Process Control) Charts mechanism to
determine the software quality using inter failure times data.
There are some non-formal methodologies such as RUP, OpenUP, agile
methodologies such as SCRUP, XP and techniques like those proposed by UML,
which allow the development of software. The software industry has struggled to
generate quality software, as importance has not been given to the engineering
requirements, resulting in a poor specification of requirements and software of
poor quality.
Large Intelligent Systems are so complex these days that an urgent need for
designing such systems in best available way is evolving. Modeling is the
useful technique to show a complex real world system into the form of
abstraction, so that analysis and implementation of the intelligent system
become easy and is useful in gathering the prior knowledge of system that is
not possible to experiment with the real world complex systems.
Multi-threaded programs have many applications which are widely used such as
operating systems. Analyzing multi-threaded programs differs from sequential
ones; the main feature is that many threads execute at the same time. The
effect of all other running threads must be taken in account. Partial
redundancy elimination is among the most powerful compiler optimizations: it
performs loop-invariant code motion and common subexpression elimination. We
present a type system with optimization component which performs partial
redundancy elimination for multi-threaded programs.
Accurate software cost and schedule estimation are essential for software
project success. Often it referred to as the "black art" because of its
complexity and uncertainty, software estimation is not as difficult or puzzling
as people think. In fact, generating accurate estimates is straightforward-once
you understand the intensity of uncertainty and framework for the modeling
process. The mystery to successful software estimation-distilling academic
information and real-world experience into a practical guide for working
software professionals.
A software product line is a set of software products that are distinguished
in terms of features (i.e., end-user--visible units of behavior). Feature
interactions ---situations in which the combination of features leads to
emergent and possibly critical behavior--- are a major source of failures in
software product lines.
In the component-based software development, the selection step is very
important. It consists of searching and selecting appropriate software
components from a set of candidate components in order to satisfy the
developer-specific requirements. In the selection process, both functional and
non-functional requirements are generally considered. In this paper, we focus
only on the QoS, a subset of non-functional characteristics, in order to
determine the best components for selection. The component selection based on
the QoS is a hard task due to the QoS descriptions heterogeneity.
E-commerce is one of the most important web applications. We present here a
set of patterns that describe shopping carts, products, catalogue, customer
accounts, shipping, and invoices. We combine them in the form of composite
patterns, which in turn make up a domain model for business-to-consumer
e-commerce. We also indicate how to add security constraints to this model.
This domain model can be used as a computation-independent model from which
specific applications can be produced using a model-driven architecture
approach.
This volume contains the final and revised versions of the papers presented
at the 7th International Workshop on Automated Specification and Verification
of Web Systems (WWV 2011). The workshop was held in Reykjavik, Iceland, on June
9, 2011, as part of DisCoTec 2011. The aim of the WWV workshop series is to
provide an interdisciplinary forum to facilitate the cross-fertilization and
the advancement of hybrid methods that exploit concepts and tools drawn from
Rule-based programming, Software engineering, Formal methods and Web-oriented
research.
Agile methods provide an organization or a team the flexibility to adopt a
selected subset of principles and practices based on their culture, their
values, and the types of systems that they develop. More specifically, every
organization or team implements a customized agile method, tailored to better
accommodate its needs. However, the extent to which a customized method
supports the organizational objectives, or rather the 'goodness' of that method
is questionable. Existing agile assessment approaches focus on a comparative
analysis, or are limited in scope and application.
Computation nowadays is becoming inherently concurrent, either because of
characteristics of the hardware (with multicore processors becoming
omnipresent) or due to the ubiquitous presence of distributed systems
(incarnated in the Internet). Computational systems are therefore typically
distributed, concurrent, mobile, and often involve composition of heterogeneous
components.
Software defects rediscovered by a large number of customers affect various
stakeholders and may: 1) hint at gaps in a software manufacturer's Quality
Assurance (QA) processes, 2) lead to an over-load of a software manufacturer's
support and maintenance teams, and 3) consume customers' resources, leading to
a loss of reputation and a decrease in sales.
This paper presents the Eclipse plug-ins for the Task Flow model in the
Discovery Method. These plug-ins provide an IDE for the Task Algebra compiler
and the model-checking tools. The Task Algebra is the formal representation for
the Task Model and it is based on simple and compound tasks. The model-checking
techniques were developed to validate Task Models represented in the algebra.
Algorithmic debugging is a semi-automatic debugging technique that allows the
programmer to precisely identify the location of bugs without the need to
inspect the source code. The technique has been successfully adapted to all
paradigms and mature implementations have been released for languages such as
Haskell, Prolog or Java. During three decades, the algorithm introduced by
Shapiro and later improved by Hirunkitti has been thought optimal.
A formal definition of the semantics of a domain-specific language (DSL) is a
key prerequisite for the verification of the correctness of models specified
using such a DSL and of transformations applied to these models. For this
reason, we implemented a prototype of the semantics of a DSL for the
specification of systems consisting of concurrent, communicating objects. Using
this prototype, models specified in the DSL can be transformed to labeled
transition systems (LTS).
e-Motions is an Eclipse-based visual timed model transformation framework
with a Real-Time Maude semantics that supports the usual Maude formal analysis
methods, including simulation, reachability analysis, and LTL model checking.
e-Motions is characterized by a novel and powerful set of constructs for
expressing timed behaviors.
The starting point of this paper is a system described in form of a UML class
diagram where system states are characterized by OCL invariants and system
transitions are defined by OCL pre- and postconditions. The aim of our approach
is to assist the developer in learning about the consequences of the described
system states and transitions and about the formal implications of the
properties that are explicitly given.
Formally capturing the transition from a continuous model to a discrete model
is investigated using model based refinement techniques. A very simple model
for stopping (eg. of a train) is developed in both the continuous and discrete
domains.
This paper reconsiders refinements which introduce actions on the concrete
level which were not present at the abstract level. It draws a distinction
between concrete actions which are "perspicuous" at the abstract level, and
changes of granularity of actions between different levels of abstraction.
Before we combine actions and probabilities two very obvious questions should
be asked. Firstly, what does "the probability of an action" mean? Secondly, how
does probability interact with nondeterminism? Neither question has a single
universally agreed upon answer but by considering these questions at the outset
we build a novel and hopefully intuitive probabilistic event-based formalism.
In previous work we have described how refinements can be checked using a
temporal logic based model-checker, and how we have built a model-checker for Z
by providing a translation of Z into the SAL input language. In this paper we
draw these two strands of work together and discuss how we have implemented
refinement checking in our Z2SAL toolset.
We propose a mechanism for the vertical refinement of bigraphical reactive
systems, based upon a mechanism for limiting observations and utilising the
underlying categorical structure of bigraphs. We present a motivating example
to demonstrate that the proposed notion of refinement is sensible with respect
to the theory of bigraphical reactive systems; and we propose a sufficient
condition for guaranteeing the existence of a safety-preserving vertical
refinement.
Refinement is one of the cornerstones of a formal approach to software
engineering: the process of developing a more detailed design or implementation
from an abstract specification through a sequence of mathematically-based steps
that maintain correctness with respect to the original specification.
If a modeling task is distributed, it will frequently be necessary to
integrate models developed by different team members. Problems occur in the
models integration step and particularly, in the comparison phase of the
integration. This issue had been discussed in several domains and various
models. However, previous approaches have not correctly handled the semantic
comparison. In the current paper, we provide a MDA-based approach for models
comparison which aims at comparing UML models.
Software is among the most complex endeavors of the human mind; large scale
systems can have tens of millions of lines of source code. However, seldom is
complexity measured above the lowest level of code, and sometimes source code
files or low level modules. In this paper a hierarchical approach is explored
in order to find a set of metrics that can measure higher levels of
organization. These metrics are then used on a few popular free software
packages (totaling more than 25 million lines of code) to check their
efficiency and coherency.
Software Architecture defines the overview of the system which consists of
various components and their relationships among the software. Architectural
design is very important in the development of large scale software solution
and plays a very active role in achieving business goals, quality and reusable
solution. It is often difficult to choose the best software architecture for
your system from the several candidate types available.
There is a gap between our ability to reuse high-level concepts in software
design and our ability to reuse the code implementing them. Language Oriented
Programming (LOP) is a software development paradigm that aims to close this
gap, through extensive use of Domain Specific Languages (DSLs). With LOP, the
high-level reusable concepts become reusable DSL constructs, and their
translation into code level concepts is done in the DSL implementation.
Particular products are implemented using DSL code, thus reusing only
high-level concepts.
Open source projects often maintain open bug repositories during development
and maintenance, and the reporters often point out straightly or implicitly the
reasons why bugs occur when they submit them. The comments about a bug are very
valuable for developers to locate and fix the bug. Meanwhile, it is very common
in large software for programmers to override or overload some methods
according to the same logic. If one method causes a bug, it is obvious that
other overridden or overloaded methods maybe cause related or similar bugs.
Fiji National University is encountering many difficulties with its current
administrative systems. These difficulties include accessibility, scalability,
performance, flexibility and integration. We propose a new campus information
system, FNU-CIS to addresses these difficulties. FNU-CIS has the potential to
provide wide range of the services for students and staffs at the university.
In order to assist in the design and implementation of proposed FNU-CIS, we
present an overview, software architecture and prototype implementation of our
proposed system.
Communication Based Train Control (CBTC) system is the state-of-the-art train
control system. In a CBTC system, to guarantee the safety of train operation,
trains communicate with each other intensively and adjust their control modes
autonomously by computing critical control parameters, e.g. velocity range,
according to the information they get.
The context of a software developer is something hard to define and capture,
as it represents a complex network of elements across different dimensions that
are not limited to the work developed on an IDE. We propose the definition of a
software developer context model that takes into account all the dimensions
that characterize the work environment of the developer. We are especially
focused on what the software developer context encompasses at the project level
and how it can be captured.
Methods for the automatic composition of services into executable workflows
need detailed knowledge about the application domain,in particular about the
available services and their behavior in terms of input/output data
descriptions. In this paper we discuss how the EMBRACE data and methods
ontology (EDAM) can be used as background knowledge for the composition of
bioinformatics workflows.
Interface adaptation allows code written for one interface to be used with a
software component with another interface. When multiple adapters are chained
together to make certain adaptations possible, we need a way to analyze how
well the adaptation is done in case there are more than one chains that can be
used. We introduce an approach to precisely analyzing the loss in an interface
adapter chain using a simple form of abstract interpretation.
A classical problem in Software Engineering is how to certify that every
system requirement is correctly implemented by source code. This problem,
albeit well studied, can still be considered an open one, given the problems
faced by software development organizations. Trying to solve this problem,
Behavior-Driven Development (BDD) is a specification technique that
automatically certifies that all functional requirements are treated properly
by source code, through the connection of the textual description of these
requirements to automated tests.
We give a brief characterisation of the purposes and forms of documentation
in and of spreadsheets.
Many software developments projects fail due to quality problems. Software
testing enables the creation of high quality software products. Since it is a
cumbersome and expensive task, and often hard to manage, both its technical
background and its organizational implementation have to be well founded. We
worked with regional companies that develop software in order to learn about
their distinct weaknesses and strengths with regard to testing. Analyzing and
comparing the strengths, we derived best practices.
Normally, program execution spends most of the time on loops. Automated test
data generation devotes special attention to loops for better coverage.
Automated test data generation for programs having loops with variable number
of iteration and variable length array is a challenging problem. It is so
because the number of paths may increase exponentially with the increase of
array size for some programming constructs, like merge sort. We propose a
method that finds heuristic for different types of programming constructs with
loops and arrays.
We define a notion of social machine and envisage an algebra that can
describe networks of such.
This article contributes to the design and the verification of trusted
components and services. The contracts are declined at several levels to cover
then different facets, such as component consistency, compatibility or
correctness. The article introduces multilevel contracts and a
design+verification process for handling and analysing these contracts in
component models. The approach is implemented with the COSTO platform that
supports the Kmelia component model. A case study illustrates the overall
approach.
One of the main open research issues in Service Oriented Computing is to
propose automated techniques to analyse service interfaces. A first problem,
called compatibility, aims at determining whether a set of services (two in
this paper) can be composed together and interact with each other as expected.
Another related problem is to check the substitutability of one service with
another. These problems are especially difficult when behavioural descriptions
(i.e., message calls and their ordering) are taken into account in service
interfaces.
A key objective for ubiquitous environments is to enable system
interoperability between system's components that are highly heterogeneous. In
particular, the challenge is to embed in the system architecture the necessary
support to cope with behavioral diversity in order to allow components to
coordinate and communicate. The continuously evolving environment further asks
for an automated and on-the-fly approach. In this paper we present the design
building blocks for the dynamic and on-the-fly interoperability between
heterogeneous components.
Automata-based modeling languages, like Component Interaction Automata, offer
an attractive means to capture and analyze the behavioral aspects of
interacting components. At the center of these modeling languages we find
finite state machines that allow for a fine-grained description how and when
specific service requests may interact with other components or the
environment. Unfortunately, automata-based approaches suffer from exponential
state explosion, a major obstacle to the successful application of these
formalisms in modeling real-world scenarios.
The notion of contract aware components has been published roughly ten years
ago and is now becoming mainstream in several fields where the usage of
software components is seen as critical. The goal of this paper is to survey
domains such as Embedded Systems or Service Oriented Architecture where the
notion of contract aware components has been influential. For each of these
domains we briefly describe what has been done with this idea and we discuss
the remaining challenges.
This paper studies the problem of predicting the coding effort for a
subsequent year of development by analysing metrics extracted from project
repositories, with an emphasis on projects containing XML code. The study
considers thirteen open source projects and applies machine learning algorithms
to generate models to predict one-year coding effort, measured in terms of
lines of code added, modified and deleted. Both organisational and code metrics
associated to revisions are taken into account.
This volume contains the proceedings of WCSI 2010, the International Workshop
on Component and Service Interoperability. WCSI 2010 was held in Malaga (Spain)
on June 29th, 2010 as a satellite event of the TOOLS 2010 Federated
Conferences. The papers published in this volume tackle different issues that
are currently central to our community, namely definition of expressive
interface languages, formal models and approaches to software composition and
adaptation, interface-based compatibility and substitutability, and
verification techniques for distributed software.
Spreadsheets are ubiquitous, heavily relied on throughout vast swathes of
finance, commerce, industry, academia and Government. They are also
acknowledged to be extraordinarily and unacceptably prone to error. If these
two points are accepted, it has to follow that their uncontrolled use has the
potential to inflict considerable damage.
This paper describes the rationale, curriculum and subject matter of a new
MSc module being taught on an MSc Finance and Information Management course at
the University of Wales Institute in Cardiff. Academic research on spreadsheet
risks now has some penetration in academic literature and there is a growing
body of knowledge on the subjects of spreadsheet error, human factors,
spreadsheet engineering, "best practice", spreadsheet risk management and
various techniques used to mitigate spreadsheet errors.
In this paper, an approach to facilitate the treatment with variabilities in
system families is presented by explicitly modelling variants. The proposed
method of managing variability consists of a variant part, which models
variants and a decision table to depict the customisation decision regarding
each variant. We have found that it is easy to implement and has advantage over
other methods. We present this model as an integral part of modelling system
families.
Message Sequence Charts (MSCs) are an appealing visual formalism mainly used
in the early stages of system design to capture the system requirements.
However, if we move towards an implementation, an executable specifications
related in some fashion to the MSC-based requirements must be obtained. The
MSCs can be used effectively to specify the bus protocol in the way where
high-level transition systems is used to capture the control flow of the system
components of the protocol and MSCs to describe the non-atomic component
interactions.
Pervasive user-centric applications are systems which are meant to sense the
presence, mood, and intentions of users in order to optimize user comfort and
performance. Building such applications requires not only state-of-the art
techniques from artificial intelligence but also sound software engineering
methods for facilitating modular design, runtime adaptation and verification of
critical system requirements.
This volume contains the papers presented at the fourth international
workshop on Testing, Analysis and Verification of Software, which was
associated with the 25th IEEE/ACM International Conference on Automated
Software Engineering (ASE 2010). The collection of papers includes research on
formal specification, model-checking, testing, and debugging of Web software.
General definitions as well as rules of reasoning regarding control code
production, distribution, deployment, and usage are described. The role of
testing, trust, confidence and risk analysis is considered. A rationale for
control code testing is sought and found for the case of safety critical
embedded control code.
In previous work we have studied how an explicit representation of background
knowledge associated with a specific spreadsheet can be exploited to alleviate
usability problems with spreadsheet-based applications. We have implemented
this approach in the SACHS system to provide a semantic help system for
spreadsheets applications. In this paper, we evaluate the (comprehension)
coverage of SACHS on an Excel-based financial controlling system via a
"Wizard-of-Oz" experiment. This shows that SACHS adds significant value, but
systematically misses important classes of explanations.
EuSpRIG concerns direct researchers to revisit spreadsheet education, taking
into account error auditing tools, checklists, and good practices. This paper
aims at elaborating principles to design a spreadsheet curriculum. It mainly
focuses on two important issues. Firstly, it is necessary to establish the
spreadsheet invariants to be taught, especially those concerning errors and
good practices.
Previous spreadsheet inspection experiments have had human subjects look for
seeded errors in spreadsheets. In this study, subjects attempted to find errors
in human-developed spreadsheets to avoid the potential artifacts created by
error seeding. Human subject success rates were compared to the successful
rates for error-flagging by spreadsheet static analysis tools (SSATs) applied
to the same spreadsheets. The human error detection results were comparable to
those of studies using error seeding.
The paper examines in the context of financial reporting, the controls that
organisations have in place to manage spreadsheet risk and errors. There has
been widespread research conducted in this area, both in Ireland and
internationally. This paper describes a study involving 19 participants (2 case
studies and 17 by survey) from Ireland. Three areas are examined; firstly, the
extent of spreadsheet usage, secondly, the level of complexity employed in
spreadsheets, and finally, the controls in place regarding spreadsheets.
Although experts diverge on how best to improve spreadsheet quality, it is
generally agreed that more time needs to be spent testing spreadsheets.
Ideally, experienced and trained spreadsheet engineers would carry this out,
but quite often this is neither practical nor possible. Many spreadsheets are a
legacy, developed by staff that have since moved on, or indeed modified by many
staff no longer employed by the organisation. When such spreadsheets fall into
the hands of inexperienced, non-experts, any features that reduce error
visibility may become a risk.
Refactoring is a change made to the internal structure of software to make it
easier to understand and cheaper to modify without changing its observable
behaviour. A database refactoring is a small change to the database schema
which improves its design without changing its semantics. This paper presents
example 'spreadsheet refactorings', derived from the above and taking into
account the unique characteristics of spreadsheet formulas and VBA code. The
techniques are constrained by the tightly coupled data and code in
spreadsheets.
In the insurance industry, spreadsheets have emerged as an invaluable tool to
for product pricing, because it is relatively straightforward to create and
maintain complex pricing models using Excel. In fact, Excel is often preferred
to "hard-code" whenever there are frequent changes to the calculations and
business logic which under-pin the pricing of an insurance product.
Spreadsheets are used extensively within today's organisations. Although
spreadsheets have many benefits, they can also present a significant risk
exposure, requiring appropriate management. Protiviti has worked with a number
of organisations, ranging in size up to huge multi-nationals, to help them
build appropriate spreadsheet governance frameworks, including the design and
implementation of policies, minimum design standards, control processes,
training and awareness programmes and the consideration and implementation of
spreadsheet management tools.
To maximize efficiency in time and space, allocations and deallocations, in
the exact linear algebra library \linbox, must always occur in the founding
scope. This provides a simple lightweight allocation model. We present this
model and its usage for the rebinding of matrices between different coefficient
domains. We also present automatic tools to speed-up the compilation of
template libraries and a software abstraction layer for the introduction of
transparent parallelism at the algorithmic level.
A number of companies are trying to migrate large monolithic software systems
to Service Oriented Architectures. A common approach to do this is to first
identify and describe desired services (i.e., create a model), and then to
locate portions of code within the existing system that implement the described
services. In this paper we describe a detailed case study we undertook to match
a model to an open-source business application. We describe the systematic
methodology we used, the results of the exercise, as well as several
observations that throw light on the nature of this problem.
Because of the importance of object oriented methodologies, the research in
developing new measure for object oriented system development is getting
increased focus. The most of the metrics need to find the interactions between
the objects and modules for developing necessary metric and an influential
software measure that is attracting the software developers, designers and
researchers. In this paper a new interactions are defined for object oriented
system. Using these interactions, a parser is developed to analyze the existing
architecture of the software.
This article is about a measurement analysis based approach to help software
practitioners in managing the additional level complexities and variabilities
in software product line applications. The architecture of the proposed
approach i.e. ZAC is designed and implemented to perform preprocessesed source
code analysis, calculate traditional and product line metrics and visualize
results in two and three dimensional diagrams.
Although software managers are generally good at new project estimation,
their experience of scheduling rework tends to be poor. Inconsistent or
incorrect effort estimation can increase the risk that the completion time for
a project will be problematic. To continually alter software maintenance
schedules during software maintenance is a daunting task. Our proposed
framework, validated in a case study confirms that the variables resulting from
requirements changes suffer from a number of problems, e.g., the coding used,
end user involvement and user documentation.
Software component reuse is the software engineering practice of developing
new software products from existing components. A reuse library or component
reuse repository organizes stores and manages reusable components. This paper
describes how a reusable component is created, how it reuses the function and
checking if optimized code is being used in building programs and applications.
Finally providing coding guidelines, standards and best practices used for
creating reusable components and guidelines and best practices for making
configurable and easy to use.
This work proposes a methodology for source code quality and static behaviour
evaluation of a software system, based on the standard ISO/IEC-9126. It uses
elements automatically derived from source code enhanced with expert knowledge
in the form of quality characteristic rankings, allowing software engineers to
assign weights to source code attributes. It is flexible in terms of the set of
metrics and source code attributes employed, even in terms of the ISO/IEC-9126
characteristics to be assessed.
A Bayesian Network based mathematical model has been used for modelling
Extreme Programming software development process. The model is capable of
predicting the expected finish time and the expected defect rate for each XP
release. Therefore, it can be used to determine the success/failure of any XP
Project. The model takes into account the effect of three XP practices, namely:
Pair Programming, Test Driven Development and Onsite Customer practices. The
model's predictions were validated against two case studies.
In this paper we present a compositional semantics for the channel-based
coordination language Reo which enables the analysis of quality of service
(QoS) properties of service compositions. For this purpose, we annotate Reo
channels with stochastic delay rates and explicitly model data-arrival rates at
the boundary of a connector, to capture its interaction with the services that
comprise its environment.
A collaborative object represents a data type (such as a text document)
designed to be shared by a group of dispersed users. The Operational
Transformation (OT) is a coordination approach used for supporting optimistic
replication for these objects. It allows the users to concurrently update the
shared data and exchange their updates in any order since the convergence of
all replicas, i.e. the fact that all users view the same data, is ensured in
all cases. However, designing algorithms for achieving convergence with the OT
approach is a critical and challenging issue.
Dependency analysis is a technique to identify and determine data
dependencies between service protocols. Protocols evolving concurrently in the
service composition need to impose an order in their execution if there exist
data dependencies. In this work, we describe a model to formalise context-aware
service protocols. We also present a composition language to handle dynamically
the concurrent execution of protocols. This language addresses data dependency
issues among several protocols concurrently executed on the same user device,
using mechanisms based on data semantic matching.
This volume contains the proceedings of FOCLASA 2010, the 9th International
Workshop on the Foundations of Coordination Languages and Software
Architectures. FOCLASA 2010 was held in Paris, France on July 30th, 2010 as a
satellite event of the 21st International Conference on Concurrency Theory,
CONCUR 2010. The papers presented in this proceedings tackle different issues
that are currently central to our community, namely software adaptation, sensor
networks, distributed control, non-functional aspects of coordination such as
resources, timing and stochastics.
Software visualization can be of great use for understanding and exploring a
software system in an intuitive manner. Spatial representation of software is a
promising approach of increasing interest. However, little is known about how
developers interact with spatial visualizations that are embedded in the IDE.
In this paper, we present a pilot study that explores the use of Software
Cartography for program comprehension of an unknown system.
This study presents a methodological approach to the development of
integrated e-learning systems that is used in the creation of educational
content for standard Learning Management Systems.
This paper introduces CONFIGEN, a tool that helps modularizing software.
CONFIGEN allows the developer to select a set of elementary components for his
software through an interactive interface. Configuration files for use by
C/assembly code and Makefiles are then automatically generated, and we
successfully used it as a helper tool for complex system software refactoring.
CONFIGEN is based on propositional logic, and its implementation faces hard
theoretical problems.
Linux package managers have to deal with dependencies and conflicts of
packages required to be installed by the user. As an NP-complete problem, this
is a hard task to solve. In this context, several approaches have been pursued.
Apt-pbo is a package manager based on the apt project that encodes the
dependency solving problem as a pseudo-Boolean optimization (PBO) problem. This
paper compares different PBO solvers and their effectiveness on solving the
dependency solving problem.
The overall goal of the described research project was to create applicable
quality assurance patterns for Java software systems using the aspect-oriented
programming language extension AspectJ 5. We tried to develop aspects to check
static quality criteria as a variable mutator convention and architectural
layering rules. We successfully developed aspects for automating the following
dynamic quality criteria: Parameterized Exception Chaining, Comfortable
Declaration of Parameterized Exceptions, Not-Null Checking of Reference
Variables.
The ever-increasing complexity of software systems makes them hard to
comprehend, predict and tune due to emergent properties and non-deterministic
behaviour. Complexity arises from the size of software systems and the wide
variety of possible operating environments: the increasing choice of platforms
and communication policies leads to ever more complex performance
characteristics. In addition, software systems exhibit different behaviour
under different workloads.
The Eclipse Graphical Modeling (GMF) Framework provides the major approach
for implementing visual languages on top of the Eclipse platform. GMF relies on
a family of modeling languages to describe different aspects of the visual
language and its implementation in an editor. GMF uses a model-driven approach
to map the different GMF models to Java code. The framework, as it stands,
provides very little support for evolution. In particular, there is no support
for propagating changes from say the domain model (i.e., the abstract syntax of
the visual language) to other models.
Behavior-Driven Development (BDD) is a specification technique that
automatically certifies that all functional requirements are treated properly
by source code, through the connection of the textual description of these
requirements to automated tests.
Software that cannot change is condemned to atrophy: it cannot accommodate
the constant revision and re-negotiation of its business goals nor intercept
the potential of new technology. To accommodate change in such systems we have
defined an active software architecture to be: dynamic in that the structure
and cardinality of the components and interactions are not statically known;
updatable in that components can be replaced dynamically; and evolvable in that
it permits its executing specification to be changed.
Software that cannot evolve is condemned to atrophy: it cannot accommodate
the constant revision and re-negotiation of its business goals nor intercept
the potential of new technology.
This index covers the final course project reports for COMP5541 Winter 2010
at Concordia University, Montreal, Canada, Tools and Techniques for Software
Engineering by 4 teams trying to capture the requirements, provide the design
specification, configuration management, testing and quality assurance of their
partial implementation of the Unified University Inventory System (UUIS) of an
Imaginary University of Arctica (IUfA). Their results are posted here for
comparative studies and analysis.
Because of the importance of object oriented methodologies, the research in
developing new measure for object oriented system development is getting
increased focus. The most of the metrics need to find the interactions between
the objects and modules for developing necessary metric and an influential
software measure that is attracting the software developers, designers and
researchers. In this paper a new interactions are defined for object oriented
system. Using these interactions, a parser is developed to analyze the existing
architecture of the software.
Behavior Driven Development (NORTH, 2006) is a specification technique that
is growing in acceptance in the Agile methods communities. BDD allows to
securely verify that all functional requirements were treated properly by
source code, by connecting the textual description of these requirements to
tests.
Web Operating Systems can be seen as an extension of traditional Operating
Systems where the addresses used to manage files and execute programs (via the
basic load/execution mechanism) are extended from local filesystem path-names
to URLs.
Today, reusable components are available in several repositorys. These are
certainly conceived for re-use. However, this re-use is not immediate, it
requires, in effect, to pass by some essential conceptual operations, among
which in particular, research, integration, adaptation, and composition. We are
interested in the present work to the problem of semantic integration of
heterogeneous Business Components. This problem is often put in syntactical
terms, while the real stake is of semantic order.
The continuing process of software systems enlargement in size and complexity
becomes system design extremely important for software production. In this way,
the role of software architecture is significantly important in software
development. It serves as an evaluation and implementation plan for software
development and software evaluation.
A complex pervasive system is typically composed of many cooperating
\emph{nodes}, running on machines with different capabilities, and pervasively
distributed across the environment. These systems pose several new challenges
such as the need for the nodes to manage autonomously and dynamically in order
to adapt to changes detected in the environment. To address the above issue, a
number of autonomic frameworks has been proposed. These usually offer either
predefined self-management policies or programmatic mechanisms for creating new
policies at design time.
We review a case study of a UI design project for a complete travel search
engine system prototype for regular and corporate users. We discuss various
usage scenarios, guidelines, and so for, and put them into a web-based
prototype with screenshots and the like. We combined into our prototype the
best features found at the time (2002) on most travel-like sites and added more
to them as a part of our research.
In this paper, we build an interpreter by reusing host language functions
instead of recoding mechanisms of function application that are already
available in the host language (the language which is used to build the
interpreter). In order to transform user-defined functions into host language
functions we use combinatory logic : lambda-abstractions are transformed into a
composition of combinators. We provide a mechanically checked proof that this
step is correct for the call-by-value strategy with imperative features.
The Software Design Document of UUIS describes the prototype design details
of the system architecture, database layer, deployment and configuration
details as well as test cases produced while working the design and
implementation of the prototype. The requirements specification of UUIS are
detailed in arXiv:1005.0783.
In the 52-page document, we describe our approach to the Software
Requirements Specification of the IUfA's UUIS prototype. This includes the
overall system description, functional requirements, non-functional
requirements, use cases, the corresponding data dictionary for all entities
involved, mock user interface (UI) design, and the overall projected cost
estimate. The design specification of UUIS can be found in arXiv:1005.0665.
In this article, we argue that a program transformation approach is a good
way to solve the tyranny of the primary decomposition. We illustrate our
transformation-based approach on a case study defined with the expression
problem. We also propose the evolutivity problem based on the experience of the
expression problem.
The purpose of this document is to provide technical specifications concerned
to the Design of the University Unified Inventory System - Web Portal, of the
UIfA. The Team of Developers used a Feedback Waterfall approach to build up the
system, under an Object Oriented paradigm. The architectural model followed was
the Model-View-Controller, mixed with a Mapper layer between the database and
the Model. Some of the patterns utilized in the developing of the System were
the Observer Pattern, the Command Pattern, and the Mapper Pattern.
Unified University Inventory System (UUIS), is an inventory system created
for the Imaginary University of Arctica (IUfA) to facilitate its inventory
management, of all the faculties in one system. Team 1 elucidates the functions
of the system and the characteristics of the users who have access to these
functions. It shows the access restrictions to different functionalities of the
system provided to users, who are the staff and students of the University.
Team 1, also, emphasises on the necessary steps required to prevent the
security of the system and its data.
This document provides a description of the technical design for Unified
University Inventory System - Web Portal. This document's primary purpose is to
describe the technical vision for how business requirements will be realized.
This document provides an architectural overview of the system to depict
different aspects of the system. This document also functions as a foundational
reference point for developers.
This document presents the business requirement of Unified University
Inventory System (UUIS) in Technology-independent manner. All attempts have
been made in using mostly business terminology and business language while
describing the requirements in this document. Very minimal and commonly
understood Technical terminology is used. Use case approach is used in modeling
the business requirements in this document.
Measuring software maintainability early in the development life cycle,
especially at the design phase, may help designers to incorporate required
enhancement and corrections for improving maintainability of the final
software. This paper developed a multivariate linear model 'Maintainability
Estimation Model for Object-Oriented software in Design phase' (MEMOOD), which
estimates the maintainability of class diagrams in terms of their
understandability and modifiability.
Software developers and maintainers need to read and understand source
programs and other software artifacts. The increase in size and complexity of
software drastically affects several quality attributes, especially
understandability and maintainability. False interpretation often leads to
ambiguities, misunderstanding and hence to faulty development results. Despite
the fact that software understandability is vital and one of the most
significant components of the software development process, it is poorly
managed.
A UML based metamodel for Bunge-Wand-Weber (BWW) ontology is presented. BWW
ontology is a generic framework for analysis and conceptualization of real
world objects. It includes categories that can be applied to analyze and
classify objects found in an information system. In the context of BWW
ontology, the metamodel is a representation of the ontological categories and
relationships among them. An objective behind developing an object-oriented
metamodel has been to model BWW ontology in terms of widely used notions in
software development.
To fork a project is to copy the existing code base and move in a direction
different than that of the erstwhile project leadership. Forking provides a
rapid way to address new requirements by adapting an existing solution.
However, it can also create a plethora of similar tools, and fragment the
developer community. Hence, it is not always clear whether forking is the right
strategy. In this paper, we describe a mixed-methods exploratory case study
that investigated the process of forking a project.
Cloud computing is an emerging platform of service computing designed for
swift and dynamic delivery of assured computing resources. Cloud computing
provide Service-Level Agreements (SLAs) for guaranteed uptime availability for
enabling convenient and on-demand network access to the distributed and shared
computing resources. Though the cloud computing paradigm holds its potential
status in the field of distributed computing, cloud platforms are not yet to
the attention of majority of the researchers and practitioners.
Mathematics has many useful properties for developing of complex software
systems. One is that it can exactly describe a physical situation of the object
or outcome of an action. Mathematics support abstraction and this is an
excellent medium for modeling, since it is an exact medium there is a little
possibility of ambiguity. This paper demonstrates that mathematics provides a
high level of validation when it is used as a software medium. It also outlines
distinguishing characteristics of structural testing which is based on the
source code of the program tested.
Reliable effort estimation remains an ongoing challenge to software
engineers. Accurate effort estimation is the state of art of software
engineering, effort estimation of software is the preliminary phase between the
client and the business enterprise. The relationship between the client and the
business enterprise begins with the estimation of the software. The credibility
of the client to the business enterprise increases with the accurate
estimation. Effort estimation often requires generalizing from a small number
of historical projects.
A Rapid evolution of mobile technologies has led to the development of more
sophisticated mobile devices with better storage, processing and transmission
power. These factors enable support to many types of application but also give
rise to a necessity to find a model of service development. Actually, SOA
(Service Oriented Architecture) is a good option to support application
development. This paper presents a framework that allows the development of SOA
based application in mobile environment.
Computer System Administration and Network Administration are few such areas
where Practical Extraction Reporting Language (Perl) has robust utilization
these days apart from Bioinformatics. The key role of a System/Network
Administrator is to monitor log files. Log file are updated every day. To scan
the summary of large log files and to quickly determine if there is anything
wrong with the server or network we develop a Firewall Log Status Reporter
(SRr).
Reusable software components need expressive specifications. This paper
outlines a rigorous foundation to model-based contracts, a method to equip
classes with strong contracts that support accurate design, implementation, and
formal verification of reusable components. Model-based contracts
conservatively extend the classic Design by Contract with a notion of model,
which underpins the precise definitions of such concepts as abstract
equivalence and specification completeness.
The use of World Web Wide for distance education has received increasing
attention over the past decades. The real challenge of adapting this technology
for engineering education and training is to facilitate the laboratory
experiments via Internet. In the sciences, measurement plays an important role.
The accuracy of the measurement, as well as the units, help scientists to
better understand phenomena occurring in nature. This paper introduces
Metrology educators to the use and adoption of Java-applets in order to create
virtual, online Metrology laboratories for students.
Starting from the pioneering works on software architecture precious
guidelines have emerged to indicate how computer programs should be organized.
For example the "separation of concerns" suggests to split a program into
modules that overlap in functionality as little as possible. However these
recommendations are mainly conceptual and are thus hard to express in a
quantitative form. Hence software architecture relies on the individual
experience and skill of the designers rather than on quantitative laws.