Buscar

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 36 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 36 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 36 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

ENGENHARIA DE 
SOFTWARE
Roque Maitino Neto
E-book 3
Neste E-Book:
INTRODUÇÃO ����������������������������������������������������������� 3
ENGENHARIA DE REQUISITOS ��������������������������� 5
Requisitos de Software �������������������������������������������������������������5
Engenharia de Requisitos ���������������������������������������������������������7
Validação dos Requisitos �������������������������������������������������������22
Arquitetura de Software ����������������������������������������������������������24
Ambientes de desenvolvimento de software ������������������������28
Implantação de Software �������������������������������������������������������30
CONSIDERAÇÕES FINAIS ����������������������������������� 33
REFERÊNCIAS BIBLIOGRÁFICAS & 
CONSULTADAS �������������������������������������������������������34
2
INTRODUÇÃO
Nenhum novo produto é concebido nem criado ao 
acaso� Do seu planejamento até sua disponibilização, 
muitas etapas são cumpridas e a qualidade desse 
produto terá relação direta com a qualidade do pro-
cesso que o criou� Sua efetiva construção é apenas 
uma das etapas do seu processo de criação, e não 
a única nem a primeira, sequer a mais importante� 
Antes que algo ganhe corpo, devem ser criteriosa-
mente definidas as suas funcionalidades, suas ca-
racterísticas, as restrições aplicadas e as demais 
condições para que ele exista e seja adequado ao 
seu propósito� A esse conjunto de elementos damos 
o nome de requisitos�
Conforme o desenvolvimento do nosso conteúdo 
sobre requisitos se dá, você terá a oportunidade de 
conhecer algumas definições sobre requisitos, das 
simples até as mais elaboradas� No entanto, em sua 
essência, requisito será tratado como uma condi-
ção que viabiliza a existência de um produto, e que 
reflete uma funcionalidade ou característica desse 
produto� Sem a determinação e validação criteriosa 
do conjunto dos requisitos de um produto, a chance 
de insucesso no projeto de sua criação será consi-
deravelmente grande�
Essa realidade genérica sobre requisitos também 
vale para a Engenharia de Software e neste módulo 
teremos a oportunidade de discutir suas especificida-
des sob a ótica da Engenharia de Requisitos – nome 
3
que se dá a todas as etapas do percurso trilhado 
pelos requisitos em um projeto de software� E, para 
bem cumprir objetivos desta parte da nossa jornada, 
nosso texto abordará também os principais elemen-
tos da arquitetura de um software, as características 
dos ambientes de desenvolvimento de software e, 
por fim, aspectos próprios de implementações de 
software�
Bons estudos!
4
ENGENHARIA DE 
REQUISITOS
Talvez a forma mais eficiente de se comprovar a 
importância dos requisitos em um processo de de-
senvolvimento de software seja negligenciando o 
tratamento que se deve dispensar a eles� A falta de 
cuidado na coleta dos requisitos, o pouco caso no en-
tendimento do seu real valor e o insuficiente investi-
mento de tempo na sua validação são omissões com 
grande potencial para comprometer o restante do 
projeto, e tornar amargas as lembranças da falta de 
diligência com essa fase tão importante do projeto� É 
justamente para que você não precise compreender 
a relevância dos requisitos da forma mais difícil que 
o abordaremos aqui em detalhes, começando pelas 
suas definições básicas.
Requisitos de Software
De acordo com Wazlawick (2013), os requisitos são 
a expressão mais detalhada sobre aquilo de que o 
usuário ou cliente precisa em termos de um produto 
de software� Eles são, portanto, a essência de um 
sistema, e a base sobre o qual ele será construído� 
Idealmente, nada do que não tenha sido definido 
como requisito (em sentido amplo) deve fazer parte 
do sistema e essa premissa tem sido cada vez mais 
colocada em prática com as metodologias ágeis�
5
Fernandes e Machado (2017) conceituam requisito, 
de modo geral, como qualquer coisa que alguém 
queira� Já no contexto da Engenharia de Software, 
os autores o colocam como propriedades que os 
sistemas (ainda em projeto) devem manifestar quan-
do estiverem desenvolvidos� Em outras palavras, os 
requisitos expressam as necessidades dos usuários 
e as restrições que devem ser consideradas durante 
o desenvolvimento do sistema�
De fato, o termo requisito não possui apenas uma 
definição válida e, além disso, a percepção do seu 
valor pode variar entre cliente, desenvolvedor e de-
mais atores do processo de desenvolvimento� Há, 
no entanto, uma restrição importante sobre seu sig-
nificado, dada por Vazquez e Simões (2016): não se 
pode considerar requisito como sinônimo de docu-
mentação com as especificações de requisitos. A 
documentação – continuam os autores – é fruto da 
necessidade de se registrar os resultados do trabalho 
intelectual realizado sobre os requisitos, para que a 
informação não se perca e possa ser compartilhada 
posteriormente�
Dada a sua importância no contexto do desenvolvi-
mento de sistemas, a área de requisitos tornou-se 
um ramo específico da Engenharia de Software e, 
como tal, ocupa-se com a sistematização das etapas 
de levantamento, análise, especificação e validação 
das propriedades que devem ser apresentadas para 
resolver tarefas relacionadas ao software em de-
senvolvimento� Tais propriedades são comumente 
relacionadas às funcionalidades do produto, mas 
6
estão ligadas também aos objetivos, restrições e 
padrões do sistema�
FIQUE ATENTO
Os requisitos de software expressam as neces-
sidades e restrições colocadas num produto de 
software que contribuem para a solução de algum 
problema do mundo real�
Engenharia de Requisitos
Conforme mencionamos, a consolidação dos con-
ceitos, técnicas e práticas associadas aos requisitos 
é chamada Engenharia de Requisitos, definida por 
Vazquez e Simões (2016) como uma disciplina da 
Engenharia de Software que consiste no uso siste-
mático e repetitivo de técnicas para cobrir atividades 
de obtenção, documentação e manutenção de um 
conjunto de requisitos para software que atendam 
aos objetivos do negócio. Os autores justificam o 
uso do termo “Engenharia” nesse contexto por meio 
da comparação do processamento dos requisitos 
com as etapas de um programa norte-americano de 
desenvolvimento da Ciência entre jovens, chamado 
Engenharia é Elementar� De acordo com esse pro-
grama, o processo geral da Engenharia é ilustrado 
na figura 1.
7
Melhore
Pergunte
Imagine
Planeje
Crie
Figura 1: O processo geral da Engenharia� Fonte: Vazquez 
e Simões (2016)
Mas como, afinal, a Engenharia de Requisitos se re-
laciona com esse processo? Iniciemos a análise pela 
etapa “Pergunte”: nela se busca identificar a natureza 
do problema e as restrições que a ele se aplicam e é 
exatamente assim que o ciclo dos requisitos se inicia� 
Na sequência, a etapa “Imagine” servirá para que se 
levante as alternativas e, entre elas, a melhor solução, 
o que também se relaciona com o segundo passo 
no caminho dos requisitos� Já na etapa “Planeje”, 
os itens relacionados à solução são levantados, ou 
seja, tudo o que servirá para solucionar o problema 
é reunido nesta etapa�
O processo segue seu caminho até a etapa “Crie”, 
na qual os planos devem ser colocados em prática 
e os resultados submetidos a testes, o que também 
é feito com os requisitos na ocasião em que são 
8
validados. Por fim, na etapa “Melhore”, é discutido 
o que funciona, o que não funciona e o que poderia 
ser melhorado� Aqui, haverá sempre a possibilidade 
de se aplicar melhorias no projeto e colocá-lo sob 
teste novamente� Esse ciclo, aplicado à realidade 
dos requisitos, promove o entendimento contínuo 
das necessidades do cliente e habilita a equipe a 
atender seus objetivos de negócio, que são dinâmi-
cos e mutáveis. (VAZQUEZ; SIMÕES, 2016)
Na sequência, trataremos das etapas da Engenharia 
de Requisitos� É necessário registrar que algumas 
fontes da literatura podem divergir em relação a no-
mes, escopo e quantidade de etapas� Será natural 
também que, considerando a metodologia de de-
senvolvimentoem que o conteúdo sobre requisitos 
é desenvolvido, algumas especificidades dessa me-
todologia sejam a causa de alguma divergência com 
o que trataremos adiante�
Levantamento de Requisitos
Para que uma equipe possa atuar sobre os requisitos, 
a primeira tarefa que se impõe é o levantamento des-
ses requisitos. Antes de definirmos essa etapa, cabe 
o registro de que muitos outros termos semelhantes 
são designados para identificá-la: descoberta de re-
quisitos, coleta de requisitos, extração de requisitos, 
aquisição de requisitos ou elicitação de requisitos� 
Esta última, mais comumente usada, constitui uma 
versão brasileira do termo elicit requirements�
De acordo com Vazquez e Simões (2016), esses dife-
rentes termos podem transmitir percepções igualmente 
9
distintas� “Coletar” requisitos pode dar a ideia de que 
bastaria buscá-los em uma prateleira para ter acesso 
a eles� “Adquirir” requisitos pode provocar a impressão 
de que seria necessária uma negociação para obtê-
-los, o que, muitas vezes, é procedente� Já a expressão 
“descobrir” requisitos pode induzir o observador a en-
tender que seria necessário um trabalho investigativo 
para obtê-los, o que também é verdadeiro em muitos 
casos� Usaremos, então, os termos “levantar” e “elicitar” 
requisitos como sinônimos para as nossas finalidades.
Levantar requisitos, portanto, significa adquirir co-
nhecimento sobre o produto a ser construído, sobre 
o ambiente de negócios em que esse produto estará 
inserido e sobre as pessoas que, de uma forma ou 
de outra, serão impactadas pelo projeto� As ações de 
levantamento de requisitos requerem técnicas para 
sua boa execução e que serão abordadas adiante� 
O resultado dessa fase deve ser consolidado em 
documentos que contenham as entrevistas, anota-
ções, observações feitas e tudo o mais que tenha 
registrado o conhecimento levantado� 
Schach (2009) aponta ações que devem dar sentido 
ao trabalho de levantamento de requisitos e a pri-
meira delas é determinar o que o cliente precisa, ao 
invés de o que o cliente quer� Não se trata de uma 
identificação simples e deverá requerer habilidade da 
equipe, já que frequentemente os clientes não sabem 
do que precisam ou têm dificuldade em expressá-lo, 
principalmente no início do projeto� É necessário 
também que o grupo destacado conheça o campo 
de aplicação, ou seja, a área geral em que o software 
10
será aplicado� Um campo de aplicação pode ser o 
setor de indústria metalúrgica, o comércio varejista 
e o setor acadêmico, entre tantos outros�
Da mesma forma que a aquisição de conhecimento 
sobre um determinado assunto pode se dar de várias 
formas, o levantamento dos requisitos também pode 
(e deve) ser executado com métodos distintos� É 
necessário que o responsável por essa atividade te-
nha em mente que levantar requisitos envolve ações 
essencialmente humanas, que requerem habilidade 
em trabalhar com especialistas humanos e com co-
nhecimentos tácitos que, de forma sucinta, é aquele 
não expresso� Para um industrial, por exemplo, o 
processo de criação de seu produto pode lhe ser tão 
óbvio que, instintivamente, ele pode não sentir ne-
cessidade de detalhá-lo ao Engenheiro de Software�
O documento Guide to the software engineering body 
of knowledge (IEEE, 2004) oferece conteúdo sobre 
as duas primeiras técnicas que viabilizam o trabalho 
de levantamento de requisitos�
Entrevista: antes da sua aplicação, a entrevista deve 
ser planejada. Seus objetivos devem ser fixados, seu 
local e roteiro definidos e os entrevistados criteriosa-
mente escolhidos. Afinal, o entrevistado deve ter o que 
contribuir para o projeto� A interação entre entrevistado 
– que conhece o negócio e entrevistador – que é o 
engenheiro de requisitos, deve buscar revelar concei-
tos, procedimentos e a organização do domínio do 
problema, além de buscar soluções ou projeções de 
soluções que comporão o domínio da solução�
11
As entrevistas mais usuais são as tutoriais, informais 
e estruturadas� Nas entrevistas tutoriais, o entrevista-
do fica no comando, praticamente lecionando sobre 
um determinado assunto� Nas entrevistas informais 
ou não estruturadas, o entrevistador age espontanea-
mente, perguntando ao entrevistado, sem obedecer a 
nenhuma organização� Já as entrevistas estruturadas 
são preparadas pelo entrevistador, que define previa-
mente o andamento do procedimento de aquisição 
de conhecimento�
Aplicação de questionário: se em uma entrevista o 
usuário (ou cliente) é compelido a falar, por meio de 
um questionário ele poderá se expressar de outra 
forma que não a oral� Um questionário geralmen-
te é aplicado por meio de formulário (que pode ser 
eletrônico) distribuído para os futuros usuários do 
sistema� O Engenheiro de Software deve utilizar ques-
tões objetivas e diretas, e que consigam extrair do 
participante respostas sobre o procedimento atual 
adotado� Dessa forma, o questionário é um bom meio 
de identificar como os usuários executam determina-
do procedimento que se tornará uma funcionalidade 
do sistema�
Análise de documentos: essa atividade consiste em 
levantar requisitos por meio da análise da documen-
tação que trata da solução atual, com o objetivo de 
identificar informação de relevância para o desen-
volvimento de solução futura (VAZQUEZ; SIMÕES, 
2016). O objetivo dessa técnica, portanto, não difere 
totalmente do objetivo da aplicação de um questio-
nário, exceto pelo objeto da análise� Ainda segundo 
12
Vazquez e Simões (2016), o termo “documentação” 
deve ser entendido em sentido amplo e incluir pla-
nos de negócios, fluxos de processos atuais, mo-
delos de dados, repositórios de regras de negócios, 
relatórios, manuais, normas, eventuais casos de uso 
existentes e tudo o que for útil para que o Engenheiro 
de Software seja capaz de delinear o domínio do 
problema� 
A realização dessa atividade de análise de documen-
tos inclui basicamente três fases:
 ● Preparação: nessa fase deve-se identificar quais 
