Informações da Disciplina

 Preparar para impressão 

Júpiter - Sistema de Gestão Acadêmica da Pró-Reitoria de Graduação


Instituto de Matemática e Estatística
 
Ciência da Computação
 
Disciplina: MAC0475 - Laboratório de Sistemas Computacionais Complexos
Laboratory of Complex Computer Systems

Créditos Aula: 4
Créditos Trabalho: 2
Carga Horária Total: 120 h
Tipo: Semestral
Ativação: 01/01/2020 Desativação:

Objetivos
Capacitar os estudantes para construirem sistemas complexos e distribuídos, utilizando metodologias de desenvolvimento e tecnologias web / mobile atuais.
 
Train the students to build complex and distributed systems using current development methods and web / mobile technologies.
 
 
Docente(s) Responsável(eis)
84710 - Alfredo Goldman Vel Lejbman
84724 - Fabio Kon
 
Programa Resumido
Métodos ágeis, DevOps, sistemas distribuídos, padrões arquiteturais, princípios arquiteturais, tecnologias web fundamentais,
desenvolvimento para front-end e modelos de páginas, desenvolvimento para back-end e padrões arquiteturas, autenticação e
autorização, banco de dados, infraestrutura, plataformas de entrega.
 
Agile methodologies, DevOps, distributed systems, architectural patterns, architectural principles, fundamental web technologies, front-end development and page models, back-end development and architectural patterns, authentication and authorization, databases, infrastructure, deployment platforms.
 
 
Programa
Métodos ágeis (valores, princípios e práticas), DevOps (entrega contínua, versionamento, trunk-based development, automação de testes), sistemas distribuídos (teorema CAP, consistência forte e eventual, níveis de disponibilidade), padrões arquiteturais (camadas, microkernel, microsserviços, baseada em eventos, nuvem), princípios arquiteturais (aplicações com 12 fatores, sistemas reativos, sistemas nativos à nuvem), tecnologias web fundamentais (HTML, CSS, JavaScript), modelo requisição-resposta (ad hoc, REST, GraphQL), desenvolvimento para front-end e modelos de páginas (MPA, SPA, SSR, PWA), desenvolvimento para back-end e padrões arquiteturais (MVC, MVP, MVVM, JAM), autenticação (identificadores sequenciais, UUID, tokens, JWT) e autorização (protocolos de controle de acesso), banco de dados (relacionais, não relacionais, mensageiros), infraestrutura (virtualização, conteinerização, orquestração e coreografia, malha de serviços) e plataformas de entrega (IaaS, PaaS, CDN, serverless).
 
Agile methodologies (values, principles and practices), DevOps (continuous delivery, versioning, trunk-based development, test automation), distributed systems (CAP theorem, strong and eventual consistency, availability levels), architectural patterns (layered, microkernel, microservices, event-driven, cloud), architectural principles (12-factor apps, reactive systems, cloud-native systems), fundamental web technologies (HTML, CSS, JavaScript), request-response model (ad hoc, REST, GraphQL), front-end development and page models (MPA, SPA, SSR, PWA), back-end development and architectural patterns (MVC, MVP, MVVM, JAM), authentication (sequence identifiers, UUID, tokens, JWT) and authorization (protocols for access control), databases (relational model, non-relational model), infraestrutura (virtualization, containerization, orchestration and choreography, service mesh) and deployment platforms (IaaS, PaaS, CDN, serverless).
 
 
Avaliação
     
Método
O método que será adotado nesta disciplina consiste em aulas teóricas / expositivas com aplicação prática dos conceitos abordados e a utilização de laboratório de informática para a realização de desenvolvimento em grupo ao longo do semestre letivo.
Critério
Média ponderada de notas em presença, comprometimento ao método, empenho, autoavaliação e qualidade do software desenvolvido.
Norma de Recuperação
Alunos que ficarem com média final entre 3,0 e 4,9 ficarão de recuperação e lhes será passado um trabalho adicional de implementação de software que será avaliado pelo docente responsável no período da recuperação.
 
Bibliografia
     
Bibliografia básica:
BONÉR, Jonas. Reactive Microsystems: The Evolution of Microservices at Scale. . Sebastopol: O’Reilly Media, Inc, 2017.
GARRISON, Justin, NOVA, Kris. Cloud Native Infrastructure: Patterns for Scalable Infrastructure and Applications in a Dynamic
Environment. 1. ed. Sebastopol: O’Reilly Media, Inc, 2017.
NEWMAN, Sam. Building Microservices: Designing Fine-Grained Systems. Sebastopol: O’Reilly Media, Inc, 2015.
SADALAGE, Pramod J., FOWLER, Martin. NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. Upper Saddle
River, NJ: Addison-Wesley, 2013.

Bibliografia complementar:
BONÉR, Jonas. Reactive Microservices Architecture: Design Principles for Distributed Systems. Sebastopol: O’Reilly Media, Inc, 2016.
ECKSTEIN, Jutta. Agile Software Development in the Large: Diving Into the Deep. New York: Dorset House Publishing, 2004.
EVANS, Eric. Domain-Driven Design: Tackling Complexity in the Heart of Software. 1. ed. Boston: Addison-Wesley Professional, 2003.
FORSGREN, Nicole, HUMBLE, Jez, KIM, Gene. Accelerate: The Science of Lean Software and Devops: Building and Scaling High
Performing Technology Organizations. Revolution Press, 2018.
GARBAJOSA, Juan, WANG, Xiaofeng, AGUIAR, Ademar. (Org.). Agile Processes in Software Engineering and Extreme Programming.
XP 2018. Lecture Notes in Business Information Processing, vol 314. Springer, Cham.
GEERS, Michael. Micro Frontends: Extending the Microservice idea to frontend development. 2017. 
HUMBLE, Jez, FARLEY, David. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation. 1. ed.
Boston: Addison-Wesley Professional, 2010.
KNIBERG, Henrik, IVARSSON, Anders. Scaling Agile @ Spotify: With Tribes, Squads, Chapters & Guilds. 2012. 
LEFFINGWELL, Dean. Scaling Software Agility: Best Practices for Large Enterprises. 1. ed. Boston: Pearson Education, 2007.
RICHARDS, Mark. Software Architecture Patterns. Sebastopol: O’Reilly Media, Inc, 2015.
RICHARDSON, Chris. Microservice Patterns. Manning Publications, 2017.
TRUNK BASED DEVELOPMENT. Trunk Based Development. Disponível em: .
VERNON, Vaughn. Implementing Domain-Driven Design. Addison-Wesley Professional, 2013.
WAMPLER, Dean. Fast Data Architectures for Streaming Applications. Sebastopol: O’Reilly Media, Inc, 2016.
YANAGA, Edson. Migrating to Microservice Databases: From Relational Monolith to Distributed Data. Sebastopol: O’Reilly Media, Inc,
2017.
 

Clique para consultar os requisitos para MAC0475

Clique para consultar o oferecimento para MAC0475

Créditos | Fale conosco
© 1999 - 2024 - Superintendência de Tecnologia da Informação/USP