Software Systems Engineering


Software Architectures (Sem. 1)

Learning outcomes

Upon completion of this course, the students should be able to:
* Understand the RUP process and be able to apply it to the development of large, complex software systems;
* Acknowledge and apply some relevant software engineering principles like IOC (Inversion of Control), DI
(Dependency Injection), the separation principle (cf. the MVC model - model, view and controller) and wellknown "software design patterns";
* Acknowledge and use mainstream Java technologies for Web applications, namely Servlets, Java Server
Pages (JSP), Java Server Faces or Structs, Beans and persistency technology. The application´s architecture
is to be compliant with the MVC model;
* Use lighweight modeling in Alloy in cases where portions of the system need some sort of formal verification
that they satisfy functional or even structural requirements.

Syllabus

1.- Introduction to Software Architectures
Platforms J2EE and .NET
2.- Introduction to the Rational Unified Process (RUP)
3.- Model based Software Engineering: UML
Software Systems modeling with UML
Systematic Model transformation in UML
4.- Advanced JAVA
Generics; Implementation of generic classes;
Type erasure in Java
Reflection
Factory methods
5.- Software Engineering principles
Inversion of Control (IOC)
Dependency Injection (DI)
6.- Standard Design Patterns
7.- Java technology for Web applications
Servlets
Java Server Pages (JSP)
Java Beans
Modelo MVC de implementação
MVC using Structs or JSF
Technology for Persistence
DAOs (Data Access objects)
TAOs (Transfer Objects)
JPA (Java Persistence API)
Hibernate
8.- Model Validation and Verification using Alloy

Teaching methodologies and evaluation

Classes: 45 hours
Software projects to be developed extra-time in small groups
Module Assessment: 2 group projects

Bibliography

F. Mário Martins, Notas Teóricas de Arquiteturas de Sofware, DI/UM, 2011.
UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd Edition), Martin Fowler, AddisonWesley, 2003
Core Servlets and Java Server Pages, Martin Hall and Larry Brown, free e-book, 2010.
Design Patterns: Elements of reusable Object-Oriented Software, E. Gamma et al., Addison-Wesley, 2000.

Requirements Engineering (Sem. 1)

Learning outcomes

• Define within the whole process of software engineering, the intervention of the requirements engineering
team and the formal involvement of stakeholders
• Choose how the requirements should be captured, in particular decide which techniques to use to raise the
requirements from the sources identified
• Detect, negotiate and resolve conflicts between requirements captured
• Structure the requirements document at two levels (user requirements and system requirements) and ensure
its quality and verifiability
• Review the requirements document, ensuring that it describes the desired system, through formal reviews,
inspections or prototyping
• Manage changing requirements through technical traceability and impact analysis

Syllabus

• Requirements engineering process
• Requirements elicitation
• Requirements analysis
• Requirements specification and modeling
• Requirements validation
• Requirements management

Teaching methodologies and evaluation

Lectures (with some predominance to expositive classes) and practical lessons to apply the concepts and
techniques / practices
Evaluation:
Written exam
Exercises and Projects

Bibliography

Aurum A, Wohlin C (eds.); Engineering and Managing Software Requirements, Springer, 2005, ISBN 978-3-54025043-2
Robertson S, Robertson J; “Mastering the Requirements Process”, 2nd edition, Addison-Wesley, 2006, ISBN 0321-41949-9

Web Engineering (Sem. 2)

Learning outcomes

• Design, develop, deploy and maintain web applications
• Identify the issues of the legal, professional, social and ethical involved in the development of usable and
accessible web applications
• Adapt a web application to other contexts of use, based on the captured requirements
• Describe and discuss the techniques, methods and approaches used in web development

Syllabus

• Technologies
• Development processo
• Requirements engineering
• Design of web applications
• Adaptation
• Implementation, deployment, and maintenance
• Quality assessment
• Semantic web and web 2.0

Teaching methodologies and evaluation

Lectures (with some predominance to expositive classes) and practical lessons to apply the concepts and
techniques / practices
Evaluation:
Written test
Exercises and Projects

Bibliography

Emilia Mendes, Nile Mosley (Eds.), Web Engineering, Springer, ISBN 3-540-28196-7, 2006
Gerti Kappel, Birgit Pr oll, Siegfried Reich, Werner Retschitzegger (eds.) "Web Engineering: The Discipline of
Systematic Development of Web Applications", John Wiley & Sons, 2003

Software Process Management (Sem. 2)

Learning outcomes

To complete this curricular with success, students will have to be able to: 1. Discuss alternatives to applying
the techniques of PMBoK in software projects; 2. Develop the plan of a information system project, following
the guidelines of PMBoK; 3. Understand and apply appropriate methods to register the progress of a project
(project execution); 4. Apply the techniques proposed by the PMBoK for monitoring the progress of a project
(EVM - Earned Value Management); 5. Understand the principles, themes and processes proposed by the
PRINCE2 method.

Syllabus

1. Introduction to Project Management
1.1 Project Context
1.2 Project Organization
1.3 The PMBOK Framework
1.4 Knowledge Areas
2. Techniques and tools for planning a project according to PMBOK
2.1 Scope Planning
2.2 Schedule planning
2.3 Cost planning
2.4 Quality Planning
2.5 Planning in the other knowledge areas
2.6 A Method for planning softwareprojects
3. Execution, Monitoring and Closure of the project (PMBOK)
3.1. Reports of progress
3.2. EVM - Earned Value Management
3.3. Control project changes
3.4. Closing the project
4. PRINCE2 - Projects in a Controlled Environment
4.1. Introduction
4.2. Principles
4.3. Themes
4.4. Processes
4.5. Conclusions

Teaching methodologies and evaluation

The teaching methodologies adopted include:
• expository method;
• questioning method;
• active method.
Evaluation method:
It includes the realization of one IT project (individually or in small grups), dedicated to one or several topics
discussed in the curricular unit. The final grade is calculated as follows:
Final grade = 15% interim report+ 85% project assessment

Bibliography

Kerzner H (2006) Project Management – A Systems Approach to Planning, Scheduling and Controlling. 9ª ed.
Wiley. Hoboken, NJ, USA.
Meredith JR, Mantel SJJ (2005) Project Management: A Managerial Approach. 6ª ed. Wiley. Hoboken, NJ, USA.
PMI (2008) A Guide to the Project Management Body of Knowledge, PMBOK. 4ª ed. PMI Standards Committee.
Upper Darby, PA, USA
TSO (2009) PRINCE2 - Managing Successful Projects with PRINCE2, TSO Ireland
Miguel, António (2006). Gestão moderna de projectos: melhores técnicas e práticas. FCA - Lisboa.
Lewis, J. P. (2011) Project planning, scheduling & control: the ultimate hands-on guide to bringing projects in
on time and on budget, 5th ed. ed., New York: McGraw-Hill Professional ; London : McGraw-Hill [distributor]