• Nenhum resultado encontrado

O objetivo principal deste relatório de estágio é a descrição da implementação de um

chatbot em arquitetura de microsserviços para a imputação de horas de trabalho e de despesas

por parte dos colaboradores da empresa Armis Group, através do canal da Microsoft Teams da empresa. Além este objetivo principal, foi proposto investigar o conceito de arquiteturas de microsserviços, as suas diferenças em relação às arquiteturas legadas e as tecnologias necessárias para as implementar, bem como os conceitos de chatbot, as suas caraterísticas, classificação e estudo comparativo. Todos estes objetivos serviram para atingir o objetivo principal.

Da leitura do segundo capítulo, foi possível perceber que antes das arquiteturas de microsserviços existiam os sistemas legados, ou seja, grandes sistemas de software vitais para uma organização, geralmente codificados em linguagens ultrapassadas, difíceis de manter e utilizar. Com os desafios da modernização, surgiram as arquiteturas orientadas a serviços – SOA, que assentam na implementação de componentes como serviços modulares e usados por clientes. Foi ainda possível compreender a definição de arquiteturas de microsserviços, bem como as diferenças entre as atuais e as anteriores e porque é que são o caminho a seguir atualmente.

Da leitura do terceiro capítulo, foi possível perceber os conceitos de chatbots, como surgiram, a sua classificação e caraterísticas. Foi definida uma classificação para o relatório de estágio com base num artigo científico, o que permitiu a realização de um estudo comparativo entre vários chatbots comerciais e de investigação.

Da leitura do quarto, quinto e sexto capítulos, foi possível fazer o levantamento de requisitos do projeto, seguindo o modelo FURPS+ da engenharia de requisitos, foi possível descrever as tecnologias usadas para a implementação do chatbot em arquitetura de microsserviços disponibilizado no Azure, apresentando os testes unitários, de integração e de qualidade realizados, importantes para perceber se o código está devidamente preparado para o processo de produção.

Assim, pode dizer-se que ainda que a totalidade dos objetivos não tenha sido atingida na perfeição, por faltar implementar no chatbot uma componente de inteligência artificial capaz de analisar padrões comportamentais dos colaboradores, o objetivo principal proposto foi atingido

criado em arquitetura de microsserviços. Além disso, como contributo adicional, os microsserviços desenvolvidos estão a ser usados noutro projeto da Armis Group num módulo de gestão de projetos e reporte de horas realizado em Angular com integração numa web part de

Sharepoint Online.

7.2 Apreciação Crítica

Esta secção visa analisar os resultados obtidos do projeto e as demais vertentes do estágio, de forma a revelar um pouco do processo e da história que conduziu ao resultado apresentado.

A experiência adquirida ao longo deste projeto de estágio em Mestrado em Engenharia Informática tem uma importância significativa no percurso académico do estudante, uma vez que, desta forma, agrega às já comprovadas competências no plano académico, as competências do foro profissional. Esta afirmação é reforçada pelo facto de o conteúdo da unidade curricular Dissertação/Estágio/Projeto da UTAD na sua segunda vertente (Estágio) permitir fugir dos moldes mais convencionais da dissertação académica. Quer isto dizer que, a situação mais típica é existir um problema claro para o qual se pretende desenvolver uma solução tecnológica. Nesse contexto, o estudante deve procurar identificar a arte já desenvolvida para resolver o problema ou problemas semelhantes e pensar em inovações que a sua solução pode apresentar. Nesse momento inicia os processos de análise, design, implementação e testes de forma a apresentar uma solução bem estruturada, documentada e inovadora. Todas estas tarefas são possíveis de planear e estimar à partida, o que facilita no controlo da execução do projeto. No entanto, não é a situação mais frequente no ambiente profissional, primeiramente porque grande parte do trabalho desenvolvido por profissionais de tecnologias de informação é dirigido para a manutenção em detrimento do desenvolvimento, depois, um profissional tem tendência a prestar a sua atividade em conciliação com os objetivos da entidade patronal, o que dá aso, frequentemente, a uma flutuação no foco do trabalho a desenvolver em função da realidade extremamente volátil. Por isso, este projeto de estágio tem um contexto mais próximo da realidade vivida no mundo empresarial do que a realidade vivida no mundo académico.

