
Software Engineering
Code
1405
Academic unit
Faculdade de Ciências e Tecnologia
Department
Departamento de Informática
Credits
6.0
Teacher in charge
Ana Maria Dinis Moreira, João Baptista da Silva Araújo Júnior
Weekly hours
4
Teaching language
Português
Objectives
Knowledge:
- The principles, objectives and key concepts of Software Engineering (SE).
- The issues of software development on a large scale.
- Paradigms of development.
- Techniques and tools for requirements elicitation, analysis and design.
- Most common design patterns.
- Basic styles of architectural design.
- Software reuse.
- Verification and Validation (V & V).
- Management of software quality.
- Software Evolution.
- Project management.
Application:
- Identify and specify the various types of requirements.
- Select architectural alternatives.
- Model, design and implement software for reuse and evolution.
- Apply V & V techniques.
- Manage a software Project, including people, tasks and costs.
- Apply the various ES techniques to diverse types of problems.
Subject matter
Principles and Goals of SE
Requirements
- The main activities of Requirements Engineering
Software Design
- Design Paradigms
Introduction to architectural design
- Main architectural styles/patterns
Software reuse
Software Verification and Validation
Software Quality
Software Evolution
- Legacy systems
- Software change
- Configuration management
Software Management
Bibliography
- I. Sommerville, Software Engineering, Addison-Wesley, 9th edition, 2010
- R.S. Pressman, Software Engineering: A Practitioner''''s Approach, 7th 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", 2nd edition, Addison-Wesley, 2003.
- P. Clements, F. Bachmann, Le. Bass, D. Garlan, J. Ivers, R. Little, R. Nord, J. Stafford, "Documenting Software Architectures: Views and Beyond", Addison-Wesley, 2003
- C. Kaner, J. Falk, H. Q. Nguyen, Testing Computer Software, 2nd Edition, Wiley, 1999
- T. Mens, S. Demeyer, Software Evolution, Springer, 2010
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 (Teste 1= 25%, Teste 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 mean 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 8.0. Otherwise he/she has to do a re-sit exam, bt only if he/she 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 are for students who have frequency, but not achieved a satisfactory performance in continuous assessment, averaging between 9.5 and 20, or who wish to improve.
For students with frequency and average continuous assessment
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. Grades improvements for previous semesters are made exclusively by examination at the time of appeal or special time, being the final mark obtained in the exam.
for special exam (época especial), the final grade is the grade of the exam.