Uma Ferramenta para Auxílio na Avaliação de Usabilidade de APIs
Resumo
A utilização de Application Programming Interfaces (APIs) nos dias atuais é visivelmente muito ampla. Elas são utilizadas nos mais diversos sistemas, ubíquos ou não, através do uso de bibliotecas. Estas bibliotecas são utilizadas por diversas razões, principalmente visando a reutilização de código, o que pode implicar em diminuição no tempo de desenvolvimento de um sistema. Este trabalho descreve a ferramenta MetriX, que tem como objetivo auxiliar usuários em tarefas de avaliação de usabilidade de APIs através de métricas de complexidade. A ferramenta utiliza métricas de complexidade de software para gerar visualizações que irão auxiliar o usuário durante a avaliação de APIs e a escolha de qual API utilizar baseado na facilidade de uso da mesma.
Referências
Archer, C. B., Stinson, M. C. (1998). "Object-oriented software product metrics" (tutorial). In SIGCPR ’98: Proceedings of the 1998 ACM SIGCPR conference on Computer personnel research, pages 305–306, New York, NY, USA. ACM.
Bandi, R. K., Vaishnavi, V. K., Turk, D. E. (2003). "Predicting maintenance performance using object-oriented design complexity metrics". IEEE Trans. Softw. Eng., IEEE Press, Piscataway, NJ, USA, v. 29, n. 1, p. 77–87, 2003. ISSN 0098-5589.
Bederson, B. B., Shneiderman, B., Wattenberg, M. (2002) "Ordered and quantum treemaps: Making efective use of 2d space to display hierarchies", ACM Trans. Graph., ACM, New York, NY, USA, v. 21, n. 4, p. 833 – 854, ISSN 0730-0301.
Boudreau, T., Glick, J., Spurlin, V. (2002) Netbeans: the Definitive Guide. O'Reilly & Associates, Inc.
Boxall, M. A. S., Araban, S. (2004) "Interface metrics for reusability analysis of components". Australian Software Engineering Conference, v. 20, n. 6, p. 40–51.
Coulson, G., Blair, G., Grace, P., Taiani, F., Joolia, A., Lee, K., Ueyama, J., and Sivaharan, T. (2008). "A generic component model for building systems software". ACM Trans. Comput. Syst. 26, v. 1, p. 1–42.
Ellis, B., Stylos, J., Myers, B. (2007) "The factory pattern in API design: A usability evaluation", IEEE Computer Society, Washington, DC, USA, p. 302 – 312.
Fenton, N.E., Pfleeger, S.L. (1997) "Software Metrics: A Rigorous & Practical Approach”. Second ed., London: PWS Publishing Company.
Gamma, E., Beck, K. (2003) "Contributing to Eclipse: Principles, Patterns, and Plugins". Addison Wesley Longman Publishing Co., Inc.
Gamma, E., Helm, R., Johnson, R.,Vlissides, J. (1995). Design patterns: elements of reusable object-oriented software. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.
Heer, J., Card, S. K., Landay, J. A. (2005) "Prefuse: a toolkit for interactive information visualization". SIGCHI Conference on Human Factors in Computing Systems. CHI '05. ACM, p. 421–430
Júnior, S. F. de S., Souza, C. R. B. de. (2008) "Visualização integrada de múltiplas métricas de redes sociais", Workshop on Information Visualization and Analysis in Social Networks, WIVA, Campinas, São Paulo, Brasil. ISSN 9788576692058.
Lanza, M., Marinescu, R., Ducasse, S. (2005) "Object-Oriented Metrics in Practice". Secaucus, NJ, USA: Springer-Verlag New York, Inc.. ISBN 3540244298.
Larman, C. (2001) "Protected variation: The importance of being closed", IEEE Software, IEEE Computer Society, Los Alamitos, CA, USA, v. 18, n. 3, p. 89 – 91. ISSN 07407459.
Lee, Y., Yang, J., Chang, K. H. (2007) "Metrics and Evolution in Open Source Software". Seventh international Conference on Quality Software IEEE Computer Society, Washington, DC, 191–197.
Leslie, D. M. (2002) "Using javadoc and XML to produce api reference documentation", ACM, New York, NY, USA, p. 104 – 109.
Madahain, J. O., Fisher, D., Smyth, P., White, S., Boey, Y., (2007) "Analysis and Visualization of Network Data using JUNG". Journal of Statistical Software, n.2
Nielsen, J., Molich, R. (1990) "Heuristic evaluation of user interfaces", CHI '90: SIGCHI conference on Human factors in computing systems, ACM, Seattle, Washington, United States, p. 249 – 256. ISBN 0-201-50932-6
Parnas, D. L. (1972) "On the criteria to be used in decomposing systems into modules. Commun", ACM, ACM, New York, NY, USA, v. 15, n. 12, p. 1053 – 1058. ISSN 0001-0782.
Simon, H. A. (1996). The Architecture of Complexity: Hierarchical Systems. The Sciences of the Artificial. Cambridge, MA, The MIT Press: 183-216.
Stylos, J. (2006) "Informing API design through usability studies of API design choices: A research abstract", IEEE Computer Society, Washington, DC, USA, p. 246 – 247.
Stylos, J., Myers, B. A. (2008) "The implications of method placement on API learnability". ACM, New York, NY, USA, p. 105 – 112.
Tulach, J. (2008) "Practical API Design: Confessions of a Java Framework Architect", Berkeley, CA, USA: Apress. ISBN 1430209739, 9781430209737.
Weiser, M. (1991). "The computer for the 21st century". Scientific American, v. 265, n. 3, p. 94–104.
Weyuker, E. J. (1988) "Evaluating software complexity measures". IEEE Trans. Softw. Eng., IEEE Press, Piscataway, NJ, USA, v. 14, n. 9, p. 1357–1365, ISSN 0098-5589.
