Checking date: 21/02/2025


Course: 2024/2025

Software Engineering
(15974)
Academic Program of Computer Engineering via Bachelor in Computer Engineering (Study Plan 2023) (Plan: 509 - Estudio: 218)


Coordinating teacher: ALVAREZ RODRIGUEZ, JOSE MARIA

Department assigned to the subject: Computer Science and Engineering Department

Type: Compulsory
ECTS Credits: 6.0 ECTS

Course:
Semester:




Requirements (Subjects that are assumed to be known)
Writing and Communication Skills (1st course, 1st semester)
Learning Outcomes
RA2.1: Ability to analyse complex engineering products, processes and systems in their field of study; to select and apply relevant methods from established analytical, computational and experimental methods; to correctly interpret the outcomes of such analyses. RA2.2: Ability to identify, formulate and solve engineering problems in their field of study; to select and apply relevant methods from established analytical, computational and experimental methods; to recognise the importance of non-technical societal, health and safety, environmental, economic and industrial constraints. RA3.1: Ability to develop and design complex products (devices, artefacts, etc.), processes and systems in their field of study to meet established requirements, that can include an awareness of non-technical ¿ societal, health and safety, environmental, economic and industrial ¿ considerations; to select and apply relevant design methodologies. RA4.1: Ability to conduct searches of literature, to consult and to critically use scientific databases and other appropriate sources of information, to carry out simulation and analysis in order to pursue detailed investigations and research of technical issues in their field of study. RA4.2: Ability to consult and apply codes of practice and safety regulations in their field of study. RA5.2: Practical skills for solving complex problems, realising complex engineer ing designs and conducting investigations in their field of study. RA5.3: Understanding of applicable materials, equipment and tools, engineering technologies and processes, and of their limitations in their field of study. RA5.4: Ability to apply norms of engineering practice in their field of study. RA7.1: Ability to communicate effectively information, ideas, problems and solutions with engineering community and society at large. RA7.2: Ability to function effectively in a national and international context, as an individual and as a member of a team and to cooperate effectively with engineers and non-engineers. CB2: Students are able to apply their knowledge to their work or vocation in a professional manner and possess the competences usually demonstrated through the development and defence of arguments and problem solving within their field of study. CG1: Apply appropriate theoretical and practical methods for the analysis, design and solution of problems, providing computing solutions that respect accessibility, ergonomics and safety at work and comply with existing legislation. CG9: Efficiently use ICT resources to write technical reports and project and work reports on computing, as well as quality presentations. CGO1: Ability to conceive, draft, organise, plan, develop and sign projects in the field of computer engineering aimed, in accordance with the knowledge acquired, at the conception, development or operation of computer systems, services and applications. CGO2: Ability to drive project activities in the field of computer science in accordance with the knowledge acquired. CECRI1: Ability to design, develop, select and evaluate computer applications and systems, ensuring their reliability, security and quality, in accordance with ethical principles and current legislation and regulations. CECRI3: Ability to understand the importance of negotiation, effective work habits, leadership and communication skills in all software development environments. CECRI4: Ability to draw up the technical specifications of a computer installation that complies with current standards and regulations. CECRI16: Knowledge and application of the principles, methodologies and life cycles of software engineering.
Description of contents: programme
Block I. Requirements engineering Unit 1. Introduction to requirements engineering Unit 2. Elicitation, description and management of requirements Unit 3. Properties, attributes and organization of requirements Unit 4. Types of requirements Block II. Conceptual modeling with UML Unit 5. Introduction to conceptual modeling Unit 6. Conceptual modeling: classes and objects Unit 7. Conceptual modeling: associations Unit 8. Conceptual modeling: hierarchies Block III. Architectural modeling with UML Unit 9. Introduction to architectural modeling Unit 10. Architectural modeling: components Unit 11. Architectural modeling: interfaces Unit 12. Architectural modeling: design by contracts
Learning activities and methodology
Theoretical-Practical Lectures: 1 ECTS - Review of contents before class Practical Lectures: 1 ECTS - Exercise resolution - General tutoring - Partial oral expositions of the project Team Work: 3 ECTS - Proposal of project statement - Project development - Project peer review - Proposal of questions for the theoretical exam Individual Work: 1 ECTS - Contribution to team project - Individual practical exercises - Study and preparation of final exam
Assessment System
  • % end-of-term-examination 55
  • % of continuous assessment (assigments, laboratory, practicals...) 45

Calendar of Continuous assessment


Extraordinary call: regulations
Basic Bibliography
  • Alexander, I. and Stevens, R.. Writing Better Requirements. Addison-Wesley. 2002
  • Arlow, J. and Neustadt, I.. UML and the Unified Process. Practical Object-Oriented Analysis & Design. Addison-Wesley. 2002
  • Braude, E.. Software Engineering. An Object-Oriented Perspective.. John Wiley & Sons, 2001..
  • ESA Board for Software Standardisation and Control (BSSC).. ESA Software Engineering Standards.. European Space Agency, February 1991..
  • Fowler, M. and Scott, K.. UML Distilled. A Brief Guide to the Standard Object Modeling Language. Addison-Wesley. 2004
  • Larman, C.. Applying UML and Patterns. An Introduction to Object-Oriented Analysis and Design and the Unified Process. Prentice Hall. 1998
  • Mark Richards, Neal Ford. Fundamentals of Software Architecture. O'Reilly Media, Inc. 2020
  • Martin Fowler. Patterns of Enterprise Application Architecture. Addison-Wesley . 2002
  • Martin Fowler. Refactoring. Addison-Wesley . 2018
  • Pressman, Roger S.. Ingeniería del software: un enfoque práctico, 6ª ed.. McGraw-Hill, 2006..
  • Robert Martin. Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall. 2008
  • Robert Martin. Clean Architecture. Prentice-Hall. 2017
  • Sommerville, I.. Ingeniería del Software.. Pearson-Addison Wesley, 2005..
  • Sommerville, I. and Sawyer, P.. Requirements Engineering: A Good Practice Guide. John Wiley & Sons. 1997
  • Stevens, P. and Pooley, R.. Using UML, Software Engineering with Objects and Components. Addison-Wesley. 2000
  • Wiegers, K. and Beaty, J.. Software Requirements. Microsoft Press. 2013
Recursos electrónicosElectronic Resources *
Additional Bibliography
  • ISO. ISO/IEC/IEEE 15288:2023 Systems and software engineering System life cycle processes. ISO. 2023
  • N. Ford, M. Richards, P. J. Sadalage, and Z. Dehghani. Software Architecture: The Hard Parts: Modern Trade-Off Analyses for Distributed Architectures . O'Reilly. 2021
  • Titus Winters, Tom Manshreck, Hyrum Wright. Software Engineering at Google. O'Reilly Media, Inc.. 2022
Recursos electrónicosElectronic Resources *
(*) Access to some electronic resources may be restricted to members of the university community and require validation through Campus Global. If you try to connect from outside of the University you will need to set up a VPN


The course syllabus may change due academic events or other reasons.