- 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.
Ana Maria Diniz Moreira, João Baptista da Silva Araújo Júnior
Weekly - 4
Total - Available soon
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
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.
The assessment consists of the following mandatory components: a practical assignment delivered in two phases; 2 tests. The work is carried out in groups and the exam is carried out individually. The grade is a weighted average of practical work (Phase I = 20%; Phase II = 30%), and the test grade (Test I = 25%; Test II = 25%).
Practical work: A mandatory practical work delivered in two phases, worth 20% (of the final grade) in the 1st phase and 30% (of the final grade) in the 2nd phase. To obtain frequency, the weighted average of the two phases must be greater than or equal to 9.5.
Tests: 2 tests each worth 25% of the final grade. The student must obtain a value of at least 9.5, in the average of the tests, otherwise, he must go to the resource if he obtained frequency (given by the practical work). The final grade is a weighted average of the test scores (25% each), the 1st phase of practical work (20%) and the 2nd phase of practical work (30%). The tests are without consultation. The tests will be in person. If it is not possible, they will go online.
Access to the exam is given exclusively to students with valid attendance, obtained this semester or in the previous academic year, and to students in grade improvement. At re-sit exam ("época de recurso"), the exam score replaces the test score, keeping the rule of the minimum score of 9.5 values of the exam, in order to partially meet the approval criteria. Therefore, if the grade of the re-sit exam is less than 9.5, the student fails, otherwise, the final grade = (Exam score + weighted average of the work) / 2. The same applies in "época especial". Students without any evaluation during the semester will be classified as "Absent". The exam is also without consultation. The exam will be in person. If it is not possible, it will go online.
The improvement ("melhoria") of all components can only be made by attending the UC in the academic year immediately after the one in which approval was obtained, submitting the student, in that year, to all components of assessment throughout the period of classes, needing authorization of the professor for its realization.
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.3 Maturity models
8. Software evolution
8.1 Software aging
8.2 Software change
Programs where the course is taught: