PA2558 Software Evolution and Maintenance Project

Programme course, 7,5 Higher education credits, Second cycle, autumn semester 2022

This course is part of a programme and cannot be applied.

Evolution and Maintenance of software is concerned with continuously correcting, adapting, and perfecting the software. This work introduces special challenges such as the need to understand the existing codebase without having access to the original developers, in order to make changes you need to understand the consequences of thee
changes, you need to modernise the use of e.g. unit testing, and you need to take time to improve and refactor the codebase according to sound programming principles. It is, however, not enough to understand the source code in itself. You also need to understand how the source code is stored in a configuration management system, and how to suggest, inspect, approve, introduce, and test changes in the software and in the configuration management system. The intention of this course is to, through a practical case, create a deer insight in to challenges such as the above.

Facts

  • Type of instruction: On campus, day, part-time 50%
  • Period : 2022-August-29 until 2022-October-30
  • Education level: A1N
  • Application: This course is part of a programme and cannot be applied.
  • Language of instruction: The language of instruction is English.
  • Location: Karlskrona
  • Main field of study: Software Engineering
  • Course syllabus: Download
  • Welcome letter: This course is part of a programme and has no welcome letter.
  • Entry requirements: Completed courses of at least 120 ECTS credits of which 90 credits must be in the following areas: Software Engineering, Computer Science. At least 30 credits must be in one or more of the following areas: Programming, Object-oriented Systems, Software Design, Data Structures and Algorithms, Database Technology, Data Communications, Real Time Systems, Operating Systems. In addition, a completed course of at least 7.5 credits in Software Engineering or a Team Software Engineering Project is required.

Content

  • Understanding of an existing software system
  • Testing of software
  • Debugging of Software
  • Time- and Size Estimates of Software Maintenance
  • Evolution
  • Software Maintenance
  • Configuration Management
  • Working with an Issue Tracker
  • Understanding of the importance of clean code.

Learning outcomes

Knowledge and understanding

  • be able to present an overview of the challenges with software evolution
  • in detail be able to present the challenges involved in software maintenance.

Competence and skills
  • be able to work with a modern development environment, with an IDE, testing tools, and configuration management tools.
  • be able to understand and debug legacy software.
  • be able to estimate size and time to introduce and test changes into legacy software.
  • be able to introduce controlled changes in legacy software to address concrete bug reports.
  • be able to test the introduced changes in a controlled way.

Judgement and approach
  • be able to analyse source code for improvements on code, design, and architecture.
  • be able to document and reflect on performed work.

Course literature and other teaching material

Priyadarshi Tripathy, Kshirasagar Naik, "Software Evolution and Maintenance: A Practitioner's Approach ", Wiley, 2015. ISBN: 978-0-470-60341-3

R. Martin "Clean Code", Prentice Hall; 1 edition, 2008. ISBN-13: 978-0132350884, ISBN-10: 0132350882

Reference Literature:
S. McConnel "Code Complete", Microsoft Press; 2nd edition, 2004. ISBN-13: 978-0735619678 , ISBN-10: 0735619670

J. Richardson "Ship it!", the Pragmatic Bookshelf, 2005.

Course literature and other teaching material

Priyadarshi Tripathy, Kshirasagar Naik, "Software Evolution and Maintenance: A Practitioner's Approach ", Wiley, 2015. ISBN: 978-0-470-60341-3

R. Martin "Clean Code", Prentice Hall; 1 edition, 2008. ISBN-13: 978-0132350884, ISBN-10: 0132350882

Reference Literature:
S. McConnel "Code Complete", Microsoft Press; 2nd edition, 2004. ISBN-13: 978-0735619678 , ISBN-10: 0735619670

J. Richardson "Ship it!", the Pragmatic Bookshelf, 2005.

Learning methods

The course is run as a development project, mixed with lectures and seminars.

Work placement

No work placement is included in the planned learning activities. BTH is aiming for a close contact with the surrounding community when developing courses and programmes.

Teachers

Time allocation

On average, a student should study 200 hours to reach the learning outcomes.
This time includes all the various available learning activities (lectures, self studies, examinations, etc.).
This estimation is based on the fact that one academic year counts as 60 ECTS credits,
corresponding to an average student workload of 1 600 hours. This may vary individually.

Assessments

Component examinations for the course
Code Title ECTS credits Grade
1810 Project assignment 6 G-U
1820 Written report 1.5 A-F

Grading

The course will be graded A Excellent, B Very good, C Good, D Satisfactory, E Sufficient, FX Insufficient, supplementation required, F Fail.

Exams

More information about exams are found in the Student's Portal, where you also enrolls for most exams.


There might be other scheduled examinations. Information regarding these examinations are available in the learning platform Canvas or at other places that the person who is responsible of the course will refer to.

Course Evaluation

The course manager is responsible for the views of students on the course being systematically and regularly gathered and that the results of the evaluations in various forms affect the form and development of the course.

Do you have a question? Type it here and we will get back to you as soon as possible!
×