Faculdade Pitágoras Engenharia de Software Prof.: Julio Cesar da Silva juliocesar@tecnocracia.eti.br Http://e-academy.com.br
Evolução do Software (1950 1965) - O hardware sofreu contínuas mudanças - O software era uma arte "secundária" para a qual havia poucos métodos sistemáticos - O hardware era de propósito geral - O software era específico para cada aplicação - Não havia documentação
Evolução do Software (1965 1975) - Multiprogramação e sistemas multiusuários - Técnicas interativas - Sistemas de tempo real - 1a geração de SGBD s - Produto de software - software houses - Bibliotecas de Software - Cresce no de sistemas baseado em computador - Manutenção quase impossível... CRISE DE SOFTWARE
Evolução do Software (1975 hoje) - Sistemas distribuídos - Redes locais e globais - Uso generalizado de microprocessadores - produtos inteligentes - Hardware de baixo custo - Impacto de consumo... CRISE DE SOFTWARE (aflição crônica???)
Evolução do Software Quarta era do software: atualidade - Tecnologias orientadas o objetos - Sistemas especialistas e software de inteligência artificial usados na prática - Software de rede neural artificial - Computação Paralela - Internet... CRISE DE SOFTWARE (aflição crônica???)
A crise de Software estimativas de prazo e de custo produtividade das pessoas qualidade de software software difícil de manter
10 Áreas da Eng. De Software Gerencia de Configuração: Identifica a configuração do sistema (características documentadas do hardware e software que compõem o sistema) de modo a controlar suas mudanças e garantir rastreabilidade (o que era antes e o que é agora). Gerência de Engenharia de Software: Metodologias para o desenvolvimento. Processo de Engenharia de Software: Define, implementa, mede, gerencia, modifica e aperfeiçoa o processo de desenvolvimento de software. Ferramentas e Métodos: Ferramentas de software que automatizam o processo de engenharia de software.
10 Áreas da Eng. De Software Qualidade de Software: Conjunto de atividades relacionadas com a garantia de qualidade, o seja o que é desejado do software conforme a solicitação original. Contempla a verificação e validação. Requisitos de software: Aquisição, análise, especificação e gestão de requisitos de software. Design de software: Transformação de requisitos em termos relevantes ao domnínio, explicando como solucionar o desafio de codificar. Construção de Software: Construção de programas funcionais e coerentes através da codificação, auto-validação e teste. Teste de Software: Verificação dinâmica do comportamento do programa através do uso de um conjunto finito de casos de testes. Manutenção de Software: Estabelecer o suporte apos a sua entrega.
Visão Geral
Visão Geral 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.
Circulo de Vida
Circulo de Vida
Metodologia na Engenharia de Software Em Engenharia de Software e no Gerenciamento de Projetos, uma metodologia é um conjunto estruturado de práticas que pode ser repetível durante o processo de produção de software. Por exemplo: Material de Treinamento, Programas de educação formais, Planilhas, e Diagramas. Metodologias de Engenharia de Software abrangem muitas disciplinas, incluindo Gerenciamento de Projetos, e as suas fases como: análise, projeto, codificação, teste, e mesmo a Garantia da Qualidade.
Metodologia na Engenharia de Software Na Engenharia de Software as principais abordagens de Metodologias são: Metodologia Estruturada: (Engenharia da Informação, SSADM e outras), as quais englobam muitos métodos e processos de software. Metodologia Orientada a Objetos: (OOA/OOD e outras) Metodologias de Desenvolvimento Ágil: Exitem varias metodologias que podem ser consideradas como abordagens ágeis entre elas: Scrum, Programação extrema, FDD, Crystal Clear, DSDM entre outras.
Metodologia na Engenharia de Software Critica: Muitos métodos tentam definir algoritmos rígidos para os programadores seguirem. Isto tem como efeito tornar os programas mais impessoais e menos interessantes. Isso diminui a motivação e a satisfação para os programadores. Normalmente os programadores costumam resistir a métodos muito rígidos. Contra argumento: A maior parte dos trabalhadores resistem a usar uma metodologia. Um método pode ser prejudicial ao ego quando você coloca neste termos. Todavia, isto não e um ponto de vista válido que deva ser aceito para todos os métodos, especialmente quando um método é um modelo que não se adapta bem ao trabalho. Neste casos, isto significa que um programador deve ser capaz de propor mudanças para qualquer método ou metodologia, e receber explicações se tais mudanças não forem aceitáveis.
Ferramentas para a Engenharia de Software IBM Rational RequisitePro http://www-306.ibm.com/software/awdtools/reqpro/ A solução RequisitePro é uma ferramenta para gerenciamento de requisitos e casos de uso para equipes de projeto que desejam melhorar o entendimento dos objetivos do projeto, melhorar o desenvolvimento colaborativo, reduzir riscos e aumentar a qualidade de aplicações antes da entrega. EasyRM Version 1.06 http://www.easy-rm.ch/ O gerenciador de requisitos EasyRM é uma ferramenta case baseada em componentes focada nas fases iniciais do ciclo de vida de um projeto. Quando o projeto foi estabelecido, requisitos do projeto são reunidos e sincronizados e glossários de termos e frases específicos do projeto são compilados.
Ferramentas para a Engenharia de Software Borland Caliber Analyst http://www.borland.com/br/products/caliber/ Suíte formada por dois produtos principais: Borland Caliber DefineIT: sistema de definição de requisitos de software para a definição precisa de requisitos de software completos logo no começo de um novo projeto ou de uma atividade de aperfeiçoamento. Borland CaliberRM: software para o gerenciamento de requisitos que facilita a colaboração, a análise de impacto e a comunicação durante todo o ciclo de desenvolvimento do software, ajudando a gerenciar as expectativas e a assegurar que as aplicações atendam às necessidades dos usuários finais.
Ferramentas para a Engenharia de Software Serena Dimensions RM http://www.serena.com/products/dimensions/dimensions-requirements.html O Serena Dimensions RM apóia múltiplos usuários trabalhando sobre os mesmos requisitos ao mesmo tempo, implementando controle de lock em um repositório de requisitos. O conjunto de ferramentas do Serena Dimensions RM possui a habilidade de capturar informação gráfica como objetos de requisitos rastreáveis. Uma ferramenta de definição de classes é fornecida para permitir ao usuário modelar qualquer tipo de dado hierárquico do projeto (documento de requisitos, hierarquias, estrutura de elementos do sistema). Uma vez definida a hierarquia, relacionamentos genéricos pode também ser criados para permitir referência cruzada entre qualquer item de dados. O Serena Dimensions RM é a uma ferramenta projetada para gerenciar todos os dados de desenvolvimento.
Procedimentos Procedimentos: constituem o elo de ligação entre os métodos e ferramentas: - seqüê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.
Bibliografia PRESSMAN, R. S. Engenharia de Software. Makron Books. SOMMERVILLE, I. Software Engineering. Addison-Wesley. COLEMAN, D; ARNOLD, P.; BODOFF, S.; DOLLIN, C.; GILCHRIST, H.; HAYES, F.; JEREMAES, P. Desenvolvimento Orientado a Objetos: O Método Fusion. Rio de Janeiro, Campus, 1994. FURLAN, J.D. Modelagem de Objetos através da UML. Makron Books, 1998.
Atividade II Desenvolva uma análise comprando os dois gráficos abaixo: índice de falhas mortalidade infantil desgaste tempo
Atividade II índice de falhas mudança curva real curva idealizada tempo Enviar até o dia 19/09. Pode ser por e-mail. Nome completo, disciplina e curso.