Study programme competencies |
Code
|
Study programme competences / results
|
A7 |
Capacidade para deseñar, desenvolver, seleccionar e avaliar aplicacións e sistemas informáticos que aseguren a súa fiabilidade, seguranza e calidade, conforme a principios éticos e á lexislación e normativa vixente. |
A13 |
Coñecemento, deseño e utilización de forma eficiente dos tipos e estruturas de datos máis adecuados á resolución dun problema. |
A14 |
Capacidade para analizar, deseñar, construír e manter aplicacións de forma robusta, segura e eficiente, elixindo o paradigma e as linguaxes de programación máis adecuados. |
B1 |
Capacidade de resolución de problemas |
B2 |
Traballo en equipo |
B3 |
Capacidade de análise e síntese |
B4 |
Capacidade para organizar e planificar |
C3 |
Utilizar as ferramentas básicas das tecnoloxías da información e as comunicacións (TIC) necesarias para o exercicio da súa profesión e para a aprendizaxe ao longo da súa vida. |
C6 |
Valorar criticamente o coñecemento, a tecnoloxía e a información dispoñible para resolver os problemas cos que deben enfrontarse. |
Learning aims |
Learning outcomes |
Study programme competences / results |
Identify software design as one of the phases of software lifecycle |
A7 A13 A14
|
B3 B4
|
C3
|
Know the principles and basic properties of object orientation |
A7 A13 A14
|
B1 B2 B3 B4
|
C3 C6
|
Capture software design using the artifacts of a modeling language like UML |
A7 A13 A14
|
B1 B2 B3 B4
|
C3 C6
|
Know the basic principles that represent a good software design |
A7 A13 A14
|
B1 B2 B3 B4
|
C3 C6
|
Identify typical design problems and their most common solutions |
A7 A13 A14
|
B1 B2 B3 B4
|
C3 C6
|
Use a design as a guide for software implementation |
A7 A13 A14
|
B1 B2 B3 B4
|
C3 C6
|
Learn an object-oriented language and related aspects (IDE, tests, repositories, etc.) |
A13
|
B1 B2 B3 B4
|
C3 C6
|
Contents |
Topic |
Sub-topic |
1. Introduction |
• Software design
• Object-oriented analysis and design |
2. Basic Elements of Object Orientation |
• Classes and objects
• Object identity
• Object state
• Object behavior |
3. Basic Characteristics of Object Orientation |
• Abstraction and encapsulation
• Modularity
• Hierarchy
• Polimorphism
• Typing
• Dynamic binding |
4. Unified Modeling Language (UML) |
• Introduction
• Basic elements of UML
• Static design: Class diagrams
• Dynamic design: Interaction diagrams
• Other diagrams |
5. Design Principles |
• Quality in design
• SOLID principles
• Types of inheritance |
6. Design Patterns |
• Introduction to design patterns
• Elementary patterns
• Designs adaptable to changes
• Loosely coupled designs
• Patterns and collections of objects
• Other patterns and principles |
Practice |
• Introduction to Java and NetBeans
• Software tests
• Exceptions management
• Use of a source code repository |
Planning |
Methodologies / tests |
Competencies / Results |
Teaching hours (in-person & virtual) |
Student’s personal work hours |
Total hours |
Guest lecture / keynote speech |
A7 A13 A14 B1 B3 C6 |
30 |
45 |
75 |
Laboratory practice |
A7 A13 A14 B1 B2 B3 B4 C3 C6 |
20 |
30 |
50 |
Seminar |
A7 A13 A14 B1 B2 B3 B4 C3 C6 |
10 |
10 |
20 |
Objective test |
A7 A13 A14 B1 B3 C6 |
3 |
0 |
3 |
|
Personalized attention |
|
2 |
0 |
2 |
|
(*)The information in the planning table is for guidance only and does not take into account the heterogeneity of the students. |
Methodologies |
Methodologies |
Description |
Guest lecture / keynote speech |
Lectures explaining theoretical concepts using different resources: blackboard, projection of digital slides, class notes in electronic format and other resources provided by the teachers in the Virtual Campus of the UDC. |
Laboratory practice |
Laboratory activities based on the knowledge that students are acquiring in lectures. Students will develop this activities preferably in groups. We will use a modeling tool to build the design artifacts and an object-oriented language (Java) to implement that artifacts. |
Seminar |
Seminars with activities related to knowledge acquired in lectures or laboratory activities |
Objective test |
Written test in which the knowledge acquired by students is assessed. Each student must apply their knowledge both in theoretical and practical level. |
Personalized attention |
Methodologies
|
Laboratory practice |
Seminar |
|
Description |
Personalized attention to students includes not only tutorials (either virtual or in-person) to discuss questions, but also the following actions:
- Monitoring the work of laboratory practices proposed by the teacher.
- Evaluation of the results obtained in practice and seminars.
- Personalized meetings to answer questions about the contents of the subject.
|
|
Assessment |
Methodologies
|
Competencies / Results |
Description
|
Qualification
|
Laboratory practice |
A7 A13 A14 B1 B2 B3 B4 C3 C6 |
Exercises based on Java programming, object-oriented design, testing design, the modeling language UML and the use of design principles and design patterns.
Plagiarized practices will be voided, both the original and the copy, and may result in a zero in the overall grade of the given assignment. |
33 |
Seminar |
A7 A13 A14 B1 B2 B3 B4 C3 C6 |
Seminars are practical sessions led by the teacher in which useful aspects related to the assignments are discussed.
The seminars do not include the submission of assignments by the students, so it is not an evaluable activity. |
0 |
Objective test |
A7 A13 A14 B1 B3 C6 |
Written test conducted at the end of the semester with theoretical and practical content.
It is mandatory to obtain a minimum grade of 4 in the objective test to pass the subject. |
67 |
|
Assessment comments |
Failure to reach the minimum score in the objective test in any of the opportunities will mean that you can not get more than a 4.5 in the final grade of the subject. Aspects to be considered for the evaluation of second opportunity (July): - Laboratory practices grades are the ones obtained at the first opportunity (submission of laboratory practices in the second opportunity is not allowed).
Aspects to be considered in the case of part-time enrollment: - The obligation to attend activities that require to be in-person is eliminated.
|
Sources of information |
Basic
|
Gamma, E.; Helm, R.; Johnson, R. y Vlissides J. (1996). Design Patterns: Elements of Reusable Object-oriented Software.. Addison Wesley
Booch J.; Rumbaugh J. y Jacobson I. (2006). El Lenguaje Unificado de Modelado (2ª ed.) The Unified Modeling Language (2nd ed.). Addison Wesley
Sierra, K., Bates, B. (2005). Head First Java. O’Reilly
Schildt, H. (2018). Java 9. Anaya Multimedia
Martin, R.C. (2004). UML para programadores Java. UML for Java Programmers. Pearson |
|
Complementary
|
Martin, R.C. (2012). Código limpio : manual de estilo para el desarrollo ágil de software. Anaya Multimedia
Bloch, J. (2017). Effective Java (3rd ed.). Addison Wesley
Freeman, E., Freeman, E., Bates, B. (2004). Head First Design Patterns. O'Reilly
Grand M. (2002). Patterns in Java. John Wiley & Sons
Eckel, B. (2007). Piensa en Java (4ª ed.). Thinking in Java (4th ed.). Prentice-Hall
Rumbaugh, J.; Jacobson, I. y Booch, J. (2004). The Unified Modeling Language Reference Manual. Addison Wesley |
|
Recommendations |
Subjects that it is recommended to have taken before |
Programming I/614G01001 | Programming II/614G01006 |
|
Subjects that are recommended to be taken simultaneously |
Programming Paradigms/614G01014 |
|
Subjects that continue the syllabus |
Software Process/614G01019 | Human Machine Interfaces/614G01022 | Internet and Distributed Systems/614G01023 |
|
Other comments |
It is assumed that students know how to program and understand data structures (Programming II subject) but have never used an object-oriented language. At the beginning of the subject, as the students are introduced to the concepts of object orientation, they will become familiar with the basics of Java programming language. |
|