Buscar

Resumo Engenharia de Software P1 e P2

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

Prévia do material em texto

Atributos essenciais de um bom software: 
1) Facilidade de Manutenção: O software deve ser escrito de modo que possua evoluir para 
que possa atender a as necessidades de mudança dos clientes, além disso é um atributo 
fundamental para um ambiente de negócios que sofre constante mutação (Mudanças no 
cenário do software). 
2) Usabilidade: Condiz que que o software seja usável ou seja, ele deve atender as 
necessidades do usuário para aquilo que foi projetado, ele deve apresentar uma interface com 
o usuário e documentação adequada. 
3) Eficiência: O software deve cumprir com aquilo que foi projeto, deve ser eficaz em seu 
serviço, sem demonstrar falhas, além de evitar desperdício de recursos do sistemas, tornando-
o eficiente em tempo de resposta. 
4) Confiança: Condiz com confiabilidade, proteção e segurança, ou seja um software não deve 
causar danos físicos e econômicos caso haja falha no sistema. 
Desafios Para Engenharia de Software 
1) Heterogeneidade: Condiz com a adaptação do software para diferentes plataformas e 
sistemas antigos, para que o software seja confiável e flexível. 
2) Entrega: Condizer com datas programadas, ou diminuir tempo de entrega mantendo a 
qualidade do software, além disso o software de apoio deve acompanhar a velocidade de 
mudança. 
3) Confiança: Condiz com desenvolver técnicas que demonstrem que o software pode ter 
confiança dos seus usuários, devido a ele estar presente em todos aspectos da nossa vida. 
Curvas de Falhas: é o índice de falhas ocorridas no software devido a mudanças, a engenharia 
de software busca controlar a curva de falhas, adaptando a mudanças sem que ocorram 
muitas falhas, através de análises de risco. 
Processo: é um conjunto passos parcialmente ordenados, constituídos por atividades, 
métodos, práticas, e transformações, usado pra atingir uma meta. 
Artefato: é tudo aquilo que você obtém de resultado após o término de uma atividade, um 
artefato pode ser um diagrama, modelo, documento, ou código produzido, requisito, o mesmo 
pode ser utilizado ou atualizado por uma atividade. 
Liberação (Deliverable): São artefatos entregáveis aos clientes, exemplo: um software, 
documentação, cronograma de atividades 
Marcos (Milestone): São marcos dentro do projeto, são pontos de controle que demarcam 
uma finalização de atividade, são pontos que acontecem dentro do processo de software. 
Stakeholder: São as partes interessadas no software, exemplo: Gerente de projetos, 
desenvolvedor, clientes. 
Métodos de Engenharia de Software: é uma abordagem estruturada para o desenvolvimento 
de software, com objetivo de facilitar a produção de software de alta qualidade dentro de 
custos adequados. 
 
Componentes de Métodos de Engenharia de Software: 
 Descrição de modelos de sistema: Descreve diversos modelos com diferentes 
objetivos de software 
 Regras: São regras que vão ser aplicadas aos modelos de software, por 
exemplo cada entidade deve possuir somente um nome. 
 Recomendações: Recomendações que devem ser seguidas por todos os 
membros da equipe, são padrões, exemplo: nenhum objeto deve possuir mais 
que sete sub objetos 
 Guias de Processo: é o caminho que o processo deve seguir até o fim do 
processo, documentando cada alteração. 
Atividades que ocorrem durante o desenvolvimento de software: 
 Especificação 
 Desenvolvimento 
 Validação 
 Evolução 
Requisito: é uma necessidade única que detalhe um produto ou serviço em particular deve ser 
ou fazer. 
Viabilidade: decide se o sistema proposto vale a pena, se o sistema contribui para os objetivos 
da organização, se pode ser implementado com a tecnologia atual e dentro do orçamento, 
além disso se o sistema pode ser integrado com outros sistemas em operação. 
Arcabouço de software: é o esqueleto de um processo de software completo, são diversas 
atividades que compões o arcabouço, são elas: 
 Comunicação: levantamento de requisitos com a colaboração do cliente 
 Planejamento: descreve as tarefas, riscos, os recursos, os produtos e um 
cronograma 
 Modelagem: criação e modelos que permitam ao desenvolvedor entender 
melhor o projeto e seus requisitos. 
 Construção: geração de códigos e testes 
 Implantação: entrega do software ao cliente 
Atividades Guarda-Chuva: São aquelas que cobrem todo o processo de desenvolvimento de 
software e dão suporte a gestão de qualidade, já que focam, gestão, o monitoramento e o 
controle do projeto. Também estão contido no arcabouço de processo de software. Exemplos: 
 Gestão do projeto: visa controlar o escopo, custo e tempo 
 Gestão de configuração: estabelecer e manter a integridade dos produtos de 
trabalho 
 Gestão de qualidade de software: garantir que o software atenda aos atributos 
de qualidades identificados 
Ferramentas Case: São ferramentas computacionais que auxiliam a engenharia de software 
desde a análise de requisitos até a modelagem até programação e testes. Exemplos 
 Editores de projeto, dicionários de dados, compiladores, depuradores, 
ferramentas de construção de sistemas. 
Objetivos de processo de software: Alta qualidade e baixo custo. 
Atividades básicas de um projeto de software: 
 Especificação de requisitos: tradução da necessidade ou requisito 
