Introdução à Computação
Desenvolvimento de Software
-
Evolução e Conceitos
Aspectos Importantes - Desenvolvimento de Software
Motivação
•
•
•
•
A economia de todos países dependem do uso de software.
Cada vez mais, o controle dos processos tem sido feito por software.
Atualmente, os custos de software superam os custos de hardware.
A manutenção de software é onde se tem os maiores gastos. Principalmente em
sistemas de vida longa.
Evolução:
Primeiros Anos –características
•orientação batch (em lote) para a maioria dos sistemas
•Na maior parte, entretanto, o hardware dedicava-se à execução de um único programa
que, por sua vez, dedicava-se a uma única aplicação específica
•software, por outro lado, era projetado sob medida para cada aplicação e tinha uma
distribuição relativamente limitada
•ambiente de software personalizado o projeto era processo implícito realizado no cérebro
de alguém e a documentação muitas vezes não existia.
Segundo era –características
•Os sistemas multiusuários introduziram novos conceitos de interação homem-máquina
•técnicas interativas
•avanços da armazenagem on-line levaram à primeira geração de sistemas de
gerenciamento de banco de dados
Introdução à Computação
Desenvolvimento de Software
-
Evolução e Conceitos
•aparecimento "software houses“
•software desenvolvido para ampla distribuição no mercado
•Surgimento da "manutenção de software“
Terceira era –características
•As redes globais, as comunicações digitais de largura de banda elevada e a crescente
demanda de acesso "instantâneo" a dados exigem muito dos desenvolvedores de software.
•caracterizada pelo advento e o generalizado uso de microprocessadores, computadores
pessoais e poderosas estações de trabalho de mesa.
Quarta era –características
•As tecnologias orientadas a objetos, orientadas a documentos, estão ocupando o lugar das
abordagens mais convencionais para o desenvolvimento de software em muitas áreas de
aplicação.
•As técnicas para o desenvolvimento de software já estão mudando a maneira segundo a
qual alguns segmentos da comunidade de software constroem programas de computador.
•O software de inteligência artificial finalmente saíram do laboratório para a aplicação.
Desenvolvimento de Software
Inclui basicamente Programas de computador e documentação associadas.
Categorias tradicionais de classificação:
SOFTWARE
E
Aplicativos
Utilitário
s
Básico
Introdução à Computação
Desenvolvimento de Software
-
Evolução e Conceitos
Aplicativos:
Efetuar tarefas que sirvam diretamente ao usuário.
Ex:
controle de contas a pagar
processador de textos
contabilidade
Tipos de Software Aplicativo
•
•
•
•
•
•
•
•
•
•
•
•
Processador de Textos
Dicionários Eletrônicos
Desenhos Técnicos e Artísticos
Editoração Eletrônica (publisher)
Edição de Imagens
Administração/Contabilidade
Matemática
Engenharia e Arquitetura
Planilhas Eletrônicas
Medicina
Jogos
Periódicos
Software Utilitário
Fornecem ao usuário ferramentas para organizar os discos, verificar disponibilidade de
memória, corrigir falhas de processamento.
Úteis ao sistema computacional.
Administram o ambiente.
Exemplo de Utilitários
•
•
•
•
Compactadores
Formatadores
Backup
Antivírus
Introdução à Computação
Desenvolvimento de Software
-
Evolução e Conceitos
Software Básico
Todo o programa que é necessário ao funcionamento do computador.
Mais importante
Sistema Operacional (gerencia e disponibiliza para o usuário
os recursos da máquina e seus periféricos,permitindo que o equipamento torne-se
operável.)
Tipos de Software Básico
•
•
Windows, OS2, Unix, AIX, Linux
Windows 3.11, Windows 95, Windows 98, Windows NT, Windows XP, Windows Wista
Introdução à Computação
Desenvolvimento de Software
-
Evolução e Conceitos
Engenharia de Software - Conceitos
Engenharia de software é uma área do conhecimento da informática voltada para a
especificação, desenvolvimento e manutenção de sistemas de software aplicando tecnologias
e práticas de ciência da computação, gerência de projetos e outras disciplinas, objetivando
organização, produtividade e qualidade.
Atualmente, essas tecnologias e práticas englobam linguagens de programação, bases
de dados, ferramentas, plataformas, bibliotecas, padrões, processos e a questão da
Qualidade de Software.
O seu objetivo é estabelecer uma sistemática abordagem de desenvolvimento, através
de ferramentas e técnicas apropriadas, dependendo do problema a ser abordado,
considerando restrições e recursos disponíveis.
Qual é a diferença entre a Engenharia de Software e a Ciência da Computação?
A Ciência da Computação tem como objetivo o desenvolvimento de teorias e
fundamentações, enquanto que a Engenharia de Software se preocupa com as práticas de
desenvolvimento de software.
Introdução à Computação
Desenvolvimento de Software
-
Evolução e Conceitos
Métodos e Técnicas: como fazer
Metodologias: como aplicar
Ferramentas: Automatizam os métodos, dão apoio à utilização dos mesmos.
CASE => (Computer-Aided Software Engineering): Ferramentas integradas para
desenvolver software. -> abrangem desde a fase de análise até a geração do produto final,
inclusive incluindo o desenvolvimento em alguma linguagem de programação.
Ciclo de Vida dos Sistemas
Todos os sistemas têm ciclo de vida bem definido, ou seja, todos eles passam pelos
estágios de:
• Concepção: enfoca a questão “o que?” – o que é o sistema
Engloba: Análise do sistema
Planejamento do projeto de software
Análise de requisitos
Introdução à Computação
Desenvolvimento de Software
-
Evolução e Conceitos
As atividades de análise concentram-se na identificação, especificação e
descrição dos requisitos do sistema de software. Em resumo, requisito é uma
necessidade que o software deve cumprir.
É comum que o cliente não saiba o que ele realmente deseja, que haja
problemas na comunicação e ainda que haja mudança constante de requisitos.
• Desenvolvimento: enfoca a questão “como” – como implementar o sistema
Engloba: projeto de software
Codificação
Testes
• Manutenção: enfoca “mudanças” – no sistema e no ambiente
Engloba: correção
Adaptação
Expansão
Estas etapas ocorrem independente da metodologia utilizada para o desenvolvimento
do sistema.
Características do Software
Software não é um elemento físico; é um elemento lógico (não tem propriedades
físicas, como visualizar, medir ...)
O software não pode ser manufaturado; custos estão concentrados no desenvolvimento
(normalmente calcula-se horas de projeto)
O processo de gerenciamento é diferente; o relacionamento entre as pessoas é
diferente;
Existem diferentes abordagens (podemos fazer de várias maneiras) para se chegar ao
produto final
O software não se desgasta com o uso; mas deteriora-se.
Não há peças de reserva e sim manutenção, correção, aperfeiçoamento.
Pode ser construído aproveitando-se componentes prontos -> reusabilidade
Um erro durante um teste => erro de projeto por isso a fase de projeto é muito
importante.
O desenvolvimento de software tem como principais características e funcionalidades a
de automatizar um determinado processo, a melhora da qualidade das informações, o apoio
de decisões estratégicas, além de ser um instrumento de melhoria da qualidade de vida da
sociedade.
Introdução à Computação
Desenvolvimento de Software
-
Evolução e Conceitos
Dificuldades para se desenvolver software
•
•
•
•
•
Saber o que o software deve fazer: quais os requisitos (abstração);
Ferramentas; linguagem; SO
Tempo e custos elevados de desenvolvimento.
Prever falhas (antes de entregar).
Tratar manutenção e versões.
Quais são os custos da Engenharia de Software?
•
•
•
•
Pesquisas mostram que 60% dos custos é para o desenvolvimento e 40% para os
testes.
O custo de evolução do software, normalmente, excede o custo de desenvolvimento.
O custo depende do tipo de sistema a ser desenvolvido e suas restrições.
A distribuição dos custos depende do modelo de desenvolvimento adotado.
Desenvolvimento de software para a educação
A decisão de utilização da tecnologia da informática, em particular do software, como
apoio ao processo de ensino-aprendizagem, deve ser baseada em critérios levando-se em
consideração os mais variados aspectos, tanto pelos recursos tecnológicos oferecidos pela
engenharia de software, quanto pelas possibilidades pedagógicas e metodológicas de uso
no ensino.
O software é apenas uma ferramenta. O professor tem um papel preponderante em sua
inserção no processo educacional. Desse modo, ele deve ser parte ativa em todas etapas
referentes ao uso de software na educação: acesso, análise, experimentação, aquisição,
utilização, avaliação e produção. Assim, as equipes de desenvolvimento devem, não apenas
ouvir ou consultar educadores, mas incorporá-los na criação de software para educação.
Download

Desenvolvimento de Software