THE IT FACULTY BOARD

DIT029,  Project: Software Architecture for Distributed Systems,  15.0 higher education credits
First Cycle

1. Confirmation
The course syllabus was confirmed by the IT Faculty Board on 2010-09-17, effective from 2011-09-01.
Field of education: Science 100%

Main field of studies | Specialization
Applied IT, Software Engineering and Management | First Cycle, has less than 60 credits in first-cycle course/s as entry requirements

Department: Computer Science and Engineering

2. Position in the educational system

The course is provided as part of the Software Engineering & Management programme.

3. Entry requirements
The students must have successfully finished the course DIT215 Project: Programming, 15 hecs. Fundamental knowledge of software processes is also required.

4. Course content
In this project course, the students work together in groups of six. Each group produces a software prototype, and relevant project documentation. Each student is assigned a role in the project group, where he/she is expected to be responsible for the tasks associated with the role. During the project students are presented with the opportunity to use and develop their skills in the areas Software Architecture and Distributed and Fault-tolerant programming. The project is challenging, and require the students to collaborate and organize their work efficiently.  There is little external steering in this project, the students are responsible for the overall planning and setting their own internal deadlines in order to finish the project on time.
The students combine their theoretical knowledge about Software Architecture and Distributed Systems. The students are able to take a realistic industrial problem and solve it by creating a software architecture description of a distributed system, and by designing and implementing this system. The system may partly consist of existing systems, after which the implementation problem becomes an integration problem.During this project, the students are responsible for their own software process. there is little external steering, and they have to supervise and follow-up on their software process in order to finish the project within the allotted time.

5. Learning outcomes

1. Knowledge and understanding

Define the role of Software Architecture in distributed systems projects.

Understand the importance of planning (and follow-up on planning) in a larger software development process.

Explain the importance of design and structure, as well as testing and integration for the successful implementation of a distributed system.

2. Skills and abilities

Work as part of a software development team.

Take responsibility for a role within a software development team.

Use a modern functional programming language to implement (parts of) a distributed software system.

3. Judgement and approach

Estimate the additional challenges presented by the introduction of distribution and fault-tolerance in a software project.

Identify the challenge of planning and execution of a software development project.

6. Literature

The course utilizes and applies the required reading from the parallel courses (DIT027, DIT885 and DIT541).

7. Assessment

Written artefacts, such as the software prototype and the project documentation, as well as a mandatory oral presentation are assessed. The student has a role in the project and they are examined in part by their individual contribution within their role and in part by the group's overall result on the project. In order to assess the individual contributions and the development process the students may be required to complete self- and peer-assessment forms during the course.

A student who has failed a same test twice has the right to change examiner, if it is possible. A written application should be sent to the Department.

There is normally an opportunity to re-examinate the course during the summer by doing a similar (but smaller) project during the summer.

8. Grading scale
Fail, Pass, Pass with distinction.
To Pass (G): In order to pass the course, the student must actively participate in the group work. The student is required to have contributed in a reasonable way to the project results of the group, and understand all parts of the project and the relations between parts of the project. The student's specific role must be satisfactory fulfilled. If the student does not have one of the six standard roles, the role must be well specified, motivated, and sufficiently advanced. If two students share the same role, this role must be performed very thoroughly, and each student's contribution must be clear from the documentation. The student must also participate in the oral presentation of the project.
To Pass with Distinction (VG): In addition to the requirements for G, the student must fulfill his/her role with excellence, manifesting this by choosing suitable tools and/or techniques, and supporting this with good documentation.
Regarding the application of ECTS scales, please see Vice-Chancellors decision 2007-05-28, dnr G 8 1976/07.

9. Course evaluation
After completion, the course will be evaluated by the students. The results of the evaluation are reported to the program manager and discussed with the students. A summary of the evaluation results together with the suggestions for improvement is made available to students and teachers. The results of the evaluation also serve as input for discussion about improvements of the course.

10. Additional information
The intention is to use a programming language with light-weight processes to ease implementation of the distributed application.
The advised process is an agile process.
Language of instruction: English.