operacional para um descrição da funcionalidade a ser executada 
 Projeto de Sistema: tradução dos requisitos em uma descrição de 
todos os componentes necessários para codificar o sistema. 
 Programação: produção do código que controla o sistema e realiza 
computação lógica envolvido. 
 Verificação e Integração: verificação da satisfação dos requisitos 
iniciais pelo produto produzido. 
Modelos de processos de software: é uma representação abstrata de um processo de 
software, onde cada modelo representa um processo a partir de uma perspectiva particular. 
Modelo de ciclo de vida = Modelo de processo 
Desvantagens de não utilizar um modelo de processo 
 Falta de visibilidade do processo 
 Produtividade subestimada 
 Gerenciamento falho, sem foco 
 Comunicação em segundo plano, equipe desorientada 
Ciclo de Vida de um processo de software: é o conjunto de transformações que um software 
sofre desde o planejamento até a implementação. 
Modelos de Processos De Software: 
 Codifica Remenda: Especificação abstrata ou inexiste 
- Totalmente desorganizado 
- Depende do heroísmo da equipe 
- Não fornece visibilidade que possibilite ao gerente assumir compromissos 
confiáveis 
- Qualidade do produto = Qualidade do processo 
 Cascata: Necessita de todos os requisitos para dar andamento ao processo, sua 
principal característica é a fácil gerência e planejamento, além disso a sequência de 
atividades onde cada fase transcorre completamente e seus produtos são vistos como 
entrada para uma nova fase. 
- Desvantagens: 
 - Dificuldade de acomodar mudanças durante o processo. 
 - Produto somente será entregue após o fim de todos ciclos 
 - Dificuldade de capturar todos requisitos de uma vez 
 - Programadores frequentemente atrasados sem necessidade 
 Evolucionário: Produzir uma implementação inicial, mostrar ao cliente, e aprimorar 
suas versões através de protótipos até que tenha sido desenvolvido. Especificação, 
desenvolvimento e validação ocorrem simultaneamente para um retorno rápido. 
- Desvantagens: 
 - Processo não visível: desenvolvido rapidamente, difícil e gerenciar, 
além de não ter uma visão final do software, além do tamanho variável de 
incrementos. 
 - Mal estruturado: mudanças podem corromper a estrutura do 
software, manutenção e evolução fica comprometida. 
 - Requer ferramentas e técnicas especiais 
 Incremental: Melhora pouco-a-pouco, ou seja, o andamento (incrementar a etapa)do 
sistema só se dá se os requisito forem satisfeitos, senão eles devem rever suas 
decisões e partir para uma nova abordagem. 
 Iterativo Incremental: Aumentar pouco-a-pouco, cada fase é incrementada por partes 
ou seja, cada fase do sistema é criada de forma iterativa, onde os requisitos são 
separados e a partir daí ele começa de uma base vai melhorando a pouco a pouco até 
chegar em um modelo final. 
Vantagens: 
 - Redução dos riscos envolvendo custos com um único incremento 
 - Redução do risco de lançar o projeto no mercado fora da data 
planejada 
 - Aceleração do tempo de desenvolvimento do projeto 
 - Facilita a adaptação a mudança de requisitos 
 Espiral: Projeto é tratado como uma série de pequenos ciclos, onde cada ciclo produz 
um executável, onde a cada ciclo também é executada uma análise de riscos 
Vantagens: 
 - Obtenção de versões mais completas através de cada iteração 
 - Utilização de prototipagem para redução de riscos 
 - Refinamento de versões, refletindo realismo no processo de 
desenvolvimento. 
 Desvantagens: 
 - Dificuldade de fechar contrato 
 - Modelo novo e não tem sido amplamente usado 
 - Complexo e requer experiência na avaliação de riscos 
 
 Processo Baseado em Reuso: Condiz em reutilizar partes do projeto através de 
integrações que podem ser adaptadas, utilizando de análise de componentes, 
modificações de requisitos. 
Vantagens: 
 - Reduz a quantidade de software a ser desenvolvido 
 - Diminui Custos e Riscos 
 - Acelera a entrega do software 
Desvantagens: 
 - Requisitos se perdem durante a adaptação 
 - Pode se perder o controle da versão dos componentes utilizados no 
sistema. 
Gerenciamento de projetos: Garantir entrega no tempo certo (dentro do prazo do 
cronograma) e de acordo com os requisitos, é necessário para manter as restrições de 
orçamentos e cronograma. 
 Atividades de Gerenciamento: 
 Elaboração de proposta 
 Planejamento e desenvolvimento do cronograma do projeto 
 Estimativa de custo do projeto 
 Monitorações e revisões do projeto 
 Seleção e avaliação de pessoal 
 Elaboração de relatório e apresentações 
Gerenciamento de Riscos: está relacionado à identificação de riscos e à elaboração de planos 
para minimizar esses efeitos em um projeto. 
 Riscos No Projeto 
 Afetam cronograma ou recursos 
 Afetam qualidade ou desempenho do software 
 Afetam a organização que desenvolve ou adquire o software 
Tratamento de Riscos 
 Identificação de riscos: levanta os riscos de projeto, produto ou negócio 
 Análise de riscos: Avalia a probabilidade e as consequências do risco 
 Planejamento de riscos: Elabora planos para evitar ou minimizar efeitos dos 
riscos 
 Monitoramento de riscos: monitora os riscos ao longo do projeto

Continue navegando