A adaptação à empresa deu-se de forma bastante natural, devido ao seu ambiente informal e de proximidade entre colaboradores. A equipa onde o estagiário se integrou possui membros dotados de uma elevada capacidade técnica e também social, o que permitiu que evoluísse de uma forma rápida e com baixos níveis de stress. A adaptação às áreas dos microsserviços e

chatbots teve uma curva de aprendizagem longa devido à inexperiência do estagiário com estas

tecnologias, fruto de não serem lecionadas nas unidades curriculares de Engenharia Informática na UTAD, no entanto, adquiriu-se o conhecimento necessário para implementar grande parte do que foi proposto.

Porventura, as questões mais difíceis no decorrer deste estágio foram a conciliação de horários para dialogar com a equipa de coorientação e a implementação de inteligência artificial avançada capaz de automatizar diversos aspetos do chatbot. Independentemente destas questões, a avaliação que se faz deste relatório é significativamente positiva, já que este documento reflete de forma honesta e transparente todo o trabalho desenvolvido.

7.3 Trabalho Futuro

O trabalho apresentado neste relatório de estágio, apesar de ser completo por si só, não esgota totalmente as potencialidades do tema, tal como o modelo proposto, que não representa uma solução definitiva para o problema, mas antes uma contribuição valiosa para a empresa. Assim, são apresentadas em seguida algumas linhas de orientação futura que ambicionam inspirar a continuidade deste projeto. Um dos pontos mais frágeis desta proposta é a segurança do chatbot e dos respetivos microsserviços. Outro ponto frágil é a ausência de uma componente de inteligência artificial (além das que já possui, como o reconhecimento de texto) capaz de analisar padrões dos comportamentos dos colaboradores em relação às imputações. No futuro, com os dados provenientes das interações com o chatbot será possível integrar esta componente de inteligência artificial de forma a tornar o chatbot mais eficiente e autónomo. Em colaboração com o departamento de segurança da Armis, será também possível melhorar a segurança do

chatbot e dos microsserviços que o suportam. Fica também em aberto a possibilidade de integrar

8 BIBLIOGRAFIA

About xUnit.net. (2019). Retrieved May 21, 2019, from https://xunit.net Ali, A. (2017). Cleverbot - Chat with AI. Retrieved January 25, 2019, from https://www.dawn.com/news/1356495

Almendros-Jimenez, J. M., & Iribarne, L. (2005, April). Designing GUI components from UML use cases. In 12th IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS'05) (pp. 210-217). IEEE. doi: 10.1109/ECBS.2005.31 Ammann, P., & Offutt, J. (2016). Introduction to software testing. Cambridge University Press.

