Engenharia de Software I

Slides:



Advertisements
Apresentações semelhantes
Análise e Projeto de Sistemas I
Advertisements

Introdução à Análise de Sistemas
Engenharia de Software
Gerência de Projetos Wesley Peron Seno Introdução
Engenharia de Requisitos
Prof.ª Adriana dos Santos Caparróz Carvalho
Engenharia de Software
Processo Lacen de Desenvolvimento de Software
Identificando requisitos
Processos de Software Introdução
Engenharia de Software
INTRODUÇÃO A INFORMÁTICA
Mitos e Problemas Relacionados ao Software
Faculdade de Ciências Sociais e Aplicadas de Petrolina – FACAPE
CK 119: Engenharia de Software DC/CC/UFC © Rossana Andrade, Setembro CK119: Engenharia de Software Rossana Andrade Ph.D, SITE, University of Ottawa,
Análise e Projeto de Sistemas
ENGENHARIA DE SOFTWARE: INTRODUÇÃO
Reutilização de Software
Noções de Engenharia de Software 1. 1 O problema do software 1
Análise e Projeto de Sistemas Centro Federal de Educação Tecnológica da Paraíba Coordenação de Informática Desenvolvimento de Software para a Internet.
Sistemas de Informação - Objetivos
Como Desenvolver Sistemas de Informação
Projeto para Desenvolvimento de Sistema
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Engenharia de Software
ENGENHARIA DE SOFTWARE
Introdução à Modelagem de Software
Administração de Tecnologia de Informação
RUPinho Qualidade de Software
Gestão de Projetos.
Ensino Médio Integrado em Informática Departamento de Ciências da Computação.
Engenharia de Software
Técnicas e Projeto de Sistemas
Engenharia de Software I
Planejamento e Gerenciamento de Projetos
Cap 2 – Processo de Software
Universidade São Marcos Curso: Gestão de Negócios Internacionais
Modelagem de Software.
IFSul – Campus Venâncio Aires
Engenharia de Software
Engenharia de Software
Análise e Projeto de Sistemas de Informação 2o. Semestre de 2014
Fundamentos de Engenharia de Software
Sistemas de Informação para Planejamento Estratégico
O Processo de desenvolvimento de software
Introdução à Engenharia de Software
Análise e Projeto de Sistemas de Informação 2o. Semestre de 2014
Engenharia de Software
Teste de Software Conceitos iniciais.
Engenharia de Software
Engenharia de software I
Engenharia de Software
Engenharia de Software
1/34 Engenharia de Software e Sistemas Alexandre Vasconcelos
Técnicas e Projeto de Sistemas
1. Como a engenharia de software pode contribuir no desenvolvimento de sistemas? 1.1 O problema do software 1.2 A velha crise do software 1.3 Os velhos.
1/37 Engenharia de Software e Sistemas Alexandre Monteiro.
Engenharia de Software Aula 02 – Introdução Prof. Adriana M. Martins.
Engenharia de Software
Engenharia de Software
Desenvolvimento Global de Software Mestrado de Informática / UFPB Francilene Procópio Garcia, D.Sc. Configuração do Processo - Parte.
Gerenciamento de Requisitos e Modelagem de sistemas
Engenharia de Software
Engenharia de Software
Erton W. Vieira Metodologias Ágeis, Qualidade de Software e Design Centrado no usuário: Pontos de Interação Erton W. Vieira.
RUP – Rational Unified Process Márcia Seabra Cabral Prof. Augusto Sampaio Centro de Informática - UFPE.
Apresentação Leonardo Brussolo de Paula
1 Projeto Piloto Conclusão em Agenda Projeto Piloto –Descrição –Execução da aplicação –Implementação de requisitos funcionais e não- funcionais.
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
Engenharia de Software Conceitos e elementos 1. Engenharia   Resolução de problemas através de soluções economicamente viáveis  Motivacão: Limitação.
Transcrição da apresentação:

