|Responsible unit:||Department of Informatics Engineering|
|Course/CS Responsible:||Master in Informatics and Computing Engineering|
|Acronym||No. of Students||Study Plan||Curricular Years||Credits UCN||Credits ECTS||Contact hours||Total Time|
|MIEIC||146||Syllabus since 2009/2010||3||-||6||56||162|
|João Carlos Pascoal Faria|
This course aims to acquaint students with the engineering and management methods necessary for the cost-effective development and maintenance of high-quality complex software systems.
At the end of the semester, students should:
1. INTRODUCTION: large scale software development chalenges; objectives and scope of software engineering; history of software engineering.
2. SOFTWARE PROCESS: concept of software process; process models; process activities; agile methods; example of the Rational Unified Process.
3. SOFTWARE PROJECT MANAGEMENT: software estimation; project planning, monitoring and control; agile and classic agile project managament.
4. REQUIREMENTS ENGINEERING: software requirements; the requirements document; requirements engineering process; requirements modeling with UML; user interface prototyping.
5. SOFTWARE DESIGN: architectural design; architectural modeling with UML; reuse (components, frameworks and product lines); detailed design.
6. SOFTWARE CONSTRUCTION: integrated development environments; rapid development environments; model-driven development environments; continuous integration; version control; agile development with XP.
7. SOFTWARE VERIFICATION AND VALIDATION: basic concepts; unit, integration, system and acceptance testing; software inspections and reviews; defect tracking; static code analysis.
8. SOFTWARE EVOLUTION: evolution processes; dynamics of program evolution; software maintenance; legacy systems; reverse engineering and software re-engineering.
9. PROCESS IMPROVEMENT: software process lifecycle; performance measurement; the CMMI maturity model; retrospectives.
Theoretical classes will be based on the oral presentation of the themes and description of problems, as well methodology analysis and solutions/good practices.
Theoretical-practical classes will be based on exercises, small projects and research work.
Three practical works will be developed:
- T1 - 1st practical work, in a group, of reading and writing a short summary about a topic related to the history of software engineering;
- T2 - 2nd practical work, in a group, of reading and writing a brief synthesis on a topic related to software development processes;
- T3 - 3rd practical work, in a group, based on an existing open source project, with the objective of accomplishing the various activities of the software development and maintenance life cycle, through the implementation of one or more issues; one project per class is selected and each group of students will select one or more issues to be resolved.
In some theoretical classes, small questionnaires (kahoots) will be carried out to gauge and discuss topics covered. The students with the best performance in the questionnaires (top 10 of each quiz) can earn a credit of up to 2 values to compensate for eventual failures in the final mini-test.
|Trabalho prático ou de projeto||35,00|
|Elaboração de projeto||28,00|
|Frequência das aulas||56,00|
Not exceed the absence limits and actively participate in the practical works that will be subject to evaluation.
Students dispensed from attendance rules must, in time periods defined with teachers, present the evolution of their works, and participate in the final presentations sessions as the regular students.
FG = 15% T1 + 15% T2 + 35% T3 + 35% MT
FG: Final Grade
T1: Grade for assignment 1
T2: Grade for assignment 2
T3: Grade for assignment 3
Final grades higher than or equal to 18 pts may require an oral examination touching all aspects of the course.
These students must however accomplish with the above considerations about realization and evaluation of works.
Development of alternative works in the next course term.
It is recommended that, for attending this course, students have completed LPOO.