Você está na página 1de 18

O Software e suas caractersticas

Diferentes de outras coisas que as pessoas constrem.... Fator de diferenciao :A utilizao de software vista como fator de diferenciao para empresas e instituies. Ele tem a capacidade de aliar em um s dispositivo.... inteligncia, funcionalidade, facilidade de uso, desempenho, etc... Natureza lgica (no fsica): software no fabricado no sentido usual da palavra. os custos do software se relacionam somente ao desenvolvimento; no existem os problemas de qualidade introduzidos pela fase de fabricao; O termo Fbrica de software se refere somente ao uso de ferramentas automatizadas para o desenvolvimento.

O Software e suas caractersticas (cont.)

Software no se desgasta (mas se deteriora!):

Ele enfrentar mudanas de manuteno, que provavelmente incluir novos defeitos (picos na curva de ndice de falhas). Esse processo vai se repetindo no tempo, fazendo que o nvel mnimo de falhas aumente.

Evoluo do Software Primeira Gerao (1950 a 1960): Sistemas em Batch, software sob medida, desenvolvidos sem tcnicas de engenharia (programao arte); programador-usurio (sistemas sem documentao) - muita evoluo da cincia pouca da tcnica; Segunda Gerao(1960-1979): Sistemas Multiusurio (interao homem-mquina); evoluo de tcnicas interativas: sistemas em tempo real ; sistemas de gerenciamento de banco de dados; surgimento das Software-Houses e dos pacotes de software: evoluo de tcnicas de manuteno; Terceira Gerao: (desde 1979): Sistemas distribudos: redes locais e globais; comunicaes digitais ; acesso instantneo a base de dados; Sistemas Especialistas; Inteligncia Artificial; integrao da informtica com outras tecnologias (automveis, eletrodomsticos, bens de capital,....). Crescimento de empresas de software, que vendem diferenciao... Quarta Gerao: Inteligncia Artificial: disseminnao de sistemas baseados em redes neuronais e algortmos genticos para reconhecimento de padres, aprendizado e processamento parecidos com os humanos: Orientao a Objetos e Linguagens de quarta gerao (especificando o resultado esperado e no a ao para se conseguir esse resultado) Perspectivas: Sociedade da Informao conhecimento poder, e o computador um amplificador deste poder.... Tema para debate: Na sua opinio existe a possibilidade de democratizao da sociedade atravs da rede mundial de computadores?

Os Aplicativos de Software Software bsico: programas escritos para dar apoio para outros programas; compiladores, editores, utilitrios, componentes de sistemas operacionais: forte interao com o hardware; Software aplicado: Software comercial: folhas de pagamentos, contas a pagar e a receber, estoques, etc... Software de tempo real: monitora/analisa/contorla eventos do mundo real: coleta de dados - formatao de dados - anlise controle de sada; Software gerencial: SIG - sistemas de inofrmao gerencial, SAD -sistemas de apio a tomada de deciso Software cientfico e de engenharia ; processamentos numricos para alises estruturais, de fadiga, etc... Software educacional: apresentaes, tuturiais, exerccios, simuladores, etc. Software embarcado: reside na memria s de leitura de mquinas e equipamentos industriais, domsticos, laser, veculos, etc... Software pessoal: processadores de texto, planilhas, processadores grficos, etc... Software de entrenimento: Jogos Groupware: software de apoio ao trabalho cooperativo: correio eletrnico, etc, etc, etc,.....

Os Problemas do Software hoje Problemas de Qualidade do software; J faz tempo que a indstria do software ultrapassou a do hardware em cifras de negcios. Entretanto, resta ainda uma desconfiana quando a tarefa criar um novo software.... Estimativas de tempo e de custo de desenvolvimento so muito imprecisas com poucos dados histricos sobre o processo de desenvolvimento as estimativas s podem ser ruins; Produtividade no acompanha a demanda; o emprego de tcnicas de engenharia de software aliado ao emprego de ferramentas CASE (Computer Aided Software Engineering) ainda pouco dissiminado; At hoje o software tem sido feito sob medida e no a partir de componentes reutilizveis. Os catlogos de componentes de software prontos so muito pouco utilizados.... Comunicao projetista/cliente: a insatisfao do cliente com o produto concludo ocorre muitas vezes devido a problemas de comunicao; Compulso do projeto: pouca importncia dada a um programa de testes sistemtico e completo; (s possvel avaliar a qualidade do software quando ele estiver pronto....) A avaliao pode e deve ser iniciada desde as primeiras etapas de anlise e continuar durante a concepo, projeto, implementao e implantao do sistema;

Os Problemas do Software hoje (cont.) Manuteno: o software muito difcil de ser mantido e atualizado (a manuteno a causa de muitos problemas de qualidade) ; Diferentes de outras coisas que as pessoas constrem no existem peas de reposio : toda a falha do software indica um erro de projeto: a manuteno do software se referindo ao processo de desenvolvimento envolve consideravelmente mais complexidade do a manuteno do hardware;

