Software Development Methods



a) Software lifecycle, tools, methods and techniques for project management, specification and design of large-scale projects involving large, multidisciplinary teams

b) The relevance of project development activities, approaches and models to tackle complex problems in a pragmatic and rigorous way

c) Modeling techniques for structured, agile and object-oriented development

d) The social, Professional and Ethical responsibility of a Software Engineer


e) Deal with and model complex problems (Problem and Solution)

f) Interpret, understand and discuss badly defined requirements (omissions, ambiguities, contradictions, duplications)

g) Use techniques for structured, agile and object-oriented software development

h) Use adequate tools to support software specification and design

General characterization





Responsible teacher

Ana Maria Diniz Moreira, Vasco Miguel Moreira do Amaral


Weekly - 5

Total - 52

Teaching language



No precedences required.


Software Engineering, Ian Sommerville (8th Edition or later) Addison-Wesley

UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design (2nd Edition), Jim Arlow, Addison-Wesley Professional, 2005

Powerpoints of the Theoretical Lectures: available at the course website

Lab exercises and revision material: available at the course website

A code of ethics and professional practice for software engineering, ACM/IEEE-CS Joint Task Force on Software Engineering Ethics and Professional Practices, 2004.

Tools:Gantter (Ferramenta de gestão de projeto), Star UML (Editor de UML), USE Tool (UML tool with OCL support), UML quizzes (online)

Teaching method

Lectures consist of a theoretical exposition, illustrated by application examples, and supported by slides and the usage of the software development environment of the lecturer.
In the lab sessions, students solve problems by concretely applying the concepts discussed in the previous lectures. The students will have dedicated time during the labs to ask questions related to the interpretation of the requirements of the project.
Students may clarify any doubts during classes or in the instructor’s contact hours.

Evaluation method

The grading system for this course works in the following two ways, according to the student''s state:

E1- Students enrolled in this course for the first time. These students have to get approval in two components: theory and practice. See I to IV. 

E2 - The rest of the cases. See V to VIII.

The students are graded with the scale 0 (minimum) to 20 (maximum) rounded to the nearest tenth.

I - Theoretical evaluation - Tests and Exams

1. The classification of the theoretical part (here labeled as NT) is the arithmetic mean of the Two tests.

2. The students that obtain NT greater or equal to 9,5 get the approval in the theoretical part.

3. Each test will cover the content of the lectures taught until one week before the examination.

4. Despite the fact that the tests are supposed to cover the content of the lectures in a modular way, it is not taken from granting that the second test does not use knowledge already examined in the first test.

5. The times and locations of the tests will be announced in the CLIP system, and the moodle''s course website.

6. All students have to be enrolled in theoretical lectures and labs.

[The following items, namely the need to be physically present, might be subject to change, depending on the evolution of the situation with COVID-19]

7. The students can only have with them during the examination:

a. pen, stencil, eraser;

b. student''s ID card

8. Any other element (including electronic devices, calculator machines etc) are forbidden. Mobile devices must be switched off so that they don''t disturb the rest of the students. 

9. You can not unstaple the examination papers.

10. The exam will be disqualified if any of the conditions expressed in 6,7,8 are not satisfied.

11. Any form of fraud, plagiarism, bad conduct will lead to immediate failure in the course, and the situation will be reported to the Faculty''s management to proceed with legal consequences. 

II - Labs and Project (Practical evaluation)

1. The labs will start during the week of the 21th to 25th of September.

2. In the second lecture, the lecturer will randomly form groups (5 students as members).

4. The work of the group members on the project must start since the first day the description of the problem is announced.

a. The project will imply the submission of weekly reports (detailed when the project is announced), oral presentation to the teacher in the lab.

b. The project also implies 3 milestones (M1, M2, M3) with artifact submission P1, P2 and P3 (to be detailed later). Each Mx/Px will count 15% of the final grade. 

5.  The project implies an oral discussion to be booked for the first or second week of January.

6. The complete grading of the project will depend on the deliverables and the oral discussion.

III -  "Frequency"

1. The concept of "Frequency" means that the student is allowed to pass in the course (taking into consideration the rest of the evaluation grading). It is mandatory that the student has a minimum performance (Grade of the project >= 9.5) in the execution of his project.

2. For students E2, we can consider the "frequency" obtained in the previous year (2019/20).Therefore, the students can do the evaluation in the theoretical part: exams and tests. In this case, the final grade will be calculated in the following manner: NF=0.6 NT + 0,4 NP.

3- The students E2 with "frequency" can be enrolled in the theoretical and practical labs. They can opt in between doing the project, using the "frequency", or not (implying that they will be evaluated as any other student E1). In any case, they should inform the lecturers about their status and their willingness or not work on the project for evaluation until the 25th of September.

 IV - Final grading of Students E1

1. The final grade (CF) is the result of the following expression rounded to the neareswhole number:


2. The students that have "Frequency", with positive grading that shows a discrepancy greater to 4 units when compared to the grading in the tests, will be called for an oral examination.

3. The oral examination implies that the grades can change although it is assured that the grade will never be lower to CF=NT.

4. If the student does not participate in the oral exam the final grade will be CF=NT.

VI - Final grade for students E2 (Frequency in 2019/2020)

Students that want to make use of "Frequency" obtained in previous years.

1. Students with the classification of NT >= 9.5 are approved.

2. The final Classification CF=0,6 x NT+ NP x 0.4  rounded to the neareswhole number.


VII - Grade improvement

1. The students that want to improve their grades have to follow the rules of the academic department to be subscribed to CLIP for that purpose.

2. The final grade is calculated using the formula in the  rules of the year of the course the frequency was obtained.


VIII - Students workers for the first time

1. The students are considered  Student workers if subscribed following the academics department in CLIP.

2. The students with this category have to be evaluated like any other E1 student (tests, exams, and project deliveries.

3. The final grading is computed in the following manner:


IX - Lectures

1. The classes will be held online. The links to the zoom sessions will be available in both clip and the moodle website.

Subject matter

Part 1:
1. Software Development Processes

2. Overview of elicitation and modeling paradigms

3. Functional and Non-Functional Requirements

4. UML

a) Requirements: Use Case Diagrams

b) Behavior: Activity, Sequence and state diagrams

c) Structure: Class, Object and Package diagrams

d) OCL (Object-constraint language)

Part 2:

1. Architectural and design principles

2. Tools and Environments

3. UML

a) Architecture: Component and Installation Models

b) Persistency: Deriving Entity-Relationship models

Part 3:

1. Introduction to Project Management

2. Code of Professional Ethics