Course syllabus

Welcome to the coruse DAT266 / DIT265 Software evolution project lp2 HT24 (15 hp).

This course is offered to students from the University of Gothenburg and from Chalmers by the department of Computer Science and Engineering.

Contact details

Course responsible and examiner: Farnaz Fotrousi (fotrousi@chalmers.se)

Teaching assistants/supervisors

Student representatives

Course purpose

The aim of this course is for students to synthesize and apply the knowledge achieved from previous compulsory courses in the program, and learn about and deal with the activities occurring after the initial product release in software development. The purpose of this course is to familiarize the student with situations, activities, and techniques typical for software evolution, such as adding a new feature, refactoring, automating variability or testing, improving performance, re-balancing non-functional requirements, and so on. Furthermore, students learn to plan, implement, and reflect on software evolution scenarios and improvements.

 

Schedule

Course schedule.

We will have lectures, group presentations, supervision meetings and a workshop. Thus, these are the times you should schedule for the course. There will be additional meetings within your team, but this is something you are free to agree upon within the team. Details, including the correct time for the slot, can be found on the course schedule. If you need information on the building of the rooms, please check TimeEdit.

 

Course literature

Please, find the list of course literature here.

 

Course design

The course contains project- and problem-based teaching. The course consists of five phases including group and individual assignments, and supervision meetings during the semester.  During the first two phases, the students learn and practice the main concepts of software evolution, and during the later phases, the students develop a software evolution scenario as a project. Groups and teachers agree on the software evolution scenario to be performed during the course. In addition, lectures provides the student with methods and knowledge about software evolution.

Teams will meet their supervisors to discuss progress, reached goals, next steps, and challenges, almost once a week, when rooms are available. If wished or necessary additional meetings with the supervisors can be arranged. 

The course consists of the following components:

Topic Components: Software evolution requires its own techniques concerning, e.g. program comprehension, analysis, and migration. In sessions throughout the first study period, we provide knowledge and practical skills in these areas.

  • Individual Assignments: By reaching (optional) individual milestones, students can show that they are prepared to make a valuable contribution to the upcoming group work. There will be 2 individual assignments.
  • Individual Report: The report is given in addition to the group report by each individual student. In this report students reflect on their group’s evolution tasks, such as software comprehension, refactoring, and evolution strategies. 


Project Components: The project components are structured with phases. The group will submit reports during and at the end of the project that clearly outlines the achievements as well as each student’s contribution.

  • Group Phases: Group phases allow groups to show continuous progress of their project. To guide the teamwork especially at the starting phase, the first group phase is predefined targeting comprehension of the software program to be reused. The second group phase identifies code smells and refactoring. In third pahse the students suggests software evolution scenarios to implement. Within the supervision sessions, the supervisor confirms the evolution scenarios. The students design and during the fourth phase implement the scenarios; the fifth phase evaluates and finalises the development.  For each milestone 1-4, the students are asked to provide a presentation, in a group presentation or a workshop, showing how the milestone was reached. The presentation may include demonstrations of the system and codes to explain progress. They will be also assigned with opposition tasks for other groups' presentations. Milestone 5, includes fair (i.e., final presentation) and delivery of the product. Each student should lead and present and do an apposition task at least one presentation for one of the 5 phases. All students are supposed to participate in the discussions for each phase. Failing to lead at least one of the presentations, opposition tasks or being inactive in discussions has an impact on the grade for the individual contribution. 
  • Group Report: At the end of the course, each team will submit a final team report that consists of two parts. First, the report clearly describes the team’s achievements with respect to the goal that were defined for the project. The teams should describe the original system, the part of the system selected for reuse and improvement, as well as the techniques for selecting these parts and for evolving the system.
    Secondly, the group report should include a documentation of each student’s individual contribution to the project. Note, that it is not enough to contribute large amounts of the code within the group in order to gain complete points for the individual contribution. We expect all students in a group to make and document their efforts in order to support underperforming students. In a team with balanced workload all students have the chance to gain full points on the individual contribution. Furthermore, contributing to the code is mandatory in order to pass the individual contribution component.

