Engenharia de Software
4.6 (77 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
638 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Engenharia de Software to your Wishlist.

Add to Wishlist

Engenharia de Software

Curso de Engenharia de Software da Universidade Federal de Minas Gerais (UFMG).
4.6 (77 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
638 students enrolled
Published 7/2012
Portuguese
Price: Free
Includes:
  • 19 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
What Will I Learn?
  • Ao concluir o curso, o aluno terá uma visão geral da Engenharia de Software.
View Curriculum
Requirements
  • Conhecimento básico em programação orientada a objetos.
  • Conhecimento da linguagem Java é desejável.
Description

Este curso é tradicionalmente oferecido de forma presencial para alunos da Universidade Federal de Minas Gerais (UFMG). O livro texto adotado na disciplina é Engenharia de Software, 9a Edição, Ian Sommerville. Outros livros e materiais complementam o curso. A ementa principal é: processos de desenvolvimento de software; especificação de requisitos e projetos de sistemas de software; implementação e testes de software; reuso, medição e qualidade de software.

A agenda do curso para o segundo semestre de 2014 está disponível no PDF da última aula (Aula 45).

Who is the target audience?
  • Alunos de graduação em computação, sistemas de informação ou áreas correlatas.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
68 Lectures
18:47:48
+
Apresentação do Curso
3 Lectures 43:46

Este vídeo de apresentação do curso foi produzido pelos alunos da disciplina em 2013-2: Alex Barros, Arthur Felipe, Guilherme Eloi e Guilherme Nathan.

Apresentação do Curso
03:00

Esta aula discute a motivação e alguns desafios para a engenharia de software. Além disso, ela apresenta alguns conceitos fundamentais de software e engenharia de software.
Motivação e Introdução a Engenharia de Software
18:55

Esta aula discute brevemente cinco atividades de desenvolvimento de software: especificação de requisitos, projeto de software, implementação, validação do software e evolução de software.
Desenvolvimento e Evolução de Software
21:51

Teste seus conhecimentos sobre a matéria das duas primeiras aulas.

Introdução a Engenharia de Software
10 questions
+
Processos de Software
11 Lectures 02:29:20

Esta aula introduz conceitos sobre as principais atividades de desenvolvimento de software: especificação de requisitos, projeto e implementação de software, verificação e validação, e evolução de software.

Atividades Comuns do Desenvolvimento de Software
19:56

Esta aula introduz os conceitos principais sobre processos de software. Ela define processos de software e modelos de processos de software além de discutir as vantagens de se definir um processo de software.

Processos de Software
07:55

Esta aula apresenta o processo de software Modelo Cascata. Além do modelo ser apresentado, são discutidas as vantagens e desvantagens deste modelo de processo.

Modelo Cascata
09:45

Esta aula apresenta o processo de software Desenvolvimento Incremental. Além do modelo ser apresentado, são discutidas as vantagens e desvantagens deste modelo de processo.

Desenvolvimento Incremental
10:08

Esta aula apresenta o processo de software Desenvolvimento Baseado em Reuso. Além do modelo ser apresentado, são discutidas as vantagens e desvantagens deste modelo de processo.

Engenharia de Software Orientada ao Reuso
12:16

Esta aula discute três modelos de processos que lidam com as mudanças constantes e inevitáveis do desenvolvimento de software. Estes três modelos de processos são Prototipagem, Entrega Incremental e Modelo Espiral.

Processos que Lidam com Mudanças
15:43

Teste seus conhecimentos sobre processos de software baseados em planos. Conteúdo das Aulas 3, 4 e 5 e do Cap. 2 do livro texto.

Processos de Software
10 questions

Esta aula introduz os conceitos e características gerais dos métodos ágeis. Alguns dos princípios de métodos ágeis são apresentados.

Métodos Ágeis
20:23

Esta aula apresenta o manifesto ágil por meio de seus alicerces e princípios.

Manifesto Ágil
12:38

Esta aula apresenta a Programação Extrema (XP) com foco nas práticas principais deste método ágil.

Programação Extrema (XP)
19:52

Esta aula discute os conceitos principais do método ágil Scrum com foco nas fases de planejamento, desenvolvimento e encerramento.

Fases do Scrum
13:40

Esta aula discute os papéis e reuniões que fazem parte do método ágil Scrum.

Papéis e Reuniões do Scrum
07:04

 Teste seus conhecimentos sobre métodos ágeis. Conteúdo das Aulas 6, 7 e 8 e do Cap. 3 do livro texto.

Métodos Ágeis
10 questions
+
Engenharia de Requisitos
10 Lectures 02:31:42

Esta aula introduz e diferencia os conceitos sobre requisitos de usuários e requisitos de sistema na Engenharia de Requisitos.

Requisitos de Usuários e Requisitos do Sistema
18:56

Esta aula discute e diferencia requisitos funcionais de requisitos não funcionais. A aula é parte da matéria sobre Engenharia de Requisitos.

Requisitos Funcionais e Requisitos Não Funcionais
23:35

Esta aula discute a Engenharia de Requisitos e suas atividades principais: Estudo de Viabilidade, Elicitação de Requisitos, Especificação de Requisitos e Validação de Requisitos.

Processos da Engenharia de Requisitos
16:34

Esta aula introduz cinco técnicas de elicitação de requisitos: pontos de vista, entrevistas, cenários, casos de uso e etnografia.

Técnicas de Elicitação de Requisitos
19:38

O objetivo deste quiz é revisar os conceitos de Requisitos de Software e Engenharia de Requisitos

Engenharia de Requisitos
10 questions

Esta aula faz uma breve introdução a linguagem UML, sua origem histórica e seus diagramas.

Introdução à UML
14:45

Esta aula discute e exemplifica os diagramas estruturais da linguagem UML.

UML: Diagramas Estruturais
09:20

Esta aula discute e exemplifica os diagramas comportamentais da linguagem UML.

UML: Diagramas Comportamentais
14:26

Esta aula apresenta o Diagrama de Casos de Uso da UML, com foco em seus elementos principais: atores e casos de uso.

Diagrama de Casos de Uso
10:47

Esta aula discute e exemplifica os principais relacionamentos do Diagrama de Casos de Uso: associação, generalização, inclusão e extensão.

Relacionamentos do Diagrama de Casos de Uso
15:17

Esta aula ilustra como documentar um caso de uso usando a técnica de cenários.

Documentando Casos de Uso com Cenários
08:24

O objetivo deste quiz é revisar conceitos sobre o Diagrama de Casos de Uso da UML.

Diagrama de Casos de Uso
10 questions
+
Modelagem de Software
11 Lectures 03:31:59

Esta aula apresenta alguns conceitos introdutórios sobre arquitetura de software, suas vantagens e desvantagens, além de alguns exemplos de arquiteturas.

Arquitetura de Software
23:12

Esta aula introduz o conceito de padrões arquiteturais e lista nove padrões do livro Pattern-Oriented Software Architecture: A System of Patterns.

Padrões Arquiteturais
16:27

Esta aula apresenta quatro padrões arquiteturais documentados na categoria Da Desordem a Estrutura. Os padrões discutidos nesta aula são Layered Architecture, Blackboad, Client-Server e Pipes and Filters.

Padrões Arquiteturais: Da Desordem a Estrutura
36:34

Em breve.

Arquitetura de Software e Padrões Arquiteturais
10 questions

Esta aula discute conceitos de desenvolvimento de software orientado a objetos, como classes, objetos, métodos, atributos e mensagens. 

Conceitos de Desenvolvimento Orientado a Objetos
09:47

Esta aula discute conceitos de modelagem de software orientada a objetos e explica a ligação entre análise orientada a objetos e modelagem orientada a objetos.

Modelagem Orientada a Objetos
15:05

Esta aula apresenta em detalhes o Diagrama de Classes da UML. Os elementos do diagrama discutidos nesta aula são: classes, interfaces, métodos, atributos e os diversos tipos de relacionamentos entre classes.

Diagrama de Classes
41:49

O objetivo deste quiz é revisar conceitos sobre o Diagrama de Classes da UML.

Diagrama de Classes
10 questions

Esta aula apresenta detalhes do Diagrama de Sequência da UML. Os elementos do diagrama discutidos nesta aula são: atores, objetos, linha da vida e caixa de ativação.

Diagrama de Sequência
10:27

Esta aula apresenta detalhes sobre mensagens entre objetos mostrados no Diagrama de Sequência da UML. São discutidas quatro tipos de mensagens: Ator para Ator, Ator para Objeto, Objeto para Objeto e Objeto para Ator.

Mensagens no Diagrama de Sequência
21:59

Esta aula mostra exemplos de como usar o Diagrama de Sequência para detalhar casos de uso.

Detalhando Casos de Uso com Diagrama de Sequência
11:07

Esta aula apresenta o Diagrama de Comunicação e seus elementos principais: objetos, atores, vínculos e mensagens.

Diagrama de Comunicação
12:19

Esta aula apresenta do Diagrama de Atividades da UML. Os elementos do diagrama discutidos nesta aula são: estado inicial, estado final, atividades, transições, decisões, bifurcação, união e raias de natação.

Diagrama de Atividades
13:13

Revise os conceitos sobre o Diagrama de Sequência, o Diagrama de Comunicação e o Diagrama de Atividades.

Diagramas UML: Sequência, Comunicação e Atividades
10 questions
+
Técnicas de Desenvolvimento
13 Lectures 04:09:49

Esta aula revisa os conceitos de programação orientada a objetos e introduz o histórico da linguagem Java.

Programação Orientada a Objetos
17:08

Esta aula revisa os conceitos de programação orientada a objetos, tais como classes, objetos e mensagens.

POO: Classes e Relacionamentos
08:05

Esta aula revisa os conceitos de programação orientada a objetos com foco em membros de uma classe, tais como construtores, métodos, variáveis e constantes.

POO: Membros de Classes
18:31

Esta aula introduz conceitos de idiomas de programação e apresenta 23 exemplos de idiomas para a linguagem Java.

Idiomas de Programação Java
31:16

Teste seu conhecimento sobre idiomas de programação.

Idiomas de Programação
10 questions

Esta aula discute conceitos básicos de verificação e validação além de apresentar o Modelo V de testes de software.

Verificação e Validação
15:37

Esta aula discute conceitos de inspeção de software e compara com testes de software.

Inspeção de Software
19:40

Esta aula introduz conceitos sobre testes de desenvolvimento software com foco no processo de testes.

Testes de Desenvolvimento
15:32

Esta aula discute conceitos de testes de unidade com foco testes de caixa preta e testes de caixa branca.

Testes de Unidade
19:49

Esta aula apresenta conceitos de testes de integração e testes de sistema. Por exemplo, a aula introduz os conceitos de teste de desempenho e teste de estresse.

Teste de Integração e Teste de Sistema
12:06

O objetivo deste quiz é revisar conceitos sobre o Testes de Software.

Testes de Software
10 questions

Esta aula introduz conceitos e processos sobre evolução de software. 
Evolução de Software
20:33

Esta aula discute a evolução de software com foco nas oito Leis de Lehman.

Dinâmica da Evolução (Leis de Lehman)
15:35

Esta aula discute conceitos associados à manutenção de software. Por exemplo, são apresentados os três tipos principais de manutenção: corretiva, adaptativa e evolutiva.

Manutenção de Software
15:39

Esta aula discute conceitos relacionados a reengenharia de software, com foco em refatoração e bad smells. São apresentados 7 bad smells e exemplos de refatorações para resolver estas anomalias de software.
Reengenharia, Bad Smell e Refatoração
40:18

Teste seu conhecimento sobre evolução de software, refatoração e bad smells (Capítulo 9).

Evolução de Software
10 questions
+
Reutilização de Software
10 Lectures 02:44:47

Esta aula faz um introdução a reutilização de software, destacando suas vantagens e desvantagens. 

Reutilização de Software
16:05

Esta aula apresenta brevemente várias abordagens de reutilização de software, tais como frameworks, bibliotecas e componentes.

Técnicas para Reutilização de Software
07:57

Esta aula discute reutilização de software com foco em três técnicas: bibliotecas, frameworks e padrões de projeto.

Bibliotecas, Frameworks e Padrões
16:53

Esta aula discute reutilização de software com foco em desenvolvimento dirigido por modelos (MDD).

Desenvolvimento Dirigido por Modelos (MDD)
18:29

Esta aula apresenta alguns conceitos sobre linha de produtos de software. Além disso, a aula também introduz a notação do modelo de características para representar variabilidade em linha de produtos.

Linha de Produtos de Software (LPS)
21:20

Teste o seu conhecimento sobre Reutilização de Software (Aulas 29 e 30).

Reutilização de Software
10 questions

Esta aula apresenta uma motivação para separação de interesses e técnicas avançadas de programação com foco especial em Desenvolvimento de Software Orientado a Aspectos (DSOA).

Separação de Interesses
19:00

Esta aula discute os principais conceitos do Desenvolvimento de Software Orientado a Aspectos (DSOA): ponto de junção, ponto de corte, adendo, declaração intertipo e aspecto.

Desenvolvimento de Software Orientado a Aspectos
18:17

Esta aula apresenta a sintaxe para pontos de junção e pontos de corte (pointcut) em AspectJ, uma linguagem para Desenvolvimento de Software Orientado a Aspectos (DSOA).

AspectJ: Pontos de Junção e Pontos de Corte
19:58

Esta aula apresenta a sintaxe e exemplos de código para adendos (advice) em AspectJ, uma linguagem para Desenvolvimento de Software Orientado a Aspectos (DSOA).

AspectJ: Adendos
14:28

Esta aula apresenta a sintaxe e exemplos de código para declarações intertipo (intertype declarations) em AspectJ, uma linguagem para Desenvolvimento de Software Orientado a Aspectos (DSOA).

AspectJ: Declarações Intertipo
12:20

Teste seu conhecimento sobre Desenvolvimento de Software Orientado a Aspectos (DSOA) e AspectJ; Aulas 35, 36 e 37.

Desenvolvimento de Software Orientado a Aspectos (DSOA)
10 questions
+
Qualidade de Software
10 Lectures 02:36:25

Esta aula aborta vários aspectos sobre qualidade de software incluindo: definições de qualidade, o gerenciamento de qualidade, relação entre qualidade do processo e qualidade do produto e padrões de qualidade.

Qualidade de Software
28:13

Esta aula apresenta conceitos de medição de software e a relação com qualidade. O processo de medição é também explicado.

Medição de Software
24:27

Esta aula explica várias métricas de produtos de software. Exemplos de métricas tradicionais de produto são apresentados.

Métricas de Produto
12:16

Esta aula explica seis métricas de produtos para programas orientados a objetos: Métodos Ponderados por Classes (WMC), Profundidade da Herança (DIT), Número de Filhos (NOC), Acoplamento entre Objetos (CBO), Falta de Coesão em Métodos (LCOM) e Número de Operações Sobreescritas.

Métricas de Programas Orientados a Objetos
13:41

Teste seu conhecimento sobre qualidade do produto e métricas de software (Cap. 24).

Qualidade e Medição de Software
10 questions

Esta aula discute melhoria do processo de software e sua implicação na qualidade de software.

Melhoria de Processos de Software
15:09

Esta aula discute melhoria de processo de software com foco em medição de processos.

Medição de Processo de Software
09:08

Esta aula discute melhoria do processo de software com foco em análise e mudança de processos.

Análise e Mudança de Processos
16:29

Esta aula discute o modelo CMMI para melhoria de processo de software. É abortado tanto a representação por estágios, quanto a representação contínua do CMMI.

Introdução ao Modelo CMMI
14:23

Esta aula apresenta as duas representações do modelo CMMI para avaliação de processos de software: CMMI por Estágios e CMMI Contínuo.

Representações do Modelo CMMI
14:37

Esta aula introduz o modelo brasileiro para melhoria de processos de software: MPS.Br. É feita também uma comparação entre o MPS.Br e o CMMI.

Introdução ao MPS.br
08:02

Teste seu conhecimento sobre melhoria de processo de software (Cap. 26).

Melhoria de Processos de Software
10 questions
About the Instructor
Eduardo Figueiredo
4.7 Average rating
0 Reviews
156 Students
2 Courses
Assistant Professor at UFMG

Eduardo Figueiredo is a lecturer at the Federal University of Minas Gerais (UFMG) since 2010. He received his PhD degree in Software Engineering from Lancaster University (UK) in 2009. Eduardo also holds a BSc degree (2004) in Computer Science from the Federal University of Ouro Preto (UFOP) and an MSc degree (2006) in Software Engineering from the Pontifical Catholic University of Rio de Janeiro (PUC-Rio), Brazil. His research interests include aspect-oriented programming, software product lines, software reuse, empirical software engineering, and software metrics. He has been consistently publishing in top software engineering conferences, such as ICSE, ECOOP, FSE, ICPC, TOOLS, etc. He has also served as a PC member in several events.