0% acharam este documento útil (0 voto)
38 visualizações7 páginas

Impacto das Mudanças na Engenharia de Software

O documento aborda o impacto das mudanças no desenvolvimento de software, destacando os custos associados a defeitos em diferentes fases, como desenho, implementação, testes e manutenção. Também explora a engenharia de software, suas preocupações, metas, camadas e modelos de processo, como o modelo cascata, prototipação e espiral, além de discutir novas abordagens e o método RUP. O objetivo é melhorar a qualidade, produtividade e satisfação do cliente no desenvolvimento de software.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
38 visualizações7 páginas

Impacto das Mudanças na Engenharia de Software

O documento aborda o impacto das mudanças no desenvolvimento de software, destacando os custos associados a defeitos em diferentes fases, como desenho, implementação, testes e manutenção. Também explora a engenharia de software, suas preocupações, metas, camadas e modelos de processo, como o modelo cascata, prototipação e espiral, além de discutir novas abordagens e o método RUP. O objetivo é melhorar a qualidade, produtividade e satisfação do cliente no desenvolvimento de software.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd

IMPACTO DAS MUDANÇAS NO DESENVOLVIMENTO DE SOFTWARE

De acordo com um relatório gráfico da IBM em 2015. Ele demostra o custo que o
software sofre após perceber uma defeito em cada estágio, dados esses estágios A
FASE DO DESENHO, IMPLEMENTAÇÃO, TESTES e a MANUTENÇÃO

A fase de desenho (concepção) 1%↑

Implementação(construçã/codificação) 6,5%↑

Teste(homologação) 15%↑

Manutenção (entrega) 100%↑


Depois que o software já está rodando em um sistema produtivo, ele tem um custo de
100% as vezes esse custo e impacto pode ser ainda maior, ex: um sistema ecommerce
sai fora do ar o impacto é ainda maior, imagina o tanto de dinheiro que a empresa
irá perder com as pessoas migrando para a outra plataforma.

MAS AFINAL, O QUE É ENGENHARIA DE SOFTWARE?

Engenharia de software é a aplicação de uma


abordagem sistemática, disciplinada e quantificável no desenvolvimento, na operação
e na manutenção de software; isto é, a aplicação de engenharia ao software.

" Ou seja durando o desenvolvimento, nós podemos saber se a qualidade, o custo e o


prazo se ele está respeitando ao estimado determinado no início do projeto. "
Enfim a engenharia de software, ela não só se concentra na criação, ela vai até a
manutenção.

PREOCUPAÇÕES DA ENGENHARIA DE SOFTWARE?

Sistematizar o processo de criação e manutenção de software.

PRINCIPAIS METAS DA ENGENHARIA DE SOFTWARE!

1- melhora a qualidade de produtos e software


2-aumentar a produtividade do pessoal técnico
3-aumentar a satisfação dos clientes

Sende esses os principais problemas!

CAMADAS DA ENGENHARIA DE SOFTWARE

Existem 4 camadas da engenharia de software

1-FOCO NA QUALIDADE
Esta camada é a base de todas as outras e foca na garantia da qualidade do
software. Inclui práticas e padrões para assegurar que o produto final atenda aos
requisitos e seja confiável.

2-PROCESSOS
Envolve a definição e gestão dos processos de desenvolvimento de software. Isso
inclui metodologias como Agile, Scrum e Waterfall, que ajudam a organizar e
controlar as etapas do desenvolvimento.

3-METODOS
Refere-se às técnicas e abordagens utilizadas para o design, implementação e teste
do software. Exemplos incluem programação orientada a objetos, design de algoritmos
e técnicas de teste de software.
Proporciona os detalhes de como vai ser a construção do software.

Alguns Métodos:
• Planejamento e estimativa ao projeto.
• Análise de requisitos de sistema e de software.
• Projeto de estrutura de dados
• Algoritimo de processamento
• Codificação
• Teste
• Manutenção

Refere-se às técnicas e abordagens utilizadas para o design, implementação e teste


do software. Exemplos incluem programação orientada a objetos, design de algoritmos
e técnicas de teste de software.