Engenharia de Software I Prof. Josué Froner

Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar a definição modularidade e arquitetura, ciclo de vida do software, reutilização, medição, ferramentas e ambientes integrados, trabalhar a distinção entre engenharia de software e ciência da computação;

O que é software? Em geral, é o conjunto de programas, e sua respectiva documentação, que instruem computadores a realizar funções desejadas. Em termos simples, são conjuntos de instruções para um computador (NASA). Conjunto de programas, procedimentos, dados e documentação associados a um sistema de computador, e não somente ao programa em sí (PFLEEGER)

Compreendendo o software Desenvolvido por engenharia e não manufaturado; Não tem desgaste; Construção do software é exclusiva para o problema em questão. Desenvolvido através de códigos (linguagens); Diferentes tipos de aplicações.

Curva de falhas real para o software Curva ideal Curva real mudança tempo Índice de falhas

Software no tempo 50/60- sem metodologia, programar é arte 60 – conceito de estruturação: programação, projeto e análise estruturada 60/70 – inicio do SGBD´s 1976 – Modelo Entidade Relacionamento – Peter Shen 80 – Metodos: focados no processo x focados nos dados 81 – Eng. Informação : James Martin e Clive Finkelstein 84 – prevalencia da funcionalidade sobre os dados  origina a análise de PF, OO 95 – criação do conceito de caso de uso – Ivar Jacobson 96 – criação UML 97 – jacobson lança RUP 1950 1-orientacao batch, distribuição limitada, software customizado 2 – multiusuário, tempo real, banco de dados, produtos de software 3 – sistemas distribuídos, Inteligência embutida, Hardware de baixo custo, impacto de consumo 4 - sistemas de desk-top poderosos, tecnologias orientadas a objetos, sistemas especialistas, redes neurais artificiais, computação paralela 1960 1970 1980 1990 2000 utilizado para automatizar tarefas. nada mais é um conjunto de comandos que são rodados sequencialmente. Criado para o MS-DOS, o batch foi utilizado para o sistema operativo carregar programas para preparar o ambiente para rodar outros programas Mais info: http://www.cesarkallas.net/arquivos/faculdade/engenharia_de_software/02-Origens%20da%20Modelagem/Origens%20da%20Modelagem.pdf

Importância Software é fator que diferencia; Evolução do hardware  evolução do software = aproveitar as potencialidades; PARA QUÊ SOFTWARE? automatização de processos; melhorar qualidade das informações; apoiar decisões estratégicas; mais credibilidade as informações;

Crise do software Aflição crônica (Prf. Daniel Teichroew, 1989) Não funcionamento adequado; métodos de desenvolvimento; Processo de manutenção crescente com o aumento de software no mercado; Estimativas de prazos imprecisas; Produtividade dos trabalhadores da área não acompanham a demanda; Qualidade do software a desejar

Causas da aflição ou crise Elemento de sistema lógico e único -> desafio intelectual  probabilidade de falhas é um fato; Manutenção envolve correção ou modificação no projeto; Falta de experiência em gerenciamento de software; Profissionais com pouco treinamento formal.

Mitos Administrativos Do cliente Do profissional Utilização correta de manuais de padrões; CASE atualizadas mas sem utilização; Contratação de novos profissionais para compensar o atraso; Do cliente Objetividade profissional dos desenvolvedores e gerencia para com o anseio do cliente (detalhar, requisitos); Do profissional O trabalho nunca fica completo plenamente; Avaliação continua do trabalho não só quando está pronto; Entrega do software não é o fim temos a documentação do mesmo como base;

O que é Engenharia de Software? Definições formais Segundo Bauer (1969): estabelecimento e uso de princípios e métodos comprovadamente eficazes de engenharia a fim de obter software: Economicamente viável; Confiável; Operável em máquinas reais. Engenharia de software é a criação e a utilização de sólidos princípios de engenharia a fim de obter software de maneira econômica, que seja confiável e que trabalhe eficientemente em máquinas reais

