Engenharia de Software

Base Knowledge

Programming skills required for writing unit tests.

Teaching Methodologies

The following teaching methodologies are used in this course:

Expository method: explanatory method where facts, concepts, principles and generalizations are defined and presented by the teacher and discussed with the class, followed by demonstrative examples;

Experimental method: active method where the student develops knowledge through problem solving and project development, in group dynamics and individual and reflective work

Learning Results

  • Identify and describe the reasons why software engineering is essential;
  • Identify and describe the main software development processes;
  • Identify the different types of requirements and describe the main methods of developing them
  • Create requirements specification documents;
  • Identify and describe the main patterns of software architecture;
  • Design the software architecture appropriate to a particular problem;
  • Create software modeling using UML diagrams
  • Identify and describe agile software development processes
  • Build software tests;
  • Develop software using low/zero code platforms;
  • Recognize the importance of software quality.

Program

  • Basic concepts of software engineering;
  • Software development process;
  • Requirements engineering;
  • Architecture and software design;
    • C4 model
  • Modeling systems with UML (Unified Modeling Language);
  • Software testing;
  • Agile methods of software development;
  • Software development using Low Code / Zero Code systems (e.g. OutSystems, Microsoft PowerApps);
  • Software quality.

Curricular Unit Teachers

Grading Methods

Final evaluation
  • - Individual and/or Group Work - 50.0%
  • - Exam - 50.0%
Periodic Evaluation
  • - Individual and/or Group Work - 60.0%
  • - Exam - 40.0%

Internship(s)

NAO

Bibliography

Guerreiro, S. (2015). Introdução à engenharia de software. FCA. 

Sommerville, I. (2011). Engenharia de software  (9th edition). Addison Wesley.

Palhoto, T. (2016). Desenvolvimento ágil de software. FCA.

Borges, J. L. M., Cunha, J. F., Dias, T. G. (2015). Modelação de dados em UML – uma abordagem por problemas. FCA. 

Laboon, B. (2016).  A friendly introduction to software testing (1st edition). CreateSpace Independent Publishing Platform.