112,946 research outputs found
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
Compositional Performance Modelling with the TIPPtool
Stochastic process algebras have been proposed as compositional specification formalisms for performance models. In this paper, we describe a tool which aims at realising all beneficial aspects of compositional performance modelling, the TIPPtool. It incorporates methods for compositional specification as well as solution, based on state-of-the-art techniques, and wrapped in a user-friendly graphical front end. Apart from highlighting the general benefits of the tool, we also discuss some lessons learned during development and application of the TIPPtool. A non-trivial model of a real life communication system serves as a case study to illustrate benefits and limitations
Soft systems methodology analysis for scoping in environmental impact statement in Israel
The current working paper will focus on Soft System Methodology (SSM) analysis of the process of issuing guidelines for Environmental Impact Statements (EIS) to developers in the Israeli context. The paperâs goal is to make the reader familiar with the terminology and the concepts of SSM, while serving as a case study for practising SSM. The paper starts with a âcrashâ introduction to SSM, followed by a general description of the process in the centre of the discussion - the Israeli EIS process. After these two introductory sections, the paper turns to the main issue - a SSM analysis of the problem situation - the creation of guidelines for EIS in the Israeli context. This specific case study have been selected due to the authorâs familiarity with it (is served as the main research field for his MA thesis). Also the author has the shorthand transcripts from a series workshops that were held as part of an evaluation study that the environmental planning department in the ministry of environment (EPD-MoE) have commissioned on the Israeli EIS system. Unless stated otherwise, the sources for SSM are âInformation Systems Development: Methodologies, Techniques and Toolsâ (Avison and Fitzgerald, 1995), âPractical Soft Systems Analysisâ (Patching, 1990), on-line lecture notes for the UCL âSystem Analysis and Designâ course (Sasse and Fultun, 1997) and âSoft Systems Methodology: An Alternative Approach to Knowledge Elicitation in Complex and Poorly Defined Systemsâ (Finegan, 1994)
Subtyping for Hierarchical, Reconfigurable Petri Nets
Hierarchical Petri nets allow a more abstract view and reconfigurable Petri
nets model dynamic structural adaptation. In this contribution we present the
combination of reconfigurable Petri nets and hierarchical Petri nets yielding
hierarchical structure for reconfigurable Petri nets. Hierarchies are
established by substituting transitions by subnets. These subnets are
themselves reconfigurable, so they are supplied with their own set of rules.
Moreover, global rules that can be applied in all of the net, are provided
Van Kampen Colimits and Path Uniqueness
Fibred semantics is the foundation of the model-instance pattern of software
engineering. Software models can often be formalized as objects of presheaf
topoi, i.e, categories of objects that can be represented as algebras as well
as coalgebras, e.g., the category of directed graphs. Multimodeling requires to
construct colimits of models, decomposition is given by pullback.
Compositionality requires an exact interplay of these operations, i.e.,
diagrams must enjoy the Van Kampen property. However, checking the validity of
the Van Kampen property algorithmically based on its definition is often
impossible.
In this paper we state a necessary and sufficient yet efficiently checkable
condition for the Van Kampen property to hold in presheaf topoi. It is based on
a uniqueness property of path-like structures within the defining congruence
classes that make up the colimiting cocone of the models. We thus add to the
statement "Being Van Kampen is a Universal Property" by Heindel and
Soboci\'{n}ski the fact that the Van Kampen property reveals a presheaf-based
structural uniqueness feature
- âŠ