as necessidades de informação do Engenheiro de 
Software ou da equipe de requisitos� Tais necessida-
des podem incluir, por exemplo, o entendimento das 
regras do negócio, as informações mais relevantes 
que devem ser apresentadas pelo futuro sistema e 
quais dados devem ser armazenados. Identificadas 
essas necessidades, os documentos mais apropria-
dos para atendê-las devem ser buscados�
 ● Execução: aqui a equipe de requisitos deve estu-
dar a documentação selecionada para extrair dela 
as contribuições para o entendimento do problema� 
Eventuais ausências de respostas podem ocorrer 
nessa fase e, por isso, novas oportunidades deverão 
ser criadas para novas buscas e análises�
 ● Finalização: as buscas e análises feitas devem ser 
consolidadas em um relatório a ser submetido aos 
interessados com aptidão para validar o resultado 
dessa fase� Para facilitar a tarefa, as referências aos 
documentos analisados devem constar desse rela-
tório, incluindo a localização de cada um deles em 
13
meio digital� A tabela 1 ilustra exemplo de um possí-
vel sumário do resultado da análise de documentos�
Tipo Localização
Termo de referência (svn)/projetos/2021/ProjetoA
Nome
Edital do pregão eletrônico
Memória do levantamento
ML01 – Resumo da análise do edital
Tabela 1: Resumo da análise de documentos� Fonte: 
Vazques e Simões (2016, p. 155)
As maneiras que a equipe de requisitos tem à dispo-
sição não se restringem a essas que abordamos� A 
critério do entendimento do cliente com o Engenheiro 
de Software, poderão ser realizadas reuniões estru-
turadas e sessões em que um membro da equipe de 
requisitos apenas observa e faz anotações sobre a 
forma com que um futuro usuário-chave do sistema 
desempenha suas funções, segundo o procedimento 
atual� De qualquer forma, a proximidade saudável 
da equipe com o cliente será um dos fatores que 
determinará o sucesso dessa empreitada�
Apesar do desenvolvimento contínuo aplicado a es-
sas técnicas e sua comprovada efetividade, não se 
pode esperar que os atores do processocoloquem 
todas as informações dos requisitos à disposição da 
equipe de forma voluntária e na primeira vez em que 
forem chamados a fazê-lo� Devemos lembrar também 
14
que sempre existirão conhecimentos que não serão 
compartilhados com a equipe por parecerem óbvios 
ao seu detentor, o que torna ainda mais crítica a ha-
bilidade e experiência dos membros dessa equipe� 
Continuamos nosso percurso agora com o estudo 
da etapa de análise de requisitos�
Análise de Requisitos
Considerando o fluxo estabelecido pela Engenharia 
de Requisitos, ao ser concluída a fase de levanta-
mento (ou elicitação), terá início a fase de análise 
desses requisitos� Espera-se que aqui eles sejam 
analisados e classificados e, como resultado, que 
a equipe tenha em mãos principalmente requisitos 
funcionais e não funcionais� Em poucas palavras, os 
primeiros descrevem as funções que o software irá 
executar e os requisitos não funcionais são aqueles 
que restringem a solução de um problema�
Vazquez e Simões (2016) definem de maneira interes-
sante essa etapa da Engenharia de Requisitos e sua 
relação com a anterior: se a elicitação de requisitos 
serve para descobrir as peças do quebra-cabeças que 
compõem a solução do problema, a fase de análise 
dos requisitos procura montá-lo. A finalidade da exis-
tência dessa fase é a de aumentar o entendimento 
do problema, por meio da aplicação de incrementos, 
organização e melhorias à informação já existente� A 
figura 2 ilustra a análise de requisitos sob esta ótica. 
15
Elicitação e 
gerência de 
requisitos
Análise de
requisitos
Resultado da 
elicitação e da 
gerência de 
requisitos
Aumentar o 
entendimento 
atual do 
problema
Especificações
não
documentais
Requisitos 
funcionais e 
não funcionais
Resultados da análise
Figura 2: Uma visão simplificada da análise de requisitos. 
Fonte: Adaptado de Vazques e Simões (2016)
Observe que a fase de análise de requisitos vem depois 
da elicitação, na ordem em que desenvolvemos seus 
respectivos conteúdos� No entanto, deve-se registrar 
que os dados gerados pela elicitação em um deter-
minado projeto podem ser ambíguos e passíveis de 
revisão, o que forçaria a equipe a retroceder um passo 
e realizar nossas atividades de elicitação� De qualquer 
maneira, a figura mostra que o resultado da elicitação 
será subsídio para a análise de requisitos que, uma vez 
concluída, deverá gerar um quebra-cabeças montado�
Ao fazermos a abordagem específica do processa-
mento da análise de requisitos, teremos que uma das 
primeiras classificações a serem feitas refere-se a 
requisitos de produto e de processo� Requisitos de 
produto referem-se às características próprias do 
16
software a ser desenvolvido� Por exemplo, a equipe 
pode ter levantado que “o software dever verificar se 
um candidato atende a todos os pré-requisitos antes 
que seja autorizado a participar do pleito eleitoral”� 
Esse requisito deverá ser classificado, portanto, como 
próprio do produto�
Já um requisito de processo equivale a uma restrição 
incidente no procedimento de desenvolvimento ou 
na tecnologia aplicada ao software� Como exemplos, 
podemos tomar os seguintes casos: “o software deve 
ser escrito em Java” ou “uma metodologia ágil deve 
ser adotada como modelo de desenvolvimento”� É 
de se imaginar que algumas distinções podem não 
ser tão imediatas, o que pode gerar incertezas no 
projeto. Confira no box Fique Atento logo adiante 
um exemplo relacionado a esse tema�
Outra análise com grande potencial de utilidade é 
aquela relacionada à prioridade de um requisito� A 
equipe pode determinar, por exemplo, que um re-
quisito pode ser classificado obrigatório, altamente 
desejável, desejável ou opcional� Embora tenhamos 
atribuído à equipe essa classificação, o cliente deverá 
apontar as funcionalidades (aqui entendidas como os 
requisitos em questão) que mais valor agregarão ao 
seu negócio e que, portanto, merecerão mais atenção 
e agilidade no desenvolvimento�
Embora todas essas classificações sejam impor-
tantes, a mais imediata é, de fato, a separação dos 
requisitos em funcionais e não funcionais� Os requisi-
tos funcionais descrevem as funções que o software 
17
irá executar. Em outras palavras, eles definem as 
funcionalidades que o software deve disponibilizar 
com o objetivo de capacitar os usuários a realizar 
suas tarefas, e podem ser expressos como serviços 
ou funções que o sistema irá executar�
Um levantamento correto e a descrição clara desses 
requisitos funcionais serão de fundamental importân-
cia para o sucesso do projeto� Em contrapartida, uma 
especificação falha das funções do sistema pode 
gerar ambiguidade e levar a uma situação em que o 
desenvolvedor faça uma interpretação incorreta da 
funcionalidade e em desacordo com o que de fato 
se desejava expressar� Além da clareza na descrição, 
um requisito funcional requer o estabelecimento de 
prazos e alocação de recursos para sua efetivação 
como funcionalidade do sistema�
FIQUE ATENTO
As informações levantadas ao longo da elicitação 
de requisitos podem apresentar-se no formato de 
fragmentos, como este: “Apenas os alunos que 
tiverem ao menos 75% de presença estarão aptos 
ao recebimento do certificado de conclusão do 
curso”� Aparentemente, esse fragmento remete 
ao requisito funcional da emissão do certificado, 
mas não se pode afirmar com segurança que o 
fragmento esteja associado apenas a esse requi-
sito� A depender do caso, o sistema poderá contar 
com uma funcionalidade de emissão de certificado 
voltada ao aluno concluinte e outra funcionalidade 
18
– ligeiramente diferente – que prevê a possibilida-
de de a equipe administrativa emitir um certificado, 
em qualquer tempo (VAZQUEZ; SIMÕES, 2016).
Requisitos não funcionais são aqueles que restringem 
a solução de um problema� Não se referem às fun-
ções específicas do sistema, mas sim a propriedades 
específicas, incluindo tempo de resposta do sistema, 
requisitos de armazenamento, restrições de entrada 
e saída, memória, entre outras� É comum que requi-
sitos não funcionais se refiram de modo universal ao 
sistema, e não a suas peculiaridades� Dessa forma, 
tornam-se, com alguma frequência, mais importantes 
que requisitos funcionais analisados individualmente� 
Considerando essa realidade, podemos tomar como 
exemplo um sistema de aviação que não responde 
aos requisitos de segurança convencionados� Dessa 
forma, o sistema todo estará comprometido e deverá 
ser revisto em seus aspectos de segurança�
Especificação dos requisitos de software
A próxima etapa do processo de Engenharia de 
Requisitos refere-se à produção de um documento 
contendo os requisitos levantados e analisados, que 
podem ser sistematicamente revistos, avaliados e 
aprovados. A especificação de requisitos é, portan-
to, o artefato que documenta os variados requisitos 
levantados na etapa de elicitação e analisados em 
etapa seguinte e que contém a representação da 
informação disponível naquela circunstância tem-
poral do projeto�
19
De acordo com IEEE (2004), uma boa especificação 
de requisitos de software pode propiciar diversos 
benefícios aos clientes e demais envolvidos no pro-
jeto, a saber:
 ● Estabelece a base para a concordância entre 
