Instituto de Computação - UFF Sincronizadores Algoritmos Distribuídos Professora: Lúcia Drummond.
UNIVERSIDADE DO ESTADO DO RIO GRANDE DO NORTE DEPARTAMENTO TECNOLÓGICO DE NOVA CRUZ DISCIPLINA...
Transcript of UNIVERSIDADE DO ESTADO DO RIO GRANDE DO NORTE DEPARTAMENTO TECNOLÓGICO DE NOVA CRUZ DISCIPLINA...
UNIVERSIDADE DO ESTADO DO RIO GRANDE DO NORTEDEPARTAMENTO TECNOLÓGICO DE NOVA CRUZ
DISCIPLINA INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃOPROFESSORA 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áliseProjetoImplementaçãoTeste
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.