Buscar

Case As principais ferramentas no ciclo de desenvolvilento de software

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 50 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 50 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 50 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

WBA0446_v1.0
CASE: AS PRINCIPAIS 
FERRAMENTAS NO CICLO 
DE DESENVOLVIMENTO 
DE SOFTWARES 
APRENDIZAGEM EM FOCO
2
APRESENTAÇÃO DA DISCIPLINA
Autoria: André Olímpio 
Leitura crítica: Marcilyanne Moreira Gois 
Caro aluno, 
O objetivo desta disciplina é apresentar um conteúdo abrangente, 
o qual fará com que você venha compreender a importância 
da utilização de ferramentas específicas que irão lhe auxiliar no 
processo de criação, estruturação e manutenção de um sistema 
de software. Estas ferramentas, chamadas de Case (Computer 
Aided Software Engineering, em português Engenharia de Software 
Auxiliada por Computador), têm por finalidade dar suporte, 
amplitude e profundidade à utilização dos conceitos pregados 
pela engenharia de software neste processo. Além disso, os 
conhecimentos adquiridos nessa disciplina também visam 
contribuir em diversos aspectos como a melhoria da qualidade 
nas rotinas e atividades que compõem o ciclo de desenvolvimento 
de software, reduzir a quantidade de horas gastas com ações de 
retrabalho, diminuir o tempo de execução de tarefas, ampliar o 
alcance de cada funcionalidade implementada, além de redução 
de gastos com recursos humanos, materiais e financeiros. 
Ao final desta disciplina, você estará apto a identificar, classificar 
e distinguir as ferramentas utilizadas nas etapas existentes no 
processo de desenvolvimento, como o Microsoft Azure para 
gerenciamento de projetos de software, o Astah para modelagem 
de sistemas utilizando diagramas da UML (Linguagem de 
Modelagem Unificada), NetBeans IDE para codificação e estrutura 
de softwares, e Apache JMeter para testabilidade de sistemas.
3
Cada uma dessas ferramentas possui necessidades distintas 
que exigem muita dedicação e compreensão por parte dos 
profissionais de Tecnologia da Informação envolvidos neste 
ciclo, tendo em vista que os sistemas atuais estão cada vez mais 
robustos e complexos, os usuários estão mais exigentes e a 
tecnologia não para de evoluir. 
INTRODUÇÃO
Olá, aluno (a)! A Aprendizagem em Foco visa destacar, de maneira 
direta e assertiva, os principais conceitos inerentes à temática 
abordada na disciplina. Além disso, também pretende provocar 
reflexões que estimulem a aplicação da teoria na prática 
profissional. Vem conosco!
TEMA 1
Ferramentas para o 
desenvolvimento de softwares
______________________________________________________________
Autoria: André Olímpio 
Leitura crítica: Marcilyanne Gois 
5
DIRETO AO PONTO
O desenvolvimento de um sistema de software é um dos 
segmentos mais relevantes e amplos contidos na área de 
Tecnologia da Informação. Todo sistema é criado com base 
em uma ou mais necessidades existentes no mundo real. Os 
profissionais de TI devem em um primeiro momento abstrair as 
variáveis necessárias para se chegar à solução de um problema, 
porém a realidade é extremamente complexa e rica em detalhes. 
É muito difícil separar deste emaranhado de possibilidades o que 
é realmente relevante para o sistema a ser implementado. Essas 
variáveis recebem o nome de requisito. Segundo Sommerville 
(2018), cada requisito corresponde a um aspecto abstraído do 
enunciado do problema e, assim que for transpassado para 
um sistema computacional, terá incidência direta no software a 
ser desenvolvido, seja como uma funcionalidade deste ou um 
componente que o permeia.
Assim, o desenvolvedor deverá identificar, classificar e 
documentar da forma mais detalhada possível os requisitos. E 
a partir daí, iniciar o processo de implementação do software, 
ou seja, escrever o código-fonte por meio de uma linguagem 
de programação. Contudo, antes de efetivamente programar, é 
necessário criar uma estruturação robusta e ampla deste sistema, 
visando não somente a codificação como também as etapas 
subsequentes como testes, implantação e manutenção. Esta 
estruturação recebe o nome de modelagem, uma maneira de 
formalizar os requisitos, potencializar a qualidade ampliando as 
possibilidades de sucesso e dos resultados obtidos.
Uma ferramenta Case tem como principal finalidade auxiliar os 
desenvolvedores na aplicação prática dos conceitos pregados 
pela engenharia de software que estuda um sistema desde a 
6
sua concepção até o momento em que este se tornar obsoleto e 
necessitar de atualização ou ser substituído por um novo. Este tipo 
de ferramenta dará suporte aos profissionais, permitindo que o 
software seja visualizado de diferentes perspectivas em diferentes 
etapas do processo de seu desenvolvimento. O termo Case 
significa “Computer Aided Software Engineering”, que em português 
é “Engenharia de Software auxiliada por computador”. 
O ciclo de desenvolvimento de um sistema de software é dividido 
em seis etapas: levantamento e análise de requisitos, modelagem, 
implementação, testes, implantação e manutenção. Cada uma 
destas etapas apresenta um número muito grande de variáveis, 
e o profissional de TI tem que levar todas em consideração, 
ficando assim praticamente impossível de administrar o sistema 
por completo. A ferramenta Case serve de suporte para este 
gerenciamento, afinal foi criada exatamente para fazer isso.
Cada etapa do ciclo possui ferramentas próprias, com finalidades 
específicas como modelar um banco de dados, criar um protótipo 
da interface com o usuário final da aplicação, estruturar o sistema 
por meio de diagramas UML (Unified Modeling Language, em 
português Linguagem de Modelagem Unificada), formatar a escrita 
do código-fonte deste software gerando rotinas com base em 
diagramas, detalhar os requisitos e documentar toda estrutura de 
modelagem deste sistema.
Os requisitos obrigatoriamente precisam expressar de forma 
direta, completa e detalhada toda e qualquer funcionalidade 
operacional ou estrutural do sistema. Um software é composto 
por uma grande quantidade de funcionalidades, que serão 
implementadas pelo desenvolvedor durante a etapa de 
codificação. 
7
Figura 1 - Requisitos – Visão geral
 