Andersin, J. (2004). TPI–a model for Test Process Improvement. Department of Computer Science, University of Helsinki (http://www. cs. helsinki. fi/u/paakki/Andersin. pdf), Helsinki. Augello, A., Gentile, M., Weideveld, L., & Dignum, F. (2016). A Model of a Social Chatbot (pp. 637–647). doi:10.1007/978-3-319-39345-2_57

Arif, S. (2018). Chatbots Past & Future. Retrieved March 21, 2019, from https://medium.com/swlh/chatbots-past-future-8df2076192e5

Arsanjani, A. (2004). Service-oriented modeling and architecture. IBM developer works, 1, 15.

Baudart, G., Hirzel, M., Mandel, L., Shinnar, A., & Siméon, J. (2018). Reactive chatbot programming. Proceedings of the 5th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems - REBLS 2018, 21–30.

Beavers, A. (2013). Alan Turing: Mathematical Mechanist. In Cooper, S. Barry; van

Leeuwen, Jan. Alan Turing: His Work and Impact. Waltham: Elsevier. pp. 481–485. Bennett, K. (1995). Legacy systems: Coping with success. IEEE software, 12(1), 19-23. doi:

10.1109/52.363157

Berners-Lee, T., Fielding, R., & Masinter, L. (2004). Uniform resource identifier (URI): Generic syntax (No. RFC 3986). doi:10.17487/RFC3986

Birrell, A., Nelson, G., Owicki, S., & Wobber, E. (1993). Network objects. ACM SIGOPS Operating Systems Review, 27(5), 217-230.

Bishop, C. M. (1995). Neural networks for pattern recognition. Oxford university press. Bitner, M. J., Brown, S. W., & Meuter, M. (2000). Technology infusion in service encounters. Journal of the Academy of Marketing Science, 28(1), 138-149. doi:

10.1177/0092070300281013

Brandtzaeg, P. B., & Følstad, A. (2017, November). Why people use chatbots. In International Conference on Internet Science (pp. 377-392). Springer, Cham. doi: 10.1007/978-3-319-70284-1_30

Buchgeher, G., Winterer, M., Weinreich, R., Luger, J., Wingelhofer, R., & Aistleitner, M. (2017, September). Microservices in a Small Development Organization. In European Conference on Software Architecture (pp. 208-215). Springer, Cham. doi: 10.1007/978-3- 319-65831-5_15

Burnstein, I., Saxena, G., & Grom, R. (1999). A testing maturity model for software test process assessment and improvement.

Cambria, E., & White, B. (2014). Jumping NLP Curves: A Review of Natural Language Processing Research [Review Article]. IEEE Computational Intelligence Magazine, 9(2), 48– 57. doi:10.1109/MCI.2014.2307227

Ceccato, S. (1967). Correlational analysis and mechanical translation. In Readings in Machine Translation (pp. 77–135). Amsterdam, The Netherlands.

Chase, J. A. D., Topp, R., Smith, C. E., Cohen, M. Z., Fahrenwald, N., Zerwic, J. J., ... & Conn, V. S. (2013). Time management strategies for research productivity. Western Journal of Nursing Research, 35(2), 155-176. doi:10.1177/0193945912451163

Christensson, P. (2006). RUP Definition. Retrieved 2019, March 29, from https://techterms.com

Cohn, M. (2004). User stories applied: For agile software development. Addison-Wesley Professional.

Cui, L., Huang, S., Wei, F., Tan, C., Duan, C., & Zhou, M. (2017). SuperAgent: A Customer Service Chatbot for E-commerce Websites. Proceedings of ACL 2017, System

Demonstrations, (January), 97–102. doi:10.18653/v1/P17-4017

da Costa, E. C. (2018). A Importância da Engenharia De Requisitos no Processo de

Desenvolvimento de Sistemas de Informação. Revista Interface Tecnológica, 15(1), 203-214. doi:10.31510/infa.v15i1.322

Denning, P. J. (1971). Third generation computer systems. ACM Computing Surveys (CSUR), 3(4), 175-216. doi:10.1145/356593.356595

Dragoni, N., Giallorenzo, S., Lafuente, A. L., Mazzara, M., Montesi, F., Mustafin, R., & Safina, L. (2017). Microservices: yesterday, today, and tomorrow. In Present and Ulterior Software Engineering (pp. 195-216). Springer, Cham.

Fielding, R. T., & Taylor, R. N. (2000). Architectural styles and the design of network-based software architectures (Vol. 7). Irvine, USA: University of California, Irvine.

Forbes (2018). 10 Challenges to Think About When Upgrading from Legacy Systems. Retrieved February 7, 2019, from

https://www.forbes.com/sites/forbestechcouncil/2018/06/01/10-challenges-to-think-about- when-upgrading-from-legacy-systems/

Fowler, M., & Lewis, J. (2014). Microservices - A Definition of This New Architectural Term. Retrieved March 18, 2019, from https://martinfowler.com/articles/microservices.html

Freitas, C. O. (2018). Os jovens millenials e a automação dos serviços: motivações para a adoção de sistemas de conversação automática (chatbots).

Gamma, E. (1995). Design patterns: elements of reusable object-oriented software. Pearson Education India.

Garvin, D. A. (1984). What Does “Product Quality” Really Mean. Sloan management review, 25.

Gomaa, H. (2011). Software modeling and design: UML, use cases, patterns, and software architectures. Cambridge University Press.

Hardalov, M., Koychev, I., & Nakov, P. (2019). Machine Reading Comprehension for Answer Re-Ranking in Customer Support Chatbots. Information, 10(3), 82.

doi:10.3390/info10030082

Hirschberg, J., & Manning, C. D. (2015). Advances in natural language processing. Science, 349(6245), 261–266. doi:10.1126/science.aaa8685

IBM Corporation. (2008). IBM Rational Unified Process. IBM Brasil, Ltda.

Jain, A. (2016). How can I create a chatbot from scratch. Retrieved January 11, 2019, from https://www.quora.com/How-can-I-create-a-chatbot-from-scratch

James, L. (2012). Microservices - Java, the Unix Way. Retrieved March 18, 2019, from http://2012.33degree.org/talk/show/67

Jamshidi, P., Pahl, C., Mendonça, N. C., Lewis, J., & Tilkov, S. (2018). Microservices: The journey so far and challenges ahead. IEEE Software, 35(3), 24-35. doi:

10.1109/MS.2018.2141039

Johnson, P. (2018). Unit Testing. In Using MVVM Light with your Xamarin Apps (pp. 133- 155). Apress, Berkeley, CA. doi: 10.1007/978-1-4842-2475-5_7

Josuttis, N. M. (2007). SOA in practice: the art of distributed system design. " O'Reilly Media, Inc.".

Jørgensen, M., & Moløkken-Østvold, K. (2006). How large are software cost overruns? A review of the 1994 CHAOS report. Information and Software Technology, 48(4), 297-301. doi:10.1016/j.infsof.2005.07.002

Kitchenham, B., & Pfleeger, S. L. (1996). Software quality: the elusive target [special issues section]. IEEE software, 13(1), 12-21. doi:10.1109/52.476281

Knodel, J., & Naab, M. (2016). How to Perform the Code Quality Check (CQC)?. In Pragmatic Evaluation of Software Architectures (pp. 95-104). Springer, Cham.

Kroll, P., & Kruchten, P. (2003). The rational unified process made easy: a practitioner's guide to the RUP. Addison-Wesley Professional. doi:10.1007/978-3-319-34177-4_9

Kumar, V., & García, D. M. (2017). Portlets Integration Using JSR 286. In Beginning Oracle WebCenter Portal 12c (pp. 145-164). Apress, Berkeley, CA. doi:10.1007/978-1-4842-2532- 5_8

Kunze, T. (2019). The 2019 Microservices Ecosystem. Retrieved March 22, 2019, from https://glasnostic.com/blog/the-2019-microservices-ecosystem

Kyriazis, D., Menychtas, A., Kousiouris, G., Boniface, M., Cucinotta, T., Oberle, K., ... & Berger, S. (2018). A real-time service oriented infrastructure. GSTF Journal on Computing (JoC), 1(2).

Lehmann, F. (1992). Semantic networks. Computers & Mathematics with Applications, 23(2– 5), 1–50. doi:10.1016/0898-1221(92)90135-5

Lehman, M. M. (1980). Programs, life cycles, and laws of software evolution. Proceedings of the IEEE, 68(9), 1060-1076. doi:10.1109/PROC.1980.11805

Liu, H., Lin, T., Sun, H., Lin, W., Chang, C. W., Zhong, T., & Rudnicky, A. (2017). RubyStar: A Non-Task-Oriented Mixture Model Dialog System. arXiv preprint arXiv:1711.02781. Lokman, A. S., & Ameedeen, M. A. (2018). Modern Chatbot Systems: A Technical Review

Lucassen, G., Dalpiaz, F., van der Werf, J. M. E., & Brinkkemper, S. (2015, August). Forging high-quality user stories: towards a discipline for agile requirements. In 2015 IEEE 23rd international requirements engineering conference (RE) (pp. 126-135). IEEE. doi: 10.1109/RE.2015.7320415

Martin, J., and C. McClure. 1983. Software Maintenance: The Problems and Its Solutions. Englewood Cliffs, NJ: Prentice-Hall

Martínez-López, F. J., & Casillas, J. (2013). Artificial intelligence-based systems applied in industrial marketing: An historical overview, current and future insights. Industrial Marketing Management, 42(4), 489-495. doi: 10.1016/j.indmarman.2013.03.001

Mauldin, M. L. (1994, August). Chatterbots, tinymuds, and the turing test: Entering the loebner prize competition. In AAAI (Vol. 94, pp. 16-21)

McCall, J. A., Richards, P. K., & Walters, G. F. (1977). Factors in software quality. volume i. concepts and definitions of software quality. GENERAL ELECTRIC CO SUNNYVALE CA. Merkel, D. (2014). Docker: lightweight linux containers for consistent development and deployment. Linux Journal, 2014(239), 2.

Michaelis, M. (2018). Essential C# 7.0. Addison-Wesley Professional.

Miller, O. (2012). A Conversation With ELIZA, The Electronic Therapist. Retrieved January 25, 2019, from https://thoughtcatalog.com/oliver-miller/2012/08/a-conversation-with-eliza/ Misra, S. K., & Jalics, P. J. (1988). Third-generation versus fourth-generation software development. IEEE Software, 5(4), 8-14. doi: 10.1109/52.17797

Morden, T. (2017). Principles of management. Routledge. doi:10.4324/9781315246079 Morgan, W. (2017). What’s a service mesh? And why do I need one? Retrieved March 19, 2019, from https://buoyant.io/2017/04/25/whats-a-service-mesh-and-why-do-i-need-one/ Müller, H. A., Wong, K., & Tilley, S. R. (1995). Understanding software systems using reverse engineering technology. In Object-Oriented Technology for Database and Software Systems (pp. 240-252). doi:10.1142/9789812831163_0016

Naik, K., & Tripathy, P. (2008). Software Testing and Quality Assurance (1st ed.). Waterloo: John Wiley & Sons, Inc.

Namiot, D., & Sneps-sneppe, M. (2014). On Micro-services Architecture. International Journal of Open Information Technologies, 2(9), 24–27.

Normann, R., & Ramirez, R. (1993). From value chain to value constellation: Designing interactive strategy. Harvard business review, 71(4), 65-77.

Oliveira, J. D., & Bruchet, M. (2017). Learning ASP. NET Core 2.0: Build modern web apps with ASP. NET Core 2.0, MVC, and EF Core 2.

Orengo, V., & Huyck, C. (2001, November). A stemming algorithmm for the portuguese language. In spire (p. 0186). IEEE.

Papazoglou, M. P. (2003, December). Service-oriented computing: Concepts, characteristics and directions. In Proceedings of the Fourth International Conference on Web Information Systems Engineering, 2003. WISE 2003. (pp. 3-12). IEEE. doi:10.1109/WISE.2003.1254461 Papazoglou, M. P., Traverso, P., Dustdar, S., & Leymann, F. (2007). Service-oriented

computing: State of the art and research challenges. Computer, 40(11), 38-45. doi: 10.1109/MC.2007.400

Paulk, M. (2002). Capability maturity model for software. Encyclopedia of Software Engineering. doi:10.1002/0471028959.sof589

Peltz, C. (2003). Web services orchestration and choreography. Computer, (10), 46-52. doi: 10.1109/MC.2003.1236471

Pezoa, F., Reutter, J. L., Suarez, F., Ugarte, M., & Vrgoč, D. (2016, April). Foundations of JSON schema. In Proceedings of the 25th International Conference on World Wide Web (pp. 263-273). International World Wide Web Conferences Steering Committee.

doi:10.1145/2872427.2883029

Pitt, E., & McNiff, K. (2001). Java. rmi: The Remote Method Invocation Guide. Addison- Wesley Longman Publishing Co., Inc..

Qiu, M., Li, F. L., Wang, S., Gao, X., Chen, Y., Zhao, W., ... & Chu, W. (2017). Alime chat: A sequence to sequence and rerank based chatbot engine. In Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 2: Short Papers) (Vol. 2, pp. 498-503).

