General information


Subject type: Mandatory

Coordinator: Alfonso Palacios González

Trimester: Third term

Credits: 4

Teaching staff: 

Rosa Herrero Antón

Skills


Basic skills
  • B2_That students know how to apply their knowledge to their job or vocation in a professional way and have the skills they demonstrate by developing and defending arguments and solving problems within their area of ​​study

  • B4_That students can convey information, ideas, problems and solutions to both specialized and non-specialized audiences

  • B5_That students have developed those learning skills necessary to undertake further studies with a high degree of autonomy

Specific skills
  • EFB4_Basic knowledge of the use and programming of computers, operating systems, databases and computer programs with application in engineering

  • EIS1_Ability to develop, maintain and evaluate software services and systems that meet all user requirements and that behave reliably and efficiently, are affordable to develop and maintain and comply with quality standards, applying theories, principles, methods and software engineering practices

  • EIS4_Ability to identify and analyze problems and design, develop, implement, verify and document software solutions based on adequate knowledge of current theories, models and techniques

Transversal competences
  • T1_That students know a third language, which will be preferably English, with an adequate level of oral and written form, according to the needs of the graduates in each degree

  • T2_That students have the ability to work as members of an interdisciplinary team either as one more member, or performing management tasks in order to contribute to developing projects with pragmatism and a sense of responsibility, making commitments taking into account the available resources

Description


The subject d'Software Engineering II of the third term of the second year, is the second of three subjects called Software Engineering. Its teaching is designed to dedicate 3 ECTS to the theory part and 1 ECTS to practice the concepts exposed to theory.

This course will introduce the concept of Software Design Patterns by studying the most used and practicing their use in different circumstances.

Another of the topics covered in this subject will be Testing, making a general introduction, and explaining some specific techniques by deepening what is necessary to be able to use it.

The recommended requirements for taking this subject are the knowledge of the subjects FUNDAMENTALS OF PROGRAMMING, OBJECT-ORIENTED PROGRAMMING and SOFTWARE ENGINEERING I.

Learning outcomes


In general, this subject contributes to the following learning outcomes specified for the subject to which it belongs (Software Engineering):

(1) Appropriately use theories, procedures and tools in the professional development of computer engineering in all its areas (specification, design, implementation, deployment -implantation- and product evaluation) so as to demonstrate understanding of the commitments made in design decisions

(3) Use the tools of a software development environment to create and develop applications.

(5) Demonstrate knowledge and know how to apply the appropriate techniques to model and analyze the different types of decisions.

(10) Quality control and design testing in software production.

At a more specific level, at the end of the course the student must be able to:

LO1. Modeling software applications

LO2. Apply the principles of object-oriented analysis and design

LO3. Apply and analyze the use of software design patterns

LO4. Know strategies and apply software testing techniques

LO5. Know the phases of a software project

LO7. Control project versions and configurations

Working methodology


All the theoretical concepts of the subject will be treated in the theory classes (large groups) of the subject. These classes introduce the basic concepts of the process to develop software and software design using patterns, showing their application with exercises solved by the teacher. It is recommended that students read the material published on the virtual platform before each session. In the classes the participation of the students will be asked individually or in group, to solve different problems proposed with or without anticipation. These activities, which due to their optional nature and brevity are not reflected in this document, will serve the student as a tool for self-assessment of the achievement of the contents of the subject and may be used by the teacher to make decisions about the final grade of the student, but never to the detriment of the numerical grade calculated according to the grading system specified by the subject.

Students should attend all classes with a laptop with the ability to run the appropriate software for the subject. Teachers will report on what this software is and how it can be obtained.

The more practical concepts will be worked in small groups (laboratory) where works of medium complexity are presented, which require the application of the knowledge acquired in the most theoretical classes. These sessions will provide the appropriate tools to solve the scheduled activities but it is expected that these will be extended from a temporal point of view, beyond the laboratory hours and that, consequently, students will have to complete them during autonomous learning time.

Rules for carrying out the activities

For each activity, teachers will report on the particular rules and conditions that govern them. One-on-one activities presuppose the student's commitment to carry them out individually. All activities in which the student does not comply with this commitment will be considered suspended, regardless of their role (origin or destination). Likewise, the activities to be carried out in groups presuppose the commitment on the part of the students who make it up to carry them out within the group. All activities in which the group has not respected this commitment regardless of its role (origin or destination) will be considered suspended.

Contents


1. Software development process             

1.1. The Unified Process.

1.2. Software Design.

1.3. Case Study.

2. Software testing

2.1. Introduction to software testing.

2.2. Test strategies.

2.3. Test techniques.

3. Software design patterns

3.1. Requirements and methods.

3.2. Pattern concept.

3.3. GoF patterns (adapter, factory, singelton, strategy, composite, facade and proxy).

4. Software modeling

4.1. Relationships between Use Cases.

4.2. Domain Model Organization.

4.3. Operations contract.

4.4. State diagrams. Pattern states.

4.5. Package Organization.

With this proposal we will reach the following contents of the report:

  • Application modeling.
  • Object-oriented analysis and design
  • Design patterns
  • Software architecture patterns

Learning activities


With the aim of collecting evidence of the achievement of the expected learning outcomes, the following activities of an evaluative nature will be carried out (related to all the common competences):

EX. Partial Exam (EP) and Final Exam (EF)

Individual exams written by hand and/or computer (using, when appropriate, an IDE tool) of the theoretical-practical concepts of the subject's contents. These tests ask students to correctly develop software from an initial project.