clientes e fornecedores, naquilo que o software deve 
produzir�
 ● Reduz o esforço para o desenvolvimento� Uma 
revisão cuidadosa dos requisitos na Especificação 
de Requisitos de Software (ERS) pode trazer à tona 
omissões e falhas em fases iniciais no ciclo de de-
senvolvimento quando esses problemas são mais 
fáceis de corrigir�
 ● Fornece base para estimativa de custos e agen-
das� A descrição do produto a ser desenvolvido é 
uma base realista para a estimativa dos custos do 
projeto e pode ser usada como referência de preço 
do produto�
 ● Fornece uma linha de base para validação e ve-
rificação do produto de software. As organizações 
podem desenvolver seus planos de validação e ve-
rificação de forma muito mais produtiva a partir de 
uma boa ERS� 
Em resumo, a criaçãoe utilização desse documento 
é justificada pela sua capacidade de validar as neces-
sidades das partes interessadas no sistema� Além 
disso, por intermédio da especificação é possível 
definir uma solução para as necessidades dos negó-
cios, formar base de informação para a evolução do 
sistema, realizar adaptações para que o documento 
20
sirva como fonte para criação de manuais de usuário, 
estabelecer acordos contratuais e consolidar docu-
mentos para auditoria, quando aplicável� (PMI, 2017)
Antes de encerrarmos nossa abordagem sobre requi-
sitos, cabe registrar algumas considerações sobre 
a elaboração desse documento� Um documento de 
requisitos precisa conter, minimamente, as funcionali-
dades apontadas pelo cliente e validadas pela equipe� 
A forma de se colocar um requisito, especialmente os 
funcionais, é decisivo para sua correta interpretação 
e o redator não deve assumir que o leitor já conheça 
do que trata seu conteúdo� Além disso, a sentença 
descritiva do requisito deverá conter um verbo que 
indique claramente a ação a ser executada, além do 
responsável por ela� Observe um exemplo na tabela 2�
Identificador: RF001 Requisito: Manter Cadastro do Visitante
O condômino cadastra o visitante registrando Nome e Registro Geral�
Identificador: RF002 Requisito: Liberar Acesso de Visitante
O condômino cadastra a liberação de acesso selecionando um visitante 
já cadastrado e indica o período (data e hora de início e data e hora e fim) 
para realizar a visita�
Identificador: RF003 Requisito: Registrar Entrada de Visitante
O porteiro ou guarda verifica se a documentação apresentada pelo visi-
tante confere com os dados apresentados na liberação de acesso (Nome 
do Visitante e Registro Geral) e registra a data e a hora em que o visitante 
entrou no condomínio�
Tabela 2: Exemplo de descrição de requisitos� Fonte: 
Vazques e Simões (2016)
21
Essa estruturação textual claramente facilita a re-
presentação dos requisitos de forma apropriada a 
um projeto de software, qual seja pela utilização de 
casos de uso, prototipação ou esquemas lógicos, por 
exemplo� Feitas essas considerações, avançamos 
para a próxima etapa de requisitos�
Validação dos Requisitos
Depois de usar as técnicas mais variadas de levanta-
mento dos requisitos, realizar uma análise criteriosa 
desses requisitos e especificá-los de acordo com as 
melhores práticas, é de se imaginar que o trabalho 
esteja finalizado e que o resultado dispense ajustes, 
não é mesmo? A resposta é negativa� Não se pode 
finalizar o processo de Engenharia de Software sem 
que os requisitos estejam devidamente validados e 
que a equipe esteja certa que entendeu e traduziu 
corretamente as funcionalidades e restrições do 
sistema�
Assim, como última etapa da Engenharia de 
Requisitos, a validação é o procedimento que deve 
incidir principalmente sobre o documento de espe-
cificação. A validação serve para assegurar que o 
engenheiro compreendeu os requisitos e se foram 
descritos de forma compreensível, consistente e 
completa� No processo de validação, a participação 
do cliente é fundamental e, junto com a equipe de 
requisitos, ele deve verificar se no documento não há 
falta de clareza, sentido dúbio e desvio dos padrões�
22
Uma boa prática de revisão e validação dos requisitos 
pode ser empreendida pela apuração de algumas ca-
racterísticas desejáveis, em conjunto com o cliente� 
Nesse sentido, Pfleeger (2004) propõe as seguintes 
validações:
1. Os requisitos estão corretos?
Essa validação propõe que equipe e cliente analisem 
os requisitos para que se certifiquem de que não há 
erros em suas definições.
2. Os requisitos são consistentes?
Devem ser buscados e corrigidos eventuais requisitos 
ambíguos ou conflitantes.
3. Os requisitos estão completos?
Para assegurarem que o requisito está completo, 
equipe e cliente devem verificar se todos os pos-
síveis estados do requisito, entradas, resultados e 
restrições estão presentes�
4. Os requisitos são realistas?
Essa verificação visa a identificar se o que o cliente 
pede pode, de fato, ser executado�
5. Cada requisito descreve algo que é necessário para 
o cliente?
Aqui é sugerida a verificação da adequação do pe-
dido às reais necessidades do cliente�
6. Os requisitos podem ser verificados?
23
Equipe e cliente devem assegurar que é possível 
criar testes que comprovem que os requisitos fo-
ram satisfeitos�
7. Os requisitos podem ser rastreados?
Essa validação visa a identificar se cada função do 
sistema pode ser associada a um conjunto específico 
de requisitos�
Essas são, portanto, as fases do processo de 
Engenharia de Requisitos� É sempre necessário lem-
brar que você poderá encontrá-las em uma quantidade 
ligeiramente maior em algumas publicações ou com 
fases consolidadas em outras fontes� Haverá também 
a possibilidade de tratamentos específicos serem 
dados aos requisitos, conforme uma ou outra metodo-
logia de desenvolvimento seja considerada� Abordado 
o conteúdo e feitas as ressalvas, avançamos agora 
para o tratamento da Arquitetura de Software�
Arquitetura de Software
Programas de computador estão entre as constru-
ções mais complexas que os seres humanos são 
capazes de criar� Se considerarmos todas as cone-
xões entre seus módulos, as manutenções efetivadas 
nos dados, as interações com os usuários e suas 
eventuais ligações com outros programas, estaremos 
diante de uma estrutura consideravelmente intrin-
cada e que, como tal, deverá requerer um alicerce 
muito bem constituído� Assim como uma casa, um 
24
sistema de computador também requer um desenho 
bem definido antes de ser construído.
De forma genérica, a esse “desenho bem definido” 
damos o nome de Arquitetura do Software� A despei-
to de haver muitas definições para esse termo, todos 
convergem para elementos como projeto, design, 
arcabouço e estrutura de um produto de software� 
De acordo com Lilienthal (2019), a arquitetura de 
software é a estrutura de um produto de software� 
Isso inclui elementos, as propriedades visíveis desses 
elementos e as relações entre eles�
Essa definição menciona elementos e relacionamen-
tos de forma genérica, sem especificá-los. Esses dois 
objetos podem ser usados para descrever uma ampla 
variedade de itens de uma arquitetura� Um módulo, 
por exemplo, contém classes, pacotes, pastas e pro-
jetos, ou seja, elementos comuns disponibilizados 
pelas linguagens de programação� Arquivos, com-
putadores e protocolos de comunicação também 
podem integrar a lista de elementos da arquitetura 
de software�
A expressão Arquitetura de Software, portanto, refere-
-se à estrutura interna de um sistema e explica como 
um software se organiza e funciona, além do seu 
modo de implementação� Se um sistema sofre alte-
rações, sua arquitetura também muda� Os feedbacks 
recebidos, os erros encontrados e as novas soluções 
implementadas são ações que acarretam alterações 
na arquitetura� Assim sendo, é natural imaginarmos 
que a arquitetura de um software deva ser flexível, 
25
ou seja, que ela permita mudanças necessárias para 
seu aprimoramento e adaptação. (GALLOTTI, 2016)
Na mesma direção, O conjunto de conhecimento 
de Engenharia de Software (Guide to the software 
engineering body of knowledge, conhecido pela sigla 
SWEBOK), importante publicação de nível mundial na 
área, conceitua Arquitetura de Software como uma 
descrição dos subsistemas e componentes de um 
sistema de software e as relações entre eles (IEEE, 
2004). A arquitetura, portanto, tenta definir a estru-
tura interna do software (ou a maneira como ele é 
construído e organizado) e, por causa da variedade 
de composição de estruturas de um software, foi 
possível também definir vários estilos de arquitetura.
Um estilo de arquitetura (ou estilo arquitetural) é um 
conjunto de restrições em uma arquitetura que de-
fine um conjunto ou família de arquiteturas que as 
satisfaz� Um estilo de arquitetura pode, portanto, ser 
visto como um metamodelo que pode fornecer a 
organização de alto níveldo software (sua macroar-
quitetura)� Sistemas de Estrutura Genérica, Sistemas 
Distribuídos e Sistemas Interativos são os três exem-
plos de estilo arquitetural mais comuns�
É por meio do estilo arquitetural que poderemos ca-
racterizar a arquitetura de um software, o que pos-
sibilitará, segundo Silva Filho (2008):
 ● Identificar os principais elementos que oferecem 
