Systems Engineering

MODELING AND PROGRAMMING

General Data

Type of credits: ECTS
Number of credits: 5.00
Status: Mandatory
Type: Course
Academic Year:
Term:
Languages: Portuguese
Available for Mobility Students: No
Restricted to alliance: No
Code: Sin codigo

Coordination

Description

Theory
1

Laboratory
4

Instructors

Dulce Mota


 

Contents

1. Introduction to the object-oriented paradigm (CP1/10%).
1.1. Origin of the paradigm.
1.2. Java technology and the Java language.
1.3. Fundamentals of the paradigm - notions of object, class, abstraction, encapsulation, polymorphism, composition, aggregation and inheritance.
 

2. Java OOP fundamentals (CP2/60%).
2.1. Class creation: declaration of variables, constants, constructors, instance methods, class methods and other usual complementary methods.
2.2. Association relationship between classes, composition and aggregation.
2.3. Hierarchy between classes.
2.4. Abstract classes and Java interfaces.
2.5. Java interfaces - built and predefined: Serializable, Comparable, Comparable - other common interfaces.
2.6. Error Handling with Exceptions - Java and programmer-defined exception classes.
2.7. Collections in Java.
 

3. Java persistence and serialisation (CP3/10%).
 

4. Specification of Analysis, Design and Implementation activities using UML (CP4/10%).
 

5. Test formalisms (CP5/10%).

Learning Outcomes

The main purpose is to make students able to develop medium-complexity applications using the Object-Oriented Programming paradigm in Java, correctly modelling the behaviour of the system through UML sequence diagrams and ensuring consistency between modelling and implementation.
At the end of the course, students should be able to:
(OA1) Analyze problems using the object-oriented paradigm (OOP).
(OA2) Build robust and extensible stand-alone Java applications.
(OA3) Write programs that involve read / write operations of data to / from a file.
(OA4) Validate the developed code using unit tests.
(OA5) Apply appropriate UML basic formalisms in the analysis, modeling and design for the construction of an application.