4- FERRAMENTAS
Esta camada abrange as ferramentas e ambientes de desenvolvimento que suportam os
processos e métodos. Exemplos incluem IDEs (Ambientes de Desenvolvimento
Integrado), sistemas de controle de versão e ferramentas de automação de testes
Elas dá suporte automatizado ao métodos
ex:
Eclipse e outros IDE's (Codificação)
Sonar Code (Qualidade De Código)
Selenium (Testes)

MODELOS DE PROCESSO DE ENGENHARIA DE SOFTWARE

O QUE SÃO OS MODELOS DE PROCESSO DE


ENGENHARIA DE SOFTWARE?

Quando se trabalha na elaboração de um produto ou sistema, é importante seguir uma


serie de passos previsíveis. Um roteiro que nos ajude a criar um resultado de alta
qualidade e dentro do prazo estabelecido. Esse Modelo é denomido de "Processo de
software". Os modelos são deferente roteiros para o desenvolvimento de software. Ou
seja um Modelo são roteiros que determinam passos a serem seguidos ex: roteiros
seria os passo(tópicos)de um modelo. O modelo seria etapas(manutenção)

QUAL MODELO USAR?


O modelo deve ser escolhido de acordo com:
• Natureza do projeto e do produto
•○ Métodos e ferramentas utilizados
• Controles e Produtos intermediários
desejados

Ou seja, com base na análise desses critérios, será definido qual modelo será ideal
para desenvolver o software específico.

TIPOS DE MODELOS

• MODELO CASCATA(clássico)*mais ultilizado

• MODELO PROTÓTIPAÇÃO

• MODELO ESPIRAL
MODELO CASCATA:
Quando um projeto, tem requisitos que já são bem conhecidas e se tem uma previsão
de poucas mudanças ao longo do desenvolvimento esse modelo é o mais recomendado.
Esse modelo é baseado em etapas que a cada etapas concluídas, geram entradas para a
próxima etapa.

Existe 4 fluxo de processo ou maneira de uso do modelo cascata são eles:

•FLUXO PROCESSO LINEAR


Executa o modelo em modo de sequência

•FLUXO DE PROCESSO INTERATIVO


Repete uma ou mais das atividades antes de prosseguir para a seguinte, exemplo um
processo na modelagem pode se repetir dentro dela mesmo.

•FLUXO DE PROCESSO PARALELO


Executa uma ou mais atividades em paralelo com outras atividades. Ex: a comunicação
e planejamento trabalham juntas e se ligam diretamente com a modelagem

•FLUXO DE PROCESSO EVOLUCIONÁRIO


Executa as atividades de uma forma “circular”. Cada volta pelas cinco atividades
conduz a uma versão mais completa do software. Ao chegar na entrega, é apresentado
o projeto a comunicação, para ver se era realmente aquilo que era esperado, caso
contrário se entra novamente produção.

VANTAGENS: São muito bons para desenvolvimento que não terá muitas manutenções.
DESVANTAGES: não é um modelo muito flexível a mudanças, é um modelo que precisa das
etapas anteriores para poder partir para a próxima etapa.

O modelo cascata possuí 5 etapas são elas:


• COMUNICAÇÃO/ANÁLISE:
Levamento de sistemas, levamentos de necessidades do cliente, são feitos
questionários, entrevistas com cliente
• PLANEJAMENTO:
Estimativas, cronogramas,meios de acompanhamento do projeto, decisões se deve ou
não continuar com o projeto
• MODELAGEM:
Os requisitos definidos na fase de comunicação de maneira geral, são detalhados
nessa fase. É nessa fase também que é ultilizado a linguagem UML. Então o software
é desenhado, as funcionalidades, funções, integrações,base de dados.
• CONSTRUÇÃO:
As instruções são codificadas em linguagem de programação, testes são feitos
• EMPREGO/MANUTENÇÃO:
O software é entregue e é oferecido suporte para eventuais melhorias ou consertos

*Geralmente no modelo cascata tem uma fase, onde o cliente é homologado, ele
análisa e ver se ele concorda se era aquilo que ele esperava, o modelo cascata
também é necessário ter todo os requisitos logo no início do projeto.