The aim of this activity is to assess whether the student has acquired the knowledge of: 5 (know how to apply techniques to model), 10 (quality control), RA2, RA3 and RA4, which cover the following common and specific competencies: CIN1 (develop reliable software), CIN5 (maintain software), CIN8 (build and maintain applications), CIN13 (storage tools), CIN16 (life cycle software engineering), EFB4 (use of computer programs), EIS1 (meet requirements) and EIS4 (ability to analyze).

Q. Short exercise questionnaires

Questionnaires of short exercises that will have to be solved in non-present time and individually through the virtual classroom, these are short exercises to learn how to use JUnit commands, reflective programming, Logger, among others, and more understand flowcharts and UML diagrams, cover the competencies CB2, CB5, CIN1, CIN13, EFB4, EIS1 and EIS4.

Q. Four practices

Based on an initial project, the concepts discussed in theory will be practiced, they cover the skills CB2, CB4, CB5, CIN1, CIN2, CIN3, CIN4, CIN13, EFB4, EIS1, EIS4, CT1 and CT2 and demonstrate the achievement of 1 (use professional tools) and 2 (use tools to develop). The practices will be delivered and carried out collaboratively using a Git repository, which will mostly have to be developed in non-face-to-face time and in groups.

  • Practice 1 - Testing

It involves developing a small software to learn how to use the Junit framework and learn about the TDD methodology "Test Driven Development" or use a specific technique of the views in block 2 of theory. At the end of the activity students should be able to RA4 and RA5

  • Practice 2 - Adapter Pattern + Factory Pattern

It is about redesigning a small software applying one or more of the first patterns of content 3. At the end of the activity students should be able to RA1, RA2, RA3 and R7.

  • Practice 3 - Strategy Pattern and/or Composite Pattern + Abstract Factory Pattern

It involves redesigning a small piece of software applying one or more of the other content patterns 3. At the end of the activity students should be able to RA1, RA2, RA3 and R7.

  • Practice 4 - Diagram of States + Pattern States

It is about redesigning a small software applying the contents of block 4. At the end of the activity students must be able to RA1, RA2, RA3 and R7

In order to pass (pass) the assessment activities, students will have to demonstrate

  • That they have acquired the theoretical knowledge related to the contents of the subject and that their understanding allows them to put them into practice [MECES-2 point a, point c]
  • That they can develop solutions to problems that, although they are similar to others seen above, present aspects that are new [MECES-2 point f]

In relation to the basic competences assigned to the subject, these are covered especially with regard to the aspects that are explained:

  • CB2: problem solving within their area of ​​study.
  • CB4: transmit information in public.
  • CB5: development of learning skills needed for further studies (autonomous access to documentation, effective work habits)

Finally, and with regard to the transversal competence associated with the subject:

  • CT1: (third language knowledge) this is worked from the documentary sources that students must consult, since all of them are in English.
  • CT2: (ability to work in groups) that they can achieve when doing the practices.

Evaluation system


The final grade of the course will be calculated according to the formulas specified below:

FORMER. exam grade 50%

Q. average rating of short exercise quizzes 10%

P. average grade of the proposed internships during the quarter 40%

If the grade obtained in the final or make-up exam is greater than or equal to 4 (EF>=4), the student's final grade will be:

EX = max( (EP+EF)/2 , EF)

Final grade = EX · 0.50 + Q · 0.10 + P · 0.40

Otherwise (if EF < 4), the student's final grade will be:

Final grade = Q · 0.10 + P · 0.40

Considerations:

  • It is necessary to obtain a grade equal to or higher than 4 in the final exam or make-up exam in order to pass the subject.
  • Students who do not appear in the final exam will fail the subject without the option of recovery. 
  • An activity not delivered or delivered late and without justification (court summons or medical matter) counts as a 0.
  • It is optional for teachers to accept or not deliveries outside the deadlines indicated. In the event that these late deliveries are accepted, it is up to the teacher to decide whether to apply a penalty and the amount thereof.
  • In group activities, the teacher can, based on the information available, customize the grade for each member of the group.
  • It is the student's responsibility to avoid plagiarism in all its forms. In the case of detecting plagiarism, regardless of its scope, in any activity it will correspond to having a final grade of 0. In addition, the professor will communicate the situation to the Head of Studies so that applicable measures can be taken in terms of regime punisher

Recovery:

  • The internship of the subject (grade P) is NOT recoverable.
  • Short exercise questionnaires (Q grade) is NOT recoverable.
  • Students not presented and those who obtain a final grade> = 5 will not be able to make the recovery.
  • The make-up exam grade replaces the EF grade. The final grade will be calculated using the formulas detailed above.

REFERENCES


Basic

Laurent Debrauwer (2018) Design patterns in Java. The 23 design models: descriptions and illustrated solutions in UML2 and Java. (2nd edition). ENI editions. ISBN 9782409016349

Craig Larman (2003) UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process. (2nd Edition) Prentice Hall, cop. Translation Begoña Moros Valle. ISBN 978 8420534382

Complementary

Shekhar Gulati, Rahul Sharma (2017) Java Unit Testing with JUnit 5: Test Driven Development with JUnit 5. APress Publishing. ISBN 1484230140.

Paloma Cáceres García de Marina, Miguel Ángel Garrido Blázquez, Almudena Sierra Alonso (2019) Specifying Software through Use Cases and Uml. Ramón Areces University Publishing House. ISBN 9788499613420.

Erich Gamma, et al. (2003) Design patterns: elements of reusable object-oriented software. Addison-Wesley, cop. Translation: César Fernández Acebal. ISBN 9788478290598.

Daniel Bolaños Alonso, Almudena Sierra Alonso, Miren Idoia Alarcón Rodríguez (2008) Software tests and JUnit: an in-depth analysis and practical examples. Prentice-Hall Spain. ISBN 9788483223543.