Software Process and Quality

Universidad de Deusto - Bilbao

Course Description

DESCRIPTION
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 thesoftware 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 quality assurance

CONTENTS
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.

METHODOLOGY
Next, the main methods and techniques used in the subject are summarized, contextualizing the teaching strategy:
+ 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.

ASSESSMENT
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

READINGS
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 means.
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/

    Hours & Credits

  • ECTS Credits

    6
  • Recommended U.S. Semester Credits
    3
  • Recommended U.S. Quarter Units
    4
X

This site uses cookies to store information on your computer. Some are essential to make our site work; others help us improve the user experience. By using the site, you consent to the placement of these cookies.

Read our Privacy Policy to learn more.

Confirm