20151-MATE08-Evolucao de Software(Christina)

Transcrição

20151-MATE08-Evolucao de Software(Christina)
UNIVERSIDADE FEDERAL DA BAHIA
SUPERINTENDÊNCIA ACADÊMICA
SECRETARIA GERAL DOS CURSOS
PROGRAMA DE COMPONENTES
CURRICULARES
COMPONENTE CURRICULAR
CÓDIGO
NOME
MATE08
MATE08 - Tópicos Especiais em Engenharia de Software I
CARGA HORÁRIA
T
P
34
17
E
MÓDULO
TOTAL
T
P
51
30
30
SEMESTRE VIGENTE
E
2015.1
PRÉ-REQUISITOS
Recomenda-se base em Engenharia de Software e Programação Orientada a Objetos.
EMENTA
Tópicos relacionados a Engenharia de Software.
OBJETIVOS
Em 2015.1, o enfoque da disciplina será em Evolução de Software. Os principais tópicos a serem discutidos são conceitos básicos de evolução e
manutenção de software, leis de evolução de software, envelhecimento de software, extração de dados de artefatos de software, compreensão
de software, engenharia reversa, recuperação de arquitetura e design de software, classificação de mudanças, solicitações de mudanças,
localização de conceitos, análise de impacto de mudanças, implementação e propagação de mudanças, refatoração, testes de software no
contexto de mudanças e mineração de repositórios.
Ao final do curso, estudantes terão discutido e trabalhado com conceitos e tendências na área de Evolução de Software, bem como usado
técnicas e ferramentas para estudar atributos de projetos de software existentes ao longo de sua evolução.
METODOLOGIA
Discussão e apresentação de artigos sobre Evolução de Software. Trabalhos em grupo, com uso de técnicas e ferramentas para estudar
atributos de projetos de software existentes ao longo de sua evolução, e apresentação de resultados.
CONTEÚDO PROGRAMÁTICO
1.
Fundamentos sobre Evolução de Software
1.1. Envelhecimento e decadência do software
1.2. Erosão arquitetural
1.3. Leis da evolução de software
1.4. Processo de mudanças incrementais
2.
O Processo de Mudanças
2.1. Localização de conceitos
2.2. Análise de impacto
2.3. Refatoração
2.4. Propagação de mudanças
2.5. Testes
2.6. Controle de versões
3.
Mineração de Repositórios de Software
3.1. Fundamentos e técnicas
3.2. Mineração em sistemas de controle de versões
3.3. Mineração em sistemas de acompanhamento de defeitos
4.
Tópicos Avançados
4.1. Evolução de bugs / predição de bugs / mapeamento de bugs
4.2. Evolução de arquitetura / evolução de violações arquiteturais / evolução de APIs
4.3. Compreensão de código
4.4. Visualização da evolução de software
4.5. Ensino / aprendizagem de evolução de software
BIBLIOGRAFIA PRINCIPAL
1.
2.
3.
4.
5.
6.
MENS, T.; DEMEYER, S. (Eds.) Software Evolution. Springer, 2008.
GRUBB, P.; TAKANG, A. A. Software Maintenance: Concepts and Practice. World Scientific Pub, 2003.
FEATHERS, M. Working Effectively with Legacy Code. Prentice Hall, 2004.
MADAHVJI, N. H.; FERNANDEZ-RAMIL, J.; PERRY, D. (Eds.). Software Evolution and Feedback: Theory and Practice. Wiley, 2006.
BENNET, K. H.; RAJLICH, V. T. Software Maintainance and Evolution: A Roadmap. Intl. Conference on Software Engineering. p. 73-87.
Limerick, Ireland, 2000. <http://doi.acm.org/10.1145/336512.336534>.
LEHMAN, M.M.; RAMIL, J.; WERNICK P.D.; PERRY, D.E.; TURSKI, W.M., Metrics and laws of software evolution - the nineties view.
4th Int. Software Metrics Symposium, 5-7 Nov. 1997. p. 20-32.
BIBLIOGRAFIA COMPLEMENTAR
1.
2.
JARZABEK, S. Effective Software Maintenance and Evolution: A Reuse-Based Approach. Auerbach Pub, 2007.
SEACORD, R. C.; PLAKOSH, D.; LEWIS, G. A. Modernizing Legacy Systems: Software Technologies, Engineering Processes, and
Business Practices. Addison-Wesley, 2003.
3. ARNOLD, R. S.; BOHNER, S. Software Change Impact Analysis. Los Alamitos, CA, USA: IEEE Computer Society Press, 1996.
4. DIEHL, S. Software Visualization: Visualizing the Structure, Behaviour, and Evolution of Software. Springer, 2007.
5. BROOKS, F. P. The Mythical Man-Month: Essays on Software Engineering. 2. ed. Addison-Wesley, 1995.
6. ORAM, A.; WILSON, G. Making Software: What Really Works, and Why We Believe It. O’Reilly, 2010.
7. FENTON, N. E.; PFLEEGER, S. H. Software Metrics: A Rigorous and Practical Approach. 2. ed. Londres, Reino Unido: Thomson, 1997.
8. FOWLER, M.; BECK, K.; BRANT, J.; OPDIKE, W.; ROBERTS, D. Refactoring: Improving the Design of Existing Code. Addison-Wesley,
1999.
9. PARNAS, D. "Software Aging". Proc. 16th Int'l Conference on Software Engineering (ICSE-16), Sorrento, Italy, 1994, pp. 279-287.
10. EICK S. et al., "Does Code Decay ?". IEEE Transactions on Software Engineering, Vol. 27, No. 1, January 2001, pp. 1-12.
11. GURP, J; BOSCH, J. Design Erosion: problems and causes. Journal of Systems and Software. 61(2): 105-119, 2002.
12. LEHMAN, M.M.; BELADY, L.A.; Program evolution: processes of software change, 1985. Academic Press Professional.
Assinatura e Carimbo do Chefe do Departamento
Programa aprovado em reunião plenária do dia ____/____/____
Assinatura e Carimbo do Coordenador do Curso
Programa aprovado em reunião plenária do dia ____/____/____

Documentos relacionados

Metrics and Laws of Software Evolution

Metrics and Laws of Software Evolution 1. A métrica baseada em quantidade e tamanho de módulos é consistente para o estudo do crescimento incremental do software? 2. A semântica de lei, definindo uma fórmula geral que enuncia uma relaçã...

Leia mais