All Projects → IF977 → if977

IF977 / if977

Licence: MIT License
Repositório da disciplina de Engenharia de Software voltada ao curso de Sistemas de Informação.

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to if977

if1007
Desenvolvimento de Aplicações com Arquitetura Baseada em Microservices
Stars: ✭ 78 (+30%)
Mutual labels:  course, ufpe, cin
if1004
Desmistificando DevOps: Projetando Arquiteturas Efetivamente Escaláveis
Stars: ✭ 63 (+5%)
Mutual labels:  ufpe, cin
webempresa
Repositorio de la Web Empresarial del curso Django (revisado en la versión 4.0.2 con Python 3.10.2)
Stars: ✭ 17 (-71.67%)
Mutual labels:  course
rest-apis-flask-python
A small repository of projects built in my course, REST APIs with Flask and Python.
Stars: ✭ 861 (+1335%)
Mutual labels:  course
ARKit-SceneKIit Course
learning resource (SceneKit)
Stars: ✭ 102 (+70%)
Mutual labels:  course
research-computing-with-cpp
UCL-RITS *C++ for Research* engineering course
Stars: ✭ 16 (-73.33%)
Mutual labels:  course
android-development-course
Course for Android Development
Stars: ✭ 16 (-73.33%)
Mutual labels:  course
introduction-to-github
Course repo for Learning Lab course "Introduction to GitHub". Template repo ➡️
Stars: ✭ 57 (-5%)
Mutual labels:  course
data processing course
Some class materials for a data processing course using PySpark
Stars: ✭ 50 (-16.67%)
Mutual labels:  course
Deep-Learning-Course
Deep Learning with TensorFlow and Keras
Stars: ✭ 13 (-78.33%)
Mutual labels:  course
modern-javascript
👨‍🏫 Mike's Modern JavaScript course
Stars: ✭ 14 (-76.67%)
Mutual labels:  course
python-memory-management-course
Demo code exploring Python's memory models and collection algorithms from the Talk Python Training course.
Stars: ✭ 31 (-48.33%)
Mutual labels:  course
dev doctor
Free, opensource, serverless learning platform
Stars: ✭ 34 (-43.33%)
Mutual labels:  course
Django-Course
Hands on Django Course, Includes basics of Django,DRF,Celery,Deployment
Stars: ✭ 16 (-73.33%)
Mutual labels:  course
android-online-course
Android Online Course
Stars: ✭ 22 (-63.33%)
Mutual labels:  course
Curso-Electronica-Digital-para-makers-con-FPGAs-Libres
Curso de 35h sobre el diseño de sistemas digitales usando FPGAs libres, orientado para makers
Stars: ✭ 17 (-71.67%)
Mutual labels:  course
NLP-Specialization
NLP Specialization (Natural Language Processing) made by deeplearning.ai
Stars: ✭ 44 (-26.67%)
Mutual labels:  course
Geospatial Python CourseV1
This is an collection of blog posts turned into a course format
Stars: ✭ 53 (-11.67%)
Mutual labels:  course
Course-Notes-Deep-Learning-by-Andrew-NG-on-Coursera
Hand Written course notes of Deep Learning Specialization by Andrew NG on Coursera
Stars: ✭ 23 (-61.67%)
Mutual labels:  course
curso-ual17
Curso de infraestructura cloud con Openstack. Universidad de Almeria. Mayo 2017
Stars: ✭ 16 (-73.33%)
Mutual labels:  course

| Home | Courseware | Apoio | Programação em Par | Projeto | Syllabus | Equipes | Notas | Exercícios Escolares |

IF977 - Engenharia de Software

IF977

Esta é a página/repositório da disciplina de Engenharia de Software, voltada ao curso de Bacharelado em Sistemas de Informação, do Centro de Informática (CIn) da Universidade Federal de Pernambuco (UFPE). Esta "versão" da disciplina foi inspirada na experiência profissional do professor Vinicius Cardoso Garcia e nas lições aprendidas com as versões anteriores da disciplina, sugestões e relatos da disciplina "CS169 - Software Engineering" da UC Berkeley.

Para quem tiver curiosidade, a história dessa cadeira é, resumidamente, contada nestes três primeiros artigos. Os demais também influenciaram na história e evolução da cadeira.

Sistemas de Informação, Centro de Informática, (UFPE)

Instrutores

Local e Horários

Centro de Informática, horários: segunda (18:50-20:30) e quarta (17:00-18:40), sala E123.

Comunicação

  • Para facilitar a comunicação via e-mail no âmbito da disciplina, utilizem [if977] como parte do assunto do email.
  • [OBRIGATÓRIO] Temos um canal no Slack para uma comunicação mais dinâmica: if977 no slack (para entrar, tem que usar o e-mail institucional do CIn).

Edições anteriores

Atenção

Este repositório 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 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 SaaS simples.

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 (SWS, shrink-wrapped software);
  • Desenvolver um um projeto de um sistema de informação SaaS 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 esboço UI de baixa fidelidade (lo-fi), estórias de usuários, desenvolvimento orientado a comportamento, controle de versão para desenvolvimento baseado em times e ferramentas de gerenciamento para ambientes de computação em nuvem;
  • 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, funções de ordem superior, metaprogramação, reflexão, entre outras, para melhorar a capacidade de manutenção, modularidade e reutilização de software.

Metodologia

Utilizaremos uma abordagem aderente a essa jornada de educação digital. Para isso, temos uma composição metodológica inspirada em Sala de Aula Invertida, Pensamento de Design, Design de Experimentação e Ensino Baseado em Desafios. Trabalharemos com missões e para cada missão os alunos devem -- individualmente ou em grupo, isso vai se ajustando ao longo da jornada - inicialmente individual -- produzirem algo -- um texto, um sistema, uma imagem, um infográfico, um video, etc. -- que vai ser definido em função de cada missão (seus prazos são definidos a depender da missão em questão).

