Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

A Engenharia de Software
 
SST
Cipriano, Cássio
A Engenharia de Software / Cássio Cipriano 
Ano: 2020
nº de p.: 11 
Copyright © 2020. Delinea Tecnologia Educacional. Todos os direitos reservados.
A Engenharia de Software
3
Apresentação
Neste momento, trataremos do conceito de Engenharia de Software, uma área 
de conhecimento relacionada à Tecnologia da Informação munida de processos, 
métodos e ferramentas empregadas no desenvolvimento de sistemas, com o 
objetivo de construir produto de qualidade que atenda, de fato, as necessidades e 
expectativas dos usuários. 
Para tanto, iremos tratá-la como um conjunto de camadas que encerram 
metodologia genérica composta de cinco atividades, a saber: comunicação, 
planejamento, modelagem, construção e emprego. Esses conceitos são 
fundamentais e encontram aplicabilidade em diferentes metodologias empregas 
atualmente
O que é a Engenharia de Software?
A engenharia de software possui diversas definições. No entanto, Fritz Bauer definiu 
o conceito de engenharia de software de forma bastante clara: 
"Engenharia de Software é o estabelecimento e o emprego de 
sólidos princípios de engenharia de modo a obter software de 
maneira econômica, que seja confiável e funcione de forma 
eficiente em máquinas reais". 
Reflita
Essa definição fornece uma base que parece um tanto abstrata, não enfatizando 
aspectos mais técnicos, necessidades do cliente, prazo, métricas e processos. 
Para contornar esse problema, o Instituto de Engenheiros Eletricistas e Eletrônicos 
(IEEE) propôs definição mais objetiva ao dizer que: Engenharia de Software é: 
“(1) A aplicação de uma abordagem sistemática, disciplinada e quantificável no 
4
desenvolvimento, na operação e na manutenção de software; isto é, a aplicação de 
engenharia de software. (2) O estudo de abordagens como definido em (1)". 
Sendo assim, a engenharia de software consiste em uma tecnologia, subdividida em 
camadas fortemente alicerçada na noção de qualidade. A figura a seguir mostra o 
que se conhece como camadas da Engenharia de Software, mas também podem ser 
entendidas como princípios, que englobam técnicas de gerenciamento empregadas 
no desenvolvimento de softwares:
Camadas da Engenharia de Software
Fonte: Adaptado de Pressman (2006).
Segundo Medeiros (2013), a gestão da qualidade ajuda a promover uma cultura 
de aperfeiçoamento contínuo de processos, sendo esta a cultura que, no final das 
contas, sempre leva ao desenvolvimento de abordagens cada vez mais efetivas 
na engenharia de software. Portanto, podemos notar que a parte fundamental que 
sustenta a engenharia de software é o foco na qualidade, como mostrado na figura.
A camada de processos é a responsável por manter as camadas de tecnologia 
coesas, além de possibilitar o desenvolvimento de software de forma racional e 
dentro do prazo. O processo define uma metodologia que deve ser estabelecida 
para que possamos ter uma entrega efetiva. Além disso, o processo também é 
a base para o controle do gerenciamento de projetos de software, pois permite 
aplicar métodos técnicos, produzir diferentes produtos como modelos, documentos, 
mudanças etc., e por fim estabelece marcos, garantia da qualidade e gestão de 
mudanças da forma apropriada.
A camada de métodos é responsável por fornecer informações técnicas para 
desenvolver softwares e envolve diversas tarefas como a comunicação, a análise de 
requisitos, a modelagem de projeto, a construção de software, os testes e o suporte.
Portanto, as ferramentas são responsáveis por fornecer suporte automatizado ou 
semiautomatizado para o processo e os métodos. Quando as ferramentas são 
interligadas, de forma que informações criadas por uma ferramenta são usadas 
5
por outra, temos um sistema que suporta o desenvolvimento, também chamado de 
Engenharia de Software com o Auxílio do Computador ou Computer Aided Software 
Engeneering (CASE).
Ferramentas CASE são uma classificação que abrange todas as 
ferramentas baseadas em computadores que auxiliam atividades 
de engenharia de software, desde análise de requisitos e 
modelagem até programação e testes.
Atenção
Processos de Software
Booch, Jacobson & Rumbaugh (2006) definem um processo de software como: "é 
quem está fazendo o quê, quando e como para atingir um determinado objetivo". 
De forma geral, um processo é um conjunto de atividades (esforço para atingir um 
objetivo amplo como, por exemplo, comunicar-se com os interessados), ações 
(conjunto de tarefas que resultam num artefato de software como, por exemplo um 
modelo de projeto de arquitetura) e tarefas (objetivos pequenos e bem definidos 
como, por exemplo, realizar um teste unitário) realizadas na criação de um produto 
de software.
Organização de fases, tarefas e atividades no processo de desenvolvimento de software
Fonte: Elaborado pelo autor (2020).
6
De acordo com Medeiros (2013), cabe ressaltar que um processo não é algo 
rigidamente prescrito, pelo contrário, na engenharia de software o processo é uma 
abordagem adaptável que possibilita que a equipe de software selecione o trabalho 
a ser realizado e escolha um conjunto apropriado de ações e tarefas. O foco é 
sempre na entrega do software dentro do prazo e com qualidade suficiente para 
satisfazer aos clientes e àqueles que de fato usarão o sistema.
Um conceito bastante importante dentro de processo é o de metodologia ou 
framework, que é o responsável por estabelecer uma base para um processo 
completo, através de um pequeno número atividades estruturais aplicáveis a todos 
projetos de software, independente de tamanho ou complexidade.
Framework, ou arcabouço conceitual: é um conjunto de conceitos 
usado para resolver um problema de um domínio específico. 
Trata-se de uma estrutura conceitual básica que permite o 
manuseio homogêneo de diferentes objetos de negócio. Serve 
para incrementar a disciplina de gestão e predefinir entregáveis 
comuns para cada objeto de negócio.
Curiosidade
Metodologia Genérica de desenvolvimento
De acordo com Pressman (2006), uma metodologia de processo genérica possui 
cinco atividades:
Comunicação
Antes do início do projeto comunicamos e colaboramos com os clientes e 
todos os interessados para compreender os seus objetivos e fazermos o 
levantamento das necessidades que ajudarão a definirmos as funções e 
características do software a ser construído.
7
Planejamento
O planejamento é como um mapa que ajuda a guiar a equipe na jornada de 
construção do produto. No planejamento, define-se o trabalho de engenharia 
descrevendo suas tarefas técnicas, riscos, recursos necessários, produtos a 
serem construídos e um cronograma de trabalho.
Modelagem
Modelos são esboços de modo que possamos ter uma ideia melhor do todo. 
Caso necessários os modelos são mais detalhados a fim de compreender 
melhor o problema e como resolvê-lo.
Construção
Essa atividade é onde o software é construído. No entanto, atividades de 
testes também são realizadas nessa atividade com o intuito de revelar erros 
na codificação.
Emprego
O incremento do software ou o software completo é entregue ao cliente que 
avalia o produto e retorna feedbacks baseando-se na avaliação do produto.
Essas cinco atividades podem ser utilizadas para criação de software simples, 
pequenos ou grandes e complexos, podendo ser empregadas em diferentes para 
diferentes tipos de projetos.
Para a maioria dos projetos de software, poderemos ter essas cinco atividades 
aplicadas iterativamente quantas forem as iterações do projeto, sendo que cada 
iteração irá gerar um incremento de software. Ao final de cada incremento, teremos 
um software cada vez mais completo. Mas, o que é iteração?
Iteração é a repetição de uma ou mais ações e, no contexto do processo de 
Engenharia de Software, ocorre quando se retorna a uma de suas atividades.
Já incremento, segundo Bernardo (2017), entende-se como cada pedaço ou 
representa um subconjunto de funcionalidades completas de um software. O 
incremento pode ser pequeno ou grande, por exemplo,ele pode variar apenas de 
uma tela de relatórios simples, para um conjunto altamente flexível de telas de 
8
gerenciamento de dados. Cada incremento é totalmente codificado e testado, e a 
expectativa geral é que o trabalho tenha a conclusão mais completa possível.
Incremento
Fonte: Plataforma Deduca (2020).
Segundo Pressman (2006), as atividades acima também são complementadas por 
uma série de atividades de apoio, que são aplicadas ao longo de um projeto e ajuda 
a equipe no gerenciamento, controle de progresso, qualidade, mudanças e risco. As 
atividades de apoio são:
Controle e acompanhamento
Permite uma avaliação do progresso em relação ao plano do projeto e que 
sejam tomadas medidas necessárias para o cumprimento do cronograma 
proposto.
Administração de Riscos
Avalia os riscos que podem afetar o resultado ou a qualidade do produto ou 
do projeto.
Garantia da Qualidade 
Define e conduz as atividades que garantem a qualidade do software.
9
Revisões técnicas
Avaliam-se artefatos para identificar e eliminar erros antes que sejam 
propagadas para a atividade seguinte.
Medição
Define e coleta medidas do processo, projeto e do produto que auxiliarão na 
entrega do software de acordo com os requisitos.
Gerenciamento da configuração de software 
Gerenciar os efeitos das mudanças.
Gerenciamento da reusabilidade 
Define quais serão os critérios para reuso e estabelece mecanismos para 
obtenção de componentes reutilizáveis.
Preparo e produção de artefatos de software 
Engloba atividades para criar artefatos como modelos, documentos, logs, 
formulários etc.
Medeiros (2013) reforça que não podemos esquecer que os projetos devem 
ser ágeis e adaptáveis. Dessa forma, não precisamos de todas as atividades 
acima. O uso ou o não uso de determinada atividade será feita de acordo com as 
necessidades de um projeto.
Segundo Soares (2004), muitas organizações desenvolvem software sem usar 
nenhum processo. Geralmente isso ocorre porque os processos tradicionais não 
são adequados às realidades das organizações. Em particular, pequenas e médias 
organizações não possuem recursos suficientes para adotar o uso de processos 
onerosos e, por isso, optam por não utilizar nenhum processo. 
10
O resultado da falta de sistematização na produção de software é 
a baixa qualidade do produto final, além da dificuldade de entrega 
do produto nos prazos e custos pré-definidos, podendo inviabilizar 
a futura evolução do software. 
Atenção
Existem vários processos de software definidos na literatura da Engenharia de 
Software. É comum mesmo algumas organizações criarem seu próprio processo 
ou adaptar algum processo à sua realidade. Dentre os vários processos existentes, 
existem as metodologias tradicionais, que são orientadas a documentação, e 
as metodologias ágeis, que procuram desenvolver softwares com o mínimo de 
documentação.
Fechamento
Iniciamos nosso estudo sobre Engenharia de Software destacando diferenças entre 
algumas definições relacionadas à essa importante área da Ciência da Computação 
e ressaltamos, como fator comum, a existência de camadas de desenvolvimento 
que envolvem processos, métodos e ferramentas, com foco na qualidade do 
produto desenvolvido.
Depois, destacamos que diferentes metodologias de desenvolvimento empregam, 
de certa forma, atividades que envolvem comunicação, planejamento, modelagem, 
construção e emprego, delimitando assim as principais fases do ciclo de vida de um 
produto de software.
Por fim, detalhamos algumas atividades de apoio, que tem impacto direto na 
qualidade do produto desenvolvido, e envolvem controle e acompanhamento, 
administração de riscos, gestão de qualidade, revisões técnicas, mediação, 
gerenciamento de configuração e reusabilidade, além do preparo e produção de 
artefatos de software. 
11
Referências
BERNARDO, K. Iterativo e Incremental: suas definições. In: Cultura Ágil. 11 jan. 
2017. Disponível em: https://www.culturaagil.com.br/iterativo-e-incremental-suas-
definicoes. Acesso em: 16 jul. 2020.
BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML: guia do usuário. Rio de Janeiro: 
Elsevier, 2006. 474 p.
MEDEIROS, Higor. Princípios da Engenharia de Software. In: DevMedia. 2013. 
Disponível em: http://www.devmedia.com.br/principios-da-engenharia-de-
software/29630. Acesso em: 16 jul. 2020
PRESSMAN, R. S. Engenharia de Software. 6. ed. Rio de Janeiro: McGraw-Hill, 2006, 
720 p.
SOARES, M. dos S. Comparação entre Metodologias Ágeis e Tradicionais para o 
Desenvolvimento de Software. Lavras: Infocomp, 2004. Disponível em: www.dcc.
ufla.br/infocomp/index.php/INFOCOMP/article/view/68/53. Acesso em: 16 jul. 2020

Mais conteúdos dessa disciplina