BCC322 - Engenharia de Software I - 2024-2Carga horária da disciplina: 4 horas/aula Professor(es) em 2024-2
ObjetivosAo final do curso é esperado que o aluno:Explicar o ciclo de vida de um software por meio de exemplos, ilustrar suas fases e entregáveis que devem ser produzidos; Selecionar modelos e processos para o desenvolvimento e manutenção de projetos de software para diferentes domínios de aplicação; Explicar o papel dos modelos de maturação do processo de desenvolvimento de software; Comprar diferentes modelos de desenvolvimento de software: modelo ágil, modelo incremental, modelo em cascata, entre outros; Analisar e avaliar um conjunto de ferramentas de suporte ao desenvolvimento de software (gestão, modelagem, test, etc); Aplicar ferramentas para o desenvolvimento de um produto de software de médio porte; Aplicar elementos chave e métodos comuns à elicitação e análise de requisitos para o desenvolvimento de um produto de software de médio porte; Discutir os desafios na manutenção de software legado; Identificar as principais questões associadas à evolução de software e explicar seus impactos ao ciclo de vida do software; Discutir os desafios encontrados na manutenção de software legado e a necessidade da engenharia reversa; Identificar pontos fracos em um projeto de software e mostrar como eles podem ser removidos através da re-engenharia; Demonstrar por meio do envolvimento em um projeto de software colaborativo, os elementos centrais da criação e gestão de equipes de desenvolvimento de software; Preparar um plano de projeto para um produto de software de médio porte que inclua: estimativa de tamanho e esforço, cronograma, alocação de recursos, controle de configuração, gestão de mudanças (escopo) e identificação e gestão de riscos. Distinguir entre verificação e validação de software; Descrever o papel das ferramentas para a validação de software; Distinguir entre os diferente tipos e níveis de teste (módulo, integração, sistema e aceitação); Criar, avaliar e implementar um plano de testes para um produto de software de médio porte; Discutir as questões relacionadas ao teste de software orientador por objeto; EmentaModelagem clássica; modelagem orientada a objetos; projeto orientado a objetos; desenvolvimento modular; desenvolvimento dirigido por API (Application Programming Interface); qualidade de software; reuso de software; ferramentas para desenvolvimento de software; evolução de Software; a pesquisa e o futuro da Engenharia de Software.Conteúdo Programático- Modelagem Clássica- Especificações - Modelo entidade-relacionamento - Diagramas de fluxo de dados - Máquinas de estado - Modelagem Orientada a Objetos - Extração e representação de classes. - Unified Modeling Language (UML) - Diagrama de classes - Diagrama de sequência - Diagrama de colaboração - Diagrama de objetos - Diagrama de atividades - Diagrama de estados - Projeto Orientado a Objetos (OO) - Conceitos e principais fundamentos de projeto OO - Padrões de Projeto de software - Arquitetura de software - Desenvolvimento modular - Fraco acoplamento, alta coesão, encapsulamento de informação e eficiência - Projeto de Software Dirigido por API (Application Programming Interface) - Reuso das (APIs) amplamente utilizadas na indústria de software - Projeto para reuso - Qualidade de software - Confiabilidade - Manutenabilidade - Usabilidade - Desempenho - Reusabilidade - Reúso de software - Tipos de reúso - Geradores de código - Desenvolvimento baseado em componentes e frameworks - Desenvolvimento baseado em aspectos - Engenharia de domínio - Linha de Produto de Software. - Ferramentas - Ambientes de programação (Integrated Development Environment – IDE) - Ferramentas para modelagem e projeto de software - Ferramentas de teste para análise estática e dinâmica de software - Ferramentas para o controle de código e desenvolvimento colaborativo (time) - Ferramenta de suporte e integração de software - Evolução de Software - Manutenção de software - Reengenharia e engenharia reversa - A Pesquisa e o futuro da Engenharia de Software - Cenário atual da pesquisa em Engenharia de Software - Engenharia de Software Experimental - Problemas em aberto Bibliografia- SOMMERVILLE, Ian. Engenharia de software. 9. ed. São Paulo: Addison Wesley, 2011. 529 p. ISBN 8588639076.- GAMMA, Erich. Design patterns elements of reusable object-oriented software / Erich Gamma ... [et al.].. Reading: Addison Wesley, 1995. 395 p. (Addison-Wesley Professional Computing Series). ISBN 0201633612 (enc.). - SCHWABER, Ken. Agile project management with Scrum. Redmond, Wash.: Microsoft Press, c2004. xix, 163 p. ISBN 073561993X (broch.). - CRISPIN, Lisa; GREGORY, Janet. Agile testing: a practical guide for testers and agile teams. Upper Saddle River, NJ: Addison Wesley, c2009. xli, 533 p. (The Addison-Wesley signature series). ISBN 9780321534460. - COHN, Mike. User stories applied: for agile software development. Boston: Addison Wesley, c2004. xxi, 268 p. (Addison-Wesley signature series). ISBN 0321205685 Bibliografia complementar- MCMAHON, Paul E. Integrating CMMI and agile development: case studies and proven techniques for faster performance improvement. Upper Saddle River, NJ: Addison Wesley, 2010. xxxi, 325 p. ISBN 9780321714107.- PRESSMAN, Roger S. Engenharia de software: uma abordagem profissional. 7. ed. Porto Alegre: AMGH, 2011. 780 p. ISBN 9788563308337. - SUMMERFIELD, Mark. Advanced Qt programming: creating great software with C++ and Qt4. New York: Addison Wesley, 2010. 536 p. ISBN 9780321635907. - BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML: guia do usuário. 2. ed. Rio de Janeiro (RJ): Elsevier, Campus, c2006. xviii, 474 p. ISBN 8535217843 (broch.). - FOWLER, Martin. UML distilled: a brief guide to the standard object modeling language. 3. ed. Boston: Addison Wesley, c2004. xxx, 175 p. (Object technology series). ISBN 0321193687 (Broch.). |
Departamento de Computação | ICEB | Universidade Federal de Ouro Preto
Campus Universitário Morro do Cruzeiro | CEP 35400-000 | Ouro Preto - MG, Brasil
Telefone: +55 31 3559-1692 | decom@ufop.edu.br