UNIVERSIDADE DO ESTADO DO RIO GRANDE DO NORTE DEPARTAMENTO TECNOLÓGICO DE NOVA CRUZ DISCIPLINA INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO PROFESSORA LYRENE ENGENHARIA DE SOFTWARE ALESSANDRA FERNANDA ANNY CAROLINE FREIRE KATYANE BRAZ O que é um Software Programa de computador + documentação associada Software podem ser desenvolvidos para clientes particulares ou mercado geral Eles podem ser: - Genéricos - Personalizados ou Específicos O QUE É ENGENHARIA DE SOFTWARE?? É uma disciplina de engenharia que está preocupada com todos os aspectos da produção de software. CICLO DE VIDA DO SOFTWARE Fases: Análise Projeto Implementação Teste BASES DAS TENDÊNCIAS MODERNAS DO SOFTWARE Modelo Cachoeira Modelo Incremental - Prototipação - Evolucionária - Descartável - Modelo Espiral - Planejamento - Análise dos riscos - Engenharia - Avaliação do Cliente Modelo Incremental DESENVOLVIMENTO OU FERRAMENTA “CASE” O que é um ‘CASE’? Software que procura fornecer suporte automatizado para atividades de processo de software. DESENVOLVIMENTO CASE Planejamento de Projeto Ferramentas de Gerencia de Projeto Ferramentas de Documentação Ferramentas de Prototipação e Simulação Ferramentas de Projeto de Interfaces Ferramentas de Programação MODULARIDADE O que é? Para quê serve? Diagramação De classes Estrutural Aclopamento Aclopamento de Dados Aclopamento de Controle Coesão Designar o grau de relacionamento entre as partes internas de um módulo. Divididas em: - COESÃO DE LÓGICA - COESÃO FUNCIONAL Metodologias de Projeto O desenvolvimento de metodologias para projetar sistemas de software é uma investigação fundamental na engenharia do software. CIMA-BAIXO versus BAIXO-CIMA – PADRÕES DE PROJETO – DESENVOLVIMENTO CÓDIGO ABERTO PADRÃO EDITOR - ASSINANTE FERRAMENTAS DE OFÍCIO Sistema notacional para auxiliar na análise e projetos de sistemas. - DIAGRAMA DE FLUXO DE DADOS - DICIONÁRIO DE DADOS - DIAGRAMA DE ENTIDADE E RELACIONAMENTOS DIAGRAMA DE FLUXO DE DADOS DIAGRAMA DE ENTIDADE E RELACIONAMENTO TESTE DE SOFTWARE É uma das fases do processo da engenharia de software que visa atingir um nível de qualidade de produto superior. O objetivo, por paradoxal que seja, é o mesmo de encontrar defeitos no produto, para que estes possam ser corrigidos pela equipe de programadores, antes da entrega final. TÉCNICAS DE TESTES Tem por objetivo principal encontrar falhas no software. Possui três técnicas mais conhecidas: a. CAIXA BRANCA b. CAIXA PRETA c. CAIXA CINZA TESTES ALPHA BETA GAMA DOCUMENTAÇÃO Mostra uma parte importante do software. Um sistema de software tem pouca utilidade,a menos que as pessoas possam entendê-lo e mantê-lo. Dividida em: - DOCUMENTAÇÃO DE USUÁRIO - DOCUMENTAÇÃO DE SISTEMA ITENS DA RESPONSABILIDADE PROFISSIONAL CONFIABILIDADE COMPETÊNCIA DIREITOS DE PROPRIEDADE INTELECTUAL “ABUSO” DO COMPUTADOR ACM/IEEE CÓDIGO DE ÉTICA O maior competidor da ACM é o IEEE É difícil generalizar corretamente sobre a diferença entre ambas, mas ACM foca-se em teoria da ciência da computação e em aplicações para usuários finais enquanto o IEEE foca-se mais em hardware e questões de padronização. CONSIDERAÇÕES FINAIS A Engenharia de Software (ES) surgiu em meados dos anos 1970 numa tentativa de contornar a crise do software e dar um tratamento de engenharia (mais sistemático e controlado) ao desenvolvimento de sistemas de software complexos. Um sistema de software complexo se caracteriza por um conjunto de componentes abstratos de software (estruturas de dados e algoritmos) encapsulados na forma de procedimentos, funções, módulos, objetos ou agentes interconectados entre si, compondo a arquitetura do software, que deverão ser executados em sistemas computacionais. BIBLIOGRAFIA – – – – – – – – – – – – – http://pt.wikipedia.org/wiki/Association_for_Computing_Machinery http://pt.wikipedia.org/wiki/Teste_de_software http://www.novateceditora.com.br/livros/uml/ http://pt.wikipedia.org/wiki/Engenharia_de_software http://www-di.inf.puc-rio.br/~julio//engsof.htm http://www.sbc.org.br/ http://www.dimap.ufrn.br/~jair/ES/index.html http://www.siemens.com.br/templates/coluna1.aspx?channel=3511 http://www.wppf.uaivip.com.br/praxis/conteudo.htm http://www.mundooo.com.br/php/modules.php?name=MOOArtigos&pa =showpage&pid=20 http://www.lia.ufc.br/~windson/engsoft.html FEDELI, Ricardo Daniel. PERES, Fernando Eduardo. POLLONI, Eurico Giulio. Introdução à Ciência da Computação. – São Paulo : Pioneira Thomson Learning, 2003. BROOKSHEAR, J. Glenn. Ciência da Computação: uma visão abrangente. – Porto Alegre : Bookman, 2005.