Você está na página 1de 37

DESENVOLVIMENTO DE SOFTWARE I

Prof. Josu Batista

DEFINIO DE SOFTWARE

Nos dicionrios.

Aquilo que pode ser executado por um equipamento, no caso o hardware; Um produto comercializado que consiste em um sistema de rotinas e funes Instrues (programas de computador) que, quando executadas produzem a funo e o desempenho desejados; Estruturas de dados que possibilitam que os programas manipulem adequadamente a informao.

Definio Didtica

O QUE UM SOFTWARE?
Mouse. Antivrus. Computador. Uma calculadora. A calculadora do Windows. Um jogo do Windows rea de trabalho do Windows Facebook. A internet. O Internet Explorer

PARA QUE DESENVOLVER SOFTWARE?


Automatizar um processo. Melhorar a qualidade das informaes. Apoiar as decises estratgicas.

APLICAES PARA SOFTWARES.

Software bsico:

coleo de programas escritos para apoiar outros programas. Ex.: Compiladores, gerenciadores de arquivos, drivers, etc.

Software de tempo real:

software que monitora, analisa e controla eventos do mundo real. So sistemas aonde um resultado atrasado no tem valor. Ex.: Monitorao de batidas cardacas, sistema de controle de trfego areo, freios abs (carros), etc

APLICAES PARA SOFTWARES.

Software comercial:

sistemas de operaes comerciais e tomadas de decises administrativas. Ex.: Folha de pagamentos, contas a pagar e a receber, controle de estoques,etc.

Software cientfico e de engenharia:

caracterizado por algoritmos de processamento numrico. Ex.: Astronomia, anlise de fadiga da mecnica de automveis, manufatura automatizada, etc

APLICAES PARA SOFTWARES.

Software embutido:

usado para controlar produtos e sistemas para os mercados industriais e de consumo. Reside em memria s de leitura. Ex.: Controle do teclado de um microondas, controle de combustvel, funes digitais de automveis, etc.

Software de computador pessoal:

envolve processamento de textos, planilhas eletrnicas, computao grfica, multimedia, etc

APLICAES PARA SOFTWARES.

Software baseado na web:

pginas web recuperados por um browser que incorporam instrues executveis (cgi, html, java, perl, xml, etc...) E dados. Ex.: Hipertextos, formatos de udio, vdeo, imagens, etc. faz uso de algoritmos no numricos para resolver problemas de alta complexidade que no sejam favorveis computao ou anlise direta. Ex.: Sistemas especialistas, reconhecimento de padres, redes neurais, jogos, etc.

Software de inteligncia artificial:

PROBLEMAS PARA O DESENVOLVEDOR.


As estimativas de custo e prazo frequentemente so imprecisas; A produtividade das pessoas da rea de software no tem acompanhado a demanda por seus servios; A qualidade do software s vezes menos adequada; No dedicamos tempo para coletar dados sobre o processo de desenvolvimento;

PROBLEMAS PARA O DESENVOLVEDOR.


Mais problemas... Poucos dados histricos para guiar estimativas; A comunicao entre analista e cliente frequentemente muito pobre; Falta ou deficincia em tcnicas de teste; A tarefa de manuteno devora a maioria do oramento destinado ao software

PROBLEMAS PARA O DESENVOLVEDOR

O QUE CAUSAM ESSES PROBLEMAS.


As caractersticas do software. Falhas humanas. Gerentes sem nenhuma experincia em software. Pouco treinamento para os desenvolvedores. Resistncia a mudanas. Mas no desanimem, esses problemas podem ser corrigidos. =D

EXERCCIO 1 - PRA RELEMBRA ALGORITMOS

Crie um programa que leia 4 variveis e d a mdia, o maior valor e os dois menores

EXERCCIOS 2
1. 2. 3. 4. 5. 6. 7.

8.

O que voc entendeu por software? D 4 exemplos de softwares instalados no seu computador. Explique, dando exemplo, como uma software pode ser utilizado em decises estratgicas? Qual a diferena de software bsico e software comercial? Qual a classificao do software Windows Mdia Player? O Paint um software que vem junto com o windows 7, ele considerado um software embutido? Porque? Porque difcil estimar custos e prazos no desenvolvimento do software? Cite exemplos de falhas humanas que podem causar problemas no desenvolvimento de software?

PARA DESENVOLVER COM QUALIDADE...


Mtodos abrangentes para todas fases do desenvolvimento; Ferramentas para automatizar os mtodos; Implementao mais consistente e robusta; Tcnicas para garantia da qualidade; Boa coordenao e controle administrativo. Isto ENGENHARIA DE SOFTWARE.

MANUTENO DE SOFTWARE

O processo de modificar um sistema de software ou componente, depois da entrega, para corrigir falhas, melhorar desempenho ou outros atributos, ou adaptar a mudanas no ambiente.

QUANDO INICIA A MANUTENO?

QUAIS SO OS TIPOS DE MANUTENO?

QUAIS SO OS TIPOS DE MANUTENO?

Manuteno corretiva

Reativa Corrige problemas reportados Faz o software voltar a atender aos requisitos

Manuteno emergencial

