Repositório da Disciplina de Engenharia de Software (BCC35E) do curso de Ciência da Computação da Universidade Tecnológica Federal do Paraná - Campus Campo Mourão
Profesor: Igor Wiese
email: igor.wiese@gmail.com | igor@utfpr.edu.br
homepage: igorwiese.com
Horário de P-Aluno: Terça N2 e N3, Quinta T2 e T3
Esta "versão" da disciplina foi inspirada na disciplina de Engenharia de Software proposta pelo professor Vinicius Cardoso Garcia do CIN/UFPE e nas lições aprendidas com as versões anteriores da disciplina. O conteúdo discutido é baseado em sugestões e relatos do livro Engenharia de Software Moderna, do professor Marco Tulio Valente do DCC/UFMG.
Engenharia de Software não é SÓ desenvolvimento de software. 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 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 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.
O objetivo principal deste curso é estudar, analisar, discutir, e aplicar os fundamentos de Engenharia de Software. Do ponto de vista prático, os conceitos estudados serão aplicados no desenvolvimento de um projeto de um sistema de informação simples.
Após a conclusão deste curso, os alunos serão capazes de demonstrar o seguinte competências avançadas: Os estudantes irão:
- Entender os novos desafios, oportunidades e problemas em aberto do novo cenário da indústria de software como serviço e as principais diferença sem relação ao software empacotado;
- Desenvolver um projeto de um sistema de informação simples desde a concepção através de planejamento, desenvolvimento, avaliação/teste, implantação e operação, enfrentando os desafios inerentes de cada fase;
- Compreender e utilizar ferramentas e metodologias ágeis de desenvolvimento, incluindo estórias de usuários e controle de versão para desenvolvimento baseado em times;
- Desenvolver habilidades técnicas e de colaboração para trabalhar em times de desenvolvimento software;
- Compreender e aplicar estruturas, padrões e técnicas fundamentais de programação, incluindo padrões de projeto para arquitetura de software, refatoração, entre outras, para melhorar a capacidade de manutenção, modularidade e reutilização de software.
A avaliação neste curso se dará de forma combinada com a disciplina de Projeto Integrador.
- GitHub (sistema de controle de versão distribuída, rápido e escalável).
- SEBRAE Canvas, Ferramenta gratuita online para criação do Canvas do Modelo de Negócios - SEBRAE
- CS50 IDE, a cloud-based IDE for students and teachers powered by AWS Cloud9.
- Cloud9, your development environment, in the cloud.
- Codenvy, cloud workspaces for Dev teams.
- Coder, an online IDE serving VSCode.
- What is the best alternative to AWS Cloud 9?
- Não sei inglês, e agora? | Podcast FalaDev #03
- What I learned from 6 months contributing to open source
- Software Engineering for Disruptive Innovation
- Essential skills and tools every Javascript developer should master
- Measuring Developer Productivity
- Mapping Go-to-Market to Customers: ‘The Coverage Matrix’
- What I Learned From Startup School Lectures
- Top 12 Things That Destroy Developer Productivity
- VALENTE, Marco Tulio. Engenharia de Software Moderna. O'Reilly. Available online: https://engsoftmoderna.info/
- BUORQUE, P. E FAIRLEY, R.E. eds., Guide to the Software Engineering Body of Knowledge, Version 3.0, IEEE Computer Society, 2014; www.swebok.org. Disponível online.
- SOMMERVILLE, Ian. Engenharia de software. 8. ed. São Paulo, SP: Pearson Addison-Wesley, 2007. xiv, 552 p. ISBN 9788588639287.
- PRESSMAN, Roger S. Engenharia de software: uma abordagem profissional. 7. ed. Porto Alegre, RS: AMGH, 2011. 780 p. ISBN 9788563308337.
- SCHACH, Stephen R. Engenharia de software: os paradigmas clássico & orientado a objetos. 7. ed. São Paulo, SP: McGraw-Hill, 2009. 618 p. ISBN 9788577260454.
- PFLEEGER, Shari Lawrence. Engenharia de software: teoria e prática. 2. ed. São Paulo, SP: Prentice-Hall, c2004. 537 p. ISBN 8587918311.