Fonte: elaborada pelo autor.
A Figura 1 ilustra que o domínio do problema aumenta conforme 
as necessidades do cliente sejam definidas e documentadas. Os 
requisitos são divididos em duas categorias: os funcionais, que 
expressam as regras de negócio, e os não funcionais, focados 
em fatores mais abstratos como a qualidade ou componentes 
externos que fazem parte do sistema. As necessidades do 
sistema são definidas como cada comportamento e recurso a 
ser implementado pelo software. O domínio da solução evolui de 
acordo com a construção do sistema, pois com o passar do tempo, 
a cada dia trabalhado, o desenvolvedor fica cada vez mais próximo 
de entregar a solução para o problema identificado no início do 
processo (PRESSMAN, 2016).
Referências bibliográficas
SOMMERVILLE, I. Engenharia de software. 10. ed. São Paulo: 
Pearson Education do Brasil, 2018. 
PRESSMAN, R. S. Engenharia de software: uma abordagem 
profissional. 8. ed. Porto Alegre: AMGH, 2016. 
8
PARA SABER MAIS
Outro ponto fundamental no processo de desenvolvimento 
de um sistema de software é a qualidade, que é definida com 
conformidade com requisitos, ou seja, se este sistema atende 
plenamente a todas as especificações existentes no contexto. 
A qualidade pode ser medida por meio do grau de satisfação 
em que as pessoas avaliam determinado produto ou serviço. 
No entanto, este termo é algo subjetivo, pois alguns indivíduos 
acreditam que algo de qualidade deve satisfazer suas questões 
pessoais, ou seja, fazem uma avaliação pelo ponto de vista 
emocional, o que é totalmente errado para este contexto. 
Para validar requisitos, verificar se um sistema os atende 
plenamente, é preciso ser racional, aplicar aspectos contidos 
em normas técnicas fundamentais para o processo de aferição.
Existem normas técnicas específicas para sistemas de software, 
que definem as métricas pelas quais os padrões de qualidade 
serão mensurados, como testar e validar as funcionalidades, 
indicando os valores de resultados que serão utilizados 
como aceite. Essas normasseguem padrões internacionais 
como a ISO (Internacional Organization for Standardization), 
uma entidade que é responsável por criar as métricas de 
padronização e normatização de produtos e serviços. Cada 
país inclusive pode ter o seu representante local, o que permite 
adaptações para as diferentes culturas existentes no mundo; 
no Brasil, a ABNT (Associação Brasileira de Normas Técnicas) é 
a representante da ISO no país. Por exemplo, a Norma Técnica 
NBR ISO/IEC 25020 é utilizada para auxiliar os produtos de 
software em processo de desenvolvimento e aquisição com a 
especificação e avaliação dos requisitos de qualidade (ABNT, 
2009)
9
Segundo Barreto (1997), a certificação é a emissão de um 
documento oficial indicando a conformidade com esta 
determinada norma ou padrão. É necessário realizar todo um 
processo de avaliação e julgamento de acordo com a norma 
em questão e assim aferir qualidade, seja em um produto, um 
serviço ou mesmo no processo de desenvolvimento.
Ao se enquadrar totalmente em uma norma técnica, um 
software recebe um selo de qualidade, uma espécie de 
certificado que comprova em caráter mundial que passou por 
um processo rigoroso de testes e que foi plenamente aprovado 
em cada aspecto testado. 
Referências bibliográficas
BARRETO, J. J. Qualidade de software. [S.l.: s.n.], 1997.
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR ISO/
IEC 25020: Engenharia de Software – requisitos e avaliação da 
qualidade do produto de software (SQuaRE) – Guia e modelo para 
referência de medição. Rio de Janeiro, 2009.
TEORIA EM PRÁTICA
Reflita sobre a seguinte situação: você faz parte de uma 
equipe de desenvolvimento de sistemas de software, que é 
formada em sua maioria por profissionais jovens em início 
de carreira, inclusive você. O sistema a ser implementado é 
bem desafiador e complexo, é um sistema de parquímetros 
para uma cidade de 300 mil habitantes que apresenta uma 
frota aproximada de 100 mil carros circulando diariamente 
pelas ruas da cidade. A sua equipe venceu a licitação e deverá 
10
Lorem ipsum dolor sit amet
Autoria: Nome do autor da disciplina
Leitura crítica: Nome do autor da disciplina
fornecer aos munícipes um aplicativo pelo qual eles poderão 
creditar valores via cartão de crédito e utilizá-los para realizar 
pagamentos dos minutos utilizados quando estacionarem seus 
carros pelas ruas do centro da cidade e bairros adjacentes. 
Quais seriam os requisitos funcionais e não funcionais deste 
sistema? Como você utilizaria as ferramentas Case para auxiliá-
lo na modelagem e estruturação do software? Quais e de que 
tipo seriam as integrações com outros sistemas que seriam 
necessárias para atender a demanda deste problema? 
Para conhecer a resolução comentada proposta pelo 
professor, acesse a videoaula deste Teoria em Prática no 
ambiente de aprendizagem.
LEITURA FUNDAMENTAL
Indicação 1
As normas técnicas para aferição de qualidade de software são 
atualizadas frequentemente, com o objetivo de estarem sempre 
inerentes com a demanda de exigências existentes atualmente 
no mundo, afinal os softwares precisam cada vez mais atender as 
necessidades das pessoas, e para tal, os resultados obtidos são 
mais complexos e desafiadores. Portanto, cabe ao desenvolvedor 
conhecer um pouco mais a fundo sobre o que uma norma técnica 
pode propiciar no processo de garantia da qualidade. Assim, é 
sugerida a leitura da norma ABNT NBR/ISO 25020, que indica 
requisitos e a avaliação da qualidade do produto de software. Para 
realizar a leitura, acesse a plataforma Target Gedweb disponível na 
Biblioteca Virtual da Kroton e busque pela norma.
Indicações de leitura
11
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBRISO/IEC25020. 
Engenharia de software. Requisitos e avaliação da qualidade de 
produto de software (SQuaRE). Guia e modelo de referência para 
medição. Mar. 2009.
Indicação 2
É mais do que clara a necessidade de se identificar, classificar 
e documentar requisitos do sistema de software, pois eles são 
a base para garantir que este sistema venha de fato resolver 
o problema do mundo real. Com base neste pensamento, fica 
sugerido um texto do livro citado a seguir, no Capítulo 8 (páginas 
131 a 165), que explica de maneira bem clara e completa o 
entendimento do conceito de requisito. Para realizar a leitura 
deste texto, acesse a plataforma Minha Biblioteca disponível na 
Biblioteca Virtual da Kroton.
PRESSMAN, R. S. Engenharia de software: uma abordagem 
profissional. 8. ed. Porto Alegre: AMGH, 2016. Cap. 8, p. 131-165.
QUIZ
Prezado aluno, as questões do Quiz têm como propósito a 
verificação de leitura dos itens Direto ao Ponto, Para Saber 
Mais, Teoria em Prática e Leitura Fundamental, presentes 
neste Aprendizagem em Foco.
Para as avaliações virtuais e presenciais, as questões serão 
elaboradas a partir de todos os itens do Aprendizagem em 
Foco e dos slides usados para a gravação das videoaulas, 
além de questões de interpretação com embasamento no 
cabeçalho da questão.
12
1. O que é ferramenta Case? 
a. É a segunda etapa do processo de desenvolvimento de um 
sistema de software.
b. É um conjunto de aplicativos que tem como finalidade auxiliar 
um profissional de Tecnologia da Informação a aplicar na 
prática os conceitos pregados pela engenharia de software. 
c. É uma estrutura de programação que permite exibir ao usuário 
um conjunto finito de ações que este poderá vir a selecionar 
durante a execução de uma aplicação.
d. É um tipo de software específico para se fazer a modelagem de 
um sistema de banco de dados.
e. É um sistema de ações corretivas aplicadas na elaboração e 
documentação de um conjunto de requisitos do sistema de 
software a ser desenvolvido. 
2. O que é requisito funcional? 
a. É a descrição das necessidades do cliente que se tornarão 
as funcionalidades do sistema de software após sua 
implementação.
b. É toda e qualquer ação preventiva existente no processo de 
desenvolvimento.
c. É um tipo específico de ferramenta Case.
d. É uma especificação técnica de como que o sistema irá se 
comportar em situações extremas e comportamento de 
risco.
e. É a terceira etapa do ciclo de desenvolvimento de um 
sistema de software.
13
GABARITO
Questão 1 - Resposta B
Resolução: A sigla Case significa em português “Engenharia 
de Software Auxiliada por Computador”, portanto, uma 
ferramenta deste tipo serve para ajudar um profissional de TI 
a empregar os diversos conceitos de engenharia de software 
em seu dia a dia de trabalho.
Questão 2 - Resposta A
Resolução: Um requisito funcional deve atender as regras de 
negócio, que definem a descrição de um problema específico 
que o software irá resolver. Para isso será criada uma 
funcionalidade neste software com o objetivo de resolver 
este problema.
TEMA 2
Ferramentas para modelagem de 
um sistema de software
______________________________________________________________
Autoria: André Olímpio 
Leitura crítica: Marcilyanne Gois 
15
DIRETO AO PONTO
A modelagem é a segunda etapa no ciclo de desenvolvimento de 
um sistema de software e é de fundamental importância para 
obter sucesso e atingir os objetivos traçados na etapa anterior. 
Infelizmente um número considerável de desenvolvedores 
negligenciam a modelagem, não a cumprindo da forma devida 
ou pior, simplesmente queimando esta etapa, indo diretamente à 
implementação.
Este descumprimento ocorre porque estes profissionais acreditam 
ser perda de tempo estruturar um software, criar diagramas e 
projetar os componentes deste sistema antes de codificá-lo com 
o intuito de antecipar possíveis defeitos de lógica, ter uma visão 
mais ampla do problema e encontrar soluções mais robustas. Cada 
funcionalidade precisa se estruturar com completeza, idealizando 
todas as características e projetando seus resultados, podendo estes 
ser positivos ou negativos (OKUYAMA; GONSALES; MILETTO, 2014).
Todo sistema de software exige uma quantidade grande de 
componentes que precisam ser analisados, revistos, tratadose direcionados, antes de começar a implementação do código 
fonte. Estes componentes são implementados e transformados 
em funcionalidades deste sistema. O objetivo é antever possíveis 
situações que venham a gerar falhas neste sistema durante 
sua execução no modo runtime e assim deixá-lo inoperante. A 
modelagem tem esse papel, de abrir o sistema em diferentes 
perspectivas, permitindo aos desenvolvedores uma abstração mais 
profunda de suas funcionalidades, ampliando a visão do alcance que 
este sistema possa vir a ter após sua implantação.
Uma IDE (Integrated Development Environment, em português 
Ambiente Integrado de Desenvolvimento) é um tipo de ferramenta 
16
Case que apresenta uma interface de implementação de código-fonte 
que permite a utilização de diferentes linguagens de programação no 
mesmo sistema.
Figura1 - Estrutura de uma IDE
 
