Engenharia de Software [if977]

Semestre Letivo 2012.1

Local: Centro de Informática, horários: segunda (18:50-20:30) e terça (17:00-18:40), sala D-004.

Web site oficial:

Atenção:

Esta comunidade contém apenas notas de aulas superficiais. Estas notas não devem ser utilizadas como livro-texto. Um bom desempenho na disciplina depende muito do estudo mais profundo dos livros e, principalmente, da prática no computador.

Ementa:

Engenharia de Software não é só desenvolvimento de software. Ou seja, não é somente a atividade de programar e conhecer linguagens e ferramentas de apoio à programação. Existem uma série de processos envolvidos que colaboram na “construção” de um produto de software, desde a especificação do projeto, seu planejamento de execução, desenvolvimento, testes, manutenção e evolução. Portanto, Engenharia de Software claramente não se trata apenas de programação, uma atividade que pode ser desenvolvida de forma independente de outras pessoas, mas sim de um conjunto de atividades, tarefas e mais ainda, papéis que requerem trabalho em equipe (social) e capacidade de comunicação (socialização). Neste curso, vamos estudar princípios da Engenharia de Software, seus objetivos, atividades, papéis, recursos, como planejar um projeto, descobrir requisitos, abstrair uma proposta de construção de um produto de software e apresentar uma solução que será construída de forma iterativa, bem como a continuidade da vida útil deste produto.

Objetivos:

O objetivo principal deste curso é estudar, analisar, discutir, e aplicar conceitos de Engenharia de Software. Do ponto de vista prático, os conceitos estudados serão aplicados no desenvolvimento de um projeto de software.

A ementa oficial da disciplina é a seguinte:

  • Definição e objetivos da Engenharia de Software
  • Planejamento e Gerenciamento de Software
  • Requisitos de Software
  • Análise e Projeto de Software
  • Codificação de Software
  • Depuração e Testes
  • Controle de Qualidade e Inspeção

Lista de emails:

Para facilitar a comunicação no âmbito da disciplina, todos devem se inscrever na lista if977-l. Ela pode ser encontrada na página de grupos do Google para o CIn.

Para facilitar a comunicação via email que não acontecer pela lista, utilizem [if977] como parte do assunto do email.

[EXPERIMENTO] Comunidade da if977 no Facebook_: _

Avaliação:

A avaliação neste curso se dará da seguinte forma: os aspectos teóricos serão avaliados por meio de dois exercícios escolares; a prática será avaliada por meio do desenvolvimento de um projeto de software.

Quanto aos exercícios escolares, caso um estudante não realize um deles, ele(a) pode, desde que com justificativa, realizar uma prova de segunda chamada que substitui a prova a que o(a) estudante faltou. A não realização dos dois exercícios implica em reprovação.

A média da disciplina será calculada da seguinte forma:

Média = ( 3 * NotaEE1 + 3 * NotaEE2 + 4 * NotaProjeto) / 10, onde

  • NotaEE1 é a nota do Primeiro Exercício Escolar;
  • NotaEE2 é a nota do Segundoo Exercício Escolar;
  • A nota do projeto (NotaProjeto) será calculada assim:

NotaProjeto = (NotaEntrega1 + NotaEntrega2 + NotaEntrega3 + NotaEntrega4) / 4, onde

NotaEntregaX (X = 1 .. 4) corresponde à nota referente à entrega de partes do projeto, sendo quatro ao todo.

Notas da turma 2012.1 [link] * necessário logar com a conta do CIn

Bibliografia sugerida:

  • IEEE Computer Society, Guide to the Software Engineering Body of Knowledge (SWEBOK), 2004 edition.
  • PRESSMAN, R. S. Engenharia de Software. 7ª. Ed. São Paulo: McGraw-Hill, 2009.
  • SOMMERVILLE, I. Engenharia de Software. 9ª. Ed. São Paulo: Pearson Education, 2011.
  • PÁDUA, W. Engenharia de Software – Fundamentos, Métodos e Padrões. 3. Ed. Rio de Janeiro: LTC, 2009.
  • Pfleeger, S. Engenharia de Software – Teoria e Prática 4a edição – Pearson/Prentice-Hall, 2009.

Para ter acesso ao plano de aulas e demais informações da disciplina, favor acessar o Site conjugado de Engenharia de Software e Sistemas.

Plano de aulas:

| —– | | Aula | Data | Descrição | Anexos | | 1 | 05/03 | Apresentação do curso & Introdução à Engenharia de Software (scribd; slideshare) | | | 2 | 06/03 | Fábrica de Software (scribd; slideshare) | – Artigo 01: The Cathedral and the Bazaar
– Artigo 02: Harvey et al. (2001)
– Artigo 03: Mordechai Ben-Ari (1998)
– Artigo 04: Cusumano (1989) | | 3 | 12/03 | Processos de software (scribd; slideshare) | – Projeto: Definição de equipes e projetos, montagem da infraestrutura da fábrica (site) – até 20/03
– Leitura obrigatória: Livro do Sommerville, Capítulo 4
– Leitura recomendada: Barry W. Boehm. A Spiral Model of Software Development and Enhancement. IEEE Computer, vol. 21, número 5, Maio de 1988 [link] | | 4 | 13/03 | Processo OpenUp (scribd) | – Projeto: Versão Completa do (OpenUP)
Monitoria: Tutorial de utilização do Redmine (by Bruno Medeiros) [link] | | 5 | 19/03 | Gerenciamento de projetos (scribd) | – Projeto: Entrega proposta de projeto inicial (visão, riscos …) até 27/03
– Template do Plano de Projeto (link)
– Templato do Plano de Iteração (link)
– Template do Documento de Visão (link)
– Template da Lista de Itens de Trabalho (link)
– Exemplo de lista de itens de trabalho (link) | | 6 | 20/03 | Gerenciamento de configuração e mudança (scribd) | – Monitoria: Ferramenta de controle de versão (link)
– Branching and Merging Primer, by Chris Birmele (link)
Livro On-line sobre Subversion | | 7 | 26/03 | Requisitos de Software (scribd) | – Início da Iteração 1: Entrega do plano de projeto inicial, lista de riscos inicial, lista de itens de trabalho, plano da iteração que se inicia (objetivo: levantamento inicial dos requisitos/visão) | | 8 | 27/03 | Processo de Engenharia de Requisitos (scribd) | – Recomendação IEEE 830-1998: Acesse IEEE Xplore e faça uma busca (Basic Search) por 830-1998 | | 9 | 02/04 | Aula no Lab2 – Modelagem de Casos de Uso e uso da ferramenta de modelagem (link) | | | 10 | 03/04 | Introdução a Testes (scribd) | | | 11 | 09/04 | Especificação de Sistemas de Software e a UML (scribd) e Orientação a Objetos com UML (link) | – Tutorial sobre UML 2.1 (Sparcx Systems)
Apresentação de Paulo Merson (SEI) sobre modelagem de arquiteturas com UML 2.0 | | 12 | 10/04 | Teste de unidade (scribd) | – Início da Iteração 2 (Inception): Entrega do documento de visão + retrospectiva da iteração passada + documentos da iteração anterior revisados + plano da Iteração que se inicia (objetivo: detalhamento e priorização dos requisitos/casos de uso + desenvolvimento do plano e projeto de testes de sistema/aceitação)
– Template do Documento de Especificação de Casos de Uso (link)
Tutorial on-line de Testes Unitários com JUnit
– Implementando Testes Unitários em Java (on-line) | | 13 | 16/04 | Revisão para o 1º Exercício Escolar | | | 14 | 17/04 | Aula no Lab5 – Criação de casos de testes de unidade com JUnitRevisão para o 1º Exercício Escolar | | | 15 | 23/04 | 1º Exercício Escolar | | | 16 | 24/04 | Testes de integração, sistema e aceitação (scribd) | | | 17 | 07/05 | Arquitetura de Software (scribd) | – How to Represent the Architecture of Your Application Using UML 2.0 and More (link) | | — | 01/05 | | – Início da Iteração 3 (Elaboration): entrega do diagrama e especificação de casos de uso e do plano e projeto de testes de sistemas/aceitação + retrospectiva da iteração passada + documentos da iteração anterior revisados + plano da Iteração que se inicia (objetivo: definição da arquitetura + implementação e testes de 50% dos requisitos priorizados) | | 18 | 08/05 | Projeto de arquitetura (documentação, análise e projeto) (scribd) | | | 19 | 14/05 | Projeto de arquitetura (estilos arquiteturais & princípios e padrões) (scribd) | | | 20 | 15/05 | Aula em Lab. Modelagem de Casos de Uso e uso da ferramenta de modelagem (terça-feira, no Grad. 4, com Arley, às 17:00) | | | 21 | 21/05 | Desenvolvimento baseado em componentes (scribd) | | | 22 | 22/05 | Linha de Produtos de Software (scribd) | – Início da Iteração 4 (Construction): entrega da arquitetura definida + 50% dos requisitos que foram priorizados (implementados e testados) + retrospectiva da avaliação passada + documentos da iteração anterior revisados + plano da iteração que se inicia (objetivo: implementação e testes de 100% dos requisitos priorizados) | | 23 | 28/05 | Model Driven Engineering (scribd) | | | 24 | 29/05 | Engenharia de Software Orientado a Serviço (scribd) | | | 25 | 04/06 | Evolução e refatoração (scribd) | | | 26 | 05/06 | Gerenciamento de qualidade (scribd) | | | 27 | 11/06 | Processos Ágeis e XP | | | 28 | 12/06 | Aula livre para a finalização da iteração 4 | | | 29 | 18/06 | Revisão para o 2º Exercício Escolar | | | 30 | 19/06 | Aula livre para a finalização da iteração 4 | | | 31 | 25/06 | Aula livre para a finalização da iteração 4 | | | 32 | 26/06 | 2º Exercício Escolar | | | 33 | 02/07 | Aula livre para a finalização da iteração 4 | | | 34 | 03/07 | Apresentação dos projetos | Fim da iteração 4 (Construction): entrega de 100% dos requisitos que foram priorizados (implementados e testados) + retrospectiva da avaliação passada + documentos da iteração anterior revisados | | 35 | 09/07 | Apresentação dos projetos | | | 36 | 10/07 | Exercício escolar final + 2ª chamada | | | 37 | 10/07 | | |

Curtir isso:

Curtida Carregando…