Rama, G. M., & Patel, N. (2010, September). Software modularization operators. In 2010 IEEE International Conference on Software Maintenance (pp. 1-10). IEEE.

Ransom, J., Somerville, I., & Warren, I. (1998, March). A method for assessing legacy systems for evolution. In Proceedings of the Second Euromicro Conference on Software Maintenance and Reengineering (pp. 128-134). IEEE. doi: 10.1109/CSMR.1998.665778 Rawashdeh, A., & Matalkah, B. (2006). A new software quality model for evaluating COTS components. Journal of Computer Science, 2(4), 373-381. doi:10.3844/jcssp.2006.373.381 Rousseau, Sophie & Camp, Olivier & Hammoudi, Slimane. (2010). A Practical Application of SOA - A Collaborative Marketplace. ICEIS 2010 - Proceedings of the 12th International Conference on Enterprise Information Systems. 1. 332-336.

Rosenthal, C., Hochstein, L., Blohowiak, A., Jones, N., & Basiri, A. (2017). Chaos Engineering. O’Reilly Media,.

Rouse, M. (2010). A Guide to HR Analytics - Opinion Mining (Sentiment Mining). Retrieved January 17, 2019, from https://searchbusinessanalytics.techtarget.com/definition/opinion- mining-sentiment-mining