funcionalidades definidas, tais como um componen-
te de cadastro de usuários ou um componente de 
autenticação em uma aplicação�
26
 ● Identificar mecanismos de interação de um sis-
tema, ou seja, como é feita a comunicação entre 
objetos�
 ● Identificar as propriedades oferecidas por cada 
estilo arquitetural, com base na organização dos 
componentes e nos meios de interação�
Sommerville (2018) trata as ações relacionadas à 
arquitetura de um sistema como “projeto de arquite-
tura”, e o coloca como o vínculo fundamental entre 
a fase de Projeto e a Engenharia de Requisitos, pois 
serve para identificar os principais componentes es-
truturais do sistema e as relações entre eles� Nesse 
sentido, o autor insere o projeto de arquitetura como 
primeiro estágio do Projeto do software e sustenta 
que ele dará à equipe de desenvolvimento e ao cliente 
a oportunidade de conhecer como o software será 
organizado e de projetar sua estrutura geral�
Bem, parece-nos, então, que a definição de uma ar-
quitetura para o sistema trará benefícios em algum 
momento do ciclo de vida desse produto� As pergun-
tas que se seguem são: “Quais as vantagens em se 
ter uma arquitetura definida?” e “Em qual momento 
a equipe de desenvolvimento poderá se beneficiar 
dela?”. Afinal, passar pela fase do projeto sem investir 
tempo em planejar cuidadosamente a arquitetura 
do sistema parece tornar aquela fase mais rápida e 
proveitosa, não é mesmo?
Uma arquitetura bem definida permite a reutilização 
de componentes do sistema (uma classe, por exem-
27
plo), a substituição segura desses componentes e, de 
modo geral, melhora as condições para a evolução 
do software� Além disso, conhecer o estilo arqui-
tetural permite ao engenheiro antecipar o impacto 
que esse estilo terá sobre atributos de qualidade� 
Além disso, facilita a comunicação do projeto� (SILVA 
FILHO, 2008)
Feitas essas considerações, avançamos agora rumo 
ao estudo de como os ambientes de desenvolvimen-
to de software podem ser protagonistas no suces-
so dessa etapa do processo de software� Sigamos 
adiante!
Ambientes de desenvolvimento 
de software
Um dos mais notáveis avanços experimentados pelos 
profissionais de TI no contexto de desenvolvimento 
de programas pode ser creditado às linguagens de 
programação atuais� Com características que reme-
tem à flexibilidade e à simplificação da construção 
das estruturas algorítmicas, elas oferecem recursos 
e funções que conferem agilidade ao processo de 
codificação de um sistema. Esse avanço, no entanto, 
tem sido viabilizado pelo aprimoramento dos ambien-
tes de desenvolvimento de software, que têm nas 
linguagens de programação um dos seus elementos�
Um ambiente de desenvolvimento de software deve 
fornecer ao desenvolvedor uma variedade de fer-
ramentas e facilidades como forma de apoiar o 
processo de construção de um programa – que in-
28
clui a codificação, testes e integração. Na visão de 
Sommerville (2018), essas ferramentas incluem, de 
forma não exaustiva:
 ● Um compilador integrado e um sistema de edição 
