Dan Cosma - Publications
Ph.D. Thesis
Papers and books
- ViMC--Interactive Tool for Measuring Software Applications
(DOI PDF)
- Authors:
- Dan C. Cosma, Oana Gugea, Tamara Avramovic
- Published at:
-
2018 22nd International Conference on System Theory, Control and Computing (ICSTCC), Sinaia, Romania
- Abstract:
-
Modern software applications are complex, and their maintenance implies elaborate analysis
tools that reveal their structure and functionality, for purposes like software understanding
or quality assessment. This paper introduces ViMC, a tool we have developed to support software engineers
in analyzing the structure of object-oriented software applications, by focusing on measuring the various
aspects that define the properties of the entities within a software project. The tool provides a set of
predefined software metrics that can be applied to sets of classes and packages within a given software application,
while allowing the user to dynamically create new metrics, as needed. The definition of custom metrics is done
either through programming, or by interactively combining existing metrics via a user interface.
- Understanding Web Applications Using Component Based Visual Patterns
(DOI PDF)
- Authors:
- Dan C. Cosma, Petru F. Mihancea
- Published at:
-
2015 IEEE 23rd International Conference on Program Comprehension (ICPC), Florence, Italy
- Abstract:
-
This paper introduces our approach for high-level system understanding
that uses software visualization to
analyze the presentation layer of Web applications. The technique is driven by
static analysis, relies on state-of-the art concepts, and is technology-aware,
so that it focuses on those precise particularities of the application's
presentation layer that define its Web presence. By combining an approach
initially developed for software testing with visualization, the essential
structural dependencies between and within the Web components are extracted
and reviewed. Initial evaluation shows that the technique is able to provide
a comprehensive view that is very useful in spotting new and interesting
visual patterns that give significant insight for software comprehension.
- Reverse Engineering Object-Oriented Distributed Systems
(DOI PDF)
- Author:
- Dan C. Cosma
- Published at:
-
Proc. of 26th IEEE International Conference on Software Maintenance
(ICSM 2010) - Doctoral Symposium track, September 12-18, 2010,
Timisoara, Romania
- Abstract:
-
A significant part of the modern software systems are designed and
implemented as distributed applications, addressing the needs of a
globally-connected society. While most of them are object-oriented,
their understanding and quality assessment imply very specific,
technology-dependent analysis approaches. This doctoral dissertation
describes a methodology for understanding object-oriented distributed
systems using a process of reverse engineering driven by the
assessment of their technological and domain-specific particularities.
The approach provides both system-wide and class-level
characterizations, capturing the architectural traits of the systems,
and assessing the impact of the distribution-aware features throughout
the application. The methodology describes a mostly-automated analysis
process fully supported by a tools infrastructure, providing means
for detailed understanding of the distribution-related traits and
including basic support for the potentially consequent system
restructuring.
- Restructuring Object-Oriented Distributed Systems: An
Impact-Driven Approach
(PDF)
- Authors:
- Dan C. Cosma, Radu Marinescu
- Published at:
- IEEE 5th International Conference on Intelligent Computer
Communication and Processing, Cluj-Napoca, Romania
- Abstract:
-
Distributed applications address the needs of heterogeneous
networks of human activities, therefore they
must consist of balanced, relatively autonomous intercommunicating
components. Unfortunately, real-world systems
do often not follow these requirements, or their architecture
gets degraded in time by many ad-hoc changes.
Consequently, these systems have to go frequently through
the costly and oftentimes manually-performed operation of
restructuring services and their inter-connections. This paper
introduces a restructuring technique for distributed systems
that supports an architect in performing a cost-aware
analysis of various restructuring scenarios. The technique
enables the engineer/architect to explore and evaluate the
impact of the restructuring process at a fine-grained level,
by providing both a forecast of the restructuring outcome,
and the projected cost of the process itself. The approach
described is mainly based on a suite of novel coupling metrics,
a new algorithm that builds the forecast of the restructured
architecture, and a formula for computing the cost.
The approach was successfully applied on a commercial
distributed framework implemented using RMI and in this
paper we summarize the findings and the practical experience.
Although the technique was developed for the specific
case of distributed systems, we are confident that it can be
easily generalized to a larger class of applications.
- Representing Object-Oriented Distributed Systems To Focus the
Process of Reverse Engineering
(PDF)
- Authors:
- Dan C. Cosma, Radu Marinescu
- Published at:
- IEEE 5th International Conference on Intelligent Computer
Communication and Processing, Cluj-Napoca, Romania
- Abstract:
-
When aiming to understand object-oriented distributed
applications, reverse engineering processes can model the
systems by representing the aspects specific to the object
orientation. While these representations provide means for
in-depth analysis of various characteristics of the applications,
such approaches may ignore their most important
traits, specifically those related to the distribution itself.
This paper describes the representation of object-oriented
distributed systems we have developed to support our reverse
engineering approach, and presents the rationale behind
the model. The model is built so that the process focuses
on the most important aspects of this class of applications,
therefore efficiently achieving system understanding
by narrowing the search for relevant knowledge. We have
applied the process on a couple of case studies, and evaluated
the systems by instantiating the model to drive the
assessment of the distribution-related characteristics.
- niSiDe: Interactive Tool for Understanding Distributed Software
(PDF)
- Authors:
- Dan C. Cosma
- Published at:
- 10th International Symposium on
Symbolic and Numeric Algorithms for Scientific Computing (SYNASC 2008)
Timisoara, Romania
September 26-29, 2008
(pre-proceedings: pp. 236)
- Abstract:
-
Understanding object-oriented distributed applications
is currently an important concern as this type of systems is
widely represented in the industry. While analyzing such
systems can be done using the available tools built for understanding
general, object-oriented, systems, they may fail
to capture the most important aspect of this type of systems:
their distribution-related functionality. This paper presents
niSiDe , the tool developed to support our approach in understanding
distributed software, which automates all involved
tasks while allowing for user interaction, and provides
the visualizations necessary to capture the essential
aspects of the system's distributed nature.
- Understanding the Impact of Distribution in Object-Oriented Distributed
Systems using Structural Program Dependencies
(PDF)
- Authors:
- Dan C. Cosma, Radu Marinescu
- Published at:
- Proceedings of the 12th European
Conference on Software Maintenance and Reengineering (CSMR 2008), Athens,
Greece, (c)IEEE 2008, pp. 103-112
- Abstract:
-
In this
paper we present a novel approach for understanding a
distributed, object-oriented, software system,
by analyzing the structure of its source
code and identifying the design fragments that contribute to
those specific features that use or depend on the distributed
communication infrastructure. By applying the approach
on a couple of real-world Java/RMI distributed systems, we
show that it provides reliable means for capturing both an
overview of the systems' distributed architecture, and a detailed
understanding of the impact of the distributed features
on the entire system (including the local features).
- Distributable Features View: Visualizing the Structural
Characteristics of Distributed Software Systems
(PDF)
- Authors:
- Dan C. Cosma, Radu Marinescu
- Published at:
- Proceedings of the 4th IEEE International Workshop on Visualizing
Software for Understanding and Analysis (VISSOFT 2007), Alberta, Canada,
(c)IEEE Computer Society Press, 2007
- Abstract:
- The software industry is increasingly confronted with the issues
of understanding and maintaining a special type of software
systems, namely distributed systems. Although these systems
are usually implemented in an object-oriented fashion,
they raise very specific, and technology-dependent, understandability
and quality assessment challenges. This paper presents
a visual approach for comprehending the design of distributed
software systems, by using technology awareness to isolate the
functionally-distinct units within the code, so that the blueprint
of the system's distributed behavior can be easily extracted.
The approach provides means for observing the system's distributed
architecture, visualizing the structure of the functional
entities, and understanding their collaboration within the system,
while focusing the analysis to the most substantial code
fragments that deserve being taken into consideration.
- Towards Building Feature-Oriented Distributed Systems
- Authors:
- Dan Cosma
- Published at:
- 6th International Conference on Technical Informatics, CONTI 2004, vol 3,
pp. 201-206, Timisoara, Mai 2004. (PERIODICA POLITECHNICA, Transactions on
AUTOMATIC CONTROL and COMPUTER SCIENCE Vol.49 (63) No. 3, 2004, ISSN 1224-600X)
- Abstract:
- This paper describes the main concepts involved in the development of a
framework for building feature-oriented distributed applications. It
explains the nature of the system, defines the environment which provides
the best conditions for the purpose, and introduces an architectural
overview of the system.
- A Framework for Feature Migration
- Authors:
- Sabina Borlea, Dan Cosma
- Published at:
- 3rd RoEduNet International Conference - Networking in Education and
Research, Timisoara, May 2004. (PERIODICA POLITECHNICA, Transactions on
AUTOMATIC CONTROL and COMPUTER SCIENCE Vol.49 (63) No. 5, 2004, pp. 87-90, ISSN 1224-600X)
- Abstract:
- This paper describes the details of the development of a framework
for building feature-oriented distributed applications. It presents the
environment and the programming language used for development, describes the
interaction between the main components.
- SOLIST - A Java-based Application for Educational Internet Polls
- Authors:
- Dan Cosma, Calin Cirstea, Loredana Stefanut
- Published at:
- 3rd RoEduNet International Conference - Networking in Education and
Research, Timisoara, May 2004. (PERIODICA POLITECHNICA, Transactions on
AUTOMATIC CONTROL and COMPUTER SCIENCE Vol.49 (63) No. 5, 2004, pp. 91-94, ISSN 1224-600X)
- Abstract:
- This paper describes a Java-based software application we developed
at "Politehnica" University. It is a Web application used by the Computer
Science Department to gather the student opinions about the computer
curricula and its implementation in the department. It provides an Internet
portal where students can log in anonymously and fill in questionnaires
about the courses they attended in the current year. The application deals
with problems as: avoiding multiple log-ins from the same student (while
guaranteeing anonymity), persistent storage of data, and flexibility against
curricula changes.
- Aplicatii software distribuite (Distributed Software Applications)
- Authors:
-
Dan Cosma, Stejarel Veres, Adrian Petru Mierlutiu
- Published at:
-
Editura de Vest, 2003, Timisoara, Romania. ISBN 973-36-0377-5
- Abstract:
-
This book introduces several of the main concepts and technologies
related to Distributed Systems, the target audience including
programmers, graduate students in Computer Science, and any other persons
interested in this field. It presents several basic concepts such as the OSI and
TCP/IP models, and describes various programming primitives and
technologies involved: sockets (in C and Java), Remote Method Invocation (Java),
and Enterprise Java Beans. The book uses a pragmatic approach, providing
detailed examples in C and Java in order to point out the most important programming
issues that are usually encountered.
- UNIX - Aplicatii
- Authors:
- Dan Cosma
- Published at:
- Editura de Vest, 2001, Timisoara, Romania. ISBN 973-36-0338-4
- Abstract:
-
This book uses a practical approach for teaching the basic concepts
of the UNIX operating system. It mainly focuses on the system programming
using system calls, the main UNIX commands, and shell scripts.
The book includes detailed examples written in C
that explain concepts as: filesystems, processes,
signals, pipes, and threads.
- TraceMaster - A Logging
Service for Distributed Systems (PDF)
- Authors:
- Dan Cosma, Sorin Serau
- Published at:
- 4th International Conference on Technical Informatics (CONTI 2000),
2000, Timisoara, Romania. (Buletinul Stiintific al Universitatii
"POLITEHNICA" din Timisoara, seria AUTOMATICA SI CALCULATOARE, Vol. 45(59)
No.3, pp. 47-52, ISSN 1224-600X)
- Abstract:
-
This paper describes the architecture and the implementation of a logging
service that provides programmer interfaces via CORBA and RMI. The service can be used in
distributed applications for logging runtime events and monitoring the
system's behaviour. The system was implemented by the authors, in
cooperation with a German software company.
- DSDAgents - A Java Framework for
Developing Mobile Agents Systems (PDF)
- Authors:
- Diana Szentivanyi, Sorin Serau, Dan Cosma, Ioan Jurca
- Published at:
- 3rd International Conference on Technical Informatics (CONTI '98),
October 29-30, 1998, Timisoara, Romania
- Abstract:
-
This paper describes a Java framework, which can be used to create and use
mobile agent based systems, developed at `Politehnica'' University of
Timisoara. It consists, mainly, in servers that execute agents, and a set of
Java classes providing the functionality for developing the agents' code.
All basic tasks are done by the framework, so that the programmer doesn't
have to be concerned about details regarding the communication, agent
migration or security.