This is a list of all published work connected to ArgoUML in one way or the other. If you know of other published works associated with ArgoUML, books, articles, dissertations, papers, please tell us so that we can include them here. We can also keep a copy of your Internet-published ArgoUML-related work in case your publication site is impermanent.
Edited by: Linus Tolke
As a fine-grained defect detection technique, unittesting introduces a strong dependency on the structure of the code. Accordingly, test co-evolution forms an additional burden to the software developer, which can be tempered by writing tests in a manner that makes them easier to change. Fortunately, we are able to concretely express what a good test is by exploiting the specific principles underlying unit testing. Analogous to the concept of code smells, violations of these principles are termed test smells. In this paper, we clarify the structural deficiencies encapsulated in test smells by formalizing core test concepts and their characteristics. To support the detection of two such test smells, General Fixture and Eager Test, we propose a set of metrics defined in terms of unit test concepts. We compare their detection effectiveness using manual inspection and through a comparison with human reviewing. While the latter is the traditional means for test quality assurance, our results indicate it not to be a reliable means for test smell detection. This work thus stresses the need for a more reliable detection mechanism, and provides an initial contribution through the validation of test smell metrics.
Links: pdfUML based notation for ORM diagrams
Links: The articleTest code, just like any other code we write, erodes when frequently changed. As such, refactoring, which has been shown to impact maintainability and comprehensibility, can be part of a solution to counter this erosion. We propose a metric-based heuristical approach, which allows to rank occurrences of so-called test smells (i.e. symptoms of poorly designed tests) according to their relative significance. This ranking can subsequently be used to start refactoring. Through an open-source case study, ArgoUML, we demonstrate that we are able to identify those test cases who violate unit test criteria.
Links: Portal pageThe design is an important task in the object-oriented software development. Collaborative tools has been considered to be used in software development, however little effort has been made in the assessment of usage of these tools for both productivity verification and effectiveness of collaborative learning. For the assessment of the effectiveness of collaborative learning, it is required the data collection for analysis. This article describes a study of data collection for the assessment of the effectiveness of learning of students groups where a collaborative tool was used to assist the learning of UML.
Resumo.O projeto é uma tarefa importante no desenvolvimento de software orientado a objetos. Ferramentas colaborativas têm sido consideradas para serem utilizadas no desenvolvimento de software, contudo pouco esforço tem sido feito na avaliação do uso dessas ferramentas tanto para a verificação de produtividade quanto para a eficácia do aprendizado colaborativo. Para avaliação da eficácia do aprendizado colaborativo existe uma necessidade de obtenção de dados para a análise. O presente artigo descreve um estudo da coleta de dados para a avaliação da eficácia do aprendizado de grupos de alunos onde uma ferramenta colaborativa foi empregada para auxiliar o aprendizado da UML.
Links: pdf | Illustrating videos (in Portuguese)Enterprise Java Development on a Budget combines coverage of best practices with information on the right open source Java tools and technologies, all of which will help support your Java development budget and goals.
Links: Information on AmazonIntroduction to Object-Oriented Analysis and Design is the first book to introduce object-oriented methods without either requiring students to know Java or C++ or relying on classical methods to introduce key concepts. It focuses strictly on an objectoriented approach - instead of a hybrid - to view all phases of the Systems Development Life Cycle.
Links: Information on AmazonNoch vor der Erstellung eines detaillierten Entwurfs hilft ein Spezifiationmodell eines komponenten-basierten Systems dabei, Probleme so früh im Entwicklungsprozeß wie möglich zu entdecken. Die Sprache CCL ('Component Constraint Language') wurde bei CIS entwickelt und erlaubt den Entwickler 'Contextbased Constraints' dem Spezifikationsmodell hinzuzufügen. Dadurch entsteht ein Modell, das über die Beschreibung der statische Struktur des Systems hinausgeht. Zur Zeit existiert allerdings kein Werkzeug, das das Komponentenspezifikationsmodell in den Entwicklungsprozeß integriert. Ziel dieser Diplomarbeit war der Entwurf eines solchen Werkzeugs, um die Philosophie des Continuous Software Engineering (CSE) zu unterstützten.
Abstract translated to English:Before starting a detailed design, a specification model of the component-based system assists the software developer in early problem detection as soon as possible in the development process. The Component Constraint Language (CCL) developed at CIS enables the developer to add context-based constraints (CoCons) to a component specification model. This produces a model which goes beyond the simple description of the system's static structure. At this time, there is no tool to integrate the component specification model into the development process. The goal of this master's thesis was to design such a tool, thereby supporting the Continuous Software Engineering (CSE) philosophy.
Software quality remains a very subjective and at times vague, notion. However it is a fact that most serious developers and the majority of software users require some form of qualitative measure for the software systems they are concerned with. Software quality assurance can be carried out at various stages of the software development process but this project deals with the measurement of the quality of object-oriented designs. The implemented system will allow the user to design any system using the Unified Modeling Language (UML) and then provide quality readings from different perspectives of the system. It is worth noting that it is virtually impossible to come up with a quality scale to gauge the quality of systems. i.e. The project will not produce a result such as "The system is considered to be 85% good quality." This is mainly due to the fact that when asking for a quality system, conflicts and contradictions tend to occur (e.g. trying to develop a highly reusable system that is very efficient). In the light of this fact, the system will not gauge the quality of the system on a predefined scale but rather provide the user metric readings that provide different views of the quality characteristics of the system in question. The user will use the tool to identify potential problem areas and fix them before the project goes into implementation stage.
Links: pdf | Related powerpoint presentationA prototype system that takes OCL expression strings as input and interpret/evaluate them in the context of a UML model. The OCL interpreter was developed using Java's reflection feature. OCL was used as a query language (OQL - Object Query Language) to retrieve a subset of any large UML model based on any specified OCL constraints. This is useful to navigate large and complex UML models. A goal was to create a proof of concept to use UML as a general purpose knowledge modeling language and use ArgoUML as the capture, editing and retrieval tool.
Enables real-time animated visualization of systems dynamics and software execution in high-level UML design diagrams. An animation framework named "Waltz" was created on top of GEF, and UML model objects were animated in real-time while either the software resulting from the model got executed or simply dynamic transitions were visualized in the design model. It was like a visual tracing and debugging system - animating, for instance, the state chart transitions of objects, either in real-time or in design-time.
Software design is a cognitively challenging task. Most software design tools provide support for editing, viewing, storing, sharing, and transforming designs, but lack support for the essential and difficult cognitive tasks facing designers. These cognitive tasks include decision making, decision ordering, and task-specific design understanding. To date, software design tools have not included features that specifically address key cognitive needs of designers, in part, because there has been no practical method for developing and evaluating these features.
This dissertation contributes a practical description of several cognitive theories relevant to software design, a method for devising cognitive support features based on these theories, a basket of cognitive support features that are demonstrated in the context of a usable software design tool called Argo/UML, and a reusable infrastructure for building similar features into other design tools. Argo/UML is an object-oriented design tool that includes several novel features that address the identified cognitive needs of software designers. Each feature is explained with respect to the cognitive theories that inspired it and the set of features is evaluated with a combination of heuristic and empirical techniques.
Links: HTML (front) | pdf (front) | FrameMaker (front)Design critiquing systems are a type of intelligent user interface used to support human designers in decision making. This paper places design critics in the larger context of intelligent user interface approaches and surveys several critiquing systems. Each approach and system is evaluated with respect to a five-phase design improvement process. This paper concludes with a summary of the state of the art in critiquing systems and recommendation for future research directions.
Links: pdfDomain-oriented design environments are cooperative problem-solving systems that support designers in complex design tasks. In this paper we present the facilities and architecture of Argo, a domain-oriented design environment for software architecture. Argos architecture is motivated by the desire to achieve reuse and extensibility of the design environment. It separates domain-neutral code from domain-oriented code, which is distributed among intelligent design materials as opposed to being centralized in the design environment. Argos facilities are motivated by the observed cognitive needs of designers. These facilities extend previous work in design environments to support reflection-in-action, opportunistic design, and comprehension and problem-solving.