• Home
  • Marcelo R. Campo
Marcelo R. Campo

Marcelo R. Campo
  • Doctor en Ciencias de Computacion
  • Research Director at UNICEN-CONICET

About

182
Publications
45,987
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
3,142
Citations
Current institution
UNICEN-CONICET
Current position
  • Research Director
Additional affiliations
September 2004 - present
National Scientific and Technical Research Council
Position
  • Research Director
Description
  • Founder and Director of Research Institute on Agile Software Engineering and Artificial Intelligence
April 1985 - present
Universidad Nacional del Centro de la Provincia de Buenos Aires
Position
  • Professor (Full)
January 1997 - present
Education
March 1993 - March 1997

Publications

Publications (182)
Conference Paper
Full-text available
Mixed reality environments today expand and facilitate the possibilities of learning and rehabilitation in children, adolescents, young people, and adults with autism spectrum disorders (ASD). Likewise, people with other developmental disabilities in addition to ASD (e.g., neuromotor disorders) or also in intellectual disabilities (e.g., Down Syndr...
Article
Scrum is one of the most used frameworks for agile software development because of its potential improvements in productivity, quality, and client satisfaction. Academia has also focussed on teaching Scrum practices to prepare students to face common software engineering challenges and facilitate their insertion in professional contexts. Furthermor...
Preprint
Full-text available
Scrum is one of the most used frameworks for agile software development because of its potential improvements in productivity, quality, and client satisfaction. Academia has also focussed on teaching Scrum practices to prepare students to face common software engineering challenges and facilitate their insertion in professional contexts. Furthermor...
Article
Full-text available
Moodle represents a great contribution to the educational world since it provides an evolving platform for Virtual Learning Management Systems (VLMS) that became a standard de facto for most of the educational institutions around the world. Through the pedagogical functions provided, it collects in the many globally spread out databases a huge amou...
Article
Full-text available
In this article we describe a successful experience we developed to favour the proposal of projects inspired by a well known reality show, to which we have paraphrased Millennial Tank, where the students developed different start-ups starting from ideas, taking into account the characteristics of the millennial students.
Chapter
Progress and technological innovation achieved in recent years, particularly in the area of entertainment and games, have promoted the creation of more natural and intuitive human-computer interfaces. For example, natural interaction devices such as Microsoft Kinect allow users to explore a more expressive way of human-computer communication by rec...
Article
Full-text available
En este artículo describimos una experiencia exitosa que desarrollamos para favorecer la propuesta de proyectos inspirados en un reality show bien conocido, para el cual parafraseamos Millennial Tank, donde los estudiantes desarrollaron diferentes empresas emergentes a partir de ideas, teniendo en cuenta las características de Los estudiantes del m...
Chapter
Software Engineering courses aim to train students to succeed in meeting the challenges within competitive and ever-changing professional contexts. Thus, undergraduate courses require continual revision and updating so as to cater for the demands of the software industry and guarantee academic quality. In this context, Scrum results in both a suita...
Article
New ways of learning have emerged in the last years by using computers in education. For instance, many Virtual Learning Environments have been widely adopted by educators, obtaining promising outcomes. Recently, these environments have evolved into more advanced ones using 3D technologies and taking into account the individual learner needs and pr...
Conference Paper
Full-text available
Service-Oriented Computing (SOC) has been widely used for building distributed and enterprise-wide software applications. One major problem in this kind of applications is their growth; as size and complexity of applications increase, the probability of duplicity of code increases, among other refactoring issues. This paper proposes an unsupervised...
Article
Innovative technologies, such as 3D depth cameras, promote the development of natural interaction applications in many domains among large audiences. In this context, supervised machine learning techniques have been proved to be a flexible and robust approach to perform high level gesture recognition from 3D joints provided by these depth cameras....
Article
Service-Oriented Architecture (SOA) has gained considerable popularity for the development of distributed enterprise-wide applications within the software industry. The SOA paradigm promotes the reusability and integrability of software in heterogeneous environments by means of open standards. Most software companies capitalize on SOA by discoverin...
Chapter
Progress and technological innovation achieved in recent years, particularly in the area of entertainment and games, have promoted the creation of more natural and intuitive human-computer interfaces. For example, natural interaction devices such as Microsoft Kinect allow users to explore a more expressive way of human-computer communication by rec...
Conference Paper
Nowadays, traffic has become a real chaos in big cities, affecting the mobility of millions of people. On the other hand, social networks handle large amounts of publications dealing divers topics. In particular, many of these publications are shared with the aim of warning about traffic incidents. In this paper, an approach that combines Machine L...
Article
Service Oriented Computing is a relevant paradigm that allows for building software solutions as it supports the creation of dynamic and agile applications. As a result of these benefits, applications based on the paradigm are commonly used in the industry. However, the more complex software solutions become, the higher the chance of having bugs is...
Article
Full-text available
Considerable attention has been paid to teaching Scrum in software engineering education as an academic response to the software industry’s demands. In order to reinforce and strengthen the understanding of Scrum concepts, professors should personalize the learning process, catering for students’ individual learning characteristics. To address this...
Article
Full-text available
Nowadays, considerable attention is paid to agile methods as a means to improve management of software development processes. The widespread use of such methods in professional contexts has encouraged their integration into software engineering training and undergraduate courses. Although several research efforts have focused on teaching Scrum thro...
Article
Full-text available
Web service composition allows developers to create applications by capitalizing on the service-oriented architecture paradigm. Such applications are rapidly deployable and offer developers reuse opportunities and access to an ample variety of complex systems. However, the challenge when composing services is addressing quality-of-service (QoS) iss...
Article
Full-text available
The main goal of the software engineering courses is to prepare students to face typical problems that occur in professional contexts. Thus, students need to be provided with tools and resources to be trained correctly, and therefore, courses need to be reoriented towards software industry demands without neglecting the academic quality. In this co...
Article
Full-text available
Teaching agile practices is becoming a priority in Software engineering curricula as a result of the increasing use of agile methods (AMs) such as Scrum in the software industry. Limitations in time, scope, and facilities within academic contexts hinder students' hands-on experience in the use of professional AMs. To enhance students' exposure to S...
Article
How to teach students to design in the classroom? When is experience crucial to do design? In particular, how to teach design patterns to students who are beginning to know the importance of a good design? Experience is essential to understand and apply patterns in an effective way. Generally, novice users are not good at working in real experience...
Article
Full-text available
Recent progress in entertainment and gaming systems has brought more natural and intuitive human–computer interfaces to our lives. Innovative technologies, such as Xbox Kinect, enable the recognition of body gestures, which are a direct and expressive way of human communication. Although current development toolkits provide support to identify the...
Article
Teaching agile practices is in the cutting-edge of Software Engineering education since agile methodologies are widely used in the industry. An effective strategy to teach agile practices is the use of a capstone project, in which students develop requirements following an agile methodology. To improve students’ learning experience, professors have...
Article
An evolutionary process that is currently taking place in the software industry is the shift from developing applications from scratch to discovering and assembling services published in the Internet. This has given birth to a new computing paradigm called service-oriented computing (SOC). We investigated whether simplifying and automating tasks in...
Article
Botnets are an important security problem on the Internet. They continuously evolve their structure, protocols and attacks. This survey analyzes and compares the most important efforts carried out in a network-based detection area. It accomplishes four tasks: first, the comparison of previous surveys and the proposal of four new dimensions to analy...
Chapter
Software Engineering courses aim to train students to succeed in meeting the challenges within competitive and ever-changing professional contexts. Thus, undergraduate courses require continual revision and updating so as to cater for the demands of the software industry and guarantee academic quality. In this context, Scrum results in both a suita...
Article
Finding software faults is a problematic activity in many systems. Existing approaches usually work close to the system implementation and require developers to perform different code analyses. Although these approaches are effective, the amount of information to be managed by developers is often overwhelming. This problem calls for complementary a...
Data
This a a pcap dataset with the network traffic of one real infected computer. See the paper for more details.
Article
Full-text available
Legacy Systems have become a challenge for many enterprises, which have been migrating its legacy systems towards new computational environments because of interoperability issues with modern technologies, high maintenance costs, and hiring expert staff who possess high legacy technologies background. In order to find a strategy to solve legacy sys...
Chapter
Full-text available
Service Oriented Architecture (SOA) and Web Services are the current trend to integrate large and distributed systems, which is a common situation in both the business and government worlds. However, within these worlds, systems are commonly written in COBOL because they were developed several decades ago. Therefore, migration of COBOL systems into...
Chapter
Discovering services acquires importance as Service-Oriented Computing (SOC) becomes an adopted paradigm. SOC’s most popular materializations, namely Web Services technologies, have different challenges related to service discovery and, in turn, many approaches have been proposed. As these approaches are different, one solution may be better than a...
Article
Scrum has gained surprising momentum as an agile project management approach. It provides effective social integration by building up social team capital, and it provides much needed control and coordination mechanisms. Especially, daily Scrum meetings ensure an open channel for communication. However, this channel has been threatened by distribute...
Conference Paper
Full-text available
Scrum has received significant academic attention because of its widespread application in software development industries. Teaching agile software development can be illustrated by teaching with lecture-based classes. However, involving students in a real software environment is a trendy alternative which fosters their engagement. Software enginee...
Article
ContextConformance between architecture and implementation is a key aspect of architecture-centric development. Unfortunately, the architecture “as documented” and the architecture “as implemented” tend to diverge from each other over time. As this gap gets wider, the architects’ reliance on architecture-level analyses is compromised. Thus, conform...
Article
There is a good consensus on the strategic value of Service Oriented Architecture (SOA) as a way of structuring systems, and a common trend is to migrate legacy applications that use outdated technologies and architectures to SOA. We study the effects in the resulting Web Service interfaces of applying two traditional migration approaches combined...
Conference Paper
Full-text available
Information diffusion has been studied between and within biosphere, microblogs, social networks, citation networks and other domains, where the network structure is present. These studies have turned to be useful for acquiring intrinsic knowledge for strategic decision making in related areas, for example, planning online campaigns in case of micr...
Article
Modern software systems are becoming larger and more complex every day. One of the most challenging steps for designing a good architecture for a certain piece of software is the analysis of requirements, usually written in natural language by engineers not familiar with specific design formalisms. The main problem related to this task is the conce...
Article
Modern Software Engineering (SE) is characterized by the use of several models that establish and show the different states a software product goes through, from its initial conception to its end, passing across its development, setup and maintenance amongst others. Each phase produces a set of deliverables following different documentation standar...
Article
Planning algorithms are often applied by intelligent agents for achieving their goals. For the plan creation, this kind of algorithm uses only an initial state definition, a set of actions, and a goal; while agents also have preferences and desires that should to be taken into account. Thus, agents need to spend time analyzing each plan returned by...
Article
Service Oriented Architecture (SOA) and Web Services are the current trend to integrate large and distributed systems, which is a common situation in both the business and government worlds. However, within these worlds, systems are commonly written in COBOL because they were developed several decades ago. Therefore, migration of COBOL systems into...
Article
The Service-Oriented Computing (SOC) paradigm has gained a lot of attention in the software industry since SOC represents a novel way of architecting distributed applications. SOC is mostly materialized via Web Services, which allow developers to expose their application as building blocks for other applications by defining a clear and public inter...
Article
The vision of a worldwide computing network of services that Service Oriented Computing paradigm and its most popular materialization, namely Web Service technologies, promote is a victim of its own success. As the number of publicly available services grows, discovering proper services is similar to finding a needle in a haystack. Different approa...
Article
Computational Grids deliver the necessary computational infrastructure to perform resource-intensive computations such as the ones that solve the problems scientists are facing today. Exploiting Computational Grids comes at the expense of explicitly adapting the ordinary software implementing scientific problems to take advantage of Grid resources,...
Article
Once a big repository of static data, the Web has been gradually evolved into a worldwide network of information and services known as the Semantic Web. This environment allows programs to autonomously interact with Web-accessible information and services. In this sense, mobile agent technology could help in efficiently exploiting this relatively n...
Article
Mobile device capabilities have been steadily increasing in the past years. Therefore, mobile Grids potential benefits have encouraged research on this topic. Researchers have identified several issues, such as energy consumption and limited resources, that steam from using mobile devices because they are small computers that run on battery and can...
Article
Discovering services acquires importance as Service-Oriented Computing SOC becomes an adopted paradigm. SOC's most popular materializations, namely Web Services technologies, have different challenges related to service discovery and, in turn, many approaches have been proposed. As these approaches are different, one solution may be better than ano...
Article
Full-text available
Moving from mainframe systems to a service-oriented architecture (SOA) using Web services is an attractive but daunting task. The bottom-up or direct migration approach enables the effective modernization of legacy systems to Web services. Conversely, bringing migration into fruition with the top-down or indirect-migration approach is more difficul...
Article
Different development methods have been proposed for enabling the construction of software with the Service-Oriented Computing (SOC) paradigm. Service-oriented applications invoke services that developers must first discover, engage, and in time potentially replace with newer versions or even alternative services from different providers. Hence, th...
Article
Exploiting Grids intuitively requires developers to alter their applications, which calls for expertise on Grid programming. Gridification tools address this problem by semi-automatically making user applications to be Grid-aware. However, most of these tools produce monolithic Grid applications in which common tuning mechanisms (e.g. parallelism)...
Chapter
Mobile agents have been successfully used for building massively distributed systems. In spite of the advantages the paradigm has shown, mobile agents are still somewhat underrated and hard to develop. Consequently, we proposed the Reactive Mobility by Failure (RMF) mobility model [1] for simplifying mobile agent adoption and development. RMF enabl...
Chapter
The development of massively distributed applications with enormous demands for computing power, memory, storage and bandwidth is now possible with the Grid. Despite these advances, building Grid applications is still very difficult. We present JGRIM, an approach to easily gridify Java applications by separating functional and Grid concerns in the...
Conference Paper
Full-text available
Mostly e-business and e-applications rely on the Service Oriented Computing paradigm and its most popular implementation, namely Web Services. When properly implemented and described, Web Services can be dynamically discovered and reused using Internet technologies, pushing interoperability to unprecedented levels. However, poorly described Web Ser...
Article
Service-Oriented Computing (SOC) is a new paradigm that replaces the traditional way to develop distributed software with a combination of discovery, engagement and reuse of third-party services. Web Service technologies are currently the most adopted alternative for implementing the SOC paradigm. However, Web Service discovery presents many challe...
Conference Paper
Full-text available
The Service-Oriented Computing (SOC) paradigm has gained a lot of attention in the software industry since represents a novel way of architecting distributed applications. SOC is mostly materialized via Web Services, which allows developers to structure applications as building blocks exposing a clear, public interface to their capabilities. Althou...
Article
Motivated by the advent of powerful hardware such as SMP machines and execution environments such as Grids, research in parallel programming has gained much attention within the distributed computing community. There is a substantial body of efforts in the form of parallel libraries and frameworks that supply developers with programming tools to ex...
Article
Semantic Web Services represent the basic blocks for building a network of distributed and heterogeneous applications, without human intervention. Despite the high level of automatism that can be achieved with Semantic Web Services technology, this is not broadly adopted. One factor that hinders the widespread usage of this technology is the effort...
Article
In a previous article, the authors demonstrated that avoiding several common design errors in Web Service Description Language (WSDL) documents helps developers effectively discover Web services. Their proposed guidelines are unfortunately applicable only when publishers follow the top-down, or contract-first, method of building services, which lac...
Article
Software architectures are very important to capture early design decisions and reason about quality attributes of a system. Unfortunately, there are mismatches between the quality attributes prescribed by the architecture and those realized by its object-oriented implementation. The mismatches decrease the ability to reason architecturally about t...
Conference Paper
Full-text available
Botnets diversity and dynamism challenge detection and classifica-tion algorithms, which depend heavily on botnets protocol and can quickly be-come avoidable. A more general detection method, then, was needed. We pro-pose an analysis of their most inherent characteristics, like synchronism and network load combined with a detailed analysis of error...
Article
Nowadays, Grid Computing has been widely recognized as the next big thing in distributed software development. Grid technologies allow developers to implement massively distributed applications with enormous demands for resources such as processing power, data and network bandwidth. Despite the important benefits Grid Computing offers, contemporary...
Article
The benefits of Grids for building massively distributed applications have been broadly acknowledged. However, the high complexity of developing Grid applications compromises the widespread adoption of the paradigm. In a previous paper (Future Gener. Comput. Syst. 2008; 24(2):99–118), we have described JGRIM, a method for easily ‘gridifying’ Java a...
Article
Early detection of non-functional requirements (NFRs) is crucial in the evaluation of architectural alternatives starting from initial design decisions. The application of supervised text categorization strategies for requirements expressed in natural-language has been proposed in several works as a method to help analysts in the detection and clas...
Conference Paper
Full-text available
Service-Oriented Computing (SOC) allows developers to build applications by reusing and invoking Web-accessible services. SOC promotes loose coupling between applications and services, which has been mostly addressed by using techniques for Separation of Concerns (SoC). Contemporary SOC development models based on SoC either rely on difficult-to-ad...
Article
Software architectures capture early design decisions about a system in order to fulfill relevant quality attributes. When moving to detailed design levels, the same architecture can accept many different object-oriented implementations. A common problem here is the mismatches between the quality-attribute levels prescribed by the architecture and...
Article
Full-text available
Service-Oriented Computing (SOC) has been broadly conceived as the next big thing in distributed software development. The software industry has embraced SOC through Web Services -functionality that is accessible via ubiquitous protocols such as HTTP-. This technology provides the basis for reuse and interoperability of applications across the WWW....
Article
Service-oriented computing has been widely recognized as a revolutionary paradigm for software development. Despite the important benefits this paradigm provides, current approaches for service-enabling applications still lead to high costs for outsourcing services with regard to two phases of the software life cycle. During the implementation phas...
Article
Full-text available
In the last few years, several millions of high-capable mobile devices were sold around the globe. Therefore, integrating mobile devices to Grid systems may increase significantly their resources. However, mobile devices have more limited resources than personal computers or servers. In particular, minimizing energy consumption is very important be...
Chapter
Web Service standards and ontologies represent the basic blocks for building a world-wide network of computer-understandable resources. The process of linkingWeb Services to ontologies, a.k.a. annotation, has been identified as a hard task. This paper presents a novel approach to annotate Web Services, which is based on linking services to ontologi...
Chapter
Software design decisions are usually made at early stages but have far-reaching effects regarding system organization, quality, and cost. When doing design, developers apply their technical knowledge to decide among multiple solutions, seeking a reasonable balance between functional and quality-attribute requirements. Due to the complexity of this...
Article
Collaborative learning environments provide a set of tools for students acting in groups to interact and accomplish an assigned task. In this kind of systems, students are free to express and communicate with each other, which usually lead to collaboration and communication problems that may require the intervention of a teacher. In this article, w...
Article
Designing a JEE (Java Enterprise Edition)-based enterprise application capable of achieving its performance objectives is rather hard. Predicting the performance of this type of systems at the design level is difficult and sometimes not viable, because this requires having precise knowledge of the expected load conditions and the underlying softwar...
Conference Paper
A key aspect of architecture-centric development is the traceability of design documentation. In particular, architects should be always aware of the relationships between the architectural model ldquoas documentedrdquo and its corresponding implementation model. The problem is that these two models usually diverge from each other over time, due to...
Article
The development of massively distributed applications with enormous demands for computing power, memory, storage and bandwidth is now possible with the Grid. Despite these advances, building Grid applications is still very difficult. We present JGRIM, an approach to easily gridify Java applications by separating functional and Grid concerns in the...
Article
Full-text available
The early detection and classi cation of non-functional requirements (NFRs) is not only a hard and time consuming process, but also crucial in the evaluation of architectural alternatives starting from initial design decisions. In this paper, we propose a recommender system based on a semi-supervised learning approach for assisting analysts in the...
Article
Meeting scheduling is a time-consuming and tedious task that often involves negotiating conflicting interests among groups of people. This paper describes Chronos, a multi-agent system for helping users in organizing their meetings. The system assigns an intelligent Organizer Agent to each user. These agents are able to schedule events negotiating...
Article
The ever increasing number of publicly available Web Services makes standard-compliant service registries one of the most essential tools for service-oriented application developers. Previous works have showed that the retrieval effectiveness of this kind of registries strongly depends on the descriptiveness of published service descriptions. This...
Article
Full-text available
Software visualization studies techniques and methods for graphically representing different aspects of software. Its main goal is to enhance, simplify and clarify the mental representation a software engineer has of a computer system. During many years, visualization in 2D space has been actively studied, but in the last decade, researchers have b...
Chapter
Grid technologies allow developers to run applications with enormous demands for resources such as processing power, data and network bandwidth. However, exploiting Grid resources demands developers to alter their applications to explicitly access the services of specific Grid middlewares. This involves more development effort and requires expertis...
Conference Paper
Locating software faults is a problematic activity in many systems. Existing tool approaches usually work close to the system implementation, requiring the developer to perform tedious code analyses in which the amount of information she must manage is usually overwhelming. This problem calls for approaches able to work at higher abstraction levels...
Article
Grid technologies allow developers to run applications with enormous demands for resources such as processing power, data and network bandwidth. However, exploiting Grid resources demands developers to alter their applications to explicitly access the services of specific Grid middlewares. This involves more development effort and requires expertis...
Article
Many advances have been done to allow groups of people to work together and collaborate in the Internet. Collaborative systems are characterized by the way participants interact. In many cases, equal standing members should cooperate in a non-authoritative environment, where no entity or authority is or should be in charge of regulating the group....
Article
Full-text available
A software architecture is a blueprint that captures the main design decisions for a system. When designing an architecture, the architect normally evaluates multiple solutions, making a balance among architectural patterns that affect several quality attributes (for example, performance, modifiability, and so on). In this exploration of the design...
Article
Full-text available
Software architecture designs give us blueprints to build systems, enabling key early decisions that can help us achieve a system's functional and quality-attribute requirements. Architectural decisions have far-reaching effects on development in terms of quality, time, and cost. Architects apply technical knowledge and experience to guide their de...
Article
The lack of proper support for multicast services in the Internet has hindered the widespread use of applications that rely on group communication services such as mobile software agents. Although they do not require high bandwidth or heavy traffic, these types of applications need to cooperate in a scalable, fair and decentralized way. This paper...
Article
Object-oriented patterns are enjoying much popularity as mechanisms to address flexibility and reusability in object-oriented designs. Consequently, many troubles have appeared to incorporate these practices to novice designers. The selection of appropriate patterns for a given design context is left to the developer’s criterion. This activity can...
Article
The Grid shows itself as a globally distributed computing environment, in which hardware and software resources are virtualized to transparently provide applications with vast capabilities. Just like the electrical power grid, the Grid aims at offering a powerful yet easy-to-use computing infrastructure to which applications can be easily ‘plugged’...

Network

Cited By