Software Architecture
Keywords |
Classification |
Keyword |
OFICIAL |
Computer Science |
Instance: 2020/2021 - 2S

Cycles of Study/Courses
Teaching language
Suitable for English-speaking students
Objectives
The goal of this course is to introduce students to the conceptual models and software tools used in large software development projects.
Learning outcomes and competences
The objectives of this course are the development of the student's ability to:
- model and design object-oriented programs;
- use modeling and software development tools;
- know specialized systems used in application development.
Working method
B-learning
Pre-requirements (prior knowledge) and co-requirements (common knowledge)
Reasonable programming skills
Program
- Java and object orientation
- Java language
- Structuring
- Encapsulation
- Reuse
- Code conventions
- Design patterns
- General concepts on patterns
- Creational patterns
- Structural patterns
- Behaviour patterns
- Application interfaces and frameworks
- Concept definition
- Analysis of the basic JAVA API
- Analysis of some frameworks
- Application servers
- Web application models
- Web interfaces
- Application components
- Develop.
- Modeling software in UML
- Concept of model and diagram
- Types of diagrams
- Class diagrams
- Use case diagrams
Mandatory literature
Java in a Nutshell: Desktop Quick Reference for Java Programmers
D. Flanagan, O'Reilly ; Java in a Nutshell. ISBN: 1-56592-262-X
Comments from the literature
The syllabus covers the fundamental concepts related to with program design following a object oriented approach, starting with a review of these concepts in Java, following with the study of object oriented design patterns and finishing with the study of the UML modelling language. The assignments are an opportunity for students to design and implement larger programs and apply the acquired knowledge in their modelling. During these assignments are also used typical tools used in software development, such as integrated development environments and application servers. The teaching methodologies enable both the explanation of all the syllabus concepts and its consolidation by students. The distributed evaluation ensures that each subject is assessed immediately after being learned and the articulation between theoretical and practical assessment allows students to consolidate their knowledge on each concept or technology after acquiring experience with them.
Teaching methods and learning activities
Theoretical classes follow the flipped classroom model. Students must watch the videos exposing the material before the respective theoretical class. During these classes, either face-to-face or telematic, the discussion on the presented topics is promoted and students' questions answered.
Practical classes are used for working on practical assignments that consolidate the concepts exposed in the theoretical classes.
Software
Eclipse Neon - Ambiente integrado de desenvolvimento (IDE)
Papyrus - Editor UML para Eclipse
Plugin GWT para Eclipse
Google Chrome
Plugin de desenvolvimento GWT para o Google Chrome
Papyrus 0.8.0 - Editor UML para Eclipse
Robocode - Jogo de programação em tempo real
JDK 1.8 - Tookit de desenvolvimento Java
Evaluation Type
Distributed evaluation with final exam
Assessment Components
designation |
Weight (%) |
Teste |
60,00 |
Trabalho laboratorial |
40,00 |
Total: |
100,00 |
Amount of time allocated to each course unit
designation |
Time (hours) |
Frequência das aulas |
56,00 |
Trabalho laboratorial |
60,00 |
Estudo autónomo |
46,00 |
Total: |
162,00 |
Eligibility for exams
Only students who participate in a minimum of 2 tests and 2 assignments will be considered as having attended the course unit.
Calculation formula of final grade
The assessment is distributed in 6 moments, 3 theoretical tests contributing with 12 points for the final grade (maximum of 20 points), and 3 individual practical assignments contributing with 8 points to the final grade. The weight and subjects covered by each theoretical test are the following:
- Test 1 - 2 points - Java and object orientation;
- Test 2 - 5 points - Design patterns, APIs and frameworks;
- Test 3 - 5 points - Application servers, UML Modelling.
The weight and subjects covered by each individual practical assignment are the following:
- Assignment 1 - 2 points - Java e object orientation;
- Assignment 2 - 3 points - Design patterns, APIs and frameworks;
- Assignment 3 - 3 points - Application servers, UML Modelling.
Examinations or Special Assignments
Theoretical tests are of multiple choice quizzes, answered on the computer during lab classes, according to the calendar of the course unit. Each test will assess the topics presented in the preceding few weeks.
The assignments are carried out in groups of up to 2 students during lab hours, and also evaluated during lab hours.
Special assessment (TE, DA, ...)
Students with a special assessment status, as well as other students that provide an acceptable justification, can take any of the assessments in a date and time arrange
Classification improvement
29-03-2021 As assessment changed to "Distributed with a final exam",there will also be an appeal. Therefore, the previous text has no effect. ("Since assessment is distributed without final exam, there will be no supplementary or grade improvement exam").