Engenharia de Software I Introdução à engenharia de software

June 9, 2018 | Author: Kauaid Souza | Category: Documents


Comments



Description

Engenharia de Software I Introdução à engenharia de software

Objetivo

Proporcionar ao estudante conceitos fundamentais de se aprofundar em todos os conceitos, métodos e processo de engenharia de software, incluindo especificação, projeto, desenvolvimento, verificação, validação e gerenciamento de projetos de software

Objetivos Específicos Compreender o contexto e as características específicas da atividade de desenvolvimento de software; Ser capaz de descrever os métodos, processos e ferramentas associados à área de Engenharia de Software; Conhecer e utilizar técnicas de trabalho em grupo, especificamente para desenvolvimento de softwares; Despertar o interesse para aspectos de gerencia de projetos de software, tais como gestão de riscos e controle de qualidade; Saber identificar os princípios da ética profissional do engenheiro de software.

Ementa

Crise do software, conceito objetivo e áreas da engenharia de software; Histórico da engenharia de software, ciclo de vida, metodologias, processos e ferramentas de engenharia de software; Noções de gestão de projetos de desenvolvimento de software; Processo de especificação, análise e documentação de requisitos de software.

Conteúdo Programático Introdução à Engenharia de Software Principais conceitos relacionados ao software; A crise do software: problemas e causas; Mitos do software; Conceitos em Engenharia de Software. Evolução da Engenharia de Software Processos de software Modelos de processo de software; Iteração de Processo Atividades de processo

O Rational Unified Process Maturidade de Processo (CMMI e Mps.Br) Gerenciamento de projetos Atividades de gerenciamento; Planejamento de projeto Cronograma do projeto Gerenciamento de riscos Estimativas de Custos Desenvolvimento Ágil de Software Métodos Ágeis Desenvolvimento Ágil e Dirigido a Planos

Extreme Programming Gerenciamento Ágil de Processo Escalamento de Processos Ágeis Requisitos de software Classificação de requisitos; Especificação de Requisitos Processo de Engenharia de Requisitos Elicitação e Análise de Requisitos Validação de Requisitos Gerenciamento de Requisitos Documentação de Requisitos

Prof. Esp. Cícero Samuel Clemente Rodrigues

4

Avaliação Avaliação 1n – nota referente a trabalhos e atividade das fábricas 2n – nota referente a aplicação de prova Cálculo NotaX = (n1*3 + n2*7)/10 Média = (Nota1 + Nota2)/2

Prof. Esp. Cícero Samuel Clemente Rodrigues

5

Bibliografia SOMMERVILLE, Ian. Engenharia de Software. 8 Ed. São Paulo: Pearson, 2007. PRESSMAN, Roger S. Engenharia de Software. 6 Ed. São Paulo: McGraw-Hill, 2006. PAULA FILHO, Wilson de Pádua. Engenharia de Software: Fundamentos, Métodos e Padrões. Rio de Janeiro: LTC, 2003. PFLEEGER, Shari Lawrence. Engenharia de Software: Teoria e Prática. 2 Ed. São Paulo: Pearson, 2004.

http://homepages.cs.ncl.ac.uk/brian.randell/NATO/index.html

4

Origem em 1968, especialistas se reúnem em Garmisch, para discutir problemas de desenvolvimento de software

Problemas “da época” Produtos de Software de baixa qualidade sem atender requisitos esperados Projetos realizados acima do orçamento e do tempo previsto e ingerenciáveis

Crise do Software A crise do software foi um termo utilizado nos anos 70, quando a engenharia de software era praticamente inexistente. O termo expressava as dificuldades do desenvolvimento de software frente ao rápido crescimento da demanda por software, da complexidade dos problemas a serem resolvidos e da inexistência de técnicas estabelecidas para o desenvolvimento de sistemas que funcionassem adequadamente ou pudessem ser validados.

7

“Muitas causas de problemas relacionados ao desenvolvimento de software são provenientes de mitos que surgiram durante a história inicial dessa atividade.” ”

-Roger Pressman

Mitos de Software

Diferente dos antigos mitos, que são interessantes histórias e freqüentemente fornecem lições humanas merecedoras de atenção, os mitos de software propagam desinformação e confusão

Mitos de Gerenciamento Mito 1. "Se a equipe dispõe de um manual repleto de padrões e procedimentos de desenvolvimento de software, então a equipe será capaz de conduzir bem o desenvolvimento." Realidade 1. Isso não é o suficiente! É preciso que a equipe aplique efetivamente os conhecimentos apresentados no manual. É necessário que o manual reflita a moderna prática de desenvolvimento de software e que este seja exaustivo com relação a todos os problemas de desenvolvimento que poderão aparecer no percurso.

Mitos de Gerenciamento Mito 2. "A equipe tem ferramentas de desenvolvimento de software de última geração, uma vez que eles dispõem de computadores modernos." Realidade 2. Ter à sua disposição o último modelo de computador pode ser bastante confortável para o desenvolvedor do software, mas não oferece nenhuma garantia quanto à qualidade do produto desenvolvido. Mais importante do que ter um hardware de última geração é ter ferramentas para a automação do desenvolvimento de software e sabê-las utilizar adequadamente.

Mitos de Gerenciamento

