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
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