Software Engineering



  • The principles, objectives and key concepts of Software Engineering.
  • The issues of software development on a large scale.
  • Software management.
  • Techniques and tools for requirements engineering.
  • Basic styles of architectural design.
  • Variability Management: Software Product Lines.
  • Software quality.
  • Verification and Validation (V&V).
  • Software evolution.


  • Manage a software Project, including people, tasks and costs.
  • Identify and specify the various types of requirements.
  • Select architectural alternatives.
  • Model and design software for large scale reuse.
  • Model and design software for evolution.
  • Apply V&V techniques.
  • Apply and use software engineering techniques and tools.

General characterization





Responsible teacher

Ana Maria Diniz Moreira, João Baptista da Silva Araújo Júnior


Weekly - 4

Total - Available soon

Teaching language



 Methods of software  development


  • I. Sommerville, Software Engineering,  Pearson, 10th edition, 2015
  • R.S. Pressman, Software Engineering: A Practitioner''''''''s Approach, 8th edition,  McGraw-Hill, 2014
  • B. Hughes, M. Cotterell, Software Project Management, McGraw-Hill Higher Education; 5th edition, 2009.
  • A. Lamsweerde, Requirements Engineering, Wiley, 2009
  • I. Alexander, N. Maiden, Scenarios, Stories, Use Cases: Through the Systems Development Life-Cycle, Wiley, 2004
  • S. Pfleeger, J. Atlee, Software Engineering - Theory and Practice, Prentice Hall, 2005
  • L. Bass, P. Clements, R. Kazman, "Software Architecture in Practice", 3rd edition, Addison-Wesley, 2012.
  • C. Kaner, J. Falk, H. Q. Nguyen, Testing Computer Software, 2nd Edition, Wiley, 1999
  • T. Mens, S. Demeyer, Software Evolution, Springer, 2010

Teaching method

In the beginning of the course the students receive the schedule for their research topics and practical work, which includes several questions. Each question relates to specific topics addressed in theory lectures. A time-period is specified for answering the questions.

Lectures are given in a class room equipped with a computer projector, where each topic is presented with the help of Powerpoint. The practical sessions take place in a class room equipped with computers and projector.

Evaluation method

The assessment is divided into the obligatory parts: a practical work delivered in 2 phases; 2 tests. Practical works and essays are done in groups and tests, individually.

The score is a weighted average of the practical work (Phase I = 20%; Phase II = 30%) and test score (Test 1= 25%, Test 2 = 25%).

Practical work: A compulsory practical work delivered in two phases, consisting of 20% (of the final) in Phase 1 and 30% (of the final) in the 2nd Phase. For frequency, the weighted average of the two phases should be greater than or equal to 9.5.

Test: 2 tests worth 25% each of final grade. The student must have an average of the tests with a minimum grade of 9,5. Otherwise he/she has to do a re-sit exam, but only if s/he got frequency given by the practical work.

The final grade is a weighted average of the grades of the test (25% each), of the 1st phase of practical work (20%) and the 2nd phase of practical work (30%).

Access to the re-sit exam period is given only to students who have valid frequency, but not passed during continuous assessment, or the students that want to improve their grades. During the re-sit exam period, the exam grade replaces the note of the tests, for students with frequency obtained in the semester in which they are carrying out the examination, maintaining the rule of minimum grade of 9.5 values for the exam ​​(replacing the minimum grade of 9,5 on the average of tests), to partially fulfill the criteria for approval. Therefore, if the re-sit exam grade  is lower than 9,5 the student is not approved,otherwise the final grade is equal to (exam grade + practical work)/2. Students without any assessment during the semester will be classified as "Absent".

For students with valid frequency obtained in a previous semester, the final grade is the average of the tests, or the grade of the resit exam, where the students try to get approval either during continuous assessment or resit exam period, respectively.

Note the improvements take place exclusively at the time of appeal. To grade improvements made ​​at the time of the re-sit exam of the semester in which approval has been obtained in the discipline, the rules for calculating the score are : the final grade is the grade of the exam. Grade improvements for previous semesters obeys the same rule, i.e., the final grade is the grade of the exam.

For special exam (época especial), the final grade is the grade of the exam.

Subject matter

1. Motivation to Software Engineering

1.1 Principles and objectives of Software Engineering

1.2 Concepts, software activities, professional ethics


2. Software process models

2.1 Traditional software life cycle models  

2.2. Agile development


3. Software management

3.1 Managing people

3.2 Risk management

3.3 Configuration management


4. Conceptual modelling

4.1 Modeling business processes with BPMN (Business Process Modeling Notation)

4.2 Goal-driven requirements models using the KAOS approach

4.3 Modelling of solution domain


5. Software Reuse:

5.1 Concepts and reuse landscape

5.2  Software product lines (domain engineeing, application engineering)


6. Software quality

6.1 V&V

6.2 Prototyping

6.3 Maturity models  


8. Software evolution

8.1 Software aging

8.2 Software change


Programs where the course is taught: