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)

  1. Introdução 1.1. Conceitos e definições

  2. 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

  3. 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

  4. Estilos e Padrões arquiteturais 4.1. Cliente-servidor 4.2. Camadas 4.3. Tubos-e-filtros 4.4. Blackboard 4.5. Broker

  5. 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

  6. 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

  7. 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

  8. Linguagens de Descrição Arquitetural 8.1. ADLs 8.2. ACME 8.3. UML 2.0

  9. 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)

  10. 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

  1. FREEMAN, E.; et al. Use a cabeça!: Padrões de projetos. 2. ed. rev. Rio de Janeiro: Alta Books, 2009.

  2. BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML: guia do usuário. Rio de Janeiro: Elsevier, 2012.

  3. 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

  1. BELL, M. Modelação orientada ao serviço - soa: análise, design e arquitetura de serviços. Rio de Janeiro, RJ: Alta Books, 2008.

  2. FOWLER, M. UML essencial: um breve guia para a linguagem-padrão de modelagem de objetos. 3. ed. Porto Alegre: Bookman, 2005.

  3. GAMMA, E. et al. Padrões de Projeto: Soluções Reutilizáveis de Software Orientado a Objetos. Makron Books, 2000

  4. KEITH, M; SCHINCARIOL, M. EJB 3 Profissional: Java Persistence API. Rio de Janeiro: Ciência Moderna, 2008.

  5. PANDA, D.; RAHMAN, R.; LANE, D. EJB 3 em ação. 2. ed. rev. Rio de Janeiro: Alta Books, 2009.

  6. 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.