Faculdade de Ciências e Tecnologia

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.

Courses