PROTOTIPAÇÃO:
O modelo de desenvolvimento de software por prototipação é uma abordagem que se
concentra na criação de protótipos, ou seja, versões iniciais e simplificadas do
software, antes de construir a versão final. Este método é especialmente útil
quando os requisitos do projeto não são completamente conhecidos ou estão sujeitos
a mudanças frequentes

Quando você se tem alguma ou várias duvidas, sobre os requisitos do software e se


aquela idéia que surgiu do cliente, atende a necessidade dele
VANTAGENS:
rápidas validações de idéias, quando uma idéia não está muito clara.
Feedback Contínuo: Permite a coleta de feedback constante dos usuários, melhorando
a qualidade do produto final.
Redução de Riscos: Identifica problemas e limitações cedo no processo de
desenvolvimento.
Melhor Entendimento dos Requisitos: Ajuda a esclarecer e refinar os requisitos do
sistema.

DESVANTAGENS:
muitas das vezes os clientes entendem que aquele prototipo, é o projeto final, ou a
equipe de desenvolvimente usa daquele prototipo como sistema final.

existe 4 tipos de prototipos:

PROTÓTIPOS DE DESCARTE RÁPIDO: Desenvolvidos rapidamente para mostrar a aparência


visual do requisito.

PROTÓTIPO EVOLUTIVO: Continuamente refinado com base no feedback do usuário.

PROTÓTIPO INCREMENTAL: Desenvolvido em partes, cada uma adicionando funcionalidades


ao protótipo anterior.

PROTÓTIPO EXTREMO: Utilizado em situações de alta incerteza, onde os requisitos são


altamente voláteis

Fases Do Modelo De Prototipação:


• PROJETO RÁPIDO
• MODELAGEM PROJETO RÁPIDO
• CONSTRUÇÃO DE UM PROTÓTIPO
• EMPREGO/ENTREGA E REALIMENTAÇÃO
• COMUNICAÇÃO

Nessa fase é cominicado aos clientes e usúarios finais, se aquilo atende as


necessidades deles ou não

*Geralamente o modelo de prototipação, também é usado junto com o modelo cascata


para assim se ter um projeto com menos defeitos e uma boa qualidade.

MODELO ESPIRAL:
Foi inspirado no modelo cascata e protótipo, onde ele começa com a versão resumida
do software e com base no feedback de usuário é implantado aquela nova
funcionalidade ao projeto principal.

VANTAGENS:
É um modelo muito flexível a mudanças.
Feedback contínuo: Permite o desenvolvimento de protótipos funcionais em cada
ciclo, garantindo que o software atenda às necessidades dos usuários.

DESVANTAGES:
Tem menos previsibilidade, começando com uma pequena versão, porém não tendo uma
previsão final
FASES DO ESPIRAL:
COMUNICAÇÃO
PLANEJAMENTO
MODELAGEM
CONSTRUÇÃO
EMPREGA

MODELO DE DESNVOLVIMENTO BASEADO EM COMPONENTES:


• Os modelo de desenvolvimento baseado em componentes, desenvolve aplicações a
partir de componentes de software pré-empacotados.

O modelo de desenvolvimento baseado em componentes conduz ao:

VANTAGENS
• reúso do software para outros projetos semelhante, produtividade,
• aumento da qualidade, pois os mesmo já foram testados.
• produtividade a equipe de engenharia de software, pode conseguir uma redução de
tempo do ciclo de desenvolvimento e custo do projeto.

DESVANTAGEM
• complexidade na integração do projeto, pois o mesmo componente pode exigir muitos
esforços para garantir a compatibilidade.
• custo inicial pode ser elevando.
• A segurança que os componentes de terceiros fornece, pode ser fraca, trazendo
vulnerabilidade ao projeto.
• depedencia de terceiros pode impactar nas atualizações futuras do projeto, caso
esses componentes não mantiver atualizados.
• O desempenho de terceiros pode não ser tão otimizado quanto as soluções
desenvolvidas especificamente para aquele projeto.

*exemplo de componentes já existentes: SAP: gerenciamento de operações financeiras,


RH, compras, produção e logística.