Saenz, A. (2010). Cleverbot Chat Engine Is Learning From The Internet To Talk Like A Human. Retrieved February 18, 2019, from https://singularityhub.com/2010/01/13/cleverbot- chat-engine-is-learning-from-the-internet-to-talk-like-a

human/#sm.0000pin4pdki1eukycz1pmhj5idro

Sarkar, S., Ramachandran, S., Kumar, G. S., Iyengar, M. K., Rangarajan, K., & Sivagnanam, S. (2009). Modularization of a large-scale business application: A case study. IEEE software, 26(2), 28-35. doi:10.1109/MS.2009.42

Savchenko, D. I., Radchenko, G. I., & Taipale, O. (2015). Microservices validation: Mjolnirr platform case study. 2015 38th International Convention on Information and Communication

Technology, Electronics and Microelectronics, MIPRO 2015 - Proceedings, (May), 235–240. doi:10.1109/MIPRO.2015.7160271

Seacord, R., Plakosh, D., Lewis, G. (2003). Modernizing Legacy Systems: Software Technologies, Engineering Processes, and Business Practices. Addison Wesley.

Schulte, R. W., & Natis, Y. V. (1996). ’Service oriented’architectures, part 1. Gartner, SSA Research Note SPA-401-068.

Serban, I. V., Sankar, C., Germain, M., Zhang, S., Lin, Z., Subramanian, S., … Bengio, Y. (2017). A Deep Reinforcement Learning Chatbot (Short Version), 1–40. Retrieved January 20, 2019, from http://arxiv.org/abs/1801.06700

