Go to:
Esta página em português Ajuda Autenticar-se
Acesso ao Finantial Times
Today is sunday
You are here: Start > EIC0086

Site map
Edifício A (Administração) Edifício B (Aulas) - Bloco I Edifício B (Aulas) - Bloco II Edifício B (Aulas) - Bloco III Edifício B (Aulas) - Bloco IV Edifício C (Biblioteca) Edifício D (CICA) Edifício E (Química) Edifício F (Minas e Metalurgia) Edifício F (Minas e Metalurgia) Edifício G (Civil) Edifício H (Civil) Edifício I (Electrotecnia) Edifício J (Electrotecnia) Edifício K (Pavilhão FCNAUP) Edifício L (Mecânica) Edifício M (Mecânica) Edifício N (Garagem) Edifício O (Cafetaria) Edifício P (Cantina) Edifício Q (Central de Gases) Edifício R (Laboratório de Engenharia do Ambiente) Edifício S (INESC) Edifício T (Torre do INEGI) Edifício U (Nave do INEGI) Edifício X (Associação de Estudantes)

Software Development Laboratory

Code: EIC0086     Acronym: LDSO

Classification Keyword
OFICIAL Software Engineering
OFICIAL Multidisciplinary Themes

Instance: 2015/2016 - 1S Ícone do Moodle

Active? Yes
Responsible unit: Department of Informatics Engineering
Course/CS Responsible: Master in Informatics and Computing Engineering

Study cycles/ courses

Acronym No. of students Study Plan Curricular Years Credits UCN Credits ECTS Contact hours Total Time
MIEIC 123 Syllabus since 2009/2010 4 - 7,5 70 202,5

Teaching - Responsibilities

Teacher Responsibility
Ademar Manuel Teixeira de Aguiar

Teaching - Hours

Lectures: 2,00
Laboratory Practice: 3,00
Type Teacher Classes Hour
Lectures Totals 1 2,00
Ademar Manuel Teixeira de Aguiar 2,00
Laboratory Practice Totals 5 15,00
Ademar Manuel Teixeira de Aguiar 3,00
Nuno Honório Rodrigues Flores 3,00
Hugo José Sereno Lopes Ferreira 3,00
Rui Filipe Lima Maranhão de Abreu 3,00
Luís Filipe Pinto de Almeida Teixeira 3,00

Teaching language

Portuguese - Suitable for English-speaking students


The course unit has the key goal to develop the following skills in the students:
- applying a Software Engineering process to the complete development of a real software system. along the course unit, covering the specification of requirements, software architecture and design, coding, integration, test, documentation and demonstration;
- acquire fundamental knowledge and experience about agile software development practices: iteration planning, unit tests, refactoring, pattern-based design, collective ownership, pair programming, continuous integration;
- use software development tools adapted to agile methods to enable the continuous monitoring and tracking of the project along its lifecycle;
- use of large-scale APIs with class packages, to induct the component-based computing and the problems related with application integration;
- development of collaborative work integrating other project participants in design decisions, planning, delegation, negotiation, and group review;
- application and integration of the contents acquired by the students in courses within the areas of Software Engineering, Data Bases, Graphic Interfaces, Operative Systems, Programming Languages and Artificial Intelligence.

Learning outcomes and competences

The students will be capable to define and apply one development process, using agile practices, typical software development tools, in teams.

Working method



- Application of software development processes, including project planning methodologies.
- Requirements capture and elicitation, design, implementation, testing, documentation and presentation of a software system.
- Introduction to Agile Methods: values, principles, practices (Planning, Small Releases, Acceptance tests, Unit-tests, Test-first programming, Simple Design, Refactoring, Design Patterns) and popular examples of agile methods (Scrum and XP).
- Design and development of multilayer application based in software components and web services.
- Unit, integration and validation tests.
- Use of tools and programming environments (IDEs), modeling tools, test, source code control and configuration, collaborative documentation.
- Use of large-scale APIs.

Mandatory literature

Dave Thomas, David Heinemeier Hansson ; with Leon Breedt... [et al.]; Agile web development with Rails. ISBN: 0-9776166-3-0

Teaching methods and learning activities

Theoretical classes are used to the presentation and supervision of the projects and for the exposition of software developing tools and of used tools.

Laboratory classes are used to the implementation of the application.

The development of the project will be divided into five iterations:

Iteration 0 - 20%, 1+4 weeks, 16/Sep-14/Oct
•vision, user stories + user interfaces, architecture, vertical functional prototype
•public demonstration of the functional prototype

Iterations 1-4 - 30%, 8 weeks, 21/Oct-16/Dec
•development process maturity: plan, user stories ready, estimatives, acceptance tests, unit tests, continuous integration
•project tracking and management

Finale - 30%, 6/Jan
•product release (signup, download, etc.), documented source code repository (gitbitbucket), pitch + video + slides demo (5min), updated technical reports
•public demonstration of the product, to evaluate the idea, concept, and solution from the perspective of value for the client.

Type of assessment

Distributed evaluation without final exam

Assessment Components

Designation Weight (%)
Participação presencial 10,00
Trabalho escrito 40,00
Trabalho laboratorial 50,00
Total: 100,00

Amount of time allocated to each course unit

Designation Time (Hours)
Elaboração de projeto 80,00
Elaboração de relatório/dissertação/tese 20,00
Frequência das aulas 24,00
Trabalho laboratorial 40,00
Total: 164,00

Eligibility for exams

The student must have the minimum grade of 40% in any of the items.

Calculation formula of final grade

Results of Iteration 0 - 20%
Results of Iteration 1-4 - 30%
Final results  - 30%
Website - 10%
Individual evaluation - 10%


Special assignments must follow similar evaluation rules. Students must contact the lecturers to define the special assignment, based on the availability, dates, and topics of the course unit.

Special assessment (TE, DA, ...)

Special evaluation students (including working students and soldiers) have the same evaluation methods as the other students.

Classification improvement

To improve the classification the student must make another assignment with all the items mentioned before, and an extra oral exam; Improvements of the classification requested in the following academic year will require doing all the assignments forecasted for the students of that academic year.


Language of instruction: Portuguese or English, depending on the attendants.

Recommend this page Top
Copyright 1996-2017 © Faculdade de Engenharia da Universidade do Porto  I Terms and Conditions  I Accessibility  I Index A-Z  I Guest Book
Page generated on: 2017-09-24 at 07:51:27