Linguagem 
de 
Programação 
(DESKTOP)
• C#
• Delphi
• C++
Linguagem 
de 
Programação 
(WEB)
• PHP
• ASP
• JavaScript
Linguagem 
de 
Programação 
(MOBILE)
• Java
• Swift
Fonte: elaborada pelo autor.
A modelagem utiliza diversos modelos para projetar um 
determinado sistema. Um modelo pode ser definido como uma 
simplificação da realidade, criado para facilitar o entendimento de 
sistemas complexos. Estes modelos podem abranger facilmente 
planos mais detalhados, assim como planos mais gerais com uma 
visão mais panorâmica deste sistema (BERTAGNOLLI; FRANCO; 
MACHADO, 2016). 
17
Um dos melhores conceitos utilizados para modelagem é a UML, 
uma linguagem específica para este tipo de ação, que apresenta 
diagramas que possibilitam ao desenvolvedor ter esta abstração 
de diferentes perspectivas, já que cada um destes diagramas foi 
criado exatamente com este intuito. 
Por meio da UML, é possível visualizar um software de forma 
estática ou dinâmica, no ponto de vista do usuário ou do 
próprio sistema, prepará-lo para a implementação do código-
fonte utilizando conceitos de orientação a objetos, identificar 
requisitos funcionais e não funcionais aplicados neste sistema, 
simular as diferentes saídas de dados após a implementação de 
uma funcionalidade específica, verificar o comportamento do 
software em situações de erro, estruturar um roteiro de diferentes 
tipos de teste, entre outras coisas. E tudo isso sem ter iniciado a 
etapa de codificação do sistema. Esta linguagem é ideal para o 
processo de modelagem de um software, devido a sua amplitude 
e poder de abstração, já que os 14 diagramas que possui têm 
como características abstrair o sistema por meio de diferentes 
pontos de vistas, antes mesmo de sua implementação. Vale 
ressaltar que todo problema a ser solucionado por meio de um 
sistema computacional é multidisciplinar, ou seja, os requisitos 
não são baseados apenas em uma área de conhecimento, mas 
sim em diferentes fatores de diferentes segmentos (OKUYAMA; 
GONSALES; MILETTO, 2014).
As ferramentas Case utilizadas para modelagem são as mais 
variadas possível, tendo inclusive algumas que não são exclusivas 
para modelagem, mas que apresentam funcionalidades 
18
específicas para se cumprir todos os trâmites necessários para 
esta etapa do ciclo de desenvolvimento de software. Dentre estas 
destacam-se o NetBeans, o Eclipe IDE e o Microsoft Visio. 
O NetBeans e o Eclipse são ferramentas opensource, 
multiplataforma, largamente utilizadas para implementação 
do código-fonte do software, utilizando diferentes linguagens 
de programação para tal, como por exemplo Java, C++, PHP e 
JavaScript. Também permitem o desenvolvimento de aplicações 
para ambiente web, mobile e desktop. Ambas apresentam plug-in 
específico que permite a construção de diagramas da UML com 
base em suas interfaces e integrá-los à codificação em linguagem 
Java (BERTAGNOLLI; FRANCO; MACHADO, 2016). 
O Microsoft Visio é uma ferramenta proprietária que é muito 
utilizada para desenvolvimento de modelos como fluxograma, 
organograma, diagramas de layout de redes, ambientes de redes 
industriais, modelagem de sistemas de banco de dados, entre 
outras coisas. E além de tudo isso, também permite a criação de 
diagramas da UML em sua interface.
O Astah é uma ferramenta Case específica para se criar, manipular 
e administrar os diagramas da UML, ou seja, é um software 
exclusivo para modelagem de sistemas. A sua versão mais 
completa permite ainda a criação de códigos-fonte de linguagem 
Java com base nestes diagramas, principalmente no de classes. 
Estes códigos Java são exportáveis, podendo ser utilizados em 
ferramentas de implementação como o Netbeans e o Eclipse. A 
grande vantagem desta integração é criar códigos diretamente 
començando pela modelagem, fazendo que tudo faça parte do 
mesmo contexto, facilitando a programação e a manutenção do 
software a ser desenvolvido (OKUYAMA; GONSALES; MILETTO, 
2014).
19
Referências bibliográficas
OKUYAMA, F. Y.; GONSALES, A. D.; MILETTO, E. M. 
Desenvolvimento de software I: conceitos básicos. 1. ed. Porto 
Alegre: Bookman, 2014. 
BERTAGNOLLI, S. C.; FRANCO, M. H. I.; MACHADO, R. P. 
Desenvolvimento de software III: programação de sistemas web 
orientada a objetos em Java. 1. ed. Porto Alegre: Bookman, 2016. 
PARA SABER MAIS
Além da UML, que é o padrão mundial de estruturação e modelagem 
de um sistema de software, é possível também utilizar outros 
conceitos para realizar esse processo. O ambiente web apresenta 
uma estrutura composta por páginas, dispositivos e tecnologias 
distintas que trocam informações entre si. As dificuldades de se ter 
este ambiente totalmente integrado fizeram com outras opções 
fossem criadas para suprir as limitações da UML em modelar este 
tipo de aplicação. O padrão XML (Extensible Markup Language) é visto 
como uma solução para minimizar essas questões. 
O XML pode ser definido como uma extensão do HTML 
utilizada como uma maneira de gerar padrões de marcação 
para necessidades especiais existentes em um sistema web, 
principalmente a troca de dados entre páginas. Apesar de 
apresentar alguns problemas como múltiplos padrões e semântica 
de marcações, é utilizada como uma excelente opção ao UML, 
possuindo componentes interessantes para tal. Dentre estes, 
destacam-se o XML Schema (1999) e RDF Schema.
20
O XML Schema (1999) refere-se a uma linguagem voltada para 
definição de regras de validação, chamadas de esquemas, gerando 
assim documentos no formato XML. Este modelo foi amplamente 
utilizado no desenvolvimento do sistema da nota fiscal eletrônica 
no Brasil (NF-e) e tem como output um arquivo chamado XSD 
(XML Schema Definition) (2001) contendo as definições além das 
declarações existentes neste esquema. 
O padrão XSD (2001) é apontado como uma referência na 
modelagem de objetos de negócios para aplicações desenvolvidas 
para ambiente web e sendo recomendação oficial do W3C, o órgão 
mundial de regulamentação e padronização da internet. Esse 
padrão fornece funcionalidades como construir tipos de dados 
próprios derivados de tipos básicos e realizar relacionamentos entre 
elementos de dados dentro do XML, algo similar aos relacionamentos 
entre tabelas de um banco de dados relacional.
Já o RDF Schema é utilizado como um método geral para a descrição 
conceitual ou de modelagem de dados que são implementados 
em recursos de aplicações web, utilizando de sintaxes e formatos 
de serialização destes recursos. É também aplicado em sistemas 
voltados para gerenciamento do conhecimento que utilizam 
conceitos de Machine Learning e Internet das Coisas. 
Segundo Braganholo e Heuser (2015), o RDF também é recomendado 
pelo W3C, tendo seus arquivos como modelos de criação de 
dados que são utilizados como base para consultas robustas em 
ambiente web, reconhecendo informações provenientes de uma 
parte específica do código-fonte de uma página, os metadados, que 
são facilitadores de consulta, largamente utilizados pelos principais 
mecanismos de busca existentes.
21
Referências bibliográficas
BRAGANHOLO, V. P.; HEUSER, C. A.; XML Schema, RDF(S) e UML: 
uma comparação.2015. 
TEORIA EM PRÁTICA
Reflita sobre a seguinte situação. 
Você precisa fazer a modelagem de um sistema de 
gerenciamento de um caixa eletrônico. Vale lembrar que 
a arquitetura é formada por dois softwares distintos, um 
sendo executado diretamente na máquina alocada na agência 
bancária e outro que é a central do banco, no qual todos os 
dados referentes às contas dos clientes estão armazenados. O 
software da máquina tem que fazer validações do tipo “Leitura 
do cartão”, “Cédulas para saque” e “Autenticação por meio de 
biometria”. Já o da central do banco é bem mais robusto, pois 
se concentram todas as ações necessárias para administração 
da conta corrente, como “Verificação de saldo”, “Solicitação de 
extrato”, “Solicitação de empréstimos”, “Pagamento de contas”, 
entre muitas outras ações. Idealize o diagrama de casos de uso 
para este sistema, identificando os atores e as funcionalidades 
de cada um dos softwares existentes nesta arquitetura. Você 
aplicaria os conceitos de herança, include e extends neste 
diagrama? Idealizando a classe conta corrente, quais seriam 
os atributos e os métodos existentes nela? Vale lembrar que 
as contas podem ser de tipos diferentes como pessoa física e 
pessoa jurídica. 
22
Para conhecer a resolução comentada proposta pelo 
professor, acesse a videoaula deste Teoria em Prática no 
ambiente de aprendizagem.
LEITURA FUNDAMENTAL
Indicação 1
O diagrama de classes da UML é a grande referência para 
desenvolvimento de uma aplicação quando se for utilizar 
uma linguagem de programação orientada a objetos para 
implementá-la. Por esta razão, os profissionais de TI definem 
este diagrama como o mais fundamental da UML, já que uma 
classe é estrutura base para se trabalhar com objetos e, assim, 
a criação deste diagrama durante o processo de modelagem 
se torna essencial. Com base neste pensamento, fica sugerida 
a leitura de um texto do Capítulo 2 (páginas 55 a 67) do livro 
citado, que explica de maneira bem clara e completa para 
enriquecer o entendimento do conceito deste diagrama. 
Para realizar a leitura, acesse a plataforma Minha Biblioteca 
disponível na Biblioteca Virtual da Kroton.
FOWLER, M. UML Essencial – um breve guia para a linguagem 
-padrão de modelagem de objetos. 3. ed. São Paulo: Bookman, 
2005. Cap. 2, p. 55-67.
Indicação 2
É importante para um profissional de Tecnologia da Informação 
que busca se especializar em desenvolvimento de sistemas de 
Indicações de leitura
23
software conhecer e se aprofundar no conceito de modelagem, 
ou seja, a estruturação deste sistema com objetivo de ampliar 
a visão para ele, e para isso construir diagramas da UML que 
darão a possibilidade de enxergar este software por meio de 
pontos de vistas diferentes e consequentemente abstrações 
distintas. Com base neste pensamento, fica sugerido um texto 
do Capítulo 4 (página 42 a 59) do livro citado, que explica de 
maneira bem clara e completa para enriquecer o entendimento 
do conceito de modelagem. Para realizar a leitura deste 
texto, acesse a plataforma Biblioteca Virtual 3.0 disponível na 
Biblioteca Virtual da Kroton.
SOMMERVILLE, I. Engenharia de software. 10. ed. São Paulo: 
Pearson, 2019. Cap. 4, p. 42-59.
QUIZ
Prezado aluno, as questões do Quiz têm como propósito a 
verificação de leitura dos itens Direto ao Ponto, Para Saber 
Mais, Teoria em Prática e Leitura Fundamental, presentes 
neste Aprendizagem em Foco.
Para as avaliações virtuais e presenciais, as questões serão 
elaboradas a partir de todos os itens do Aprendizagem em 
Foco e dos slides usados para a gravação das videoaulas, 
além de questões de interpretação com embasamento no 
cabeçalho da questão.
1. O que é uma IDE (Integrated Development 
Environment)? 
24
a. Uma ferramenta de gerenciamento de projetos que 
permite fazer um cronograma de tarefas a serem 
realizadas, colocando-as em ordem e atribuindo 
prioridade de execução.
b. Uma ferramenta exclusiva para modelagem de banco de 
dados.
c. Uma ferramenta que permite entre outras coisas a 
criação de códigos-fonte de diferentes linguagens de 
programações em um sistema por meio de uma única 
interface.
d. Uma ferramenta de controle de testes e versionamento 
de um sistema de software, utilizando linguagem de 
programação Java e PHP.
e. Uma ferramenta de controle de acesso a dados em uma 
área restrita de uma rede local ou pública, permitindo 
inclusive o bloqueio de acesso em caso de suspeita de 
quebra de segurança.
2. O que é possível fazer com uma ferramenta Case 
voltada para modelagem de sistemas de software? 
a. Criar uma estrutura que será a base para a criação de 
códigos de definição de requisitos de um sistema de 
software.
b. Criar uma estrutura que permita gerar arquivos em 
formato único para manipulação de metadados e acesso 
a redes sociais.
c. Criar uma estrutura que, após a implementação, se 
tornará as funcionalidades do sistema de software.
d. Criar uma estrutura que facilita a implementação de 
componentes de conectividades com dispositivos móveis.
25
e. Criar uma estrutura de registros de ações do usuário em 
um sistema operacional.
GABARITO
Questão 1 - Resposta C
Resolução: IDE é uma ferramenta com foco em 
programação, que permite criar códigos em diferentes 
linguagens e utilizá-los no mesmo sistema de software. 
Questão 2 - Resposta C
Resolução: Este tipo de ferramenta Case deve gerar 
uma estrutura que irá direcionar toda a implementação 
do software, modelando os itens que se tornarão as 
funcionalidades deste sistema, que são baseadas nos 
requisitos dele.
TEMA 3
Ferramentas Case para 
gerenciamento de projeto de 
desenvolvimento de software
______________________________________________________________
Autoria: André Olímpio 
Leitura crítica: Marcilyanne Gois 
27
DIRETO AO PONTO
Um sistema de software é uma estrutura multidisciplinar, ou seja, é 
formado por diferentes áreas de conhecimento que estão integradas 
entre si. O resultado desta integração é uma solução computacional 
para resolver problemas do mundo real e fornecer valor agregado. 
Portanto, desenvolver um software requer conhecimentos que vão 
além da programação, cabe ao profissional compreender e aplicar na 
prática estes conceitos.
 Segundo Filho (2019), a codificação de um software é apenas 
