Software Process and Quality
Universidad de Deusto - Bilbao
Area of Study
Taught In English
Knowledge of software specification, design and implementation techniques.
Recommended U.S. Semester Credits3
Recommended U.S. Quarter Units6
Hours & Credits
One of the top skills in Computing is to be able to undertake the development of a software
project in an efficient, effective and quality manner. For that, it is paramount to know the
existing software development methodologies and their real applicability to concrete software
projects. Besides, it is important to guarantee the maximum quality of the software resulted
from that development process. In this course, the skills to apply an agile software development
methodology to the needs of a project are obtained. Students will learn and put in practice the
software development process management tools that ease their work and coordination with
other software developers also taking part in a software project.
Among others, students will acquire skills to employ software configuration tools (construction,
change control, version control), tests and quality assurance, and software development
management (documentation and error management). In summary, the aim of this course is that
students learn to successfully accomplish, in a productive and high quality manner, a software
development process, encompassing all the development phases (software requirements, design,
tests, deployment and maintenance), applying an agile methodology and using the set of support
tools which help them in code generation, version and error control, documentation, tests and
MODULE 0. SOFTWARE PROJECT MANAGEMENT. Planning techniques. Planning models
and methodologies. Task priorization and re-planning. Tools to support planning.
MODULE 1. SOFTWARE DEVELOPMENT PARADIGM. Traditional and agile
methodologies. Samples of application of different software development models. Maturity
model CMMi. Software Product Line. Agile Manifesto. eXtreme Programming. Test-Driven
Development. SCRUM. SCRUM application to software development process.
MODULE 2. SOFTWARE CONFIGURATION MANAGEMENT. Software Configuration
Management (SCM) concept. Software construction and automation. Software construction and
automation tools: Maven. Software change and version control. Software change and version
control (SVN, GIT).
MODULE 3. SOFTWARE DEVELOPMENT MANAGEMENT. Technical documentation.
Automatic documentation generation tools: DOxygen, javadoc. Error and incidences
management systems. Code debugging tolos: SLF4J and log4j. Error and issue management
systems. Project management and issue tracking tools, e.g. YouTrack..
MODULE 4. TESTING AND QUALITY ASSURANCE. Software quality measures and
factors. Testing types and levels: unity, performance and integration. Continuous integration
(Jenkins). Testing frameworks: Cobertura, JUnit, Contiperf, Mockito and profiling tools.
Different testing techniques use and comparison.
Next, the main methods and techniques used in the subject are summarized, contextualizing the
+ Exposition. Lecturer presentation of the subject contents in a detailed and organized manner
in the lecture room. The contents, used in the lessons, will be made available to students (in the
form of slides, tutorials, web pages and so on), classified by module.
+ Personal experimentation. The software development management methodologies and tools
will be put in practice in the laboratory lessons. They will be guided by the lecturer. Tools will
be installed and configured, practical examples will be shown and explained following a
"learning by example" strategy.
+ Teamwork. Given a requirement specification proposed by the students and validated by the
lecturer, these will have to accomplish the development of a whole software project, following
the whole lifecycle of a software development process, applying an agile methodology, and
using the set of support tools for development and quality assurance studied in the subject.
From the point of view of the activities carried out, next, how they are assessed and their
grading proportion are detailed:
+ TEAM WORK = 75%
- 5% Team mate evaluation
- 50% Project evaluation by lecturer
- 20% Individual contribution to project evaluation by lecturer
+ INDIVIDUAL WORK = 25% (Knowledge test)
To pass the subject is necessary to obtain at least 4 over 10 in the knowledge test and 5 over 10
in the team work assignment. Students who do not have access to an assessment carried out by
their team mates in the project will not opt to such part of the qualification
All the documentation for the correct follow-up of the subject is placed in the online learning
platform. The core material used will be slides and guides (HOW-TO documents) associated to
the theory and practical work of the different subject modules, respectively.
The basic communication method will be through the online learning platform forum;
particularly all those notifications and news referring to the subject will be published by this
The bibliographic references that will be used in the subject are:
* SCRUM. http://www.scrum.org/
* Apache MAVEN. http://maven.apache.org/
* Git -- fast version control. https://git-scm.com/
* Git for Windows. https://msysgit.github.io/
* YouTrack. https://www.jetbrains.com/youtrack/
* JUnit. http://www.junit.org/
* Cobertura. http://cobertura.sourceforge.net/
* Contiperf. http://databene.org/contiperf/
* Apache log4j. http://logging.apache.org/log4j/1.2/index.html
* SLF4j. http://www.slf4j.org/
* DOxygen. http://www.stack.nl/~dimitri/doxygen/
* Jenkins CI. http://jenkins-ci.org/
Courses and course hours of instruction are subject to change.
Eligibility for courses may be subject to a placement exam and/or pre-requisites.
Credits earned vary according to the policies of the students' home institutions. According to ISA policy and possible visa requirements, students must maintain full-time enrollment status, as determined by their home institutions, for the duration of the program.
Please note that some courses with locals have recommended prerequisite courses. It is the student's responsibility to consult any recommended prerequisites prior to enrolling in their course.