Universidade Federal de Goiás Instituto de Informática Sistemas de Informação Código da Matriz Curricular: 109P1NB Plano de Disciplina Ano Letivo: 2012 - 2 º Semestre Dados da Disciplina Código Disc. Nome ARQUITETURA DE SOFTWARE Carga Horária Teórica Prática 32 32 Prof Fabrizzio Alphonsus Alves de Melo Nunes Soares Turma A Ementa Conceitos de arquitetura de Software, estilo, estrutura, requisitos, análise de arquitetura. Projeto Arquitetural, Avaliação Arquitetura. Modelo de arquitetura em camadas – MVC (model – Viewcontroller), MDA (model drive architecture). Ferramentas. Objetivo Geral Desenvolver clara percepção de arquitetura de software, sua importância e implicações no sucesso ou não de um empreendimento de software. O estudante ainda deve adquirir habilidade para identificar modelos arquiteturais apropriados para problemas e habilidade para definir uma arquitetura de software para um dado cenário. Objetivos Específicos Capacitar o aluno a: Reconhecer, entender, e comparar as diferentes definições existentes do termo arquitetura de software; Conhecer a definição de Arquitetura de Software pelo Padrão ISO/IEEE 1471-2000; Conhecer os componentes de construção de um software e sua relação com outros softwares; Conhecer os modelos de arquiteturas; Desenvolver softwares aplicando o estilo apropriado; Desenvolver softwares aplicando os atributos de qualidade de software; Entender o conceito de transações distribuídas e conhecer os protocolos para coordenação de transações distribuídas (XA, MTC, etc); Conhecer a linguagem de marcação XML, suas derivações e aplicações em arquiteturas de softwares; Conhecer os modelos de softwares em camadas e suas particularidades; Desenvolvedor aplicativos com utilização de servidores de aplicação; Conhecer os modelos e notações utilizadas para especificar Processos de Arquitetura de Software; Conhecer os conceitos de Arquiteturas Dirigidas por Modelos (MDA); Especificar arquiteturas de softwares conforme o domínio; Integrar softwares desenvolvidos em tecnologias diferentes; Conhecer protocolos para comunicação de softwares; Conhecer e desenvolver softwares baseado em arquitetura orientada a serviços (SOA); Conhecer e desenvolver aplicativos baseados em eventos, orientado a mensagens e utilizando MVC; Entender os conceitos de SOAP e WSDL; Desenvolver aplicativos com uso de Web Services; Conhecer e desenvolver aplicativos com o uso de ESB (Enterprise Service Bus), e outros. Relação com Outras Disciplinas Requisitos de Software; Construção de Software; Projeto Detalhado de Software; Verificação e Validação; Manutenção de Software e Qualidade de Software. Programa Introdução à Arquitetura de Software; Estilos Arquiteturais; Atributos de Qualidade de Software; Modelo de Software em Camadas; Tecnologias para Middleware; Requisitos Arquiteturais; Análise Arquitetural; Arquiteturas de Domínio Específico; Introdução ao XML; Model-View-Controller (MVC); Arquitetura Dirigida por Modelos (MDA); Webservices; Arquitetura Orientada a Serviços (SOA) e Barramento de Serviços Empresariais (ESB). Procedimentos Didáticos Legenda AEX RE Descrição Aula teórica Objetivo Transmitir conhecimento utilizando quadro ou slides. Aula teórica com resolução de exercícios Desenvolver o raciocínio lógico, criatividade e capacidade de abstração e a capacidade de identificar, analisar e projetar soluções de problemas. TG Trabalho em grupo Desenvolver a capacidade de comunicação oral e escrita. Capacidade de trabalhar em grupo. AP Aula prática Proporcionar ao aluno a aplicação prática do conteúdo ministrado em aula teórica. ED Estudo dirigido Desenvolver a capacidade analítica, capacidade de síntese, de avaliação crítica e de análise. Seminários Desenvolver o raciocínio lógico, criatividade, capacidade de abstração, capacidade para identificar, analisar, projetar soluções de problemas, a capacidade de comunicação oral e a capacidade de trabalhar em Outros Transmitir conhecimento utilizando quadro ou slides. SE OTR Conteúdo Programático / Cronograma Tópico Proc. Did. # Aul. Apresentação da Disciplina AEX 2 Introdução à arquitetura de software AEX 2 Estilos arquiteturais AEX 2 Modelos de persistência de dados AEX 2 AEX, TG, AP 8 AEX 2 Tecnologias para Middleware AEX, AP 2 Servidores de Aplicação AEX, AP 2 AEX, TG, AP 4 Transações distribuídas AEX, AP 2 EJB com JDBC e JPA AEX, AP 4 OTR 2 AEX, OTR 2 Java Persistence API - JPA Modelo de Software em Camadas EJB de sessão: EJB sem estado e EJB com estado 1ª Avaliação Devolução da 1ª Avaliação – Introdução ao JMS Inicio 22/10/2012 23/10/2012 29/10/2012 30/10/2012 05/11/2012 19/11/2012 20/11/2012 26/11/2012 27/11/2012 04/12/2012 10/12/2012 17/12/2012 18/12/2012 Tópico Modelos orientados a Mensagens, Java Message System Proc. Did. # Aul. AEX 4 AEX, AP, TG 2 AEX, AP 2 AEX, TG, AP 6 AEX 2 AEX, TG 2 AEX, TG, AP 2 AEX, AP 2 Arquitetura Dirigida por Modelos (MDA) AEX 2 2ª Avaliação OTR 2 Entrega de novas e Fechamento do Semestre OTR 2 EJB de Mensagem Aplicações WEB Webservices Arquitetura Orientada a Serviços – SOA e ESB Requisitos Arquiteturais Análise Arquitetural Model-View-Controller (MVC) Total 64 Inicio 07/01/2013 14/01/2013 15/01/2013 21/01/2013 29/01/2013 05/02/2013 18/02/2013 19/02/2013 25/02/2013 26/02/2013 04/03/2013 Critério de Avaliação A avaliação da aprendizagem será composta de: - 2 (três) Avaliações Teóricas (AT1 e AT2); - Diversos trabalhos práticos, sendo pelo menos 1 por avaliação. Observação: - Serão desenvolvidos diversos trabalhos individuais ou em grupo, sendo pelo menos 1 para cada prova, e que serão entregues até uma data estabelecida em aula. - Os alunos que realizarem os trabalhos para cada prova, receberão uma bonificação equivalente a 10% do valor de sua respectiva prova e será somado ao valor da mesma. - A nota máxima de cada prova é 10, e assim, quando somadas as notas de prova e trabalho, caso exceda 10, será descartado o excesso. Data da Realização das Provas AT1 em 17 de dezembro de 2012 AT2 em 26 de fevereiro de 2013 Bibliografia Básica - FOWLER, Martin. Patterns of Enterprise Application Architecture, Addison-Wesley, 2002 - BASS, Len et al. Software Architecture in Practice, Addison-Wesley, 2003 Bibliografia Complementar - A Software Architecture Primer, John Reekie and Rohan McAdam, Angophora Press, 2006. - Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives, Nick Rozanski and Eóin Woods, Addison-Wesley, 2005. - Software Architecture in Practice, Len Bass et al., Addison-Wesley, 2003. - Patterns of Enterprise Application Architecture, Martin Fowler, Addison-Wesley, 2002. - Design and Use of Software Architecture: Adopting and Evolving a Product-Line Approach, Jan Bosch, Addison-Wesley, 2000. - Architecting Enterprise Solutions: Patterns for High-Capability Internet-based Systems, Paul Dyson and Andrew Longshaw, Wiley, 2004. - Pattern-Oriented Software Architecture Volume 1: A System of Patterns, Frank Buschmann et al., Wiley, 1996. - Pattern-Oriented Software Architecture Volume 5: On Patterns and Pattern Languages, Frank Buschmann et al., Wiley, 2007. - Handbook of Software Architecture, Grady Booch, (disponível na web). - SOA in Practice: The Art of Distributed System Design, Nicolai M. Josuttis, O’Reilly, 2007. Bibliografia Sugerida - EJB 3 in Action Debu Panda et al, Manning Publications, 2008 - Enterprise JavaBeans 3.0 Bill Burke & Richard Monson-Haefel, O'Reilly, 2006 - Enterprise JavaBeans Technology: http://java.sun.com/products/ejb/ - EJB 3 em Ação, Reza Rahman; Debu Panda; Lane, Derek, Alta Books, 2009. - Enterprise Java Beans 3.0, Bill Burke & Richard Monson-Haefel, Pearson, 2007. - EJB 3 Profissional - Java Persistence API, Merrick Schincariol, Ciência Moderna, 2008. Parecer O plano está coerente com os objetivos esperados para esta disciplina. Termo de Entrega Apresentado à Coordenação no dia Termo de Aprovação Aprovado em Reunião de CD no dia Prof(a) Fabrizzio Alphonsus Alves de Melo Nunes Soares Prof. Dr. Auri Marcelo Vincenzi Professor Diretor do Instituto de Informática Termo de Homologação Data de Expedição: Goiânia, ___ de fevereiro de 2012.