AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE Prof. Msc. Hélio Esperidião
O QUE É UM ALGORITMO? É qualquer procedimento computacional bem definido que informa algum valor ou conjunto de valores como entrada e produz algum valor ou conjunto de valores como saída.
O QUE É SOFTWARE DE COMPUTADOR? É um produto que profissionais de informática constroem e depois mantém ao longo do tempo que abrangem quais quer tamanho ou arquitetura. Todo o seu conteúdo e documentos impressos e virtuais. O software é um transformador de Informações Age produzindo, armazenando, gerindo, adquirindo, modificando, exibindo ou transmitindo informações.
QUEM FAZ? Profissionais de informática, estudantes, pesquisadores, curiosos.
POR QUE É IMPORTANTE? Software transformou o comportamento e cultura da sociedade, está presente em todos os seguimentos profissionais e faz parte do cotidiano.
QUAIS SÃO OS PASSOS? Construir um software requer a aplicação de um processo ágil que seja adaptável as suas necessidades de forma a levar a um resultado de alta qualidade e que irá satisfazer as necessidades de seus usuários.
O PRODUTO DO TRABALHO Para o desenvolvedor: Programas, dados Documentos Para o usuário: Informação que de alguma forma torna melhor o seu cotidiano.
O NOVO PROGRAMADOR O programados solitário de antigamente foi substituído por uma equipe de desenvolvedores que muitas vezes contam com profissionais de diversas áreas do conhecimento multidisciplinares.
QUALIDADE DO SOFTWARE Definir qualidade de software pode parecer uma tarefa bastante complicada e subjetiva. De forma geral um software possui qualidade quando satisfaz os propósitos para os quais foi desenvolvido
SOFTWARE LEGADO Dayani-Fard define software legado como: Foram desenvolvidos a muito tempo mas continuam sendo modificados para atender a novas necessidades. Estes geralmente estão em grandes organizações e desempenham funções criticas e estratégicas, são mantidos devido ao risco de perdas num processo de evolução.
EVOLUÇÃO DE SOFTWARE Softwares evoluem com o tempo comumente devido as modificações denominadas manutenção de software. Correções de erros, adicionar novas funcionalidades
O PROCESSO O que é? Um roteiro que ajuda a criar a tempo um resultado de alta qualidade, isso é chamado processo de software. Quem faz? Os engenheiros de softwares Porque é importante? Fornece controle e organização para uma atividade.
PROCESSO Quais são os passos? Variam de acordo com a aplicação. Exemplo: Um software médico possui processo distinto de um software aeronáutico.
A ENGENHARIA DE SOFTWARE Integra o processo, os métodos e as ferramentas necessárias para o desenvolvimento de software.
MODELOS PRESCRITIVOS DE PROCESSO Propostos para colocar ordem no caos do desenvolvimento de software. Fornece um roteiro efetivos para as equipes de software. Estabilidade Controle Define um fluxo de trabalho Linear Incremental
LINEAR - O MODELO EM CASCATA O processo flui do início ao fim de forma linear O processo é dividido em etapas claras e seqüenciais. Uma etapa posterior jamais deve ser desenvolvida antes de uma anterior. Etapa 1 Etapa 1 Etapa 2 Etapa n
O MODELO EM CASCATA É chamado de modelo clássico Abordagem sistemática e seqüencial. É utilizado quando o desenvolvimento do software começa pelos requisitos do cliente e progride ao longo do planejamento, modelagem, construção e implantação.
O MODELO EM CASCATA É o paradigma mais antigo da engenharia de software. Foi e é amplamente utilizado. Vem sofrendo criticas a respeito Quais problemas podemos visualizar claramente?
PROBLEMAS DO MODELO EM CASCATA Projetos reais raramente seguem o fluxo seqüencial que o modelo propõem. É possível acomodar iterações de forma indireta. Gera confusão a medida que a equipe continua o desenvolvimento. É difícil para o cliente estabelecer todos os requisitos explicitamente. O modelo não prevê ocorrência de alterações nos requisitos
PROBLEMAS DO MODELO EM CASCATA O cliente terá que esperar até o final do projeto, ou seja, na etapa de implantação. Erros grosseiros podem aparecer se não detectados em etapas anteriores do processo.
OS ESTADOS DE BLOQUEIO Ocorrem em modelos lineares. Ocorre quando uma equipe tem que esperar pelo termino do trabalho de uma outra equipe. Muitas vezes este tempo é maior que o tempo produtivo.
MODELOS INCREMENTAIS DE PROCESSO Pode ser utilizado quando há necessidade de disponibilizar rapidamente um conjunto limitado de funcionalidades. Estas funcionalidades são aprimoradas em novas versões subseqüentes do software.
MODELOS INCREMENTAIS Aplica seqüência lineares a medida que o tempo passa. Cada seqüência linear apresenta incrementos de software passiveis de serem entregues.
MODELOS INCREMENTAIS
EXEMPLO Imagine um software editor de textos. A versão básica que funciona como o bloco de novas é o primeiro incremento a ser entregue. Os próximos incrementos acrescentam funcionalidades mais complexas ao sistema, Cada incremento entrega uma versão para os usuários. O primeiro incremento é chamado núcleo do produto.