Seminários
Avaliação dos seminários
Disponibilizar a apresentação para a lista de discussão antes do início do seminário (sem disponibilização no grupo, a nota do seminário inteiro será nula).
Planejar uma hora para a apresentação e meia hora para a demonstração da ferramenta/técnica/metodologia.
Serão avaliados os seguintes aspectos:
a qualidade da apresentação;
a qualidade dos slides;
a cobertura abrangente dos artigos propostos para a leitura (ou de outros artigos/materiais que o grupo resolver utilizar);
o aprofundamento do tópico pela explanação adequada dos artigos propostos para a leitura;
a demonstração de uma ferramenta.
01 - Engenharia reversa e recuperação de design
Artigo principal:
Korn, Jeffrey, Yih-Farn Chen, and Eleftherios Koutsofios. "Chava: Reverse engineering and tracking of java applets." In Reverse Engineering, 1999. Proceedings. Sixth Working Conference on, pp. 314-325. IEEE, 1999.
Artigos complementares:
Brunet, Joao, Dalton Serey, and Jorge Figueiredo. "Structural conformance checking with design tests: An evaluation of usability and calability." In Software Maintenance (ICSM), 2011 27th IEEE International Conference on, pp. 143-152. IEEE, 2011.
Chen, Y-F., Michael Y. Nishimoto, and C. V. Ramamoorthy. "The C information abstraction system." Software Engineering, IEEE Transactions on 16, no. 3 (1990): 325-334.
Armstrong, Matthew N., and Chris Trudeau. "Evaluating architectural extractors." In Reverse Engineering, 1998. Proceedings. Fifth Working Conference on, pp. 30-39. IEEE, 1998.
Ferramentas:
Design Wizard:https://sites.google.com/site/designwizardhomepage/
Analizo: http://analizo.org/
Links adicionais:
http://martinfowler.com/ieeeSoftware/coupling.pdf
02 - Recuperação arquitetural
Artigo principal:
Pollet, Damien, Stephane Ducasse, Loic Poyet, Ilham Alloui, Sorana Cimpan, and Herve Verjus. "Towards a process-oriented software architecture reconstruction taxonomy." In Software Maintenance and Reengineering, 2007. CSMR'07. 11th European Conference on, pp. 137-148. IEEE, 2007.
Artigos complementares:
Bowman, Ivan T., Richard C. Holt, and Neil V. Brewster. "Linux as a case study: Its extracted software architecture." In Proceedings of the 21st international conference on Software engineering, pp. 555-563. ACM, 1999.
Godfrey, Michael W., and Eric HS Lee. "Secrets from the monster: Extracting Mozilla’s software architecture." In Proceedings of Second Symposium on Constructing Software Engineering Tools (CoSET’00). 2000.
Wiggerts, Theo A. "Using clustering algorithms in legacy systems remodularization." In Reverse Engineering, 1997. Proceedings of the Fourth Working Conference on, pp. 33-43. IEEE, 1997.
Ferramentas:
Structure101 Studio: http://structure101.com/products/
Lattix LDM: http://www.lattix.com/
SonarGraph: http://www.hello2morrow.com/products/sonargraph
03 - Reengenharia de sistemas legados
Artigo principal:
Pérez-Castillo, Ricardo, et al. "Reengineering Technologies." Software, IEEE 28.6 (2011): 13-17.
Artigos complementares:
Sneed, Harry M. "Estimating the costs of a reengineering project." In Reverse Engineering, 12th Working Conference on, pp. 9-pp. IEEE, 2005.
Murphy, Gail C., and David Notkin. "Reengineering with reflexion models: A case study." Computer 30, no. 8 (1997): 29-36.
Chikofsky, Elliot J., and James H. Cross. "Reverse engineering and design recovery: A taxonomy." Software, IEEE 7, no. 1 (1990): 13-17.
Ferramentas:
Structure101 Studio: http://structure101.com/products/
Lattix LDM: http://www.lattix.com/
Software Architecture Warehouse: http://saw.inf.unisi.ch/drupal/
04 - Controle de versões distribuído
Artigo principal:
O'Sullivan, Bryan. "Making sense of revision-control systems." Communications of the ACM 52, no. 9 (2009): 56-62.
Artigos complementares:
Spinellis, Diomidis. "Version control systems." Software, IEEE 22.5 (2005): 108-109.
Lanubile, Filippo, Christof Ebert, Rafael Prikladnicki, and Aurora Vizcaíno. "Collaboration tools for global software engineering." Software, IEEE 27, no. 2 (2010): 52-55.
Bird, Christian, Peter C. Rigby, Earl T. Barr, David J. Hamilton, Daniel M. German, and Prem Devanbu. "The promises and perils of mining git." In Mining Software Repositories, 2009. MSR'09. 6th IEEE International Working Conference on, pp. 1-10. IEEE, 2009.
Ferramentas:
Git: http://git-scm.com/
Mercurial: http://mercurial.selenic.com/
Bazaar: http://bazaar.canonical.com/en/
Links adicionais:
http://blogs.gnome.org/newren/2008/03/01/happenings-in-the-vcs-world/
http://en.wikipedia.org/wiki/Comparison_of_revision_control_software
http://en.wikipedia.org/wiki/Software_configuration_management
05 - Gerência de mudanças
Artigo principal:
Serrano, Nicolas, and Ismael Ciordia. "Bugzilla, ITracker, and other bug trackers." Software, IEEE 22, no. 2 (2005): 11-13.
Artigos complementares:
Zimmermann, Thomas, Rahul Premraj, Jonathan Sillito, and Silvia Breu. "Improving bug tracking systems." In Software Engineering-Companion Volume, 2009. ICSE-Companion 2009. 31st International Conference on, pp. 247-250. IEEE, 2009.
Just, Sascha, Rahul Premraj, and Thomas Zimmermann. "Towards the next generation of bug tracking systems." In Visual Languages and Human-Centric Computing, 2008. VL/HCC 2008. IEEE Symposium on, pp. 82-85. IEEE, 2008.
Bettenburg, Nicolas, Sascha Just, Adrian Schröter, Cathrin Weiss, Rahul Premraj, and Thomas Zimmermann. "What makes a good bug report?." In Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering, pp. 308-318. ACM, 2008.
Ferramentas:
Redmine: http://www.redmine.org/
Mantis: http://www.mantisbt.org/
Links adicionais:
http://en.wikipedia.org/wiki/Bug_tracking_system
http://www.joelonsoftware.com/articles/fog0000000029.html
06 - Integração contínua
Artigo principal:
Fowler, Martin, and Matthew Foemmel. "Continuous integration." Thought Works. http://www.martinfowler.com/articles/continuousIntegration.html (2006).
Artigos complementares:
Duvall, Paul, Steve Matyas, Andrew Glover. "Introducing continuous integration". JavaWorld.com, http://www.javaworld.com/javaworld/jw-06-2007/jw-06-awci.html (2006).
Holck, Jesper, and Niels Jørgensen. "Continuous integration and quality assurance: A case study of two open source projects." Australasian Journal of Information Systems 11, no. 1 (2007).
Deshpande, Amit, and Dirk Riehle. "Continuous integration in open source software development." In Open Source Development, Communities and Quality, pp. 273-280. Springer US, 2008.
Ferramentas:
Jenkins: http://jenkins-ci.org/
CruiseControl: http://cruisecontrol.sourceforge.net/
Links adicionais:
http://en.wikipedia.org/wiki/Continuous_integration
http://en.wikipedia.org/wiki/Comparison_of_continuous_integration_software
http://www.blogdopedro.net/2009/03/04/traducao-do-artigo-sobre-integracao-continua/
http://c2.com/cgi/wiki?ContinuousIntegration
07 - Processos ágeis e evolução de software
Artigo principal:
Beck, Kent, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning et al. "The agile manifesto." The agile alliance 200, no. 1 (2001).
Artigos complementares:
Beck, Kent. "Embracing change with extreme programming." Computer 32, no. 10 (1999): 70-77.
Rising, Linda, and Norman S. Janoff. "The Scrum software development process for small teams." Software, IEEE 17, no. 4 (2000): 26-32.
Hiranabe, Kenji. "Kanban applied to software development: From agile to lean." InfoQ. URL: http://www. infoq. com/articles/hiranabe-lean-agile-kanban [accessed 7 March 2013] (2008).
Metodologias:
Links adicionais:
http://en.wikipedia.org/wiki/Agile_software_development
08 - Predição de bugs
Artigo principal:
Lewis, Chris, Zhongpeng Lin, Caitlin Sadowski, Xiaoyan Zhu, Rong Ou, and E. James Whitehead Jr. "Does bug prediction support human developers? findings from a google case study." In Proceedings of the 2013 International Conference on Software Engineering, pp. 372-381. IEEE Press, 2013.
Artigos complementares:
Kim, Sunghun, Thomas Zimmermann, E. James Whitehead Jr, and Andreas Zeller. "Predicting faults from cached history." In Proceedings of the 29th international conference on Software Engineering, pp. 489-498. IEEE Computer Society, 2007.
Rahman, Foyzur, Daryl Posnett, Abram Hindle, Earl Barr, and Premkumar Devanbu. "BugCache for inspections: hit or miss?." In Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering, pp. 322-331. ACM, 2011.
D'Ambros, Marco, Michele Lanza, and Romain Robbes. "An extensive comparison of bug prediction approaches." In Mining Software Repositories (MSR), 2010 7th IEEE Working Conference on, pp. 31-41. IEEE, 2010.
Links adicionais:
http://google-engtools.blogspot.com.br/2011/12/bug-prediction-at-google.html
09 - Contextualização
Artigo principal:
Kersten, Mik, and Gail C. Murphy. "Using task context to improve programmer productivity." Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering. ACM, 2006.
Artigos complementares:
Sawadsky, Nicholas, Gail C. Murphy, and Rahul Jiresal. "Reverb: recommending code-related web pages." In Proceedings of the 2013 International Conference on Software Engineering, pp. 812-821. IEEE Press, 2013.
Mockus, Audris, and James D. Herbsleb. "Expertise browser: a quantitative approach to identifying expertise." In Proceedings of the 24th international conference on software engineering, pp. 503-512. ACM, 2002.
Robillard, Martin, Robert Walker, and Thomas Zimmermann. "Recommendation systems for software engineering." Software, IEEE 27, no. 4 (2010): 80-86.
Ferramentas:
Mylyn: http://www.tasktop.com/mylyn
Expertise Browser: http://mockus.us/ExV/
Links adicionais:
http://www.felienne.com/?p=2920
10 - Evolução de APIs e reuso
Artigo principal:
Montandon, João Eduardo, Hudson Borges, Daniel Felix, and Marco Tulio Valente. "Documenting APIs with Examples: Lessons Learned with the APIMiner Platform." 20th Working Conference on Reverse Engineering (WCRE), Practice Track, p. 1-8, 2013.
Artigos complementares:
Duala-Ekoko, Ekwa, and Martin P. Robillard. "Using structure-based recommendations to facilitate discoverability in APIs." In ECOOP 2011–Object-Oriented Programming, pp. 79-104. Springer Berlin Heidelberg, 2011.
Thummalapenta, Suresh, and Tao Xie. "Parseweb: a programmer assistant for reusing open source code on the web." In Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering, pp. 204-213. ACM, 2007.
Duala-Ekoko, Ekwa, and Martin P. Robillard. "Asking and answering questions about unfamiliar apis: An exploratory study." In Proceedings of the 2012 International Conference on Software Engineering, pp. 266-276. IEEE Press, 2012.
Ferramentas:
API Miner: http://java.llp2.dcc.ufmg.br/apiminer
API Explorer: http://www.cs.mcgill.ca/~swevo/explorer/
ParseWeb: http://research.csc.ncsu.edu/ase/projects/parseweb/