2018 - II

Software Reuse

Course Agenda

Lecture

Date

Topics

1

13/08

Part 1: Course introduction, books, assessment criteria, important dates, etc.

2

20/08

Part 1: Introduction to Software Reuse

Part 2: Reuse in Object Oriented Programming

Part 3: Overview of Reuse Techniques: Design Patterns and MDD

3

22/08

Part 1: Design Patterns (GoF)

Part 2: Structural Design Patterns

Part 3: Behavioral Design Patterns

Part 4: Creational Design Patterns

4

27/08

Part 1: Software Architecture

Part 2: Architectural Patterns (POSA)

Part 3: Architectural Patterns: From Mud to Structure

Part 4: Architectural Patterns: Distributed Systems, Interactive Systems, and Adaptable Systems

5

29/08

Parte 1: Component Based Software Engineering (CBSE)

Parte 2: Component Model

Parte 3: CBSE Process

Parte 4: Component Composition

6

03/09

Exercise about Software Architecture

Exercise about Component Based Software Engineering (CBSE)

7

05/09

Part 1: Review of Architectural Patterns.

Part 2: Programming Idioms in Java

8

10/09

Part 1: Team Work - Problems and Programmers

Part 2: Team Work - Game SimulES

9

12/09

Exercise about educational games

10

17/09

Part 1: Separation of Concerns

Part 2: Aspect Oriented Software Development (AOSD)

Part 3: Pointcuts in AspectJ

Part 4: Advice in AspectJ

Part 5: Intertype declarations in AspectJ

11

19/09

Exercise about Aspect Oriented Software Development

12

24/09

Part 1: Introduction to Software Product Lines

Part 2: Feature Modeling by Example

Part 3: Tools for Software Product Lines

13

26/09

Paper Presentation: Avoiding Code Pitfalls in Aspect-Oriented Programming (Aline)

Paper Presentation: Are Code Examples on an Online Q&A Forum Reliable? A Study of API Misuse on Stack Overflow (Igor)

Part 3: Paper Summary

14

01/10

Part 1: Exercise about Software Product Lines.

15

03/10

1st Exam

16

08/10

Part 1: Implementation Techniques for Software Product Lines

Part 2: Feature Oriented Programming (FOP)

17

10/10

Part 1: FOP Examples and the AHEAD Tool Suite

Part 2: FeatureIDE for Feature Oriented Programming

18

15/10

Part 1: Exercise about Feature Oriented Programming

19

17/10

Part 1: Aspectal Feature Modules

Part 2: Aspect and Feature Oriented Programming with CaesarJ

Part 3: Delta Oriented Programming with DeltaJ

20

22/10

Parte 1: Processos de Software

Parte 2: Modelo Cascata

Parte 3: Engenharia de Software baseada em Reutilização

Part 4: Software Product Line Process

Part 5: Domain Engineering

Part 6: Application Engineering

21

24/10

Paper Presentation 1: Granularity in Software Product Lines (Priscilla)

Paper Presentation: On the Use of Feature-Oriented Programming for Evolving Software Product Lines: A Comparative Study (Rafael)

Part 3: Paper Summary

22

29/10

Paper Presentation 1: Cost-Efficient Sampling for Performance Prediction of Configurable Systems (Amanda)

Paper Presentation 2: An Empirical Study on Performance Bugs for Highly Configurable Software Systems (Geanderson)

Part 3: Paper Summary

23

05/11

Part 1: Team Work Presentation

24

07/11

Part 1: Team Work Presentation

25

12/11

Part 1: Review to 2nd Exam

26

14/11

2nd Exam

27

19/11

Review to 3rd Exam (optional)

28

21/11

3rd Exam (optional)

29

26/11

Part 1: Final Project Presentation

30

28/11

Part 1: Final Project Presentation

Grading

Contact

reuso.softwaregmail.com

Departamento de Ciêcia da Computação
Av. Antônio Carlos, 6627 - ICEx - Pampulha
Belo Horizonte - CEP: 31270-010
Minas Gerais - Brasil

Sala: 4311
Telefone: +55 (31) 3409-5878