Semester Project: Client/Server System





Offered by

ICT Engineering




Completed the 1st semester Software Engineering course “Software Development with UML and Java 1” or a similar course.

The course must be passed before graduation.

Main purpose

The purpose is to develop and document a client/server system as well as demonstrate the acquisition of process skills.


The student will be able to:
  • Describe the relation between design and test in relation to a software system
  • Define and use group roles when using Scrum to control a software project
  • Describe how to deploy a software system


The student will be able to:
  • Use an iterative system development method when executing a software project
  • Execute effective literature searching, in order to judge validity and reliability
  • Document the Analysis and Design of a software system using UML
  • Capture and formulate the requirements, both functional and non-functional, of a software system
  • Write a project description for a software project
  • Design and describe object-oriented models
  • Design a normalized relational database for data persistence, based on the preliminary analysis
  • Use SCRUM to control the development process of a software project
  • Use Unified Process as a system development method
  • Display considerable skills for presentation, both written and oral
  • Construct a project report in a well-structured manner, using provided templates
  • Describe a project execution in a process report
  • Conduct and execute a software project in collaboration with group members
  • Perform unit testing and use case testing based on the requirements and code of a software system
  • Implement a client-server software system in Java according to the system’s design
  • Implement a relational database as part of a client-server system according to the system’s design
  • Apply theory of database normalization that will result in a relational database on 3rd normal form


The student will be able to:
  • Capture requirements, analyse, design, implement and test a client/server system using UML, Java and SQL
  • Create and ague for a design that supports team collaboration of implementation and tests
  • Execute a software project with a clear connection between requirements, analysis, design, implementation, test and documentation
  • Create a small, robust, concurrent client/server system with the proper selection of design patterns and database-persistence to achieve a maintainable and flexible architecture
  • Choose between, argue for, and evaluate various technical solutions for implementing client/server systems
  • Describe and reflect on the development process and project work in a Process Report
  • Black- and Whitebox testing of a software system using relevant testing techniques
  • Apply relevant design principles including SOLID principles so that the resulting software system is maintainable, flexible, and robust
  • Reflect upon chosen technical solutions of the software system
  • Discuss their choice of design patterns


  • Software development
  • Process management
  • Client-server systems
  • Relational database and normalization
  • Concurrency and thread-safety
  • Black- and Whitebox testing
  • Report writing
  • Analysis, design, implementation, test
  • Design principles
  • Design patterns
  • Group work

Teaching methods and study activities

Participation of lecturer and students
Initiated by the lecturer
28 hours - 10%
  • Lessons
  • Project supervision
  • Exam


Participation of students

Initiated by the lecturer

56 hours - 20 %
  • Hand ins
  • Project work
  • Homework
Participation of students
Initiated by students
140 hours - 50 %
  • Preparation for exam
  • Self-study
  • Project work
  • Literature search


Participation of lecturer and students
initiated by students
56 hours - 20 %
  • Supervisor meetings




Permit criteria for attending examination:
  • The student must have an attendance of at least 75% in order to qualify for the exam. Students who do not have at least 75% attendance will automatically fail the ordinary exam.
  • Mandatory assignments and reports handed in before deadline and accepted.
  • The uploaded reports must comply with the hand in criteria as stated in the Support Document: Formalities Criteria for upload of SEP.
    Found under Study Material -> Project Guidance -> ICT


Oral Examination

Group presentation - 5 minutes per person

Group examination  - 20 minutes/student

  • SWE is evaluated together with SEP2 project.
  • The SEP2 project and the exam must demonstrate understanding of SWE1 topics and their use in practice
  • During the SEP2 exam, specific SWE1 questions will be asked, which must be answered satisfactorily to pass SEP2

Allowed tools: Laptops, notes

Internal examiner. 

Please note that re-examinations may take a different form than the ordinary exams.


Students who failed a semester project in January or June must attend an information meeting on the last Friday in June.
At this meeting, the students will get information on specific deadlines as well as the process of re-exam.
They will form new groups, if possible, in relation to the number of failed students at the individual semesters.
Based on the feedback, the students have received after the ordinary exam, they must prepare a new project.
Deadline for hand in of the project is mid-August (exact date will be informed at the meeting). There will be no guidance in the period up to hand in.
Oral assessment of the project takes place in August/September.

Grading criteria

Examinations account for 100% of final grade.

Additional information



Steffen Vissing Andersen

Valid from

2/1/2020 12:00:00 AM

Course type

Compulsory Course for all ICT Engineering
2. semester