Mito 3. "Se o desenvolvimento do software estiver atrasado, aumentando a equipe poderemos reduzir o tempo de desenvolvimento." Realidade 3. Acrescentar pessoas em um projeto atrasado provavelmente vai atrasá-lo ainda mais. De fato, a introdução de novos profissionais numa equipe em fase de condução de um projeto vai requerer uma etapa de treinamento dos novos elementos da equipe; para isto, serão utilizados elementos que estão envolvidos diretamente no desenvolvimento, o que vai, conseqüentemente, implicar em maiores atrasos no cronograma.

Mitos do Cliente

Mito 4. "Uma descrição breve e geral dos requisitos do software é o suficiente para iniciar o seu projeto. Maiores detalhes podem ser definidos posteriormente." Realidade 4. Este é um dos problemas que podem conduzir um projeto ao fracasso, o cliente deve procurar definir o mais precisamente possível todos os requisitos importantes para o software: funções, desempenho, interfaces, restrições de projeto e critérios de validação são alguns dos pontos determinantes do sucesso de um projeto. O “deixar pra depois” pode simplesmente não acontecer, a não ser em casos previstos pelos processos ágeis em que os clientes estão sempre presente e dentro da organização desenvolvedora. No entanto, é sabido que essa prática é uma das mais difíceis de serem seguidas...

Mitos do Cliente Mito 5. "Os requisitos de projeto mudam continuamente durante o seu desenvolvimento, mas isto não representa um problema, uma vez que o software é flexível e poderá suportar facilmente as alterações." Realidade 5. É verdade que o software é flexível (pelo menos mais flexível do que a maioria dos produtos manufaturados). Entretanto, não existe software, por mais flexível que suporte alterações de requisitos significativas sem um adicional em relação ao custo de desenvolvimento.

Mitos do Cliente

O fator de multiplicação nos custos de desenvolvimento do software devido a alterações nos requisitos cresce em função do estágio de evolução do projeto, como mostra a Figura.

Mitos do Profissional

Mito 6. "Após a finalização do programa e a sua implantação, o trabalho está terminado." Realidade 6. O que ocorre na realidade é completamente diferente disto. Segundo dados obtidos a partir de experiências anteriores, ilustrados no livro de Roger Pressman, 50 a 70% do esforço de desenvolvimento de um software é empregado após a sua entrega ao cliente (manutenção).

Mitos do Profissional

Mito 7. "Enquanto o programa não entrar em funcionamento, é impossível avaliar a sua qualidade." Realidade 7. Na realidade, a preocupação com a garantia do da qualidade do software deve fazer parte de todas as etapas do desenvolvimento. O teste, por exemplo, pode iniciar antes do produto atingir um estado funcional, a partir do planejamento dos casos de teste.

Mitos do Profissional

Mito 8. "O produto a ser entregue no final do projeto é o programa funcionando." Realidade 8. O programa em funcionamento é um das componentes do software. Além do software em si, um bom projeto deve ser caracterizado pela produção de um conjunto importante de documentos. Um produto de software sem um manual de operação pode ser tão ruim quanto um software que não funciona!

Qual a resposta para a crise de software?

Conceito

Engenharia = “é a atividade em que os conhecimentos científicos são empregados para resolver problemas práticos”

Engenharia de Software = “é a atividade em que os [conhecimentos científicos] são empregados para resolver problemas práticos relacionados à construção de software”

“Um dos objetivos básicos da Engenharia de Software é transformar a criação de sistemas software realizada de maneira artística, indisciplinada e pouco entendível para uma forma devidamente controlada, quantificada e previsível.”

“Engenharia de software é a aplicação de uma abordagem sistemática, disciplinada e possível de ser medida para o desenvolvimento, operação e manutenção do software.” –IEEE

“Processo de software é a bordagem sistemática, disciplinada e possível de ser medida para o desenvolvimento, operação e manutenção do software.” –IEEE

Processos

São compostos por atividades cuja meta é o desenvolvimento ou evolução de software. Pode ser categorizado em sub-processos (também conhecidos como disciplinas) As disciplinas comuns a todos os processos são: Especificação – o que o sistema deve fazer e suas restrições de desenvolvimento. Desenvolvimento – produção do sistema de software ( também pode ser dividido em projeto e implementação). Validação – verificação de que o software é o que o cliente deseja. Evolução – mudança do software em resposta às demandas de mudança.

O que é um modelo de processo ou ciclo de vida de software ? Uma representação simplificada de um processo de software, apresentado sob uma perspectiva específica. podem ser representados em: Modelo de workflow – sequência de atividades; Modelo de fluxo de dados – fluxo de informações; Modelo de papel/ação – quem faz o quê.

Modelos de Ciclo de Vida (modelos gerais de processo)

ciclo de vida pode ser resumido como sendo todas as atividades relacionadas a um software, desde a concepção de suas idéias até a descontinuidade do produto. Geralmente é decomposto papéis, atividades e artefatos

Custos em engenharia de software Aproximadamente 60% dos custos são custos de desenvolvimento e 40% são custos de testes. Para software sob encomenda, os custos de evolução normalmente excedem de desenvolvimento. Os custos variam dependendo do tipo de sistema que está sendo desenvolvido e dos requisitos de atributos de sistema, tais como desempenho e confiabilidade. A distribuição de custos depende do modelo de desenvolvimento que é usado.

Custos de desenvolvimento do produto

Copyright © 2024 DOKUMEN.SITE Inc.