Soul of the Machine: How Chatbots Work. (2017). Retrieved January 17, 2019, from https://medium.com/@gk_/how-chat-bots-work-dfff656a35e2

Stefani, A., & Xenos, M. (2008). E-commerce system quality assessment using a model based on ISO 9126 and Belief Networks. Software Quality Journal, 16(1), 107-129. doi: 10.1007/s11219-007-9032-5

Stein, D. N., Thomas, A. L., & Alexander, M. (1999). U.S. Patent No. 5,978,779. Washington, DC: U.S. Patent and Trademark Office.

Stöckl, A. (2017). Classification of Chatbot Inputs, (July). doi:10.13140/RG.2.2.28189.61920 Taft, D. (2002). IBM Acquires Rational. Retrieved March 29, 2019, from

https://www.eweek.com/pc-hardware/ibm-acquires-rational

Terra, R., Valente, M. T., & Bigonha, R. S. (2012). An approach for extracting modules from monolithic software architectures. In IX Workshop de Manutenção de Software Moderna (WMSWM) (pp. 1-8).

Thomas, E. (2004). Web services and the service-oriented architecture (SOA). In Service- Oriented Architecture - A Field Guide to Integrating XML and Web Services (pp. 47–87). Pearson Education, Inc.

Thones, J. (2015). Microservices. IEEE Software, 32(1), 116–116. doi:10.1109/ms.2015.11 Tsai, W. T., Chen, Y., Cheng, C., Sun, X., Bitter, G., & White, M. (2008). An introductory course on service-oriented computing for high schools. Journal of Information Technology Education: Research, 7, 315-338. doi:10.28945/192

