- email: [email protected]
- V Model
- Avaliações:
- Trabalho em grupo (40%)
- Participação nas aulas (10%)
- Prova individual (50%) - Diagrama de classe; Faça duas representações estáticas e duas dinâmicas.
- Referências:
- Contexto da solução
- Backlog (requisitos ou histórias)
- Definir tipo de priorização de tarefas utilizado no projeto
- Priorização Moscow (MSCW - Must, Should, Could, Would)
- Tempo de duração
- Custo (fictício)
- Estruturação estática e dinâmica
- Versionamento condizente - Semantic Versioning
- Manter um padrão bem definido de código. Ex: CheckStyle para o Java
- Procurar livro do Pressman relacionado a Engenharia Web. 5ª ed; livro; slides.
- SWEBOK v3.0 - Software Engineering Body of Knowledge
- Qualidade do produto de software - ISO 25.000. Norma (modelo de referência). Mostra o que deve ser feito, não como deve ser feito.
- Engenharia de Software para web: requisitos não-funcionais, mobile, time-to-market.
- Processos de desenvolvimento de software
- Requisitos não-funcionais para aplicações web
Sucessão sistemática de mudanças numa direção definida.
- Keywords: Maneira; mudança; melhoria;
- Melhoria é o objetivo. Mudança é o caminho.
- Processo de desenvolvimento é uma das disciplinas da engenharia de software.
- ISO/IEC 12207 - Software life cycle process
- Chaos Report
- Tipos de processos: Waterfall, Espiral, RAD, RUP, ICONIX, XP, Scrum, Kanban, FDD, TDD, BDD, DDD
- Domain driven design - Livro de Eric J Evans
- Let's Code: JavaScript TDD
- Livro: TDDJS; Frameworks: Karma, Jasmine, QUnit, Mocha.
- Building offline mobile HTML5 Apps
- Designing Front-End Components
Exigência imprescindível para consecução de certo fim.
- Existe uma disciplina específica apenas para requisitos: Engenharia de Requisitos
- Requisitos funcionais: definem comportamento e funções específicas (projeto).
- Requisitos não-funcionais: como o software fará algo, não o que será feito (arquitetura).
- Principais requisitos não-funcionais para web:
- Confiabilidade
- Desempenho
- Disponibilidade
- Gestão de configuração
- Segurança
- Portabilidade
- Usabilidade
- ATAM: Architecture tradeoff analysis method; Link 2.
- Gráfico de porcentagem de uso das funcionalidades do sistema.
- Estruturação de projeto de sistema web
- Foco nos requisitos-chave para aplicações web
- Requisitos não-funcionais
- Velocidade de instalação
- Arquitetura
- Tema a critério do grupo
- Aplicação dos assuntos abordados em sala
- Entregas
- Versão escrita, de acordo com padrão fornecido
- Apresentação, em sala de aula, a ser realizada na última aula
- Web Engineering - Roger Pressman
- Design: Concepoção de um proejto ou modelo; planejamento.
- IEEE 1016-2009 - SDD - Software Design Descriptions
- Analogia com o processo arquitetural de uma casa.
- Adotar normas para resolução de determinados problemas dentro do ambiente de trabalho.
- Utilizar padrões existentes (frameworks) para resolução de problemas repetitivos.
- Documentar coisas que precisam ser documentadas.
- Testar regras de negócios importantes. Não é preciso ter 100% de cobertura de testes.
- Balancear o risco de não ter testes para ações básicas, rotineiras.
- IDEF0
- Padrões de projeto (Design patterns)
- São blocos de construção para os projetos. Dizem como problemas comuns podem ser solucionados.
- Zachman Framework
- Linguagem de comunicação entre as partes interessadas.
- Tipos de diagramas: Classes, Sequência, Atividades, Estado, Deployment.
- Utilizar a que melhor se encaixa no dia-a-dia com o conhecimento dos envolvidos no processo.
- Ferramenta para criação de diagramas UML: Astah
- 5W2H (What, Why, Where, Who, When, How, How much)
- Computer.org
- SWEBOK v3 Book
- Erro (engano; erro humano) != Defeito (bug) != Falha (bug em produção).
- Pesquisar: Outras fontes oficiais do significado de verificação e validação.
- Métodos de teste: estático; dinâmico; caixa branca; caixa preta; caixa cinza.
- Níveis de teste: unitário, integração, interface, sistema.
- Tipos de teste: fumaça, regressão, usabilidade, concorrência, alpha, beta.
- Processos de teste/desenvolvimento: Waterfall, Agile, XP.
- Diagrama de Casos de Uso.
- Gerar Backlog do Produto.
- Histórias de usuário (papel de Product Owner).
- Priorização.
- Expectativa de duração/quantidade de sprints (prazo).
- Simulação de time necessário para entrega do software.
- Entrega contínua (continuous delivery)
- Integração contínua
- Foco em qualidade de software em todas as etapas
- Ferramentas para DevOps
- Jenkins
- Chef
- Puppet
- Ansible
- Salt Stack
- OpsWorks