dirigido pela sintaxe que permitam a criação, a edição 
e a compilação do código�
 ● O recurso de depuração do código�
 ● Recursos gráficos de edição do código, como as 
ferramentas feitas para permitir a edição de modelos 
UML�
 ● Ferramentas de teste capazes de executar auto-
maticamente um conjunto de testes no código� A 
JUnit é um exemplo dessa ferramenta�
 ● Recursos que permitam a refatoração do código, a 
documentação do código e a visualização de partes 
específicas do programa.
 ● Ferramentas de gerenciamento da configuração, 
incluindo o controle de versões e a integração de 
sistemas�
Por questões práticas, esse conjunto de recursos 
e ferramentas são disponibilizados em Ambientes 
Integrados de Desenvolvimento (IDE, do inglês 
Integrated Development Environment), geralmente 
construídos para apoiarem o desenvolvimento em 
um conjunto de linguagens de programação e que 
tem no Eclipse seu representante mais conhecido 
e usado atualmente� Ele se baseia em uma arqui-
tetura de plug-ins, de forma que é possível torná-lo 
apropriado para uma variedade de linguagens, sim-
29
plesmente acrescentando o plug-in específico à sua 
configuração.
Implantação de Software
A primeira providência a ser tomada em favor do 
entendimento de Implantação de Software é a sua 
necessária distinção de um termo semelhante, e fre-
quentemente utilizado em seu lugar� Implantar um 
software significa torná-lo disponível para uso, co-
mumente por meio da sua instalação em um servidor 
ou outro computador designado� Já implementar 
um software significa, em poucas palavras, criar seu 
código por meio de uma linguagem de programação�
Assim, a implantação de um sistema é o processo 
de disponibilizá-lo para os seus usuários, transferin-
do dados de sistemas existentes e estabelecendo 
comunicações com outros sistemas no ambiente� 
O processo termina quando o sistema é posto em 
operação e disponibilizado aos usuários para a rea-
lização das suas operações (SOMMERVILLE, 2018)� 
A implantação está inserida em um contexto mais 
abrangente, chamado Engenharia de Sistemas, cujas 
etapas incluem a Engenharia de Requisitos, o Projeto 
de Arquitetura, o Particionamento de Requisitos, 
a Engenharia de Subsistemas, a Integração de 
Sistemas, o Teste de Sistema e, finalmente, a própria 
Implantação do Sistema�
A depender do porte do sistema, a sua implantação 
não será constituída apenas pela atividade de instala-
ção de um programa� Via de regra, sistemas maiores 
30
e mais complexos têm sua operação baseada na 
interação com outros sistemas de software, incluindo 
bancos de dados, middleware e outras aplicações� 
Esse conjunto de componentes configura uma pla-
taforma de software que, em outras palavras, é o 
ambiente no qual o software será executado�
É comum encontrarmos menções à implantação de 
um sistema como a sua passagem para o ambiente 
de produção, e a explicação para esse tipo de refe-
rência é bem simples: durante a construção de um 
sistema (incluídos aqui novamente a codificação, os 
testes e as integrações), normalmente é reservado 
a ele um ambiente de desenvolvimento, que pode 
ser configurado em um servidor físico ou em uma 
máquina virtual com designação específica para esse 
fim. A esse ambiente de desenvolvimento os usuários 
não terão acesso, exceto em ocasião em que sejam 
chamados para validar alguma funcionalidade do 
sistema� Terminada a construção do sistema, ele 
então é transferido para o servidor físico (ou máquina 
virtual) em que poderá ser utilizado em sua plenitude 
pelos usuários�
Embora cada sistema possua suas próprias especi-
ficidades, é possível identificar tarefas sequenciais e 
universais, próprias de um processo de implantação� 
A primeira delas é a liberação, normalmente colocada 
em prática logo que o processo de desenvolvimento 
termina� A execução dessa tarefa visa a preparar 
uma versão executável do sistema e disponibilizá-la 
ao cliente, o que inclui a identificação dos recursos 
necessários para que ele seja disponibilizado em 
31
produção� Depois da liberação, segue-se a instalação, 
atividade em que é feita a efetiva transferência do 
sistema para o ambiente de produção e a configu-
ração do sistema� Na sequência, é feita a ativação, 
cujo objetivo é a inicialização da versão executável 
do software�
32
CONSIDERAÇÕES FINAIS
Encerramos aqui a abordagem do conteúdo designa-
do para este módulo� Como tratarmos de assuntos 
de grande alcance – condição na qual requisitos de 
software se encaixa bem –, é salutar que o estudo 
e a atualização nesses assuntos sejam contínuos,de modo a habilitá-lo a utilizar na prática tudo o que 
foi aqui tratado� Iniciamos estes estudos propondo 
conceitos e expondo características dos requisitos, 
com o objetivo de prepararmos o caminho para o 
tratamento das etapas da Engenharia de Requisitos, 
processo no qual eles são levantados, analisados e 
validados, sempre com o objetivo de se tornarem 
subsídio confiável para a elaboração do projeto do 
software�
Como passo seguinte, tratamos da arquitetura de 
um software, como um meio de explicitar as partes 
que o compõem e seus respectivos relacionamen-
tos� A elaboração de um projeto de arquitetura deve 
proporcionar à equipe a possibilidade de promover 
reúso de partes do software e de promover mais facil-
mente sua evolução� Depois, foram feitas abordagens 
conceituais de ambientes de desenvolvimento de 
software (IDE) e de implementação de software, clas-
sificada como etapa final do processo de Engenharia 
de Sistemas�
33
Referências Bibliográficas 
& Consultadas
COHN, M� Desenvolvimento de software com scrum: 
aplicando métodos ágeis com sucesso. Porto Alegre: 
Bookman, 2011� [Minha Biblioteca]
FERNANDES, J� M�; MACHADO, Ricardo, J� Requisitos 
em projetos de software e de sistemas de informa-
ção. São Paulo: Novatec Editora, 2017.
GALLOTTI, G� M� Arquitetura de software. São Paulo: 
Pearson Education do Brasil, 2016.
IEEE Computer Society� Guide to the software engi-
neering body of knowledge. Piscataway, NJ, USA: The 
Institute of Electrical and Electronic Engineers, 2004�
LILIENTHAL, C� Sustainable software architectu-
re: analyze and reduce technical debt. Heidelberg: 
Workplace Solutions, 2019�
PAULA FILHO, W� P� Engenharia de software: funda-
mentos, métodos e padrões. 3. ed. Rio de Janeiro: 
LTC, 2009� [Minha Biblioteca]
PFLEEGER, S� L� Engenharia de software: teoria e prá-
tica. 2. ed. São Paulo: Prentice Hall, 2004. [Biblioteca 
Virtual]
PMI� Guia PMBOK: um guia de conhecimento em 
gerenciamento de projetos. 6. ed. Pensilvânia: Project 
Management Institute, 2017�
PRESSMAN, R�; MAXIM, B� Engenharia de software: 
uma abordagem profissional. 8. ed. Porto Alegre: 
AMGH, 2016. [Minha Biblioteca]
SBROCCO, J� H� T� C�; MACEDO, P� C� Metodologias 
ágeis: engenharia de software sob medida. São 
Paulo: Érica, 2012. [Minha Biblioteca]
SCHACH, S� R� Engenharia de software: os paradig-
mas clássico e orientados a objetos� 7� ed� Porto 
Alegre: AMGH, 2009.
SILVA FILHO, A� M� Arquitetura de software: desen-
volvimento orientado para arquitetura. Disponível em: 
https://www.devmedia.com.br/arquitetura-de-softwa-
re-desenvolvimento-orientado-para-arquitetura/8033� 
Acesso em: 6 nov. 2020.
SOMMERVILLE, I� Engenharia de software� 10� 
ed. São Paulo: Pearson Education do Brasil, 2018. 
[Biblioteca Virtual]
VAZQUEZ, C� E�; SIMÕES, G� S� Engenharia de requi-
sitos: software orientado ao negócio. Rio de Janeiro: 
Brasport, 2016. [Biblioteca Virtual]
WAZLAWICK, R� S� Engenharia de software: conceitos 
e práticas. Rio de Janeiro: Elsevier, 2013.
	Introdução
	Engenharia de Requisitos
	Requisitos de Software
	Engenharia de Requisitos
	Validação dos Requisitos
	Arquitetura de Software
	Ambientes de desenvolvimento de software
	Implantação de Software
	Considerações finais
	Referências Bibliográficas & Consultadas

Mais conteúdos dessa disciplina