Introduzir os conceitos básicos de desenvolvimento de software como serviço em ambientes de computação em nuvem. Ao término da disciplina, o estudante será capaz de desenvolver sistemas Web com interfaces de usuário dinâmicas para sistemas de informação de médio porte com persistência de dados em bancos de dados relacionais. A metodologia de desenvolvimento adotada será baseada tanto nos fundamentos de arquiteturas orientadas a objetos de alta qualidade quanto em métodos ágeis de desenvolvimento de software levando em conta a interação com o usuário e cliente como um fator fundamental.
Arquitetura de Aplicações SaaS. Desenvolvimento Ágil de Software Desenvolvimento Guiado por Testes. Linguagens dinâmicas para desenvolvimento Web. Arcabouços OO para desenvolvimento Web. Mapeamento Objeto-Relacional para SaaS. Clientes Web dinâmicos e responsivos. Gestão Ágil de Projetos. Padrões de Projeto e Arquiteturais para a Web. Princípios SOLID.
Arquitetura de Aplicações SaaS e as várias camadas de Sistemas Web modernos, incluindo TCP/IP, DNS, HTTP, URIs, HTML, CSS e o Modelo REST. Desenvolvimento Ágil de Software incluindo Desenvolvimento Guiado por Testes (TDD), arcabouços para testes automatizados, Gestão Ágil de Projetos, Ferramentas para controle de versões e para gestão dinâmica de requisitos do cliente. Linguagens dinâmicas para desenvolvimento Web tais como Ruby ou Python. Como características avançadas como Reflexão e Metaprogramação facilitam o desenvolvimento de sistemas flexíveis, enxutos e robustos. Arcabouços OO para desenvolvimento Web tais como Rails, Sinatra e Django Mapeamento Objeto-Relacional para SaaS utilizando arcabouços tais como Rails, Django ORM e SQLAlchemy. Clientes Web dinâmicos e responsivos utilizando JavaScript ou HTML5 Padrões de Projeto e Arquiteturais aplicados a sistemas Web como MVC; Princípios avançados de projeto orientado a objetos tais como os princípios SOLID
Armando Fox e David Patterson. Construindo Software como Serviço – uma abordagem Ágil usando Computação em Nuvem. Strawberry Canyon, 2015. Sandi Metz. Practical Object-Oriented Design in Ruby. Addison-Wesley. 2013. Michael J. Kavis. Architecting the Cloud: Design Decisions for Cloud Computing Service Models (SaaS, PaaS, and IaaS). Willey. 2014.