View
6
Download
0
Category
Preview:
Citation preview
AULA 1 INTRODUÇÃO - ENGENHARIA DE
SOFTWAREProf. 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. 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 � 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. 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 quando satisfaz os propósitos para os quais foi desenvolvido
TIPOS DE SOFTWARE.
� Software de Sistemas:� São aqueles escritos para servir outros programas,
temos como exemplo os compiladores, editores e utilitários para gestão de arquivos.
� Software de aplicação:� Software de aplicação:� São programas isolados que resolvem uma
necessidade especifica do negócio, por exemplo temos processamento de informações num ponto de venda, controle de fabricação em tempo real.
TIPOS DE SOFTWARE.
� Software cientifico e de engenharia.� Antigamente caracterizado como algoritmo numérico para
simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação.
� Software Embutido� Software Embutido� Aquele que reside dentro de um produto, realiza funções
muito limitadas e particulares como por exemplo os sistemas de frenagem em automóveis, painéis de medição de combustível, etc.
TIPOS DE SOFTWARE.
� Softwares para linha de produtos.� É projetado com capacidade especifica e que atenda muitos
usuários diferentes.� Sistema de controle de estoque, processamento de textos,
gráficos ,etc.
� Aplicações para web.� Aplicações para web.� Aqueles que rodam na internet
� e-commerce.
TIPOS DE SOFTWARE.
� Softwares para inteligência artificial.� Faz uso de algoritmos não numéricos para resolver
problemas complexos que não são passiveis de análise direta.
� Aplicações em robótica, reconhecimento de padrões em voz e imagem, redes neurais, etc.voz e imagem, redes neurais, etc.
� Computação ubíqua.� Caracteriza-se pela computação distribuída.
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 � 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.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 1Etapa 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, 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 � 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 � 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.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 � 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.
Recommended