How to find us

Software Engineering 2017/2018

  • 7 ECTS
  • Taught in Portuguese
  • Continuous Assessment


After completing the course, students should be able to understand the role of the design phase in the information systems development process: the principles that enable the design of systems with quality; modeling of computer systems components using UML.
Specifically, at the end of the semester, it is expected that students will be able to:
• Develop software with high quality level, to write test plans, and to execute these tests.
• Use version control tools
• Build design specifications using UML tools and techniques.
• Use automated tools for systems modeling.

Recommended Prerequisites

Curricular units: Programming, IS Development
Concepts of object oriented analysis using UML; Java

Teaching Metodology

During theoretical-practical classes the subjects will be explained with practical examples and discussion.
During practical classes students will work on several assignments, having the opportunity to use the studied techniques.

Body of Work

Source control systems. GIT.
Software testing. Types of tests. Test case design. Using JUnit and FitNesse.
Test plans and documentation.
An introduction to quality management systems (ISO 9001), from a software development viewpoint.
Software engineering: the design phase of the ISD process
Object-oriented design using UML
Use of automatic modeling tools

Recommended Bibliography

Nunes, M. e O’Neill, H., Fundamental de UML, FCA, 2ª ed., 2004
Barnes, D. e Kolling, M., Objects first with Java: a practical introduction using BlueJ, Pearson/Prentice Hall, 4ª Ed., 2008
Liang, Y. Daniel, Introduction to Java Programming, Pearson, 6ª Ed, 2007
Bernd Bruegge e Allen Dutoit, Object Oriented Software Engineering Using UML, Patterns, and Java ", 3ª Ed, Pearson, 2010
Paul Ammann and Jeff Offutt, Introduction to Software Testing, Cambridge University Press, 2008, ISBN-13: 978-0521880381

Complementary Bibliography

Ian Sommerville; Software Engineering (9th edition), Addison-Wesley, 2011. ISBN: 9780137035151
Cem Kaner, Jack Falk, Hung Quoc Nguyen; Testing Computer Software, Wiley, 1999.
Deitel e Deitel, Java How to Program, 7ª Edição, 2007, Prentice Hall
Roger S Pressman , Web Engineering: A Practioner's Approach, McGraw-Hill ,2008
Eric e Elisabeth Freeman, Head First Design Patterns, O’Reilly, 2004
Lopes. F., Morais, P., Carvalho, A., Desenvolvimento de Sistemas de Informação: métodos e técnicas, FCA, 2ª Ed, 2009
Gamma, E., et al., Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995
Ilene Burnstein, Practical Software Testing: A Process-Oriented Approach, Springer Professional Computing, 2003, ISBN-13: 978-1441928856

Weekly Planning

Week 1: GIT
Week 2: Types of tests. JUnit work.
Week 3: Design of test cases. Continuation of JUnit's work.
Week 4: FIT. FIT work.
Week 5: Software quality. Continuation of FIT work.
Week 6: Test planning and documentation. Preparing a test plan.
Week 7: Quality - introduction to ISO 9001, from the point of view of software development. Mini-test. Continuation of work.
Week 8: Software engineering; the design phase of the SD process; Sw Faults
Week 9 and 10: Object-Oriented Design Using UML, Package, Deployment, and Activity Diagrams
Week 11: Designing databases and UML: Practical Exercises
Week 12: Practical cases
Week 13: Modeling Tools
Week 14: Mini-test. Presentation of the works.

Demonstration of the syllabus coherence with the curricular unit's objectives

Concerning version control software, GIT was selected because it is the most commonly used tool.
JUnit, for unit testing, and FIT and Fitnesse, for integration testing, are free and open source, being good examples of this kind of tools.
For test plans, the IEEE model was selected, because it is the de facto standard.

Demonstration of the teaching methodologies coherence with the curricular unit's objectives

Theoretical-practical classes allow the presentation, demonstration and discussion of the discipline subjects. Practical classes will be used to solve concrete problems, and to understand the complexity of the tasks.

relevant generic skillimproved?assessed?
Achieving practical application of theoretical knowledgeYesYes
Analytical and synthetic skillsYesYes
Commitment to effectivenessYesYes
Commitment to qualityYesYes
Ethical and responsible behaviour  
Foreign language proficiencyYes 
IT and technology proficiencyYesYes
Problem Analysis and AssessmentYesYes
Relating to others  
Research skillsYesYes
This website uses cookies to provide better functionality and for performance measurements (European Union Directive 2009/136/EC)