Project assignments and guidelines for reporting can be found in the Modules.

Communication between teachers and students takes place via Canvas and  e-mail.

 

Learning objectives and syllabus

Learning objectives:

Knowledge and understanding
  • explain the notion of software evolution,
  • summarize state of the art in methods and tools for software evolution tasks, such as program comprehension and software refactoring,
  • discuss the challenges associated with software evolution,
  • explain current research trends in program comprehension and refactoring
Skills and abilities
  • extract a software product's architecture from a given code base and evaluate the quality of the software product,
  • implement one software evolution scenario,
  • implement changes to a software product that lead to an improvement of the product's quality,
  • make use of synergies between different improvements goals for the same product,
Judgement and approach
  • detect and judge needs for quality improvement or evolution in an authentic software product,
  • plan the use of appropriate methods and techniques for performing a software evolution scenario and a quality improvement task,
  • judge needs for improvement of methods and tools to support software evolution
  • plan and evaluate ideas for new or improved tools

 

The course is a joint course (Chalmers and Göteborgs Universitet):

 

Examination form

Grading will be based on group and individual achievements in the different project activities. Achievements will be assessed continuously during the course, including assignments, group presentations, contributions to the discussions after presentations and based on the final deliveries. The grading scheme will allow us to give continuous feedback and to do the assessment to a good degree during the project. By collecting data points continuously over the course and providing feedback, we want to achieve a fair assessment, focus of the workload of this course in the term (not in the exam period), and flexibility to account for project specifics in evaluation.


Students can reach up to 30 points:

  • Group milestones (mandatory): will contribute up to 9 points to the grade (30% of the maximum points). There will be 5 phases. For 1st and 2nd phases up to 1,5 point, in total 3 points, can be reach, and the 3rd-5th phases has 6 points that will be graded based on process followed during the developement and the delivered project at the end of the milestone.  To pass this component a minimum of 5 points must be reached.
  • Group report (mandatory): will contribute up to 9 points to the grade (30% of the maximum points). To pass this component a minimum of 4 points must be reached.
  • Individual Contribution (mandatory): will contribute up to 6 points (20% of the maximum points). This includes points for presentations, oppositions, active participation in the supervision meetings and discussions, as well as contributions to the group activities. To pass this component a minimum of 3 points must be reached.
  • Individual report (mandatory): will contribute up to 6 points (20% of the maximum points). To pass this component a minimum of 3 point must be reached.
  • Individual assignment (optional): will contribute up to 3 extra points. For each individual milestone up to 1.5 point can be reached. It is not necessary to reach any of these points in order to pass the course.

To pass the course all four mandatory components (group milestones, group report, individual contribution, and individual report) need to be passed and at least 15 points must be reached (50% of the maximum points).

Thresholds for the grades (hold when all four mandatory components are passed):

GU

Required points of 30

 

Chalmers

Required points of 30

3 (50%)

15

 

3 (50%)

15

 4 (70%)

21

 

4 (70%)

21

5 (90%) 

27

 

5 (90%) 

 27

Missed Deadlines and Revisions

Handling of missed deadlines and revisions depends on the grading component.

  • Group report (mandatory): If a team fails the group report, a resubmission is possible. The date for the resubmission is the is 21st of February 2025. 
  • Individual report (mandatory): The individual report can be resubmitted twice. The first chance of resubmission will be on 31st of January 2025, and the second chance of resubmission is on 21st of February 2025.
  • Individual milestones (optional): Individual milestones are optional. 

 

Changes made since the last occasion

  • Milestones 3 and 4 will not be directly graded, while feedback will be provided with the potential to improve the deliverables for the next milestones. The project will be graded at the end of Milestone 5.
  • Some adjustments have been made to lecture content and assignment descriptions.
  • The literature list has been updated.
  • One individual assignment has been removed.
  • Groups will have the option to choose their large-scale project.

 

Course summary:

Date Details Due