NOVAS ABORDAGENS:
Com o tempo surgiram novas abordagens, com o intuito de deixar os clientes mais
próximos ao projetos e minimizar ainda mais o tempo de desenvolvimento, e que sejam
ainda mais flexivéis as mudanças, trazendo assim mais sastifação ao cliente e a
qualidade final do produto.

O MODELO DE PROCESSO INCREMENTAL:


é uma abordagem de desenvolvimento de software que divide o projeto em partes
menores e gerenciavéis, chamadas de incrementos. cada incremento é desenvolvido,
testado e entregue de forma indepedente, mas todas se intergram para formar o
sistema completo. ou seja é um modelo cascata, porém com vários modelos, onde cada
modelo é um incremento para a projeto final ex: incremento1 deshboard, incremento2
autenticação

CARACTERISTICAS:
• DESENVOLVIMENTO EM ETAPAS:
O projeto é desenvolvido em etapas menores cada um sendo preparado em sequencia
linear, semelhante ao modelo cascata.

• ENTREGA CONTÍNUA:
Cada incremento resulta em um produto funcional e operacional, mesmo que seja uma
parte do sistema completo.

• FEEDBACK RÁPIDO:
Permite a obteção de feeedback do usuárioa após cada incremento, facilitando
ajustes e melhorias contínuas.

ETAPAS:
• COMUNICAÇÃO
• PLANEJAMENTO
• MODELAGEM(análise, projeto)
• CONSTRUÇÃO(codificação, testes)
• EMPREGO(entrega, realimentação ou feedback)

VANTAGENS:
• Incrementos podem ser entregues regulamente ao cliente e, desse modo, a
funcionalidade do sistema é disponibilizada mais cedo.
• Os incrementos inicias agem como protótipos para esclarecer os requisitos para
incrementos posteriores do sistema.
• Menor risco a falha geral do sistema.
• Os serviços de sistemas de mais alta prioridade tendem a receber mais testes.

DESVANTAGENS:
• Planejamento: requer um planejameto detalhado inicial, para definir os
incrementos e suas dependências
• Complexidade: A integrção de múltiplos incrementos pode ser complexa e exigir um
esforço significativo.
• Custo: pode ser mais caro que os modelos tradicionais, como o modelo cascata por
exemplo, devido à necessidade de testes e integrações contínuas

MÉTODO RUP
O RUP é uma abordagem iterativa e incremental, centrada na arquitetura e guiada pos
casos de uso, com o objetivo de garatir a produção de software de alta qualidade
dentro do prazo estimado e orçamentos previsíveis.

FASES:
• Concepção: estabelecer o domínio de negócio para o sistema
• Elaboração: desenvolver um entendimentodo do domínio do problema e a arquitetura
do sistema.
• Construção: projeto, programação e teste de sistemas
• Transição: implementar o sistema no seu ambiente operacional.

ATIVIDADE
• modelagem de negócio
• requisitos
• análise de design
• implementação
• teste
• implantção
• geren. de config. e mudanças
• gerenciamento de projeto
• ambiente

métodologia de aplicação: enquanto uma equipe de análise de design finalizou o


trabalhando do incremento 1 na fase de elaboração, ela já pode trabalhar no
incremento 2 e mandar o incremento 1 para a fase de construção, onde a equipe de
implementação irá dar inicío a construção do incremento 1.

*O RUP ele é muito baseado em documentações, o que vai na contra mão de um dos
valores do manifesto ágil, onde diz que um software em funcionamento é mais que uma
documentação abrangente.

VANTAGENS:
• Flexibilidade: Adapta-se a diferentes tipos de projetos e tamanhos de equipes.
• Qualidade: Enfatiza a produção de software de alta qualidade através de práticas
bem definidas.
• Gerenciamento de Riscos: Identifica e mitiga riscos desde o início do projeto.
• Documentação: Fornece uma documentação detalhada e estruturada, facilitando a
manutenção e evolução do sistema
DESVANTAGENS:
• Complexidade: Pode ser complexo e exigir um esforço significativo para ser
implementado corretamente.
• Custo: Pode ser mais caro devido à necessidade de treinamento e ferramentas
específicas.
• Tempo: A abordagem iterativa pode levar mais tempo para entregar um produto final
comparado a metodologias mais simples.

CONTINUA!!!!

Você também pode gostar