parte do processo que envolve também a integração com outros 
conceitos relacionados à área de Tecnologia da Informação, como 
a engenharia de software, a inteligência artificial, os métodos de 
orientação a objetos, os métodos ágeis ou banco de dados, conforme 
visualizado na figura a seguir: 
Figura 1 - Arquitetura de integração de um 
sistema de software 
Fonte: elaborado pelo autor.
 
Desenvolvimento 
de Software
Engenharia 
de Software
Métodos de 
Orientação à 
Objetos
Métodos 
Ágeis
Banco de 
Dados
Inteligência 
Artificial
28
Esta arquitetura remete ao entendimento de que é necessário 
compreender, além dos requisitos do sistema, todos os fatores 
que permeiam este software, tendo em vista que estes fatores 
podem ter incidência direta nos resultados obtidos por meio das 
funcionalidades implementadas neste sistema (HUMBLE; FARLEY, 
2013).
Por exemplo: um sistema web de e-commerce que apresenta uma 
quantidade significativa de vendas diárias, mas pretende expandir 
os negócios com objetivo de aumentar o número de vendas. 
Para isso, utiliza-se de informações provenientes de redes sociais 
relacionadas a preferências pessoais dos usuários com intuito 
de obter novos clientes, tendo em vista que atualmente uma 
rede social é um canal de comunicação essencial quando se quer 
implementar uma estratégia de marketing eficaz. 
A escolha da tecnologia de banco de dados a ser utilizada para 
atender a esta demanda é um fator fundamental, tendo em vista 
que além do armazenamento, aspectos como performance e 
segurança são igualmente relevantes. A arquitetura relacional, 
composta por dados estruturados, buscas padronizadas e 
relacionamento entre tabelas, é a ideal para gerenciar asvendas 
de produtos. Porém, segundo Humble e Farley (2013), para 
gerenciar a coleta de dados vindos das redes sociais, a mais 
adequada é a arquitetura não relacional, tendo em vista que estes 
dados não são estruturados e nem formatados, necessitando 
assim de uma maneira mais eficaz de armazenamento, a qual 
possa permitir que sejam agrupados em registros sem as 
formatações sugeridas no modelo relacional e ainda apresentar 
alta performance e escalabilidade. 
A gestão de um projeto de software engloba os aspectos de 
armazenamento, segurança e performance, que são integrados 
ao desenvolvimento e que também precisam ser administrados 
29
pelos profissionais de TI envolvidos neste processo. Fatores como 
controle de versionamento, monitoramento de tarefas, controle 
de cronograma, gerenciamento de custos e correção de bugs 
fazem parte da lista de incumbências das quais estes profissionais 
terão que lidar durante a criação do sistema de software. 
As ferramentas Case para gestão de projetos de software 
são aliadas poderosas, oferecendo uma robusta estrutura de 
gerenciamento, controle e monitoramento de tudo o que se faz 
necessário para que um sistema alcance os objetivos, que as 
funcionalidades nele implementadas atendam plenamente os 
requisitos aos quais se propõem a resolver.
O GitHub (2008) é uma plataforma que faz controle de versão de 
arquivos em ambiente web. Trata-se de um grande repositório de 
dados, no qual os usuários podem hospedar arquivos, modificá-
los e ter um registro completo de todas as alterações realizadas, 
evitando conflitos entre estas versões, permitindo inclusive que 
estes arquivos sejam compartilhados com outros usuários, assim 
facilitando o trabalho colaborativo entre eles. O GitHub Desktop 
é uma ferramenta Case que permite o acesso local aos dados 
contidos na nuvem, permitindo a troca de informações entre os 
dois ambientes por meio de comandos específicos e integrando 
todos os arquivos modificados em uma única estrutura. É 
uma ferramenta amplamente utilizada pelos profissionais de 
desenvolvimento de sistema de software. 
Já o Visual Studio Team System (VSTS) (2005) é uma plataforma 
online muito robusta para gerenciamento de projetos de sistema 
de software. Criada pela Microsoft em 2005 e rebatizada com o 
nome de Azure DevOps em 2010, é uma ferramenta bastante 
utilizada e muito bem aceita pelos profissionais da área, 
principalmente devido a sua amplitude e alcance, já que apresenta 
inúmeros recursos como controle de tarefas (tasks), cronograma 
30
(schedule), código-fonte e além disso tem portabilidade com o 
GitHub, que também é administrado pela Microsoft. 
O Easy Redmine (2018) segue a mesma linha do Microsoft VSTS, já 
que também se trata de uma ferramenta de gestão de projetos de 
software. Apresenta uma interface bastante amigável, na qual os 
comandos são bastante simplificados e com integração a outras 
tecnologias como banco de dados e GitHub.
Estas ferramentas apresentam como principal finalidade o 
auxílio no desenvolvimento de um software, facilitando assim a 
implementação das funcionalidades deste sistema, garantindo a 
qualidade das entregas e satisfazendo as expectativas dos clientes 
(HUMBLE; FARLEY, 2013).
Referências bibliográficas
EASY REDMINE. EasyRedmine: gerenciador online de projetos 
de software. Easy Software Ltd, 2018. Disponível em: http://www.
easyredmine.com. Acesso em: 5 maio 2020.
FILHO, W. P. P. Engenharia de software: projetos e processos. 4. ed. Rio 
de Janeiro: LTC, 2019. 
GITHUB. GitHub: controle de versionamento de software. GitHub Inc., 
2008. Disponível em: http://www.github.com. Acesso em: 3 maio 2020.
HUMBLE, J.; FARLEY, D. Entrega contínua: como entregar software de 
maneira rápida e confiável. 1. ed. Porto Alegre: Bookman, 2013. 
MICROSOFT AZURE. Visual Studio Team System: Gerenciador de projetos 
de software. Microsoft, 2005. Disponível em: http://azure.microsoft.com. 
Acesso em: 3 maio 2020. 
http://www.github.com
http://azure.microsoft.com
31
PARA SABER MAIS
Segundo Humble e Farley (2013), o Git é um sistema open source 
de controle de versão utilizado por muitos desenvolvedores de 
softwares. Com ele é possível criar todo histórico de alterações no 
código-fonte de um projeto e facilmente voltar para qualquer ponto 
para saber como o código estava naquela data. A estrutura do Git foi 
criada em 2005 por Linus Torvald, o criador do sistema operacional 
Linux.
Já o GitHub pode ser considerado uma espécie de rede social 
para desenvolvedores e programadores. Ele possui diversas 
funcionalidades como feeds, followers (seguidores), wiki e um gráfico 
que mostra como os esses desenvolvedores estão contribuindo e 
trabalhando nas versões de repositórios que foram compartilhados 
com eles. 
Pois bem, o Git utiliza um conceito chamado CVS (Concurrent Version 
System, em português, Sistemas de Versões Concorrentes), que 
consiste em permitir o trabalho com diversas versões de códigos-
fonte organizados em diretórios e localizados local ou remotamente, 
mantendo as versões antigas e os registros (logs) de quem manipulou 
estes códigos e quando isso ocorreu (HUMBLE; FARLEY, 2013).
A partir do CVS foi criado o SVN (Subversion), uma tecnologia 
desenvolvida pela empresa Apache Software Foundation, por 
meio do projeto Apache Subversion (2010). Trata-se de uma 
arquitetura open source, multiplataforma que permite um controle de 
versionamento ampliado, oferecendo recursos para gerenciamento 
de projetos múltiplos que trabalham em cluster, suprindo assim 
limitações do CVS.
O CVS é um tipo de controle de versionamento de software baseado 
em uma estrutura na qual os arquivos estão armazenados e são 
32
acessados de forma distribuída, ou seja, não necessariamente 
no mesmo local físico. O SVN é voltado para uma estrutura de 
armazenamento centralizada.
Existem ferramentas Case que dão suporte ao SVN localmente, que 
apresentam plug-ins que podem ser instalados, como o subclipse 
(2012), que pode ser integrado ao Eclipse IDE, e o JSVN (2008), que 
pode ser integrado ao Netbeans IDE. Empresas como Microsoft e 
Apple também possuem ferramentas para este tipo de tecnologia. O 
TortoiseSVN (2013) pode ser incorporado ao shell do Windows e ser 
utilizado via Internet Explorer, além de suportado no ambiente Azure 
DevOps. O AnkhSVN Windows (2014) pode ser integrado ao Visual 
Studio IDE. Já o svnX (2014) é incorporado ao MacOS e acessado via 
interfaces que permitem esse serviço dentro do sistema operacional.
Referências bibliográficas
AnkhSVN Windows: Ferramenta de subversão. Microsoft, 2014. 
Disponível em: http://www.ankhsvn.net. Acesso em: 4 maio 2020.
ECLIPSE FOUNDATION. Eclipse IDE: ferramenta de desenvolvimento de 
software. Eclipse Foundation, 2001. Disponível em: http://www.eclipse.org. 
Acesso em: 3 maio 2020.
ECLIPSE FOUNDATION. Subclipse: Uma ferramenta Eclipse de subversão. 
Eclipse Foundation, 2012. Disponível em: https://marketplace.eclipse.org/
content/subclipse. Acesso em: 4 maio 2020.
HUMBLE, J.; FARLEY, D. Entrega contínua: como entregar software de 
maneira rápida e confiável. 1. ed. Porto Alegre: Bookman, 2013. 
JSVN: cliente Java para Subversion. Alternate Computing Software, 2013. 
Disponível em: http://www.jsvn.alternatecomputing.com. Acesso em: 4 
maio 2020.
http://www.eclipse.org
https://marketplace.eclipse.org/content/subclipse
https://marketplace.eclipse.org/content/subclipse
http://www.jsvn.alternatecomputing.com
33
MACAPPSTORE. svnX: subversion tool plug-in for MacOS. Apple, 2014. 
Disponível em: http://www.macappstore.com. Acesso em: 5 maio 2020.
TortoiseSVN: ferramenta de subversão. Microsoft, 2013. Disponível em: 
https://tortoisesvn.net. Acesso em: 4 maio 2020.
TEORIA EM PRÁTICA
Reflita sobre a seguinte situação: uma empresa de desenvolvimento 
de software sediada em Ottawa, no Canadá, está em expansão e 
busca no mercado brasileiro profissionais que possam suprir as suas 
necessidades técnicas e você foi contratado para fazer parte do rolde programadores desta empresa, trabalhando remotamente daqui 
do Brasil. Logo de cara, você já se depara com um grande desafio, 
tendo em vista que esta empresa fechou recentemente um contrato 
para desenvolvimento de um sistema para controle de segurança 
de um aeroporto, o qual deverá utilizar câmeras digitais inteligentes 
que poderão fazer reconhecimento facial das pessoas que transitam 
pelas dependências deste aeroporto. O objetivo é identificar pessoas 
foragidas da polícia ou que estejam no cadastro de desaparecidos.
O sistema deverá ter integração com órgãos públicos do país, polícia 
internacional e departamento de segurança nacional. Como que 
uma ferramenta de controle de versões iria auxiliar o seu trabalho 
durante a execução deste projeto? Como que você agiria se houvesse 
a necessidade de rever estados anteriores de uma codificação feita 
por um colega de trabalho? Como que esta ferramenta ajudaria 
no trabalho colaborativo? E como que as plataformas online de 
gerenciamento de projetos de software poderiam ser úteis no 
controle e monitoramento das tarefas realizadas por você e seus 
colegas de trabalho?
http://www.macappstore.com
https://tortoisesvn.net
34
Para conhecer a resolução comentada proposta pelo 
professor, acesse a videoaula deste Teoria em Prática no 
ambiente de aprendizagem.
LEITURA FUNDAMENTAL
Indicação 1
DevOps é uma metodologia de desenvolvimento de software 
que utiliza a comunicação para integrar desenvolvedores (dev) 
de software e profissionais de infraestrutura (ops) de TI. Muitas 
empresas liberam novas versões de software com grande 
periodicidade, e, para conseguir a agilidade necessária para 
colocar as aplicações em produção, é imprescindível considerar 
as orientações DevOps. Essa metodologia ficou conhecida 
como implementação contínua ou entrega contínua porque, ao 
padronizar ambientes de desenvolvimento, também auxilia as 
empresas no gerenciamento do lançamento de novas versões, 
além de controlar e de documentar a emissão de relatórios com 
diversidade de granularidade. Como base neste pensamento, fica 
sugerido um texto que consta no Capítulo 3 (páginas 47 a 63) do 
livro citado, que explica de maneira bem clara e completa para 
enriquecer o entendimento do conceito de DevOps. Para realizar 
a leitura deste texto, acesse a plataforma Biblioteca Virtual 3.0 
disponível na Biblioteca Virtual da Kroton.
MUNIZ, A.; SANTOS, R.; IRIGOYEN, A.; MOUTINHO, R. Jornada 
DevOps – unindo a cultura ágil, lean, tecnologia para entrega de 
software com qualidade. 1. ed. Rio de Janeiro: Brasport, 2019. Cap. 
3, 47-63.
Indicações de leitura
35
Indicação 2
Muitos problemas de desenvolvimento de software são causados 
por falta de um controle adequado de versões. Atualmente 
existem ferramentas Case que fazem este trabalho de forma 
muito eficiente, eliminando qualquer tipo de situação adversa 
com relação a este conceito. Os problemas que podem ocorrer 
devido à falta deste controle de versionamento de software são os 
mais variados possíveis, por exemplo, um código ser sobrescrito 
acidentalmente, a perda de alterações realizadas, a dificuldade em 
identificar quais as alterações efetuadas no código, quando foram 
feitas ou então por quem foram feitas, a dificuldade em recuperar 
o código de uma versão anterior que está em produção e manter 
diferentes variações do sistema ao mesmo tempo. Como base 
neste pensamento, fica sugerida a leitura do Capítulo 2 (página 31 
a 53) do livro citado, que explica de maneira bem clara e completa 
para enriquecer o entendimento do conceito de modelagem. Para 
realizar a leitura deste texto, acesse a plataforma Minha Biblioteca 
disponível na Biblioteca Virtual da Kroton.
HUMBLE, J.; FARLEY, D. Entrega contínua: como entregar software 
de maneira rápida e confiável. 1. ed. Porto Alegre: Bookman, 2013. 
Cap. 2, p. 31-53.
QUIZ
Prezado aluno, as questões do Quiz têm como propósito a 
verificação de leitura dos itens Direto ao Ponto, Para Saber 
Mais, Teoria em Prática e Leitura Fundamental, presentes 
neste Aprendizagem em Foco.
36
Para as avaliações virtuais e presenciais, as questões serão 
elaboradas a partir de todos os itens do Aprendizagem em 
Foco e dos slides usados para a gravação das videoaulas, 
além de questões de interpretação com embasamento no 
cabeçalho da questão.
1. A arquitetura integrada de um sistema de software pode 
ser definida como: 
a. Um conjunto de fatores pré-determinados com objetivo 
comum de resolver problemas do mundo real por meio de 
funcionalidades específicas de um contexto sólido de dados 
alfanuméricos. 
b. Uma estrutura de sistemas computacionais gerados por meio 
de uma interface padrão de visualização de conteúdo em 
ambiente de rede. 
c. Um conjunto de dados coletados em redes sociais e 
disponibilizados por meio de dispositivos autônomos e 
inteligentes, sem a necessidade de interação humana. 
d. Uma estrutura que envolve a integração de diversos conceitos 
de desenvolvimento com conceitos de outros segmentos como 
engenharia de software, inteligência artificial, métodos de 
orientação a objetos, métodos ágeis e banco de dados. 
e. Uma infraestrutura de requisitos de regras de negócio 
apropriados para resolução de problemas por meio de 
ferramentas Case. 
2. Uma ferramenta Case de gestão de projetos de software é 
capaz de: 
a. Controlar o versionamento de código-fonte, monitorar 
as tarefas da equipe de desenvolvimento, controlar o 
cronograma, gerenciar custos e efetuar correção de bugs. 
37
b. Gerenciar o acesso de usuários ao sistema de controle de 
versões, mapear as unidades de rede existentes no software, 
monitorar a gestão da qualidade, integrar múltiplos sistemas 
e direcionar o conteúdo de dados relacionados à gestão de 
controle científico. 
c. Monitorar o controle de versionamento de arquivos, acessar 
internet banda larga de alto desempenho, registrar os dados 
dos clientes em ambiente de rede, gerenciar o conteúdo 
exibido na interface com o usuário final da aplicação e 
modelagem do sistema por meio de diagramas da UML. 
d. Efetuar o controle de entrada e saída de dados no ambiente 
de rede local, garantir a qualidade do processo de execução do 
software, controlar as tarefas realizadas pelos integrantes da 
equipe de desenvolvimentos e monitorar as funcionalidades 
de DevOps utilizadas na arquitetura do sistema. 
e. Analisar a compatibilidade dos dados em ambiente de 
rede, garantir a qualidade dos processos no ciclo de 
desenvolvimento, gerenciar o trabalho colaborativo, controlar 
as versões do código-fonte, gerenciar o acesso a dados 
restritos e monitorar os usuários do sistema após implantação. 
GABARITO
Questão 1 - Resposta D
Resolução: A arquitetura integrada refere-se à junção de 
conceitos de desenvolvimento, engenharia de software, 
banco de dados, inteligência artificial, além de métodos de 
orientação a objetos e ágeis, com a finalidade de resolver 
os problemas mais complexos e desafiadores existentes no 
mundo real atualmente. 
38
Questão 2 - Resposta A
Resolução: Uma ferramenta Case de gestão de projeto de 
software deve ser capaz de fazer todas as ações necessárias 
para que esta gestão ocorra de forma eficiente. Essas ações 
são: controle de versionamento de código-fonte, monitorar 
as tarefas da equipe de desenvolvimento, controlar o 
cronograma, gerenciar custos e efetuar correção de bugs.
TEMA 4
Ferramentas Case para 
gerenciamento de projeto de 
desenvolvimento de software
______________________________________________________________
Autoria: André Olímpio 
Leitura crítica: Marcilyanne Gois 
40
DIRETO AO PONTO
Não é possível afirmar que um sistema de software irá 
funcionar plenamente, sem que apresente nenhuma ocorrência 
de erros durante sua execução. Este tipo de produção possui 
um grande número de estados distintos representados por 
meio de fórmulas matemáticas, atividades computacionais e 
algoritmos complexos. O tamanho deste sistema e a quantidade 
de pessoas envolvidas noprocesso aumentam ainda mais 
essa complexidade. Toda esta estrutura é passível de ser 
testada, mas é necessária a utilização de ferramentas Case, 
já que é humanamente impossível gerenciar os testes devido 
à quantidade impraticável de possibilidades. A qualidade do 
teste é diretamente relacionada à utilização destas ferramentas 
(SOMMERVILLE, 2018).
Figura 1 - Princípio de defeito – erro – falha
 
