Software Process and Quality

Universidad de Deusto - Bilbao

Course Description

  • Course Name

    Software Process and Quality

  • Host University

    Universidad de Deusto - Bilbao

  • Location

    Bilbao, Spain

  • Area of Study

    Computer Science

  • Language Level

    Taught In English

  • Prerequisites

    Knowledge of software specification, design and implementation techniques.

    Hours & Credits

  • ECTS Credits

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

    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/

Course Disclaimer

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.

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