1 |
[en] SOFTWARE AND THE SOFTWARE DEVELOPMENT PROCESS: SOME REFLECTIONS UNDER A ESSENTIAL MODELING PERSPECTIVE / [pt] SOFTWARE E PROCESSO DE DESENVOLVIMENTO DE SOFTWARE: ALGUMAS REFLEXÕES SOB UMA PERSPECTIVA DE MODELAGEM DA ESSÊNCIAENIO JOSE DA ROCHA GARBIN 31 August 2009 (has links)
[pt] O presente trabalho faz um detalhado estudo visando enriquecer o conhecimento sobre Processo de Desenvolvimento de Software (das questões técnicas às gerenciais). Uma abordagem sistêmica a esses tópicos, buscando um rigoroso e formal tratamento de seus conceitos e definições, é realizada e suas características essenciais sçao levantadas e avaliadas dentro de uma visão de Engenharia e sob a perspectiva de uma Modelagem de Essência. / [en] This work does a detailed study aiming to increase the knowledge about Software Development Process (from technical to management questions). A systemic approach to these topics, seeking a rigorous and formal treatment of their concepts and definitions, is done and their essential and fundamental characteristics are raised and evaluated from a view of engineering and under the perspective of Essential Modeling.
A Vocabulary is established aiming to formulate a language (basics of all discussion of this work) with the minimum of ambiguities.
A Social-Technical Systems Modeling Structure is presented and an Essential Model to the Software Development Process is proposed.
The use of the Modeling Structure in this work is evaluated and it is analyzed under the perspective of the Essential Model proposed. At last, suggestions to further works in research and experimentation are presented.
|
2 |
[en] AN ANALYSIS OF PRACTICES IN APPLYING SCRUM ON LARGE PROJECTS / [pt] UMA ANÁLISE DE PRÁTICAS NA APLICAÇÃO DE SCRUM EM PROJETOS DE GRANDE PORTEEVANDRO OLIVEIRA DAS FLORES 25 July 2012 (has links)
[pt] Na literatura disponível hoje, encontram-se exemplos da utilização do
Scrum em projetos e times pequenos, deixando um questionamento sobre a
possibilidade de utilização desta metodologia em projetos e/ou times grandes.
Esta dissertação tem por objetivo examinar casos práticos de empresas conhecidas
onde foi utilizado Scrum em projetos grandes, enfatizando as dificuldades
encontradas ao longo de todo processo e as soluções adotadas, destacando as
práticas que levaram os projetos a obter sucesso. / [en] In today s writings, there are many examples of using Scrum in small teams
and projects, leaving a knowledge gap about the possibility of applying Scrum in
big teams and large projects. This work aims at presenting case studies in known
companies where Scrum has been applied in large projects, emphasizing the
roadblocks found throughout the process, and the solutions adopted, highlighting
the practices that lead the projects to success.
|
3 |
[en] SDIFF: A COMPARISON TOOL BASED IN SYNTACTICAL DOCUMENT STRUCTURE / [pt] SDIFF: UMA FERRAMENTA PARA COMPARAÇÃO DE DOCUMENTOS COM BASE NAS SUAS ESTRUTURAS SINTÁTICASTHIAGO PINHEIRO DE ARAUJO 15 September 2010 (has links)
[pt] Associado a cada sistema de controle de versão existe uma ferramenta de
comparação responsável pela extração das diferenças entre duas versões de um
documento. Estas ferramentas costumam realizar a comparação baseando-se na
informação textual dos documentos, em que o elemento indivisível na comparação
é a linha ou a palavra. Porém, o conteúdo versionado normalmente é fortemente
estruturado (como exemplo, linguagens de programação) e a utilização deste
mecanismo pode desrespeitar limites sintáticos e outras propriedades do
documento, dificultando a interpretação das alterações. Nesse trabalho foi
construída uma ferramenta para identificar as diferenças entre duas versões de um
documento utilizando um mecanismo de comparação baseado na sua estrutura
sintática. Desta forma, é possível identificar com maior precisão as diferenças
relevantes ao leitor, reduzindo o esforço para compreender a semântica das
alterações. A ferramenta construída é capaz de suportar diferentes tipos de
documentos a partir da implementação de componentes que tratem das sintaxes
desejadas. O componente implementado como exemplo neste trabalho trata a
sintaxe da linguagem de programação C++. / [en] Associated with each version control system there’s a comparison tool for
extracting the differences between two versions of a document. These tools tend
to make a comparison based on textual information from documents, in which the
indivisible element is the line or word. But the content versioned is usually highly
structured (for example, programming languages) and the use of this mechanism
can disrespect syntactical limits and other properties of the document, becoming
difficult to interpret what really changed. In this work we created a tool to identify
differences between two versions of a document using a comparison mechanism
based on the syntactic structure. Thus, it is possible to identify more precisely the
relevant differences to the reader, reducing the effort to understand the semantics
of the changes. The tool can support different types of documents by
implementing components that interprets the desired syntax. The example syntax
component implemented in this work deals with the syntax of the programming
language C++.
|
4 |
[en] AN ASPECT-ORIENTED FRAMEWORK FOR SOFTWARE AGENTS MOBILITY / [pt] UM FRAMEWORK ORIENTADO A ASPECTOS PARA MOBILIDADE DE AGENTES DE SOFTWARECIDIANE ARACATY LOBATO 29 March 2006 (has links)
[pt] Engenheiros de sistemas multi-agentes (SMAs) móveis devem
lidar com
o projeto e a implementação de mobilidade de código, além
do projeto e
implementação de funcionalidades básicas e outros
requisitos. À medida que a
complexidade dos SMAs aumenta, questões referentes à
mobilidade não podem
ser modularizadas somente a partir da utilização de
abstrações e mecanismos
orientados a objetos (OO). Além disso, vários
programadores freqüentemente
evidenciam a presença de problemas de entrelaçamento e
espalhamento em suas
linhas de código referentes à mobilidade. Apesar de tais
problemas, os
desenvolvedores de SMAs têm se apoiado vastamente na
utilização de
interfaces de programação de aplicações (APIs) OO das
plataformas de
mobilidade e na linguagem de programação Java. O resultado
é a produção de
SMAs que são difíceis de entender, manter e reutilizar.
Este trabalho apresenta
três contribuições principais. Primeiramente, é realizada
uma análise das
soluções existentes para separação dos interesses de
mobilidade. Além disso,
são propostos a arquitetura de software ArchM e o
framework AspectM, ambos
baseados em aspectos, visando: (i) uma clara separação dos
interesses de
mobilidade em relação às funcionalidades básicas e outros
requisitos, (ii) uma
introdução transparente do código de mobilidade em agentes
estacionários, e
(iii) uma integração flexível dos SMAs com plataformas de
mobilidade
existentes. O desenvolvimento de software orientado a
aspectos é um novo
paradigma com abstrações e mecanismos de composição que
possibilitam o
aumento do grau de reusabilidade e manutenibilidade dos
sistemas. Os
benefícios de ArchM e AspectM são ilustrados através de
dois estudos de caso e
com o uso de duas plataformas de mobilidade. / [en] Software engineers of multi-agent systems (MASs) are
concerned with
the design and implementation of the mobility issues in
addition to the agents`
basic functionalities and other agent-related concerns. As
the agents`
complexity increases, mobility issues cannot be
modularized based only on
object-oriented (OO) abstractions and mechanisms. Besides,
some programmers
frequently evidence the presence of mobility tangling and
scattering problems
on their systems. Despite these problems, MAS developers
have mostly relied
on application programming interfaces (APIs) OO from
mobility platforms and
on the use of the Java programming language. The result is
the production of
MASs that are difficult to understand, maintain, and
reuse. This work presents
three main contributions. Firstly, an analysis of existent
solutions for
modularization of mobility issues. Besides, the proposal
of the ArchM software
architecture and the AspectM framework, both based on
aspects, which support:
(i) improved modularization of the mobility issues, that
is, a clean separation
between the mobility-specific concerns and the other agent
concerns, (ii) a
seamless introduction of code mobility into stationary
agents, and (iii) a flexible
integration with multiple mobility platforms. The aspect-
oriented software
development (AOSD) is a new paradigm with abstractions and
composition
mechanisms that support an improvement of reuse and
maintainability of
systems. The benefits of the AspectM framework are
illustrated through two
case studies and through use of two mobility platforms.
|
5 |
[en] A QUANTITATIVE APPROACH TO ASPECT ORIENTED SOFTWARE DEVELOPMENT / [pt] UMA ABORDAGEM QUANTITATIVA PARA DESENVOLVIMENTO DE SOFTWARE ORIENTADO A ASPECTOSEDUARDO MAGNO LAGES FIGUEIREDO 05 July 2006 (has links)
[pt] O desenvolvimento de software orientado a aspectos é um
paradigma
recente que introduz novas abstrações e mecanismos com o
objetivo de melhorar a
modularidade de interesses que se espalham pelo sistema.
Entretanto, a satisfação
de atributos de qualidade em sistemas orientados a
aspectos não é tarefa simples e
a utilização equivocada destas novas abstrações pode
resultar em efeitos colaterais
relacionados a princípios importantes da Engenharia de
Software, tais como
elevado acoplamento, baixa coesão dos módulos e incompleta
modularidade dos
interesses em aspectos. Problemas como estes não são
facilmente verificáveis em
sistemas de médio e grande porte sem um método adequado e,
geralmente,
consomem muito tempo e recursos. Portanto, torna-se
necessário um método de
avaliação que auxilie engenheiros de software na análise
de sistemas orientados a
aspectos. Este trabalho de mestrado propõe uma abordagem
que provê suporte à
avaliação quantitativa de implementações orientadas a
aspectos. A abordagem
incluiu: (i) um método de avaliação organizado em etapas,
e (ii) uma ferramenta
de medição e avaliação, chamada AJATO, que dá suporte ao
método proposto. O
método é composto por um conjunto de métricas e regras
heurísticas. As métricas
fornecem informações quantitativas e as heurísticas
contribuem com algum
raciocínio semântico dos números. A ferramenta AJATO é
composta por quatro
módulos que efetuam o parser do código, mapeamento de
estruturas sintáticas em
interesses, medição e avaliação heurística. Um conjunto de
cinco estudos de caso
envolvendo domínios de aplicação distintos foi realizado
para avaliar a utilidade e
usabilidade da abordagem proposta. / [en] Aspect-oriented software development is an emerging
paradigm that
provides new abstractions and mechanisms to support the
modularization of
crosscutting concerns through the software development
lifecycle. However, the
achievement of high-quality aspect-oriented software is
not trivial. The
inappropriate use of aspect-oriented abstractions and
mechanisms potentially
leads to the violation of important design principles,
such as low coupling, high
cohesion, incomplete modularization of crosscutting
concerns into aspects, and so
forth. These problems are not easily detectable and an ad
hoc analysis of large
designs and implementations is often expensive and time-
consuming. Hence there
is a need for an assessment method that assists software
engineers in the analysis
of their aspect-oriented implementations. This work
proposes the development of
a systematic approach to support the quantitative
assessment of aspect-oriented
software. The approach is organized in a stepwise fashion
and is founded on a
metrics suite and a comprehensive set of complementary
rules. Our proposal is
supported by a measurement and assessment tool. A set of
five case studies from
different application domains have been carried out in
order to evaluate the
usability and usefulness of our proposed approach.
|
6 |
[en] AN ASPECT-ORIENTED APPROACH TO FRAMEWORK DEVE LOPMENT / [pt] UMA ABORDAGEM ORIENTADA A ASPECTOS PARA O DESENVOLVIMENTO DE FRAMEWORKSUIRA KULESZA 04 December 2007 (has links)
[pt] Esse trabalho propõe uma abordagem sistemática para o
desenvolvimento
de frameworks usando técnicas orientadas a aspectos (OA).
O objetivo central
da abordagem é melhorar a capacidade de extensão e
configuração de
frameworks orientados a objetos (OO) para diferentes
cenários de reutilização,
através de uma melhor gerência de suas características. A
abordagem é
composta por: (i) um conjunto de diretrizes para o projeto
e implementação de
frameworks usando programação orientada a aspectos; e (ii)
um modelo
generativo usado para a instanciação automática do
framework e suas
variabilidades OO e OA. As diretrizes propõem a definição
de um conjunto de
pontos de junção de extensão (EJPs - extension join
points) no código do
framework, os quais podem ser usados para estender a
funcionalidade básica do
framework através da implementação de aspectos de
extensão. Tais aspectos
são responsáveis pela implementação de características
transversais opcionais,
alternativas ou de integração demandadas por usuários do
framework. A
abordagem é demonstrada com a implementação / refatoração
de 3 frameworks
OO pertencentes a diferentes domínios de aplicação. Uma
avaliação da
abordagem por meio de um estudo qualitativo e um estudo
quantitativo é
também apresentada. Finalmente, diversas lições aprendidas
e discussões
resultantes da experiência de uso da abordagem são
descritas. / [en] This work proposes a systematic approach to framework
development
which relies on the use of aspect-oriented (AO)
techniques. The main goal of
the approach is to improve the extensibility and
configurability of objectoriented
(OO) frameworks. It is composed of: (i) a set of
guidelines to design
and implement frameworks using aspect-oriented
programming; and (ii) a
generative model which allows the automatic instantiation
of the framework
and its respective OO and AO variabilities. Our guidelines
propose the
definition of extension join points (EJPs) in the
framework code, which can be
used to extend the framework basic functionality by means
of extension aspects.
The extension aspects are responsible for implementing
optional, alternative
and integration crosscutting features required by the
framework users. Since
such aspects can be automatically unplugged from the
framework code, our
approach makes it easier to customize the framework to
specific needs. Three
cases studies are presented to illustrate the
applicability of our approach to the
development of frameworks from different domains. The
approach is also
evaluated through both a qualitative and a quantitative
study. Finally, several
lessons learned and discussions resulting from the use of
the approach are
described.
|
7 |
[en] THE USE OF ANALOG PROCESSES AS A FACTOR TO IMPROVE SOFTWARE QUALITY: A CASE STUDY OF ORTHO-MEDICAL SOFTWARE / [pt] A UTILIZAÇÃO DE PROCESSOS ANALÓGICOS COMO FATOR DE MELHORIA DA QUALIDADE DO ARTEFATO SOFTWARE: O ESTUDO DE CASO DO SOFTWARE MÉDICO ORTOGABRIEL VIEIRA MONTEIRO 19 December 2003 (has links)
[pt] A presente dissertação avalia um software médico através
de
parâmetros e critérios ergonômicos. Primeiramente
descrevem-
se os conceitos relativos a Tecnologia da Informação e
conceitua-se o software como um dos subsistemas de
qualquer sistema de Tecnologia da Informação. A partir de
então, verificou-se as etapas de desenvolvimento de
software, relacionados ao contexto de usabilidade.
Levantaram-se também os principais problemas de interação
encontrados no software. A segunda parte da pesquisa, um
estudo de caso, inclui a realização de heurística,
entrevistas, grupo de foco e técnica de eliciação do
conhecimento (card sorting), para que os usuários
pudessem
expressar sua opinião com relação ao software, às
dificuldades encontradas e à utilização de menus. / [en] This thesis evaluates a medical software according to
ergonomic criteria and parameters. Firstly, the concepts
related to Information technology were described and the
software was defined as one of the subsystems together
whith the presentation of Information Technology. After
that, the stages of software design were determined:
context of usability. The main problems related to software
interfaces were also described. The second part of this
research, a case study, included heuristic approach,
interview, focus groups and a knowledge elicitation (card
sorting). So that users would have the opportunity to
express their opinions in relation to the difficulties
faced with its use.
|
8 |
[en] ON THE MODULARITY OF ASPECT-ORIENTED DESIGN: A CONCERN-DRIVEN MEASUREMENT APPROACH / [pt] MODULARIDADE DE DESIGN ORIENTADO A ASPECTOS: UMA ABORDAGEM DE MEDIÇÃO DIRIGIDA POR INTERESSESCLAUDIO NOGUEIRA SANTANNA 08 February 2017 (has links)
[pt] Muitos problemas de modularidade de design de software estão relacionados à modularização inadequada de interesses importantes e que têm impacto sistêmico no design, tais como tratamento de exceção, distribuição e persistência. No entanto, a maioria das abordagens atuais de avaliação quantitativas não levam em conta os interesses que guiam o design, o que acaba fazendo com que o processo de avaliação de modularidade se torne deficiente. Portanto, existe a necessidade de abordagens de medição que promovam uma identificação mais efetiva dos problemas de modularidade relacionados a interesses transversais. Além disso, essa necessidade se torna ainda mais evidente à medida que surgem novas formas de decomposição de design, tais como desenvolvimento de software orientado a aspectos. Nesse contexto, essa tese tem o objetivo de definir e investigar uma nova abordagem de avaliação quantitativa de modularidade de design de software que promove o conceito de interesse a uma abstração de medição. Esse trabalho define uma abordagem de medição dirigida por interesse que inclui um conjunto de mecanismos para avaliação de modularidade de software desde o design arquitetural até o design detalhado. A abordagem sensível a interesse proposta é composta por: (i) um conjunto de métricas arquiteturais, (ii) um conjunto de métricas de design detalhado, (iii) um conjunto de regras heurísticas de design que dão apoio a interpretação das métricas, e (iv) uma ferramenta, chamada de COMET, que dá apoio tanto à notação quanto à medição dirigida por interesses de design arquitetural. A utilidade da técnica de medição dirigida por interesses proposta foi avaliada em uma série de estudos empíricos, onde a modularidade de designs convencionais e orientados a aspectos foram comparados. / [en] Several modularity problems in software designs are related to the inadequate modularization of key broadly-scoped concerns, such as exception handling, distribution, and persistence. However, most of the current quantitative assessment aproaches are not sensitive to concerns that drive the design, thereby leading to a number of shortcomings in the modularity evaluation process. Therefore, there is a need for measurement approaches that support a more effective identification of modularity anomalies related to crosscutting concerns. Also, this necessity becomes more apparent in an age that a number of different fomrs of design decompositions, such as aspect-oriented software development, are emerging. In this context, this thesis aims at investigating a novel approach for quantittative modularity assessment of software design by promoting the concept of concern as a measurement abstraction. Our concern-driven measurement approach encompasses a set of mechanisms for assessing software modularity from architectural to detailed design. The prposed concern-sensitive approach includes:(i) a suite of architectural metrics, (ii) a suite of detailed design metrics, (iii) a suite of design heuristic rules for supporting the interpretation of metrics in meaningful ways, and (iv) a tool, called COMET, that supports bots concern-drive notation and measurement of architectual designs. We evaluated the usefulness of our concern-oriented measurement techinique in a series of emprical studies, comparing the modularity of conventional and aspect-oriented software design.
|
9 |
[en] FROM REQUIREMENTS TO CODE: A PROCESS TO DEVELOP MORE TRANSPARENT SOFTWARE / [pt] DOS REQUISITOS AO CÓDIGO: UM PROCESSO PARA DESENVOLVIMENTO DE SOFTWARE MAIS TRANSPARENTEEDUARDO KINDER ALMENTERO 15 July 2015 (has links)
[pt] Transparência, no sentido de translúcido, é um conceito presente em uma enorme variedade de âmbitos e, recentemente, tem sido explorado no contexto de software. Um software transparente é aquele que informa sobre si mesmo, disponibilizando informação sobre o que faz, como e porque o faz. A abordagem da transparência no contexto de software se iniciou através da instanciação de um catálogo de requisitos não funcionais (RNFs), que inicialmente foi desenvolvido para transparência de processos. Durante a construção deste catálogo, notou-se que os RNFs dependência, rastreabilidade e detalhamento, presentes no catálogo, estão relacionados a problemas clássicos da Engenharia de Software. Estes problemas são, respectivamente, a definição de critérios para modularização do software, rastreabilidade entre seus artefatos e entendimento do seu código. Neste trabalho, propomos estratégias para lidar especificamente com estes três problemas, contribuindo também para construção de softwares mais transparentes, uma vez que sua solução implica na satisfação de qualidades do catálogo. Estas estratégias foram estruturadas através de um processo de construção de software. Esse processo tem como escopo software para Web, utilizando arquitetura MVC, desenvolvido através do paradigma de programação procedural. A ideia central do processo é a utilização de dois artefatos de requisitos, Léxico Ampliado da Linguagem (LAL) e cenários, durante todo processo de construção do software. O LAL é utilizado na definição dos módulos do software. Os cenários são refinados em diferentes níveis de abstração, de modo que permeiam todo o processo, desde os requisitos até serem integrados ao código fonte do software. Os rastros entre os diferentes níveis de abstração dos cenários são mantidos. As operacionalizações propostas no processo foram anexadas ao catálogo de transparência de software, possibilitando futura reutilização orientada a qualidades. O processo e suas operacionalizações foram avaliados através de estudos empíricos envolvendo diversos sujeitos. O resultado das avaliações sugere que o processo contribui positivamente para as qualidades de detalhamento, dependência e rastreabilidade, presentes no catálogo de transparência. / [en] Transparency is a concept that permeates different disciplines, and recently has been explored in the context of software engineering. Transparent software aims to make information about it transparent and also aims to provide transparency on its behavior. The study of transparency in the context of software started by instantiating a catalog of non-functional requirements (NFRs). During the construction of this catalog, we realized that the NFRs of traceability, dependability and detailing are related to classical problems in software engineering. These problems are, respectively, the definition of software modules, traceability between its artifacts and the understanding of its source code. In this work we propose strategies to deal specifically with these three problems. As these problems are also related to the transparency catalog, then if we contribute to solving these problems, we will also be contributing to software transparency. These strategies were structured through a software construction process that has Web software as its main target. The process uses MVC architecture and procedural oriented programming languages. The central idea of this process is to use two requirements artifacts, the Language Extended Lexicon (LEL) and scenarios, throughout the construction process. The LEL is used in the definition of the software modules. The scenarios are refined at different levels of abstraction so that they permeate the entire development process, from requirements documentation until their integration with the software source code. The traces between these scenarios are maintained. The strategies proposed in the process were attached to the software transparency catalog to allow for quality based reuse. The process and its operationalizations were evaluated through empirical studies involving different subjects. The results of the evaluations suggest that the process contributes positively to the quality of detailing, dependency and traceability, present in the transparency catalog.
|
10 |
[en] A CONTROLLABLE SOFTWARE DEVELOPMENT PROCESS WITH EMPHASIS ON QUALITY ASSURANCE IN SMALL PROJECTS / [pt] UM PROCESSO CONTROLÁVEL DE DESENVOLVIMENTO DE SOFTWARE FOCADO NA GESTÃO DA QUALIDADE EM PEQUENOS PROJETOSDANIEL CATUNDA MARRECO 16 October 2006 (has links)
[pt] O trabalho a seguir apresenta uma proposta de metodologia
de gerência de
projetos de software aderente a pequenos projetos e
fortemente inspirada em
metodologias já consagradas como Unified Process e eXtreme
Programming. O
objetivo é prover um processo ágil, adaptável porém
prescritivo. Chegaremos a
um processo de fácil implantação e controle e menos
dependente da qualidade
técnica da equipe de desenvolvimento. A seguir, será
apresentado um estudo de
caso conduzido em ambiente real, por uma equipe de um
pequeno
empreendimento que consiste no relato do processo de
amadurecimento e
implantação do processo proposto, com uma análise do
trabalho de implantação
de processos de desenvolvimento em empreendimentos
emergentes na área de TI. / [en] The following work presents a proposal of software project
management
methodology applicable to small projects and strongly
inspired by already well
established methodologies such as the Unified Process and
eXtreme
Programming. The objective of this proposal is to provide
an agile process that is
adaptable yet prescriptive. Through this one plans to
arrive at a process of easy
implementation and control, and less dependent on the
technical quality of the
development team. Subsequently, a case study will be
presented that was
conducted in a real environment, on a small enterprise
development team. It
consists of a report on the maturing and implementation of
the proposed process
and an analysis of the work of implementing development
procedures in emerging
enterprises in the IT area.
|
Page generated in 0.0292 seconds