Fonte: elaborada pelo autor.
A Figura 1 indica que um código defeituoso oferece a possibilidade 
de produzir situações de erro quando executado em situações 
41
específicas. Quando esta situação ocorre, o software pode ter seu 
funcionamento interrompido, o que caracteriza uma falha.
As falhas podem ser originadas por diversos motivos, com base 
na compilação de um código fonte defeituoso. Por exemplo, a 
especificação pode estar errada ou incompleta, ou pode conter 
requisitos impossíveis de serem implementados, devido a 
limitações de hardware ou software. A implementação também 
pode estar errada ou incompleta, como um erro de um algoritmo. 
Portanto, uma falha é o resultado de um ou mais defeitos em 
algum aspecto do sistema.
O teste pode ser visto como uma parcela do processo de 
qualidade de software, tendo como objetivo principal detectar 
possíveis falhas neste sistema. A qualidade da aplicação pode e, 
normalmente, varia significativamente de um sistema para outro 
(NOGUEIRA, 2018).
A execução do teste de software segue as etapas de um ciclo, 
conforme ordem a seguir:
• Plano / estratégia de automação de testes.
• Elaboração de ambientes / ferramentas para automação.
• Construção dos scripts.
• Execução dos scripts.
• Apresentação de resultados.
A primeira etapa deste processo é caracterizada pela criação 
de um plano de definição das ações a serem realizadas durante 
a automação de testes em um software. Após isso, é preciso 
criar um ambiente no qual estes testes deverão ocorrer e as 
42
tecnologias necessárias para tal. A construção dos scripts refere-se 
à criação de tarefas a serem realizadas neste ambiente de teste, e 
a execução nada mais é do que a aplicação prática destas tarefas. 
E por fim, há a necessidade de apresentar os resultados obtidos e 
fazer a documentação deles. 
Segundo Sommerville (2018), para melhorar o processo de 
teste realizado em um sistema de software, utiliza-se templates 
para gerar documentos padronizados, facilitando assim o 
entendimento por parte dos profissionais envolvidos. Os modelos 
são importantes por definir uma estrutura de registros de todas as 
atividades realizadas no ambiente de teste, gerando indicadores 
que permitem uma visualização robusta dos dados e garantem 
que não haja lacunas no processo que permitam a execução do 
código-fonte em situações de erro. 
Independentemente do processo de desenvolvimento adotado 
ou da metodologia aplicada, o processo de teste de software está 
presente de forma expressiva e deve ser levado a sério. A grande 
prova desta afirmação são as diversas certificações disponíveis 
no mercado e a atenção que as empresas estão dando para esta 
atividade (NOGUEIRA, 2018).
Referências bibliográficas
NOGUEIRA, J. H. M. Engenharia de software: métodos orientados 
a objetos e ágeis. Fortaleza, CE: Amazon KDP, 2018. 
SOMMERVILLE, I. Engenharia de software. 10. ed. São Paulo: 
Pearson Education do Brasil, 2018. 
43
PARA SABER MAIS
A manutenção é um processo que ocorre após a entrega da 
versão final do software. Engana-se quem acredite que os esforços 
em um sistema se encerram quando este é implantado no 
ambiente de trabalho do cliente. Este software pode apresentar a 
necessidade de correção de erros (bugs) ou então agregar novas 
funcionalidades. 
A etapa da manutenção é caracterizada pela modificação do 
software já entregue ao cliente, ou seja, é qualquer alteração 
no sistema após sua entrada em produção. Os defeitos não 
são introduzidos pelo tempo e nem pela carga de utilização, na 
verdade estes defeitos encontrados já existiam, algumas vezes até 
mesmo antes do software entrar em produção. Por alguma razão, 
não foram identificadas em fases anteriores, porém a manutenção 
não se configura apenas por correções (FABRIS; PERINI, 2014).
Segundo Filho (2019), um sistema de software normalmente 
sofre mudanças mesmo após a sua implantação no ambiente 
do usuário, que ocorrem devido ao contexto em que estão 
inseridos. Neste cenário, estas mudanças acabam forçando os 
desenvolvedores a reescreverem partes do código-fonte da 
aplicação, com a finalidade de adequá-lo a estas novas diretrizes. 
Assim, a etapa de manutenção de software é dividida em quatro 
fases distintas, realizadas de acordo com as mudanças indicadas 
a serem concluídas no sistema. Essas fases são: introdução, 
crescimento, maturidade e declínio. 
As fases de maturidade e de crescimento do software são focadas 
em ajustes de direcionamento e não em profundas alterações na 
estrutura do código-fonte, ou seja, são realizadas melhorias na 
aplicação, aprimorando fatores como performance e segurança. 
44
Durante o cumprimento destas fases, é necessário que sejam 
realizados testes de verificação de cumprimento de requisitos e 
consequentemente a atualização da documentação para avaliar as 
partes modificadas e acrescentadas no código. 
Já na fase de declínio, o software apresenta sintomas de desgaste 
e assim a necessidade de substituição deste por um novo sistema. 
Assim, segundo Fabris e Perini (2014), neste cenário este software 
está atingindo o final da vida útil e deve ser prontamente avaliado 
para determinar a retirada de operação. A avaliação deve ser 
feita com base em aspectos técnicos e também econômicos, 
gerando os relatórios necessários para pautarem a criação de 
um novo projeto de software que venha atender as necessidades 
do usuário e implementar funcionalidades que satisfaçam 
plenamente os requisitos, utilizando novos conceitos e recursos. 
Os testes de declínio também podem gerar resultado que 
permitem que o software venha a sofrer alterações mais 
profundas, como a substituição de tecnologias empregadas ou até 
mesmo para conseguir independência de fabricante. Este software 
é submetido a uma análise de viabilidade técnica e financeira, que 
irá direcionar a equipe de desenvolvimento sobre qual a melhor 
decisão a ser tomada, a fazer as alterações necessárias ou a criar 
um novo sistema.
Referências bibliográficas
FABRIS, P. P. G.; PERINI, L. C. Processos de software. 1. ed. 
Londrina: Editora e Distribuidora Educacional S.A., 2014. 
FILHO, W. P. P. Engenharia de software: projetos e processos. 4. 
ed. Rio de Janeiro: LTC, 2019. 
45
TEORIA EM PRÁTICA
Reflita sobre a seguinte situação: um empresário do ramo 
de venda de roupas possui um sistema e-commerce de loja 
virtual hospedado em seu website. Neste sistema existe uma 
estrutura de controle de fraudes em transações eletrônicas. 
Houve uma tentativa externa de acesso a esta estrutura do site. 
Aparentemente o software continua funcionando normalmente 
com exceção ao fato de haver problemas de conexão com dois 
dos três bancos nos quais a loja possui conta corrente utilizadas 
no processo de vendas online. Este comportamento incomum 
passou a acontecer após a tentativa de invasão. O empresário 
então entra em contato e deseja lhe contratar para verificar o 
funcionamento do sistema. Quais seriam as ferramentas Case 
adequadas para fazer este trabalho? Seguindo o ciclo de execução 
de caso de teste, elabore um test case para esta situação. 
Para conhecer a resolução comentada proposta pelo 
professor, acesse a videoaula deste Teoria em Prática no 
ambiente de aprendizagem.
LEITURA FUNDAMENTAL
Indicação 1
Os testes de um sistema de software são fundamentais para 
garantir que o cumprimento dos requisitos, a satisfação do 
cliente e a qualidade sejam mensuradas. Como base neste 
pensamento, fica sugerido um texto que se encontra no livro 
citado (Capítulo 22, páginas 466 a 472), no qual se explica de 
Indicações de leitura
46maneira bem clara e completa para enriquecer o entendimento 
do conceito testes de software. Para realizar a leitura deste 
texto, acesse a plataforma Biblioteca Virtual 3.0 disponível na 
Biblioteca Virtual da Kroton.
PRESSMAN, R. S. Engenharia de software: uma abordagem 
profissional. 8. ed. Porto Alegre: AMGH, 2016. Cap. 22, p. 466-
472.
Indicação 2
Um tipo de teste muito utilizado durante a etapa de 
desenvolvimento de um sistema de software é o TDD (Test 
Driven Development, em português: Desenvolvimento dirigido 
a testes), uma técnica de desenvolvimento de software que se 
relaciona com o conceito de verificação e validação e se baseia 
em um ciclo curto de repetições, no qual o desenvolvedor 
escreve um caso de teste automatizado que define uma 
melhoria desejada ou uma nova funcionalidade. Como base 
neste pensamento, fica sugerido um texto que se encontra 
no livro citado (Capítulo 4, páginas 179 a 190), que explica de 
maneira bem clara e completa para enriquecer o entendimento 
do conceito testes de software. Para realizar a leitura deste 
texto, acesse a plataforma Biblioteca Virtual 3.0 disponível na 
Biblioteca Virtual da Kroton.
NETO, R. M. Engenharia de software. 1. ed. Londrina: Editora e 
Distribuidora Educacional S.A., 2016. Cap. 4, p. 179-190.
47
QUIZ
Prezado aluno, as questões do Quiz têm como propósito a 
verificação de leitura dos itens Direto ao Ponto, Para Saber 
Mais, Teoria em Prática e Leitura Fundamental, presentes neste 
Aprendizagem em Foco.
Para as avaliações virtuais e presenciais, as questões serão 
elaboradas a partir de todos os itens do Aprendizagem em Foco 
e dos slides usados para a gravação das videoaulas, além de 
questões de interpretação com embasamento no cabeçalho 
da questão.
1. O princípio de Defeito – Erro – Falha baseia-se em: 
a. Um tratamento de situações de erro por meio de 
ferramentas Case de teste de sistema de software. 
b. Um código escrito de forma defeituosa pode gerar um 
erro quando for executado em uma situação específica. 
Posteriormente este erro pode gerar uma falha, 
fazendo com que o sistema fique inoperável e trave seu 
funcionamento no ambiente de execução. 
c. Uma condição específica de um sistema desenvolvido 
em linguagem de programação Java em ambiente de 
execução de testes de software. 
d. Um código fonte de origem duvidosa, escrito com 
situações de defeito que permitem a execução de um 
ambiente de geração de falhas do sistema. 
e. Uma versão de software capaz de anexar a tecnologia 
dos dados alfanuméricos em ambiente de execução de 
sistema de testes de software. 
48
2. A estrutura de execução de casos de testes é composta 
por etapas que servem para definir, escrever, executar 
e documentar cada teste realizado no sistema de 
software. Sobre estas etapas, é possível afirmar que: 
a. A definição das etapas interfere diretamente na qualidade 
do software, do processo de desenvolvimento e na 
escolha da ferramenta Case a ser utilizada no processo de 
modelagem deste software. 
b. A equipe de desenvolvimento executa os testes de acordo 
com o caso de teste que é devidamente escrito pelos 
usuários do sistema. 
c. Deve-se antes de tudo estruturar uma dinâmica de como os 
membros da equipe irão utilizar para escrever os requisitos 
e efetuar o feedback de suas ações aos usuários do sistema. 
d. Primeiramente se define o caso de teste, depois se cria o 
ambiente para automação, escreve-se os scripts, executa-os 
e, por último, apresenta-se os resultados obtidos. 
e. Ocorre quando um sistema computacional é escrito com 
o intuito de resolver situações cotidianas do mundo real, a 
fim de se interpretar os problemas citados pelo usuário na 
etapa de levantamento de requisitos deste sistema. 
GABARITO
Questão 1 - Resposta B
Resolução: O código que apresenta algum defeito lógico, 
pode gerar, ao ser executado em uma situação específica, 
um estado de erro a um sistema. Este erro pode gerar uma 
falha deste, ou seja, quando este sistema simplesmente trava 
durante seu processo de execução. O objetivo é tratar os 
49
códigos defeituosos para que estes não se transformem em 
um erro e, consequentemente, este erro se torne uma falha. 
Questão 2 - Resposta D
Resolução: O primeiro passo é determinar o caso de teste, 
definindo o que deverá ser realizado neste processo. Após 
isso, criar um ambiente de execução destes testes, definindo 
as tecnologias a serem utilizadas. Os scripts são as tarefas 
a serem realizadas e a execução seria a aplicação prática de 
cada uma destas tarefas. Por fim, os resultados devem ser 
apresentados e devidamente documentados. 
	Apresentação da disciplina
	Introdução
	TEMA 1
	Direto ao ponto
	Para saber mais
	Teoria em prática
	Leitura fundamental
	Quiz
	Gabarito
	TEMA 2
	Direto ao ponto
	Para saber mais
	Teoria em prática
	Leitura fundamental
	Quiz
	Gabarito
	TEMA 3
	Direto ao ponto
	Para saber mais
	Teoria em prática
	Leitura fundamental
	Quiz
	Gabarito
	TEMA 4
	Direto ao ponto
	Para saber mais
	Teoria em prática
	Leitura fundamental
	Quiz
	Gabarito
	Botão TEMA 5: 
	TEMA 2: 
	Botão 158: 
	Botão TEMA4: 
	Inicio 2: 
	Botão TEMA 6: 
	TEMA 3: 
	Botão 159: 
	Botão TEMA5: 
	Inicio 3: 
	Botão TEMA 7: 
	TEMA 4: 
	Botão 160: 
	Botão TEMA6: 
	Inicio 4: 
	Botão TEMA 8: 
	TEMA 5: 
	Botão 161: 
	Botão TEMA7: 
	Inicio 5:

Outros materiais