No programada Mantm temporariamente o sistema funcionando Necessita uma manuteno corretiva posterior
Pr-ativa Corrige problemas latentes

Manuteno preventiva

QUAIS SO OS TIPOS DE MANUTENO

Manuteno adaptativa

Mantm o software usvel aps mudanas no ambiente Prov melhorias para o usurio Melhora atributos de qualidade do software

Manuteno perfectiva

MITOS DO GERENTE

Basta um bom livro de ES para fazer bom software

Um bom livro certamente ajuda, mas ele precisa refletir as tcnicas mais modernas de ES e ser lido!

Se estivermos com o cronograma atrasado, basta adicionar mais gente ao projeto


Adicionar gente a um projeto atrasado faz o projeto atrasar mais! As pessoas que esto entrando tero que aprender sobre o projeto antes de comear a ajudar no desenvolvimento As pessoas que esto no desenvolvimento, tero que parar para explicar aos que esto entrando

MITOS DO GERENTE

Se o projeto for terceirizado, todos os meus problemas esto resolvidos

mais difcil gerenciar projetos terceirizados do que projetos internos

MITOS DO CLIENTE

Basta dar uma idia geral do que necessrio no incio


Requisitos ambguos normalmente so uma receita para desastre! Comunicao contnua com o cliente fundamental!

MITOS DO CLIENTE

Modificaes podem ser facilmente acomodadas, porque software flexvel

O impacto de modificaes no software varia em funo da modificao e do momento em que ela requisitada! Comunicao contnua com o cliente fundamental!

MITOS DO DESENVOLVEDOR

Assim que o cdigo for escrito o trabalho termina

60% a 80% do esforo ser gasto depois que o cdigo foi escrito! (implantao do sistema, testes, manuteno, ....) Vale a pena se esforar para chegar a um bom cdigo(boa documentao, bom projeto, etc.)!

S possvel verificar a qualidade de um software quando o executvel existir

Revises usualmente so mais eficazes que testes, e podem ser utilizadas antes do software estar executvel

MITOS DO DESENVOLVEDOR

O nico produto a ser entregue em um projeto o cdigo

Alm do cdigo, documentaes tanto para a manuteno quanto para o uso so fundamentais!

Engenharia de software gera documentao desnecessria


Engenharia de software foca em criar qualidade, e no criar documentos! Algum grau de documentao necessrio para evitar retrabalho! Questione sempre que encontrar um documento desnecessrio para o projeto!

PRINCPIOS DE HOOKER

Mantenha o estilo
O projeto de um software deve seguir um nico estilo (estilo de codificao, documentao, teste, um mesmo processo, ...) A combinao de diferentes estilos corretos pode levar a um software incorreto Padres e estilos devem ser estabelecidos no incio e seguidos por todos

PRINCPIOS DE HOOKER

O que produzido por voc consumido por outros


Sempre especifique, projete e codifique algo pensando que outros vo ler Sempre exija qualidade nos produtos que voc consome e fornea qualidade nos produtos que voc produz

PRINCPIOS DE HOOKER

Esteja pronto para o futuro


Sistemas de boa qualidade tm vida longa Projete desde o incio pensando na manuteno Pense no problema geral, e no s no problema especfico Busque por solues j existentes

Planeje para reutilizao


Pense!

plano desnecessrio, mas planejar indispensvel D. Eisenhower Avalie alternativas Detalhe os riscos

ENCONTRE OS ERROS.

A nossa empresa fez o levantamento dos requisitos com o cliente tentando esclarecer todas as ambigidades. Aps a fase de levantamento dos requisitos, o projeto passou para a fase de codificao. Ao final da codificao e gerao do executvel, o projeto foi testado. S aps o teste, a empresa acionou o cliente novamente para a entrega do cdigo gerado. Durante a fase de codificao e aps verificar um atraso no cronograma, mais profissionais foram includos na equipe e parte do projeto foi terceirizada. Aps a codificao do produto, toda a equipe foi deslocada para o desenvolvimento de outro projeto.

ENGENHARIA DE SOFTWARE

Conceitos.

O estabelecimento e uso de slidos princpios de engenharia para que se possa obter economicamente um software que seja confivel e que funcione eficientemente em mquinas reais. A engenharia de software compreende de um conjunto de etapas que envolve ferramentas, mtodos, processos e tem como alicerce a tudo isto o controle da qualidade.

O QUE PROCESSO MTODO OU FERRAMENTA.

ETAPAS GERIAS DE DESENVOLVIMENTO.

Planejamento

Definio de requisitos, construo de prottipos (opcional) Construo dos modelos a partir a definio dos requisitos Inclui codificao e testes Colocar em produo,treinar usurios.

Elaborao

Construo do sistema

Implantao

MODELOS DE DESENVOLVIMENTO.

Modelo Cascata.

Mais antigo. Cada atividade uma fase separada. O resultado de uma fase alimenta outra.

MODELOS DE DESENVOLVIMENTO.

MODELOS DE DESENVOLVIMENTO.

Modelo em Espiral

A cada iterao ao redor do espiral uma verso mais completa do software desenvolvida. Reflete mais o mundo real.

Você também pode gostar