Educational software development processes, used in course projects, must exercise practices and ... more Educational software development processes, used in course projects, must exercise practices and artifacts comparable to similar industry-level processes, while achieving acceptable productivity and quality, and, at the same time, complying with constraints on available student time. Here, we discuss our experience with a specific model-driven development process, applied in a time-constrained software engineering course. The course projects are developed in iterations, each delivering a subset of the product functions. These, specified as use cases, undergo a sequence of model transformations, until they become tested code. Transformation steps are verified using standardized quality gates (inspections, tests, and audits), which serve three purposes: teaching verification, validation and quality assurance; helping to assess and grade projects; and providing feedback for process improvement. Size, effort and defect data is recorded in standardized reports. Collected data show that the quality gates proved effective to ensure compliance with the prescribed process, and that using a balanced reusable framework is necessary to achieve satisfactory productivity and quality.
Electronic Notes in Theoretical Computer Science, Mar 1, 2016
We discuss the evolution of Praxis, a model-driven process framework, building on feedback from e... more We discuss the evolution of Praxis, a model-driven process framework, building on feedback from educational and professional applications, along the past fifteen years. We follow the evolution from Praxis first version to the current one, discussing what was introduced in each. For past and current versions, we classify model improvements, discussing their nature and rationale, derived from received feedback.
This paper discusses results achieved in measuring complexity, effectiveness and efficiency, in a... more This paper discusses results achieved in measuring complexity, effectiveness and efficiency, in a series of related software course projects, spanning a period of seven years. We focus on how the complexity of those projects was measured, and how the success of the students in effectively and efficiently taming that complexity was assessed. This required defining, collecting, validating and analyzing several indicators of size, effort and quality; their rationales, advantages and limitations are discussed. The resulting findings helped to improve the process itself.
Defined software engineering processes help to perform and guide software engineering course proj... more Defined software engineering processes help to perform and guide software engineering course projects. However, several difficult issues are involved in designing a software process for this purpose. This design is even harder when it must suit timeconstrained course projects. Here, we discuss several issues concerning such processes, focusing on an educational setting.
Defined software engineering process help teaching and guiding software engineering courses proje... more Defined software engineering process help teaching and guiding software engineering courses projects. However, using them raises several issues related to process and course features. Architecture issues relate to matching process and course lifecycle models. Size issues address project scope and extent. Support issues deal with student and instructor materials and tools.
In use-case driven software development, a project is organized as sequence of use-case developme... more In use-case driven software development, a project is organized as sequence of use-case development workflows. Here, we describe a process where each workflow instance is a sequence of model transformation steps, whose outcome has to pass defined quality gates. This process was applied in two classes of an industryoriented software engineering course. Collected size data confirm that application of process standards, significant reuse, and automated tests were quality factors. Inspection and audit data confirm the positive influence of inspections on the quality of design material, but show that improvements are needed for code and managerial artifacts.
Assessing software engineering course projects should evaluate the achievement of proposed goals,... more Assessing software engineering course projects should evaluate the achievement of proposed goals, as well as the compliance with mandated standards and processes. This might require the examination of a significant volume of materials, following a consistent, repetitive and effective procedure, even for small projects. Quality assurance must be performed according to similar requirements. This paper discusses the use of quality audits, a comprehensive quality assurance procedure, as a tool for the assessment of course projects.
Software engineering education must provide the students with knowledge and practice of software ... more Software engineering education must provide the students with knowledge and practice of software development processes. These must be used in course projects, to confront the students with realistic software engineering issues. A requirements set for educational software development processes is proposed here. It includes requirements about process architecture, team orientation, project life cycle, standards and practicesl student support and instructor support. Some published real-life processes were evaluated against these requirements, and a new process was designed to meet them. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.
Requirement Engineering (RE) activities are manual and critical by nature. Providing some automat... more Requirement Engineering (RE) activities are manual and critical by nature. Providing some automated support for the RE tasks helps analysts to reduce manual labor, and in consequence, reduce defects rates and increase reuse and motivation. In this paper, we introduce a UML framework and tool support which automates part of the RE process. Using UML stereotypes concepts as the core of this solution, we created a set of integrated tools composed by: (1) a reusable framework that models some common RE behavior patterns that are typically present in information system projects; (2) a function that allows the reuse of information provided by entity modeling; (3) a tool that automates the generation of application prototypes; and (4) a tool that analyzes specific types of defects. Our preliminary findings indicate that the framework and the automated support are effective at RE modeling and review. In addition, they increase motivation and promote team engagement, through elimination of repetitive activities.
Arcomov/X is a GIS-based tool for computer-aided design of mobile telephone systems, which presen... more Arcomov/X is a GIS-based tool for computer-aided design of mobile telephone systems, which presents a good level of on-line interactivity. Engineering and geographical data are retrieved from an extended relational database, while altimetric data come from a special purpose database, developed for performance reasons. This paper presents Arcomov/X and discusses the main design decisions behind its specification and implementation.
As metodologias ágeis propõem uma nova abordagem para o desenvolvimento de software onde os gasto... more As metodologias ágeis propõem uma nova abordagem para o desenvolvimento de software onde os gastos excessivos com formalismo são eliminados, ao mesmo tempo em que priorizam o bom relacionamento com as pessoas que participam do projeto, a adaptação às mudanças e as atividades prioritárias para o usuário final. Este trabalho relata uma experiência de desenvolvimento e evolução de um processo que combina práticas do Scrum e do XP em uma organização que utilizava o processo tradicional, mostrando as dificuldades e os benefícios obtidos na migração de um processo tradicional para o ágil.
XIII Argentine Symposium on Software Engineering (ASSE 2012) (XLII JAIIO, La Plata, 27 al 31 de agosto de 2012), 2012
Requirement Engineering (RE) activities are manual and critical by nature. Providing some automat... more Requirement Engineering (RE) activities are manual and critical by nature. Providing some automated support for the RE tasks helps analysts to reduce manual labor, and in consequence, reduce defects rates and increase reuse and motivation. In this paper, we introduce a UML framework and tool support which automates part of the RE process. Using UML stereotypes concepts as the core of this solution, we created a set of integrated tools composed by: (1) a reusable framework that models some common RE behavior patterns that are typically present in information system projects; (2) a function that allows the reuse of information provided by entity modeling; (3) a tool that automates the generation of application prototypes; and (4) a tool that analyzes specific types of defects. Our preliminary findings indicate that the framework and the automated support are effective at RE modeling and review. In addition, they increase motivation and promote team engagement, through elimination of repetitive activities.
Software engineering education must provide the students with knowledge and practice of software ... more Software engineering education must provide the students with knowledge and practice of software development processes. These must be used in course projects, to confront the students with realistic software engineering issues. A requirements set for educational software development processes is proposed here. It includes requirements about process architecture, team orientation, project life cycle, standards and practices, student support and instructor support. Some published real-life processes were evaluated against these requirements, and a new process was designed to meet them.
In the context of the PrATIco Project (Process for Acquisition of IT Products and Services), this... more In the context of the PrATIco Project (Process for Acquisition of IT Products and Services), this paper presents a methodology used to determine the process capability of software organizations, using the CMMI model. This paper also shows the observed results obtained from the application of the methodology in the evaluation of s oftware development organizations in Minas Gerais (a Brazilian state). These results point a low mean performance on supporting CMMI level 2 specific practices. No escopo do projeto de desenvolvimento do PrATIco (Processo para Aquisição de Produtos e Serviços de TI), o artigo apresenta uma metodologia para a determinação da capacidade de processos de empresas fornecedoras de software, utilizando o modelo CMMI. Este artigo também mostra a situação das empresas mineiras. Os resultados observados da aplicação dessa metodologia em Minas Gerais apontaram um baixo desempenho médio no atendimento à s práticas específicas do nível 2 do CMMI.
Anais do III Simpósio Brasileiro de Qualidade de Software (SBQS 2004), 2004
Neste artigo descrevemos uma experiência com um programa de melhoria de organizações técnicas, no... more Neste artigo descrevemos uma experiência com um programa de melhoria de organizações técnicas, nos aspectos de processos, pessoas e tecnologia, focalizando problemas da Gestão da Qualidade (Garantia da qualidade, Gestão de configurações e Gestão de revisões). Constatou-se que o diagnóstico e as recomendações do programa foram fundamentais para definir quais procedimentos da organização precisavam ser alterados, quais requeriam apenas um detalhamento e quais necessitavam de reestruturação profunda. Sem o programa, a Gestão da Qualidade continuaria sendo relegada a um segundo plano dentro da organização, não produtiva e realizada apenas para o cumprimento formal do processo oficial.
2009 22nd Conference on Software Engineering Education and Training, 2009
Assessing software engineering course projects should evaluate the achievement of proposed goals,... more Assessing software engineering course projects should evaluate the achievement of proposed goals, as well as the compliance with mandated standards and processes. This might require the examination of a significant volume of materials, following a consistent, repetitive and effective procedure, even for small projects. Quality assurance must be performed according to similar requirements. This paper discusses the use of quality audits, a comprehensive quality assurance procedure, as a tool for the assessment of course projects.
In the context of the PrATIco Project (Process for Acquisition of IT Products and Services), this... more In the context of the PrATIco Project (Process for Acquisition of IT Products and Services), this paper presents a methodology used to determine the process capability of software organizations, using the CMMI model. This paper also shows the observed results obtained from the application of the methodology in the evaluation of s oftware development organizations in Minas Gerais (a Brazilian
Uploads
Papers by Wilson Padua