Engenharia de Software Apresentação da disciplina, metodologia de ensino, conteúdos, avaliações e bibliografia Prof. MSc. Hugo Vieira L. Souza
Este documento está sujeito a copyright. Todos os direitos estão reservados para o todo ou quaisquer partes do documento, em especial a interpretação de tradução, reprodução, distribuição ou comercialização física ou na Web do conteúdo contido nos slides, estão sujeitas a autorização prévia pelo autor. Hugo Vieira Lucena de Souza, 2015 Todos os textos, nomes, marcas e figuras de outras publicações e autores contidos neste documento estão devidamente referenciados através de suas obras originais e protegidos pelas leis de propriedades intelectuais.
Agenda Apresentação do professor Apresentação da disciplina Carga horária Ementa Objetivos Competências Habilidades Conteúdo programático Metodologia de ensino Bibliografia Referências
Professor MSc. em Ciência da Computação [CIn-UFPE/CAPES 6] e BSc. em Ciência da Computação [Unipê-IPÊ/IGC 5], é Professor de Ensino a Distância no curso de graduação em Licenciatura em Computação da Universidade Federal Rural de Pernambuco [UFRPE/EAD], Professor Adjunto de graduação nos cursos de bacharelado em Ciência da Computação e Enfermagem da Unipê e Professor Adjunto de graduação nos cursos de bacharelado em Sistemas de Informação, Bacharelado em Administração e do curso Tecnólogo em Logística da Faculdade Joaquim Nabuco [SER Educacional/Pernambuco]. É Engenheiro de Software e consultor e-learning, especializado em gestão de projetos e qualidade de processos de software, possuindo experiência com a administração, desenvolvimento de sistemas e redes corporativas. http://hugovlsouza.com http://about.me/hugovlsouza
Disciplina carga horária Carga horária: 60 h/a Dias da semana: Quinta-feira e Sexta-feira Horário das aulas: 13:00 as 14:40 [Quinta-feira] 14:40 as 16:20 [Sexta-feira] Sala de aula: EVA-287 Página da disciplina: http://hugovlsouza.com/unipe/~det679
Disciplina - ementa Apresentar algumas técnicas de análise orientada a objetos para a resolução de problemas reais. Identificar os principais processos de desenvolvimento de software baseados em paradigmas preditivo e ágeis; Aprender a modelar sistemas de informação baseados no paradigma orientado a objetos; Realizar os testes de aceitação, testes unitários e testes de integração em sistemas de informação; Solidificar os conceitos de programação aplicados a análise através de metodologias e padrões de qualidade CMMI e MPS.br;
Disciplina - objetivos Objetivos gerais: Compreender o processo completo de desenvolvimento de software, de forma que o aluno possa utilizar metodologias de desenvolvimento de sistemas, desenvolvimento de projetos em sua concepção lógica e sob os aspectos de implementação. Aspectos gerenciais de projeto de software, qualidade de software; Objetivos específicos: Apresentar algumas técnicas de coleta e especificação de requisitos para sistemas de informação'; Identificar os principais processos de desenvolvimento utilizados atualmente no mercado; Possibilitar a familiaridade com as metodologias e técnicas de desenvolvimento aplicadas a integração de novas tecnologias e frameworks de desenvolvimento; Entender o que é e como são aplicadas as linhas de produção de software;
Disciplina - competências Competência 1 [C1]: capacitar a modelagem de processos de software e de negócio; Competência 2 [C2]: capacitar a entender as estratégias de gerenciamento de projetos de software utilizando padrões de projeto; Competência 3 [C3]: capacitar e entender como funcionam os mecanismos e métricas para especificação de software; Competência 4 [C4]: Identificar e entender como funcionam a aplicação e o funcionamento dos diversos testes práticos de software;
Disciplina habilidades I Habilidade 1 [H1]: conhecer problemas de aplicação dos processos de software; Habilidade 2 [H2]: interpretar padrões de mercado para o desenvolvimento de software; Habilidade 3 [H3]: construir e classificar novos processos e linhas de produção de software utilizando padrões, normas e frameworks comerciais e de pesquisa; Habilidade 4 [H4]: Simular o funcionamento das tecnologias de configuração de projetos, verificação e validação de cenários com os ciclos de vida dos projetos; Habilidade 5 [H5]: entender e aplicar as novas tecnologias dos processos, com o uso da computação distribuída e da computação em nuvem; Habilidade 6 [H6] Coordenar o desenvolvimento de planos diretores, consultorias e estudos sobre cenários de mercado[case] e realizar o levantamento de ações emergenciais sobre novas tecnologias;
Disciplina conteúdo programático I I ESTÁGIO Conteúdos Atividades Habilidades Carga horária Introdução a Engenharia de Software Histórico, evolução e aplicações. Áreas da ES, o conceito de sistematização de software e sistemas de informação. Aulas expositivas Exercícios complementares H1 H2 3 Horas teóricas 1 horas práticas 2 horas com atividade no EAD Processos de software e modelos de ciclo de vida de software Fundamentos dos processos de software. Modelos cascata, espiral e iterativo. Produtos de software. Ciclo de vida de software e a norma ISO/IEC/IEEE 12207. Aulas expositivas Exercícios complementares H3 H4 3 Horas teóricas 3 horas práticas 2 horas com atividade no EAD Metodologias de desenvolvimento de software Introdução ao Manifesto Ágil, princípios e valores. Scrum, extreme Programming, FDD e TDD. Fundamentos do Kanban, LEAN e Crystal Aulas expositivas Seminários práticos em sala de aula H5 H6 1 Horas teóricas 3 horas práticas 3horas com atividade no EAD
Disciplina conteúdo programático II II ESTÁGIO Conteúdos Atividades Habilidades Carga horária Fluxos de processo na engenharia de software I Fundamentos dos processos de engenharia e construção de software: decomposição de atividades, tarefas e tipos de fluxogramas Aulas expositivas Projeto prático com a etapa 1 de 2. Reuniões na FS. H1 H2 3 Horas teóricas 1 horas práticas 2 horas com atividade no EAD Fluxos de processo na engenharia de software II Processos essenciais de engenharia e especificação: definição do conceito de requisitos, análise objetiva e subjetiva e engenharia de requisitos Aulas expositivas Projeto prático com a etapa 1 de 2. Reuniões na FS. H3 H4 3 Horas teóricas 3 horas práticas 2 horas com atividade no EAD Fluxos de processo na engenharia de software II Processos essenciais de engenharia e construção: qualidade de códigofonte, integração de documentos Introdução aos Testes de Software. Aulas expositivas Projeto prático com a etapa 1 de 2. Reuniões na FS. H5 H6 1 Horas teóricas 3 horas práticas 3horas com atividade no EAD *FS: Fábrica de Software
Disciplina conteúdo programático II II ESTÁGIO Conteúdos Atividades Habilidades Carga horária Fluxos de suporte na engenharia de software I Introdução a gerência de projetos: guias PMBok e Swebok, áreas de processo, áreas de gestão e aplicabilidade ao desenvolvimento SW. Aulas expositivas Projeto prático com a etapa 2 de 2. Reuniões na FS. H1 H2 1 Horas teóricas 1 horas práticas 1 horas com atividade no EAD Fluxos de suporte na engenharia de software I Fundamentos da qualidade de software: CMMI, MPS.br, ISO 90003 e metodologias híbridas. Aulas expositivas Projeto prático com a etapa 2 de 2. Reuniões na FS. H3 H4 1 Horas teóricas 1 horas práticas 1 horas com atividade no EAD Fluxos de suporte na engenharia de software I Gerência da configuração de software: gerenciamento de versões, artefatos e documentos. Princípios de Infraestrutura SW. Aulas expositivas Projeto prático com a etapa 2 de 2. Reuniões na FS. H5 H6 1 Horas teóricas 1 horas práticas 1 horas com atividade no EAD *FS: Fábrica de Software
Metodologia de ensino - avaliações As avaliação semestral dos alunos é formada por avaliações realizadas paralelamente nos estágios do semestre. Esta avaliação está composta por: Primeiro estágio: Prova teórica escrita com o peso máximo de cinco pontos [5,0]; Apresentação dos seminários práticos com os conteúdos do plano de ensino [5,0]; Segundo estágio: Prova teórica escrita com o peso máximo de cinco pontos [5,0]; Projeto prático - I etapa: entrega do documento e da especificação [5,0]; Terceiro estágio: Prova teórica escrita com peso máximo de cinco pontos [5,0]; Projeto prático - II etapa: entrega do documento concluído [3,0] Projeto integrador com peso máximo de dois pontos [2,0]
Metodologia de ensino trabalhos I O acompanhamento diário das aulas, exercícios e dúvidas será preferencialmente pelo ambiente virtual de aprendizagem Moodle; Todas as tarefas, listas de exercícios e demais atividades didáticas que precisam ser entregues ao professor só serão aceitas quando forem postadas pelo ambiente virtual de aprendizagem; Caso os trabalhos acadêmicos superem o tamanho máximo de upload suportado pelo Moodle, o aluno poderá encaminhar seu trabalho diretamente pelo site do professor através do endereço: http://hugovlsouza.com/upload
Metodologia de ensino trabalhos II Caso o aluno encaminhe seu trabalho diretamente pelo site do professor, o mesmo deverá obedecer os seguintes procedimentos: Renomear o nome do arquivo com o seguinte padrão: [Nome-Disciplina-Título-Trabalho]; Exemplo: [Hugo-Souza-Teoria-da-Computação-Lista-de-exercício-01].zip Após realizar o upload do arquivo, o aluno deverá anotar e salvar o número do protocolo de envio gerado na tela. Encaminhar um e-mail para o endereço hvlsouza@gmail.com comunicando que o trabalho não foi postado pelo ambiente, mas sim, pelo site, para que possa ser validado e posteriormente avaliado; É importante que no e-mail, o aluno informe o nome do arquivo encaminhado e o número do seu protocolo gerado;
Bibliografia Básica PRESSMAN, Roger S. Engenharia de Software. 8a. edição, São Paulo. McGraw-Hill, 2012. SOMMERVILLE, Ian. Engenharia de Software. 9a edição, São Paulo, Pearson, 2011. HIRAMA, Kechi. Engenharia de Software: qualidade e produtividade com Tecnologia. 1a edição, Elsevier, 2011. [1] [2] [3]
Bibliografia Complementar PADUA, Wilson. Engenharia de Software: fundamentos, métodos e padrões. Rio de Janeiro, LTC, 2003. SCHACH, Stephen R.; Engenharia de Software e os paradigmas clássicos orientados a objetos. 7a edição, São Paulo, Mcgraw Hill, 2008. REZENDE, Denis Alcides. Engenharia de Software Empresarial. 2a edição, Rio de Janeiro, Brasport, 1997. [4] [5] [6]
Vamos nos conhecer? Quem são vocês? O que vieram fazer aqui? O que esperam da disciplina?
Referências [1] PRESSMAN, Roger S. Engenharia de Software. 8a. edição, São Paulo. McGraw-Hill, 2012. Disponível em: < http://engenhariade-software-9-edicao-2011-ian-sommerville-8579361087_300x300-pu6ebddaec_1.jpg > Acesso em 12 fev. 2015. [2] SOMMERVILLE, Ian. Engenharia de Software. 9a edição, São Paulo, Pearson, 2011. Disponível em: <http:// www.pearsonhighered.com/sommerville_br/images/eng.jpg > Acesso em 12 fev. 2015 [3] HIRAMA, Kechi. Engenharia de Software: qualidade e produtividade com Tecnologia. 1a edição, Elsevier, 2011. Disponível em: < http://thumbs.buscape.com.br/livros/engenharia-de-software-qualidade-e-produtividade-com-tecnologia-kechihirama-853524882x_300x300-pu6e7a8b92_1.jpg > Acesso em 12 fev. 2015. [4] PADUA, Wilson. Engenharia de Software: fundamentos, métodos e padrões. Rio de Janeiro, LTC, 2003. Disponível em: < http://thumbs.buscape.com.br/livros/engenharia-de-software-fundamentos-metodos-e-padroes-wilson-de-padua-paulafilho-8521613393_200x200-pu6e65bd3b_1.jpg > Acesso em 12 fev. 2015. [5] SCHACH, Stephen R.; Engenharia de Software e os paradigmas clássicos orientados a objetos. 7a edição, São Paulo, Mcgraw Hill, 2008. Disponível em: < http://thumbs.buscape.com.br/livros/engenharia-de-software-os-paradigmas-classico-e-orientado-aobjetos-schach-stephen-r-8577260453_300x300-pu6ebaa65d_1.jpg > Acesso em 12 fev. 2015 [6] REZENDE, Denis Alcides. Engenharia de Software Empresarial. 2a edição, Rio de Janeiro, Brasport, 1997. Disponível em: < http://www.editoraatlas.com.br/atlas/webapp/mostrarimagem.aspx?prd_des_ean13=9788522475483&img=../images/product/ 7548_eb.gif&dt=09/01/2014&tp=I > Acesso em 12 fev, 2015