UFG - Instituto de Informática Curso: Engenharia de Software Arquitetura de Software Prof.: Fabrízzio A A M N Soares Aula 1 - Apresentação
Ementa Definição de arquitetura de software. Importância e impacto em um software. Estilos arquiteturais (pipe-and-filter, camadas, transações, publish-subscribe, baseado em eventos, cliente-servidor, MVC e outros). Relação custo/benefício entre atributos e opções arquiteturais. Questões de hardware em projeto de software. Rastreabilidade de requisitos e arquitetura de software. Arquiteturas específicas de um domínio e linhas de produto. Notações arquiteturais (visões, representações, diagramas de componentes e outros). Reutilização.
Objetivos Gerais Desenvolver clara percepção de arquitetura de software, sua importância e implicações no sucesso ou não de um empreendimento de software. 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 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;
Objetivos Específicos 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;
Objetivos Específicos 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;
Objetivos Específicos 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.
Bibliografia Básica Essential Software Architecture, Ian Gordon, Springer, 2006
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.
Bibliografia Complementar 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.
Horário de Aula Dia Horário Local Quarta-feira 18h50-20h20 Lab 117 Sábado 09h50-11h20 Sala CA-B 204
Avaliações Prova Dia 1ª 19 de abril 2ª 30 de junho P1 Prova escrita individual Valor: 10,0 pontos P2 Prova escrita individual Valor: 10,0 pontos TG Trabalho Geral Valor: 10,0 pontos
Nota final A nota final da disciplina será calculada com a seguinte fórmula: NF =[ P1+P2 2 ] 0,8+TG 0,2