engenharia de software conceitos e elementos 1. engenharia resolução de problemas através de...
TRANSCRIPT
Engenharia de SoftwareConceitos e elementos
1
Engenharia
Resolução de problemas através de soluções economicamente viáveis
Motivacão: Limitação de recursos, tempo e pessoal
O que é a Engenharia de Software?
– " Aplicação de um processo disciplinado, sistemático e quantitativo para o desenvolvimento, operação e manutenção de um software. “ [Pressman].
– “Se preocupa com teorias, métodos e ferramentas para o desenvolvimento profissional de software.” [Sommerville]
Engenharia de Software - Definições
• Segundo Boehm:
– Engenharia de software envolve a aplicação prática de conhecimento científico para o projeto e construção de programas de computador e a documentação associada necessária para desenvolvê-los, operá-los e mantê-los.
4
Engenharia de Software - Definições
• Segundo IEEE (The Institute of Electrical and Electronics Engineers) :
–Engenharia de software é uma abordagem sistemática para o desenvolvimento, operação, manutenção de software.
5
Engenharia de Software - Definições
Descomplicando :
• Engenharia de Software é um conjunto de processos, técnicas e ferramentas que têm por objetivo suportar o processo de implementação e operação de um software.
6
• Adotar uma abordagem sistemática e organizada para seu trabalho e usar ferramentas e técnicas/métodos apropriados dependendo do problema a ser solucionado, das restrições de desenvolvimento e dos recursos disponíveis
Papel do Engenheiro de Software
Engenharia de SoftwareAtualmente, o termo é utilizado para se referir a:
Modelos de ciclo de vida
Métodos e ferramentas de
desenvolvimento
Técnicas para gerência e controle da
qualidade
Documentação
Estabelecimento de padrões para as
atividades de produção e manutenção de
software
Características da Engenharia de Software
• Refere-se a software (sistemas) desenvolvidos por grupos ao invés de indivíduos
• Usa princípios de engenharia ao invés de arte, e
• Inclui tanto aspectos técnicos quanto não técnicos
Objetivos da Engenharia de Software• Controle sobre o desenvolvimento de software
dentro de custos, prazos e níveis de qualidade desejados
• Propor soluções economicamente viáveis para a resolução de problemas de produtividade no desenvolvimento, operação e manutenção de software
• Organizar o conhecimento sobre técnicas para o desenvolvimento de software
Qual a diferença entre engenharia de software e Ciência da Computação?
• A Ciência da Computação preocupa-se com teorias e fundamentos; a engenharia de software está preocupada com a viabilidade de desenvolvimento e entrega de softwares úteis
Qual a diferença entre engenharia de software e engenharia de sistemas?
• Engenharia de sistema preocupa-se com todos os aspectos do desenvolvimento de sistemas baseados em computadores, incluindo hardware, software e engenharia de processo.
• Engenharia de software é parte deste processo. Os engenheiros de sistema envolvem-se na especificação do sistema, no design arquitetural, na integração e na implantação
Engenharia de Software
• Abrange um conjunto de três elementos fundamentais: – Processos, Métodos e Ferramentas
• Principais metas:
– Melhorar a qualidade de produtos de software
– Aumentar a produtividade do pessoal técnico
– Aumentar a satisfação do cliente.
13
Engenharia de Software – Para implementar um software precisamos de :• processos • métodos• ferramentas
– A combinação destes elementos é o que podemos chamar de CICLO DE VIDA DE PROJETO DE SOFTWARE ou PROCESSO DE SOFTWARE
14
Engenharia de Software
• Métodos : proporcionam os detalhes de como fazer para construir o software :– Planejamento e estimativa de projeto– Análise de requisitos de software e de sistemas– Projeto da estrutura de dados– Algoritmo de processamento– Codificação– Teste– Manutenção
15
Engenharia de Software
• Ferramentas: dão suporte automatizado aos métodos.
• Existem atualmente ferramentas para sustentar cada um dos métodos
• Ferramentas integradas estabelecem um sistema de suporte ao desenvolvimento de software chamado CASE - Computer Aided Software Engineering
16
Engenharia de Software • Processos: constituem o elo de ligação
entre os métodos e ferramentas– Sequência em que os métodos serão
aplicados– Produtos que se exige que sejam
entregues– Controles que ajudam assegurar a
qualidade e coordenar as alterações– Marcos de referência que possibilitam
administrar o progresso do software.
17
Elementos de um Processo – O 5W+1H (who, when, where, why, what e how)
18
Principais Temas em Engenharia de Software
• Gestão :– Processo de Software– Métricas– Planejamento– Análise de Riscos– Estimativas– Garantia da Qualidade– Gestão de Configuração
19
Principais Temas em Engenharia de Software
• Engenharia :– Engenharia de Sistemas– Análise– Design– Arquitetura– Interface Homem-máquina– Componentização– Testes– Orientação a Objetos– Métodos Formais– Requisitos– Desenvolvimento Web– Reuso 20
Encerrando nossa aulaNesta aula, tratamos sobre :
• Software– Entendendo por que um software não pode ser
comparado a produtos tangíveis, requerendo um tratamento diferenciado quando da gestão de projetos
– Discutindo e desfazendo os mitos criados sobre o desenvolvimento de software
– Compreendendo os impactos da Crise da Software em nossos projetos atuais
• Engenharia de Software– Conhecendo melhor a disciplina e sua aplicabilidade
aos projetos– Diferenciando as definições de Processos, Métodos e
Ferramentas– Entendendo como a Engenharia de Software pode
ajudar gestores de projetos de software 21