Software Reuse
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Informática |
Ocorrência: 2021/2022 - 2S
Ciclos de Estudo/Cursos
Sigla |
Nº de Estudantes |
Plano de Estudos |
Anos Curriculares |
Créditos UCN |
Créditos ECTS |
Horas de Contacto |
Horas Totais |
MES |
19 |
Plano de Estudos 2017-2018 |
1 |
- |
7,5 |
- |
202,5 |
Docência - Responsabilidades
Língua de trabalho
Portuguese
Objetivos
At the end of this course, students will be able to:
- Identify the distinct levels of reusing software, identifying the technical and non-technical issues.
- Select and properly apply software architecture patterns in order to solve a specific problem.
- Select and use components and software libraries to solve a specific problem.
- Design and implement software libraries.
- Select and use software components to solve a specific problem.
Resultados de aprendizagem e competências
- Identify the distinct levels of reusing software, identifying the technical and non-technical issues.
- Select and properly apply software architecture patterns in order to solve a specific problem.
- Select and use components and software libraries to solve a specific problem.
- Design and implement software libraries.
- Select and use software components to solve a specific problem.
Modo de trabalho
Presencial
Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)
Knowledge of Object Oriented Programming
Programa
The course is organized as follows:
1. Introduction
1.1. What is software reuse.
1.2. Technical issues in software reuse.
1.3. Non-technical issues in software reuse.
1.4. Reusability through software life cycle
1.4.1.Models reuse
1.4.2.Code reuse
1.4.3.Components reuse
2. Software Patterns
2.1. Principles of software patterns
2.2. Architecture Patterns
2.3. Creational Patterns
2.4. Partitioning Patterns
2.5. Structural Patterns
2.6. Behavioral Patterns
2.7. Concurrency Patterns
2.8. Database patterns
2.9. Gui Design Patterns
2.10. Organizational Coding Patterns
3. Software Libraries
3.1. Libraries use.
3.2. Design and implement software libraries.
4. Software Components
4.1. Components Use
4.2. Design and implement software components.
Bibliografia Obrigatória
Michel Ezran, Maurizio Morisio, Colin Tully; Practical software reuse, Springer, 2002. ISBN: 978-1-85233-502-1
Martin Fowler, with Dave Rice, Matthew Foemmel, Edward Hieatt, Robert Mee, and Randy Stafford; Patterns of Enterprise Application Architecture, Addison-Wesley, 2002. ISBN: 978-0321127426
Bibliografia Complementar
Erich Gamma , Richard Helm , Ralph Johnson, John Vlissides; Design Patterns : Elements of Reusable Object-Oriented Software, Pearson Education Limited, 1997. ISBN: 9780201633610
Métodos de ensino e atividades de aprendizagem
The predominant methods are based on the paradigm of active learning. Each lesson will aim to give a specific problem to be solved in a group working base, where the problem will lead the learning process.
Tipo de avaliação
Distributed evaluation without final exam
Componentes de Avaliação
Designation |
Peso (%) |
Teste |
40,00 |
Trabalho escrito |
60,00 |
Total: |
100,00 |
Componentes de Ocupação
Designation |
Tempo (Horas) |
Frequência das aulas |
18,00 |
Total: |
18,00 |
Obtenção de frequência
Final grade of 10 values rounded to units
Fórmula de cálculo da classificação final
3 Group assignments = 60% (20% each), with no minimum grade.
The presence, participation and achievement of objectives in the 3 laboratory classes related to each work is worth 10% of the work grade each and is awarded in full.
2 Tests or Exam = 40%, minimum grade of 10 for the exam.
Each test is worth 20% and has a minimum score of 8 values.
Final Grade = Average grade of the tests or exam * 0.4 + Average grade of the 3 works * 0.6.