Arquitetura de Software¶
Curso: Tecnologia em Sistemas para Internet
Disciplina: Arquitetura de Software
Carga-Horária: 60h (80h/a) Pré-Requisito(s): Análise e Projeto Orientados a Objetos Número de créditos: 4
EMENTA¶
Definições (arquitetura de software, componente, desenvolvimento baseado com Componentes). Arquitetura de software (AS): elementos básicos de AS, definição de linguagens de descrição arquitetural, padrões arquiteturais, estilos arquiteturais, visões arquiteturais. Propostas de padronização de modelagem. Propostas de padronização de documentação de arquiteturas.
PROGRAMA¶
Objetivos¶
Estimular no estudante o uso de técnicas modernas de desenvolvimento de software. Para este fim serão ensinados os elementos básicos de arquitetura de software e de padrões e estilos de arquiteturas assim como serão apresentadas algumas propostas de padronização de documentação de software.
Bases Científico-Tecnológicas (Conteúdos)¶
Introdução 1.1. Conceitos e definições
Modelagem de Software com UML 2.1. Visão geral da UML 2.2. Diagramas de Casos de uso 2.3. Pacotes, Módulos e Subsistemas 2.4. Diagramas Implantação e Componentes 2.5. Diagramas de Atividades e Estados 2.6. Diagramas de Classes 2.7. Diagramas de Objetos, Sequência e Colaboração
Padrões de Projeto 3.1. Conceitos. Tipos e categorias de padrões. 3.2. Padrões Observer, MVC, Proxy, Broker 3.3. Padrões, Adapter, Facace, Factory, Builder, Command
Estilos e Padrões arquiteturais 4.1. Cliente-servidor 4.2. Camadas 4.3. Tubos-e-filtros 4.4. Blackboard 4.5. Broker
Arquitetura de Software e Atributos de Qualidade 5.1. Atributos de qualidade: modificabilidade, disponibilidade, desempenho, segurança, escalabilidade, usabilidade e outros. 5.2. Táticas e estratégias 5.3. Estilos e padrões e suas relações com atributos e táticas
Visões Arquiteturais 6.1. As 4+1 visões de Krutchen 6.2. As 4 visões da Siemens (Hofmeister e outros) 6.3. As 3 visões do SEI
Modelos de design arquitetural 7.1. Um modelo geral para o design arquitetural 7.2. Design arquitetural no RUP 7.3. O modelo do SEI 7.4. O modelo da Siemens
Linguagens de Descrição Arquitetural 8.1. ADLs 8.2. ACME 8.3. UML 2.0
Abordagens para Arquiteturas de Software 9.1. Arquitetura Dirigida por Modelos (MDA) 9.2. Arquitetura Orientada a Serviços (SOA) 9.3. Arquitetura Orientada a Aspectos (AOSD) 9.4. Arquiteturas para Linhas de Produtos de Software (SPL)
Tecnologias de desenvolvimento (opcional)
10.1. CORBA 10.2. Arquitetura JEE/EJB 10.3. .Net
Procedimentos Metodológicos¶
Serão desenvolvidos por meio de aulas expositivas teórico-práticos, seminários, relatórios, integrando com os diferentes saberes.
Recursos Didáticos¶
Quadro branco e pincel, projetor multimídia, computador, TV/DVD e vídeos.
Avaliação¶
• Avaliação dos conhecimentos adquiridos pela disciplina. • Trabalhos realizados em grupo e individual por meio de aulas práticas ou teóricas. • Relatórios de pesquisa.
Bibliografia Básica¶
FREEMAN, E.; et al. Use a cabeça!: Padrões de projetos. 2. ed. rev. Rio de Janeiro: Alta Books, 2009.
BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML: guia do usuário. Rio de Janeiro: Elsevier, 2012.
LARMAN C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. 3. ed. Porto Alegre: Bookman, 2007.
Bibliografia Complementar¶
BELL, M. Modelação orientada ao serviço - soa: análise, design e arquitetura de serviços. Rio de Janeiro, RJ: Alta Books, 2008.
FOWLER, M. UML essencial: um breve guia para a linguagem-padrão de modelagem de objetos. 3. ed. Porto Alegre: Bookman, 2005.
GAMMA, E. et al. Padrões de Projeto: Soluções Reutilizáveis de Software Orientado a Objetos. Makron Books, 2000
KEITH, M; SCHINCARIOL, M. EJB 3 Profissional: Java Persistence API. Rio de Janeiro: Ciência Moderna, 2008.
PANDA, D.; RAHMAN, R.; LANE, D. EJB 3 em ação. 2. ed. rev. Rio de Janeiro: Alta Books, 2009.
RICHARDS, M. Software Architecture Patterns. O’Reilly, 2015. Disponível em http://www.oreilly.com/programming/free/software-architecture-patterns.csp.
Software(s) de Apoio:
• Astah Community, Netbeans, Eclipse.