Saltar al contingut Menu
  • Home
  • Information
  • Contact
  • Map

Software Engineering II (ES2)

Credits Dept.
9.0 (7.2 ECTS) ESSI


Person in charge:  (-)

General goals

The main objective of this subject is for students to learn how to design:
- Using object orientation.
- Using design patterns.
- Using the language that is best-suited
Information systems:
- with a layered architecture,
- centralised and distributed.

Specific goals


  1. Learn the principles of object-oriented design.
  2. Understand the concept of design patterns and know the main design patterns available.
  3. Learn the specific UML elements of design.
  4. Learn the main characteristics of distributed systems.
  5. Understand a particular technology.
  6. Understanding how to assign responsibilities to layers.


  1. Know how to design an object-oriented information system (whether centralised or distributed) with a layered architecture and based on the specification of functional and non-functional requirements.
  2. Know how to identify patterns that can be properly applied in the design stage.
  3. Know how to express the design using UML elements.
  4. Know how to assign responsibilities identified during specification to the several layers.
  5. Know how to evaluate the main properties of a given (object-oriented) design.


  1. Ability to design systems, components and processes meeting certain needs, using the most appropriate methods, techniques and tools in each case.
  2. Know-how to apply the solution cycle to common scientific and engineering problems: specification, coming with ideas and alternatives, design solution strategies, carrying out the strategy, validation, interpretation and evaluation of results. Ability to analyse the process on completion.
  3. Ability to study various sources, recognise that the information obtained in class is insufficient, and to seek the supplementary information required.
  4. Ability to learn on one's own.


Estimated time (hours):

T P L Alt Ext. L Stu A. time
Theory Problems Laboratory Other activities External Laboratory Study Additional time

1. Introduction to design. Layered architecture. Principles of object-oriented design.
T      P      L      Alt    Ext. L Stu    A. time Total 
7,0 11,0 0 0 0 24,0 0 42,0
  • Additional laboratory activities:
    Resoluciķ d'exercicis

2. From system specification to layers specification
T      P      L      Alt    Ext. L Stu    A. time Total 
4,0 8,0 0 0 0 10,0 0 22,0
  • Additional laboratory activities:
    Resoluciķ d'exercicis

3. Design patterns
T      P      L      Alt    Ext. L Stu    A. time Total 
6,0 12,0 0 0 0 24,0 0 42,0
  • Additional laboratory activities:
    Resoluciķ d'exercicis

4. Presentation layer. Data layer
T      P      L      Alt    Ext. L Stu    A. time Total 
4,0 8,0 0 0 0 16,0 0 28,0
  • Additional laboratory activities:
    Resoluciķ d'exercicis

5. Design of distributed systems. Service-oriented architectures
T      P      L      Alt    Ext. L Stu    A. time Total 
6,0 8,0 0 0 0 24,0 0 38,0
  • Additional laboratory activities:
    Resoluciķ d'exercicis

6. Understanding some particular technology.
T      P      L      Alt    Ext. L Stu    A. time Total 
1,0 0 0 0 0 0 0 1,0

Total per kind T      P      L      Alt    Ext. L Stu    A. time Total 
28,0 47,0 0 0 0 98,0 0 173,0
Avaluation additional hours 9,0
Total work hours for student 182,0

Docent Methodolgy

The teaching of the course is based on theory classes and classes of problems, although the distribution in both types does not follow any regular weekly pattern.

Teachers present the main contents of the course in the theory classes. Teachers use slides, which students should receive before the classes are held.

Other course contents are not presented in class. However, they must be privately studied by students in their own time. These contents are also obligatory - the only difference is the way in which they are studied. Teachers will indicate which contents should be studied at each juncture of the course, and the teaching resources that may be employed. These materials are often written in English.

The classes of problems put into practice what is learnt during the course (which includes both contents presented in class and those learnt by students in their private study). On occasions, students will be required to either have wholly or partially solved problems before the class. The problem and possible solutions will then be discussed in class. On other occasions, the problem will be set and solved in class. It is crucial for the correct development of the course that the students prepare their solutions to the exercises that teachers propose. Students shall always bring at class the list of exercises of the current chapter.

Evaluation Methodgy

The course comprises four evaluations during the course and a final exam.

The four evaluations during the course, P1, P2, P3 and P4, allow passing the course without final exam if the weighted sum according to the formula F below, is greater or equal than 5:

F = 10%P1 + 10%P2 + 40%P3 + 40%P4

Those students who do not pass with these four evaluations (F<5) should perform the final exam. The final grade for ES2 is computed according to the following rules:
- if EF >= 5, then final grade = EF
- if EF < 5, then final grade = maximum(EF, F)

Those students passing with the four evaluations, who also perform the final exam, will obtain the mark of the final exam as final grade.

The NP mark is reserved for those students that do not perform any evaluation (except possibly P1 and P2) nor the final exam.

The participation of a student in the lesson may help to round positively the final grade.

Basic Bibliography

  • Erich Gamma ... [et al.] Design patterns : elements of reusable object-oriented software, Addison-Wesley, 1995.
  • Robert Cecil Martin Agile software development : principles, patterns, and practices, Prentice Hall, 2003.
  • Larman, Craig Applying UML and Patterns, Prentice-Hall, 2005.
  • Fowler, Martin Patterns of Enterprise Application Architecture, Addison-Wesley, 2003.

Complementary Bibliography

  • Meyer, Bertrand Object-Oriented Software Construction, Prentice Hall, 1997.
  • James Rumbaugh, Ivar Jacobson, Grady Booch The Unified modeling language reference manual, Addison-Wesley, 2005.

Web links



Previous capacities

1) Learn the nature of a formal specification in UML/OCL of a system"s functional and non-functional requirements.
2) Learn the context in which one can design a system and what the previous and subsequent steps are.
3) Learn the nature of software architecture, and the architectural styles there are (of which the layered architecture used in the course is one).
4) Learn the nature of object-oriented programming in depth and (at least) one object-oriented programming language.
5) Learn the relational database model and the main functional features of Relational Database Management Systems (RDMS).

In view of the skills required, we recommend students have previously taken the following courses:
- Software engineering I
- Databases
- Programming project.


logo FIB © Barcelona school of informatics - Contact - RSS
This website uses cookies to offer you the best experience and service. If you continue browsing, it is understood that you accept our cookies policy.
Classic version Mobile version