Temos como base os princípios:

  • Conhecimento como “obra aberta” (em vez de “mensagem fechada”);
  • Curadoria de conteúdos, sínteses e roteiros de trabalho (em vez da produção de conteúdos próprios para EAD, por exemplo);
  • Ambiências computacionais diversas (em vez de se restringir aos serviços do Ambiente de Aprendizagem);
  • Aprendizagem em rede, colaborativa (em vez de aprendizagem isolada);
  • Divergência, convergência e conversação entre todos, em interatividade (em vez de apresentação de conteúdos);
  • Atividades autorais inspiradas nas práticas da cibercultura (em vez de “estudo dirigido”);
  • Mediação online para colaboração (em vez de “tutoria reativa”); e,
  • Jornada formativa e colaborativa, baseada em competências (em vez de apenas exames presenciais).

Do ponto de vista de plataforma de apoio a jornada de educação digital, utilizamos um servidor do Discord para comunicação assíncrona e ambientes de reunião (sala de audio e video) para encontros fortuitos, os encontros síncronos (e gravados) acontecem em uma sala fixa no Google Meet, Mural para dinâmicas de trabalho síncrono e para as missões utilizados a plataforma Strateegia). Informamos que cada aula terá a duração de 60 (sessenta) minutos, configurada no Siga.

Avaliação

A avaliação neste curso se dará da seguinte forma: os aspectos teóricos serão avaliados por meio das missões com caráter de avaliação individual, mas vale ressaltar que as missões possuem uma natureza de execução prática; a consolidação dos aspectos teóricos discutidos ao longo da disciplina serão avaliados por meio de um exercício prático e em equipe que consistirá no desenvolvimento de um projeto de sistema de informação SaaS simples. Quanto aos exercícios escolares no formato de missões, as 25% piores avaliações de cada estudante serão descartadas. A não realização das missões ou no exercício em, equipe implica em reprovação. A media da disciplina sera calculada da seguinte forma:

  • Media = ( 4 * NotaEE1 + 6 * NotaProjeto) / 10, onde
    • NotaEE1 é a nota individual do estudante referente às missões;
    • NotaProjeto é a nota do projeto sera calculada com base nos seguintes aspectos:
      • avaliação do desempenho nas iterações; escopo do cenário; identificação das personas; concepção do Plano de MVP; especificação da Proposta de Solução; projeto da Arquitetura; especificação e implementação de Testes; Implantação da solução; Relato de Lições Aprendidas & Decisões de Projeto.

Monitoria

Os monitores são responsáveis por aulas práticas da disciplina. Também são responsáveis por acompanhar projetos das equipes formadas. Fora do horário das aulas, deve-se agendar uma reunião com os monitores com o fim de tirar dúvidas sobre o conteúdo da disciplina, bem como para discussão do projeto.

São eles:

  • Joismar Antonio Batista Braga (jabb)
  • Lerisson F. Freitas (lff3)
  • Lucas Serra da Cunha Assad (lsca)
  • Mateus Cardozo Gomes da Silva (mcgs)
  • Paulo Sergio da Silva Rodrigues (pssr)
  • Ricardo Ferreira dos Santos Junior (rfsj)
  • Sandrine Ventura Martins (svm2)
  • Vinícius Giles Costa Paulino (vgcp)

Além dos monitores, temos também uma equipe de consultores, que estão disponíveis também para ajudar, sempre que solicitados, são eles:

  • Alysson dos Santos Lima (asl)
  • Antonio Augusto Correa Gondim Neto (aacgn)
  • Antonio Rodrigues da Mata Neto (armn)
  • André Victor Costa de Melo (avcm)
  • Avyner Henrique B. da Fonseca Lucena (ahbfl)
  • Denio Batista Brasileiro Bezerra (dbbb)
  • Hugo Roberto de Melo Daher (hrmd)
  • Ian Fireman (imlbf)
  • Isabel Oliveira Jordao do Amaral (ioja)
  • Joao Vitor Bizerra de Araujo (jvba)
  • Johnny Mayron Santana Ferreira (jmsf2)
  • Jorge Henrique Cordeiro Linhares (jhcl)
  • José Durval Carneiro Campello Neto (jdccn)
  • Linaldo Leite Ferreira Junior (llfj)
  • Marcela Pereira de Oliveira (mpo)
  • Mariana Ferreira de Melo (mfm2)
  • Matheus Raz de Oliveira Leandro (mrol)
  • Pedro Jose de Souza Neto (pjsn)
  • Pedro Paulo Sousa Neto (ppsn)
  • Rafael Felipe Pedroza Jordao (rfpj)
  • Rafael Leonardo de Lima Brito (rllb)
  • Ricardo Ebbers Carneiro Leao (recl)
  • Victor Hugo Barbosa Arruda (vhba)
  • Wellington Oliveira (wmof)

Bibliografia principal (mas não limitada a)

P. Bourque and R.E. Fairley, eds., Guide to the Software Engineering Body of Knowledge, Version 3.0, IEEE Computer Society, 2014; www.swebok.org. Disponível online.

Bibliografia complementar

  • SOMMERVILLE, I. Engenharia de Software. 9ª. Ed. São Paulo: Pearson Education, 2011.
  • Mary e Tom Poppendieck. Implementando o Desenvolvimento Lean de Software: Do conceito ao dinheiro. Bookman. 2010.
  • Matt Wynne and Aslak Hellesoy. The Cucumber Book: Behaviour-Driven Development for Testers and Developers. Pragmatic Bookshelf, 2012

Ferramentas

Links, posts e artigos diversos

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].