Ulrich, W. M. 1990. "The Evolutionary Growth of Software Engineering and the Decade Ahead." American Programmer 3, 10: 1220.

van Doorn, J., Mende, M., Noble, S. M., Hulland, J., Ostrom, A. L., Grewal, D., & Petersen, J. A. (2017). Domo Arigato Mr. Roboto: Emergence of Automated Social Presence in46 Organizational Frontlines and Customers’ Service Experiences. Journal of Service Research, 20(1), 43-58. doi:10.1177/1094670516679272

Villamizar, M., & et al. (2015). Evaluating the Monolithic and the Microservice Architecture Pattern to Deploy Web Applications in the Cloud Evaluando el Patrón de Arquitectura Monolítica y de Micro Servicios Para Desplegar Aplicaciones en la Nube. 10th Computing Colombian Conference, 583–590. doi:10.1109/ColumbianCC.2015.7333476

Wallace, R. S. (2009). The Anatomy of A.L.I.C.E. In R. Epstein, G. Roberts, & G. Beber (Eds.), Parsing the Turing Test: Philosophical and Methodological Issues in the Quest for the Thinking Computer (pp. 181–210). Dordrecht: Springer Netherlands. doi:10.1007/978-1- 4020-6710-5_13

Weizenbaum, J. (1966). ELIZA—a computer program for the study of natural language communication between man and machine. Communications of the ACM, 9(1), 36-45. doi: 10.1145/365153.365168

Wolchover, N. (2011). How the Cleverbot Computer Chats Like a Human. Retrieved January 24, 2019, from https://www.livescience.com/15940-cleverbot-computer-chats human.html pp. 16-21.

Worswick, S. (2018). Mitsuku wins Loebner Prize 2018. Retrieved January 24, 2019, from https://medium.com/pandorabots-blog/mitsuku-wins-loebner-prize-2018-3e8d98c5f2a7

Wang, X., Zhao, L., Wang, Y., & Sun, J. (2014). The role of requirements engineering practices in agile development: an empirical study. In Requirements Engineering (pp. 195- 209). Springer, Berlin, Heidelberg.

Zhang, C., & Budgen, D. (2013). A survey of experienced user perceptions about software design patterns. Information and Software Technology, 55(5), 822-835.

doi:10.1016/j.infsof.2012.11.003

Zimmermann, O. (2017). Microservices tenets. Computer Science-Research and Development, 32(3-4), 301-310. doi:10.1007/s00450-016-0337-0

Zimmermann, O., Pal, K., & Gee, C. (2004). Elements of Service-Oriented Analysis and Design. Retrieved March 18, 2019, from

Documentos relacionados