quinta-feira, 4 de fevereiro de 2010

Engenharia de Sftware - Conceitos

O que é Software?

Dicionário Aurélio:
– Programa
– Aquilo que pode ser executado por um equipamento (o hardware)
– Um produto comercializado que consiste em um sistema de rotinas e funções


Itens de Configuração



1. INSTRUÇÕES (programas de computador)
que quando executadas produzem a função e o desempenho desejados

2 - ESTRUTURAS DE DADOS
que possibilitam que os programas manipulem adequadamente a informação

3 - DOCUMENTOS
que descrevem a operação e o uso dos programas


Definição mais exata

Analisar as características que o tornam diferente dos outros produtos

 Hardware: produto em forma física
 Software: elemento de sistema lógico



Aplicações do Software
 SOFTWARE de Sistema: coleção de programas escritos para apoiar outros programas. Forte interação com o hardware
• sistema operacional, compiladores, drivers, etc...

SOFTWARE DE TEMPO REAL software que monitora, analisa e controla eventos do mundo real
• sistema de controle de tráfego aéreo, relógio digital, ...

SOFTWARE Business sistemas de operações comerciais e tomadas de decisões administrativas
• folha de pagamentos, contas a pagar e a receber, MIS, ...

SOFTWARE CIENTÍFICO E DE ENGENHARIA caracterizado por algoritmos de processamento numérico
• astronomia, vulcanologia, análise de fadiga da mecânica de automóveis, biologia molecular, projeto CAD, ...
SOFTWARE EMBUTIDO usado para controlar produtos e sistemas para os mercados industriais e de consumo – produtos inteligentes
• controle de microondas, de combustível, sistemas de freio

SOFTWARE DE COMPUTADOR PESSOAL envolve processamento de textos, planilhas eletrônicas, computação gráfica, diversões, etc.

*SOFTWARE Baseado na Web páginas Web (websites) recuperados por um browser (tecnologia web ASP, HTML, CGI, JAVA, XML, etc...)

SOFTWARE DE INTELIGÊNCIA ARTIFICIAL faz uso de algoritmos não numéricos para resolver problemas que não sejam favoráveis à computação ou à análise direta
• sistemas especialistas, reconhecimento de padrões, redes neurais, jogos, ...



MITOS DO SOFTWARE (ADMINISTRATIVOS)

– Gerentes se encontram sob pressão
• manter orçamentos
• evitar que os prazos estouram
• melhor a qualidade

– Gerente quando está se afogando agarra à crença de um mito
Mito: Já temos um manual repleto de padrões e procedimentos para a construção de software. Isso oferecerá ao meu pessoal tudo o que eles precisam saber.

Realidade:

– Será que o manual é usado?
– Os profissionais sabem que ele existe?
– Ele reflete a prática moderna de desenvolvimento de software?
– Ele é completo?
Mito: Meu pessoal tem ferramentas de desenvolvimento de software de última geração; afinal compramos para eles os mais novos computadores.
Realidade:
– É preciso muito mais do que os mais recentes computadores para se fazer um desenvolvimento de software de alta qualidade.
– Ferramentas de engenharia e software auxiliada por computador CASE (Computer-Aided Software Engineering) são mais importantes do que o hardware

Mito: Se nós estamos atrasados nos prazos, podemos adicionar mais programadores e tirar o atraso (conceito de hordas de mongóis).


Realidade:
– O desenvolvimento de software não é um processo mecânico igual à manufatura.
– Acrescentar pessoas em um projeto torna-o ainda mais atrasado.
– Pessoas podem ser acrescentadas, mas somente de uma forma planejada e bem coordenada.

MITOS DO SOFTWARE (CLIENTES)

– Em muitos casos, o cliente acredita em muitos mitos sobre o software, porque os gerentes e profissionais não corrijam a desinformação
– Mitos levam a falsas expectativas e insatisfação

Mito: Uma declaração geral dos objetivos é suficiente para se começar a escrever programas - podemos preencher os detalhes mais tarde.

Realidade:
– Uma definição inicial ruim é a principal causa de fracassos dos esforços de desenvolvimento de software.
– É fundamental uma descrição formal e detalhada do domínio da informação, função, desempenho, interfaces, restrições de projeto e critérios de validação.

Mito: Os requisitos de projeto modificam-se continuamente, mas as mudanças podem ser facilmente acomodadas, porque o software é flexível.


Realidade:
– Requisitos podem ser mudados, mas o impacto varia de acordo com o tempo que é introduzido (projeto e custo)
– Um mudança, quando solicitada tardiamente num projeto, pode ser mais do que a ordem de magnitude mais dispendiosa da mesma mudança solicitada nas fases iniciais (Figura)


MITOS DO SOFTWARE (PROFISSIONAL)

– Durante os primórdios da computação, a programação era vista como uma forma de arte
– “Velhas maneiras e atitudes dificilmente morrem”

Mito: Assim que escrevermos o programa e o colocarmos em funcionamento nosso trabalho estará completo.

Realidade:
– Os dados da indústria indicam que entre 50 e 70% de todo esforço gasto num programa serão despendidos depois que ele for entregue pela primeira vez ao cliente

Mito: Enquanto não tiver o programa "funcionando", eu não terei realmente nenhuma maneira de avaliar sua qualidade.

Realidade:
– Mecanismo (Revisão Técnica Formal) de garantia de qualidade de software é aplicado desde o começo do projeto
– Revisões de software são um “filtro de qualidade” - descobre erros/defeitos

Mito: A única coisa a ser entregue em um projeto bem-sucedido é o programa funcionando.


Realidade:
– Um programa funcionando é somente uma parte de uma Configuração de Software que inclui todos os itens de informação produzidos durante a construção e manutenção do software.
– A DOCUMENTAÇÃO é o alicerce.

Espero que todos consigam extrair o máximo deste post.
Abraços!!!