Engenharia de Software (IEEE) Aplicação de abordagem sistemática, disciplinada e quantificada para o desenvolvimento, operação e manutenção do software. (IEEE, STD 610-1990) Além disso, compreende o estudo das abordagens em si. IEEE STD. 610 12-1990, IIEEE Sttandard Gllossary off Soffttware Engiineeriing Termiinollogy, IEEE, Piscataway, NJ, 1997. PAULK, M.C. et al. The Capattiibiilliitty Matturiitty Modell – Guiidelliines ffor iimproviing tthe soffttware process, Addison Wesley, SEI series, 1995.

Engenharia de Software Disciplina tecnológica e gerencial que se preocupa com a produção sistemática e a manutenção dos produtos de software que são desenvolvidos e modificados no tempo e seguindo estimativas de custos.(Fairley, 1985) Parte da engenharia de sistemas e de hardware, abrangendo um conjunto de três elementos fundamentais – métodos, ferramentas e procedimentos – possibilitando o gerenciamento e controle do processo de desenvolvimento de software visando a alta qualidade de desenvolvimento. (Pressman, 2006)

Engenharia de Software (Webopaedia) Disciplina no ramo da Ciência da Computação que se preocupa com o desenvolvimento de grandes aplicações de software. Cobre não somente os aspectos técnicos do desenvolvimento de sistemas de software, mas também questões relativas a gerenciamento, tais como a direção de equipes de programação, cronograma e orçamento.

Em resumo (SEI): Engenharia é a aplicação sistemática do conhecimento científico para a construção de soluções efetivas em custos para problemas práticos relativos à humanidade. Engenharia de Software é o ramo da engenharia que aplica conceitos da Ciência da Computação e da Matemática para alcançar soluções efetivas em custos para problemas de software.

Por que Engenharia de Software? Softwares que extraiam o potencial do hardware; Ritmo de demanda de novos programas; Projetos ruins e recursos inadequados interferem na manutenção de programas; objetivo: Sistematizar o processo de criação e manutenção de software

Problemática levantada Tempo longo para conclusão de programas; Custos elevados; Encontrar erros antes da entrega final do software para o cliente; Difícil medição do progresso de desenvolvimento;

Pilares da ES (4Ps+1F) - Jacobson Pessoas Projeto Produto Processo Ferramentas

Pessoas Arquitetos, desenvolvedores, engenheiros de teste, gerentes, usuários, clientes, patrocinadores, sponsors e todos os primariamente envolvidos em um projeto de software.

Projeto O elemento organizacional através do qual o desenvolvimento de software é gerenciado. O seu resultado é o produto.

Produto Artefatos que são criados durante o ciclo de vida do projeto, tais quais: modelos, código fonte, executáveis, e documentação. É o software per se.

Processo Definição do conjunto completo de atividades necessárias para a transformação dos requisitos dos usuários em um produto. Um processo é um modelo para a criação de projetos.

Ferramentas Software que é utilizado para a automação das atividades definidas no processo. Exemplo: ferramentas de engenharia de software auxiliada pelo computador (CASE) ou de gerenciamento de projeto.

Observação: O processo que guia o desenvolvimento deve ser orientado às pessoas, ou seja, é agradável para todas as pessoas que o utilizam…

Referências PRESSMAN, ROGER.S.ENGENHARIA DE SOFTWARE. SÃO PAULO: MAKRON, 2006 JURAN, J. GRYNA, FRANK. CONTROLE DA QUALIDADE: COMPONENTES BÁSICOS DA FUNÇÃO QUALIDADE - V.2 - SÃO PAULO : MAKRON, 1991. PFLEEGER, SHARI L. ENGENHARIA DE SOFTWARE: TEIORIA E PRÁTICA. 2.ED.SÃO PAULO: PRENTICE HALL, 2004. FAIRLEY, RICHARD. SOFTWARE ENGINEERING CONCEPTS. SINGAPORE: MCGRAW-HILL, 1985. http://www.er.les.inf.puc-rio.br/ http://www.sei.cmu.edu/ e http://www.sei.cmu.edu/pub/documents/92.reports/pdf/tr34.92.pdf http://engenhariadesoftware.blogspot.com/2007/02/o-que-software.html