Reflexo: Os profissionais da rea de software (a gerao passada foi chamada de programadores; esta gerao poderia se chamar engenheiros de software) tm recebido pouco treinamento formal em novas tcnicas e ferramentas para o desenvolvimento de software. Hoje, na maioria das empresas, o que se verifica so diferentes graus de anarquia. Cada profissional aborda a tarefa de escrever programas com a experincia derivada dos esforos passados. Deste modo, por meio de tentativa e erro, algumas pessoas conseguem desenvolver uma abordagem ordeira e eficiente para desenvolver programas. Outras desenvolvem maus hbitos que resultam em qualidade e manutenibilidade deficientes. (adaptao do texto de Roger S. Pressman)

Engenharia de Software Conjunto de mtodos, ferramentas e tcnicas que podem ser aplicados no ciclo de desenvolvimento do software de maneira a que se possa obter, economicamente, um produto/sistema de alta qualidade; mtodos: descries sobre como proceder frente a um amplo conjunto de atividades: planejamento; anlise de requisitos; concepo e projeto; implementao; codificao; testes e manuteno; tcnicas: so procedimentos definidos no mbito de uma etapa de um mtodo; definem uma sequncia de atividades, os produtos a serem entregues, os controles que ajudam a assegurar a qualidade, etc... (SADT, SAS, testes de interao, etc...) ferramentas: apoio aos mtodos e tcnicas. Podem ser informatizados (CASE) ou no, como no caso de formalismos, modelos, conhecimentos, etc.

O Ciclo de vida Clssico : Modelo cascata

Gerenciamento do processo: baseado na criao e de um fluxo de documentos para registrar os acontecimentos e resultados cada etapa (design rationale) Planejamento do desenvolvimento: *Estimativa de recursos de hardware, software (ambiente), pessoas, tempo, ... *Anlise de Riscos: previsveis para o projeto e produto; Plano do Projeto Anlise/Engenharia de Requisitos *Necessidades: existentes do usurio-alvo; *Estado da Arte: existncia de sistemas semelhantes; *Requisitos: esperados para futuro sistema Especificao de requisitos Concepo (sistema) e projeto (do software): *modelagens da arquitetura do software: *programa aplicativo; *interface com o usurio; Projeto Preliminar e detalhado Implementao: *Realizar o projeto no ambiente definido com o mximo de eficincia;

Mdulos do Programa

O Ciclo de vida Clssico : Modelo cascata (cont.)

Testes de unidade e de integrao: *Garantir que as entradas definidas produzam os resultados esperados; *Verificar se o produto funciona bem; *Certificar-se de que o produto seja o produto certo; Sistema Final Operao e Manuteno: *Instalao e uso do produto; as atividades de manuteno reaplicam cada uma das etapas do ciclo de desenvolvimento e so causadas por *problemas de projeto e de sua execuo *pedido do cliente (problema de projeto) *alteraes do ambiente extermo; Revises do Sistema Problemas principais da abordagem as especificaes so congeladas precocemente as vezes, as coisas devem acontecer em paralelo....

os testes comeam tarde demais.... uma verso do sistema s est disponvel muito depois do que o cliente espera para poder rever a definio de requisitos....

Ciclos de Prototipagem e Testes Um processo de desenvolvimento onde o projetista cria modelos do software a ser implementado; mock up com a interface com o usurio em papel maquete informatizada; implementao isolada de alguma funcionalidade ou da interface com o usurio; programa existente que implemente alguma funcionalidade desejada (reutilizao); prottipos que implementem verses evolutivas do sistema;

*Fases de Protipagem

Problemas principais:

as solues menos que ideais podem se tornar parte integrante do sistema; cliente pode querer o prottipo precrio e no o sistema otimizado;

Ciclo em Espiral

Etapas Planejamento: determinao de objetivos (requisitos), alternativas e restries Anlse de riscos: anlise de alternativas do ponto de vista dos possveis riscos (sua identificao/soluo):

deciso sobre prosseguir ou no com uma soluo; Engenharia: desenvolvimento do produto no nvel seguinte (nvel crescente de complexidade e de carga de trabalho a medida que se evolue na espiral) Avaliao feita pelo (com o) cliente: Vantagens: incorpora uma estrutura interativa para a abordagem do ciclo clssico; incorpora a abordagem de prototipagem/testes para cada etapa do ciclo clssico; incorpora uma fase de anlise de riscos para cada etapa do ciclo clssico(reflete mais realisticamente o mundo real);

Modelos de Transformaes formais

O desenvolvimento baseado em especificaes formais do sistema (em diferentes nveis), que so implementadas por um programa.... (sistemas de quarta gerao). Ex.: sistemas geradores de interfaces com o usurio a partir de diagramas entidade-relacionamento.... Problemas especificaes formais so complicadas para os clientes e gerentes de projeto....

Ciclo em X Reutilizao O sistema montado (em vez de criado) a partir de

componentes j existentes de todos os nveis....