Credits
6
Types
Specialization compulsory (Software Engineering)
Requirements
- Prerequisite: IES
Department
ESSI
Teachers
Person in charge
- Cristina Gómez Seoane ( cristina.gomez@upc.edu )
Others
- Claudia Patricia Ayala Martinez ( claudia.ayala@upc.edu )
- Pau Duran Manzano ( pau.duran.manzano@upc.edu )
Weekly hours
Theory
2
Problems
0
Laboratory
2
Guided learning
0.4
Autonomous learning
5.6
Competences
Common technical competencies
- CT2.1 - To demonstrate knowledge and capacity to apply the principles, methodologies and life cycles of software engineering.
- CT2.3 - To design, develop, select and evaluate computer applications, systems and services and, at the same time, ensure its reliability, security and quality in function of ethical principles and the current legislation and normative.
Software engineering specialization
- CES1.1 - To develop, maintain and evaluate complex and/or critical software systems and services.
- CES1.4 - To develop, mantain and evaluate distributed services and applications with network support.
- CES2.2 - To design adequate solutions in one or more application domains, using software engineering methods which integrate ethical, social, legal and economical aspects.
Reasoning
- G9.3 - Critical capacity, evaluation capacity.
Objectives
-
To explain what is the logical and physical architecture of a software system and relations between them.
Related competences: CT2.1, -
To explain the characteristics of a layered architecture and the design principles that govern the construction of software systems with this type of architecture.
Related competences: CT2.1, -
To explain the characteristics of an object-oriented architecture and the design principles that govern the construction of software systems with this type of architecture.
Related competences: CT2.1, -
To design software systems using a layered and object-oriented software using software services from the specification of requirements (functional and nonfunctional).
Related competences: G9.3, CT2.1, CES1.1, CES1.4, CES2.2, CT2.3, -
To represent the design of software systems using UML.
Related competences: CT2.1, -
To correctly apply design principles when designing software systems.
Related competences: G9.3, CT2.1, CES1.1, CES2.2, CT2.3, -
To design the domain (business) layer of a software system using traditional and agile methodologies.
Related competences: G9.3, CT2.1, CES1.1, CES1.4, CES2.2, CT2.3, -
To design the presentation layer of a software system by identifying the design patterns to apply and applying them correctly.
Related competences: G9.3, CT2.1, CES1.1, CES2.2, CT2.3, -
To explain the characteristics of the different persistence strategies.
Related competences: CT2.1, -
To design the data management layer of a software system using access or data mapper patterns.
Related competences: G9.3, CT2.1, CES1.1, CES2.2, CT2.3, -
To identify and correctly use existing software services when designing software systems.
Related competences: G9.3, CT2.1, CES1.1, CES1.4, CES2.2, CT2.3, -
To evaluate and critique the design of software systems and to propose alternative designs to improve their quality.
Related competences: G9.3, CT2.1, CES1.1, CES1.4, CES2.2, CT2.3, -
To explain what is softtware architecture and design and what are the different views of software architecture.
Related competences: CT2.1,
Contents
-
Introduction
Software development methodologies. Software architecture and design. Logical Architecture and Physical Architecture. Role of design patterns in software design. Software architecture and design in traditional and agile methodologies. -
Layered and object oriented architectures
Layered architectural pattern. Application of layered architectural pattern to software systems and services. Layered architecture design principles. Object oriented architectural pattern. Application of object oriented architectural pattern to software systems. Object oriented architecture design principles. -
Software design
Software design. Domain layer design. Domain Model and Transaction Script patterns. Domain layer design patterns. Code Smells and Refactorings. Use of software services. Presentation layer design. External design of a software system. Presentation layer internal design. Data layer design. Relational databases technology. Persistence strategies. Automatic generation of persistence. Direct design of persistence. Other logical architectures.
Activities
Activity Evaluation act
Studying the layered architecture
Listen carefully, take notes and ask questions if necessary. In addition, the student studies the contents that the teacher indicatesObjectives: 2
Contents:
Theory
0h
Problems
0h
Laboratory
1h
Guided learning
0h
Autonomous learning
2h
Styding the object-oriented architecture
Listen carefully, take notes and ask questions if necessary. In addition, the student studies the contents and does the exercises that the teacher indicatesObjectives: 3 5 12
Contents:
Theory
0h
Problems
0h
Laboratory
6h
Guided learning
0h
Autonomous learning
8h
Studying software design
Listen carefully, take notes and ask questions if necessary. In addition, the student studies the contents and does the exercises that the teacher indicatesObjectives: 4 5 6 7 8 9 10 11
Contents:
Theory
24h
Problems
0h
Laboratory
21h
Guided learning
0h
Autonomous learning
43h
Review of C1 (Control 1) with formative feedback (solution delivery with group feedback)
Review of C1 (Control 1) with formative feedback (solution delivery) in groups of 10 students (via meet or with assigned classroom, depending on the availability of classrooms).Objectives: 1 2 3 4 5 6 7
Contents:
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
2h
Autonomous learning
0h
Review of C2 (Control 2) with formative feedback (solution delivery with group feedback)
Review of C1 (Control 2) with formative feedback (solution delivery) in groups of 10 students (via meet or with assigned classroom, depending on the availability of classrooms).Objectives: 4 6 8 9 10 11
Contents:
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
2h
Autonomous learning
0h
Review of C3 (Control 3) with formative feedback (solution delivery with group feedback)
Review of C3 (Control 3) with formative feedback (solution delivery) in groups of 10 students (via meet or with assigned classroom, depending on the availability of classrooms).Objectives: 6 7 12
Contents:
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
2h
Autonomous learning
0h
Teaching methodology
The teaching of the course is structured in theory, exercises and laboratory sessions.In the theory sessions teachers present some essential content of the course. Typically teachers use slides that students have available before the session. Other contents of the subject will be studied autonomously.
In the exercises sessions the contents of the subject are practiced through the exercises. In the exercises sessions proposed exercises will be solved and several solutions will be discussed. In some sessions, students deliver the exercises solved. Also, in some sessions, at the beginning of the session, the students answer a questionnaire about the contents presented and practiced and/or about the exercises solved in previous sessions.
In the laboratory classes the students work in groups of two. During the session, the students solve the laboratory exercises proposed by the teacher. At the beginning of some sessions, the students answer a questionnaire about the contents presented and practiced and/or about the exercises proposed in the previous session.
The students must attend to the group sessions where they are enrolled.
Evaluation methodology
The final grade (NF) of the technical skills of the course is the following:NF= 0,15*C1 + 0,35*C2 + 0,35*C3 + 0,1*NT + NPP
C1 is the first test mark
C2 is the second test mark
C3 is the third test mark
NT is the mark of the tasks done (delivery of exercises before the class and questionnaires made at the beginning of the classes of exercises and laboratory).
NPP is the mark of the delivered exercises and class participation.
Assesment of NT:
- During the course the students may take 5 tasks.
- If the student delivers 4 or less tasks, NT will be equal to the sum of the marks of all tasks delivered divided by 4.
- If the student delivers the 5 tasks, NT will be equal to the sum of the 4 better marks divided by 4.
Assessment of NPP: This grade will have a maximum value of 0.5. To obtain this grade, the following aspects will be considered:
- The delivery of 75% or more of the problems proposed to be delivered.
- Active participation in class.
Students will be only marked if they attend to the group sessions where they are enrolled.
Final mark of transversal skill is evaluated by one question in the exams where the students must demostrate their critical thinking evaluating the proposed designs. Final mark is the average of the marks obtained in these questions and have an assessment of:
A is the mark is between 8.5 and 10
B is the mark is between 7 and 8.4
C is the mark is between 5 and 6.9
D is the mark is between 0 and 4.9
Bibliography
Basic
-
Design patterns: elements of reusable object-oriented software
- Gamma, E.; Helm, R.; Johnson, R.; Vlissides, J,
Addison-Wesley,
1995.
ISBN: 0201633612
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991001193289706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Applying UML and patterns: an introduction to object-oriented analysis and design and iterative development
- Larman, C,
Prentice Hall PTR,
2005.
ISBN: 0131489062
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002842069706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Patterns of enterprise application architecture
- Fowler, M,
Addison-Wesley,
2003.
ISBN: 0321127420
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002575799706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
The unified modeling language reference manual
- Rumbaugh, J.; Jacobson, I.; Booch, G,
Addison-Wesley,
2005.
ISBN: 0321245628
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002895869706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Flexible, reliable software: using patterns and agile development
- Christensen, H.B,
CRC Press,
2010.
ISBN: 9781420093629
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004086379706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Complementary
-
Software engineering: a practitioner's approach
- Pressman, R.S.; Maxim, B.R,
McGraw Hill Higher Education,
2020.
ISBN: 9781260548006
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004193559706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Software engineering
- Sommerville, I,
Pearson Education Limited,
2016.
ISBN: 9781292096148
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991001569289706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Agile software development: principles, patterns, and practices
- Martin, R.C,
Pearson Education Limited,
2014.
ISBN: 9781292038360
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991001525179706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Pattern-oriented software architecture: Vol. 1: a system of patterns
- Buschmann, F.; Meunier, R.; Rohnert, H.; Sommerlad, P.; Stal, M,
Wiley,
1996.
ISBN: 0471958697
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991001626929706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Material d'elaboració pròpia de l'assignatura
- Professorat de l'assignatura,
Web links
- Catalog of Patterns of Enterprise Application Architecture http://martinfowler.com/eaaCatalog/
- Microsoft Application Architecture Guide http://msdn.microsoft.com/en-us/library/ff650706.aspx
- Catalog of Refactorings http://refactoring.com/catalog/
- UML specification http://www.uml.org/
- Refactoring To Patterns Catalog https://industriallogic.com/xp/refactoring/catalog.html
Previous capacities
Knowing what is a UML/OCL formal specification of functional and nonfunctional requirements of a system.Knowing the context in which the design of a system may be performed and, in particular, what are the previous and following activities.
Knowing the object-oriented programming and (at least) an object-oriented programming language.