The main objective of the course is to provide an overview of software engineering, with particular emphasis on the stages of specification and design. At the end of the course, the student should be able to specify a simple software system using the UML notation and to design it by means of the same notation and applying the domain model architectural pattern and also some of the most well-known design patterns.
Teachers
Person in charge
Ernest Teniente Lopez (
)
Others
Dolors Costal Costa (
)
José Francisco Crespo Sanjusto (
)
Manuel Rello Saltor (
)
Xavier Oriol Hilari (
)
Weekly hours
Theory
2
Problems
2
Laboratory
0
Guided learning
0
Autonomous learning
6
Competences
Technical Competences
Common technical competencies
CT2 - To use properly theories, procedures and tools in the professional development of the informatics engineering in all its fields (specification, design, implementation, deployment and products evaluation) demonstrating the comprehension of the adopted compromises in the design decisions.
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.
CT2.4
- To demonstrate knowledge and capacity to apply the needed tools for storage, processing and access to the information system, even if they are web-based systems.
CT3 - To demonstrate knowledge and comprehension of the organizational, economic and legal context where her work is developed (proper knowledge about the company concept, the institutional and legal framework of the company and its organization and management)
CT3.3
- To be able to find and interpret basic information for evaluating the economic environment of the organization.
CT5 - To analyse, design, build and maintain applications in a robust, secure and efficient way, choosing the most adequate paradigm and programming languages.
CT5.5
- To use the tools of a software development environment to create and develop applications.
CT6 - To demonstrate knowledge and comprehension about the internal operation of a computer and about the operation of communications between computers.
CT6.1
- To demonstrate knowledge and capacity to manage and maintain computer systems, services and applications.
CT7 - To evaluate and select hardware and software production platforms for executing applications and computer services.
CT7.1
- To demonstrate knowledge about metrics of quality and be able to use them.
CT8 - To plan, conceive, deploy and manage computer projects, services and systems in every field, to lead the start-up, the continuous improvement and to value the economical and social impact.
CT8.1
- To identify current and emerging technologies and evaluate if they are applicable, to satisfy the users needs.
CT8.2
- To assume the roles and functions of the project manager and apply, in the organizations field, the techniques for managing the timing, cost, financial aspects, human resources and risk.
CT8.3
- To demonstrate knowledge and be able to apply appropriate techniques for modelling and analysing different kinds of decisions.
CT8.4
- To elaborate the list of technical conditions for a computers installation fulfilling all the current standards and normative.
CT8.5
- To manage and solve problems and conflicts using the capacity to generate alternatives or future scenarios analysed properly, integrating the uncertainty aspects and the multiple objectives to consider.
CT8.6
- To demonstrate the comprehension of the importance of the negotiation, effective working habits, leadership and communication skills in all the software development environments.
CT8.7
- To control project versions and configurations.
Transversal Competences
Effective oral and written communication
G4 [Avaluable] - To communicate with other people knowledge, procedures, results and ideas orally and in a written way. To participate in discussions about topics related to the activity of a technical informatics engineer.
G4.2
- To use strategies to prepare and perform oral presentations and write texts and documents with a coherent content, adequate structure and style and a good orthographic and grammatical level. To perform an oral presentation in front of a limited audience. To choose properly the contents, style, timing and format of the presentation. To be capable of communicating effectively with the user in a non-technical language, and understand its needs.
Objectives
Students should be able to provide an overview of the software engineering process
Related competences:
CT2.1,
CT6.1,
CT8.2,
CT3.3,
Students should be able to understand the requirements of a software system and relate these to the different parts of the specifications
Related competences:
CT8.3,
CT8.6,
CT8.5,
CT3.3,
Students should be able to understand the desirable properties of specifications for a software system.
Related competences:
CT7.1,
CT8.4,
Students should be able to analyse the completeness and consistency of the specifications.
Related competences:
CT8.1,
CT8.3,
CT7.1,
CT5.5,
CT2.3,
Students should be able to understand the general principles of software architecture and object-oriented design in UML
Related competences:
CT8.1,
CT8.5,
Students should be able to understand the logic structure in layers of an information system: presentation, domain and data management layers
Related competences:
CT8.1,
CT8.3,
CT2.4,
Students should be able to transform a UML model into a design specification
Related competences:
G4.2,
CT5.5,
CT2.4,
Students should be able to understand the concept of design template and use some of the better known templates.
Related competences:
CT2.1,
CT8.1,
CT8.3,
G4.2,
CT2.3,
Students should be able to understand the basic concepts of software testing
Related competences:
CT2.1,
CT8.3,
CT7.1,
CT8.4,
CT5.5,
Contents
Introduction to software engineering
Software requirements and software specifications
UML use case models
UML software system specification
Class diagrams, behaviour diagrams and state diagrams.
Parts of learning objectives 1 to 5 will be assessed Objectives:12345 Week:
6 (Outside class hours)
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
3h
UML behavioural model test
Parts of learning objectives 1 to 5 will be assessed Objectives:2345 Week:
9 (Outside class hours)
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
3h
Software design test
Part of learning objectives 6 to 10 will be assessed Objectives:678910 Week:
15 (Outside class hours)
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h
Teaching methodology
The subject is structured around theory and problem-solving classes.
In the theory classes the lecturer will explain the main subject content. Lecturers typically use slides that students should obtain before class.
In problem-solving classes, course content (whether presented in class or studied independently) will be studied by completing problems. This will sometimes require problems to be resolved (or at least attempted) before class, so that the best solutions can be collectively analysed and discussed in class. On other occasions, the problem will be both set and resolved in class.
Evaluation methodology
The final mark will be based on three assessment activities (C1, FHC1, FHC2) issued throughout the course and on participation in course activities. The final mark is calculated as:
Final mark = 40% FHC1 + 15% C1 + 40% FHC2 + 5% participation.
taking into account that:
The mark of participation is achieved by delivering at least the 75% of the exercises proposed during the course and by actively participating at class.
Final Mark = NP if the student does not show to FHC2 and his/her mark according to the previous formula is <4.
There is no final exam.
In addition to a subject mark, a generic competency mark will be awarded with the score A (excellent), B (good), C (satisfactory) , D (fail) or NA (Not evaluated).