Official course description:
Full info last published 17/06-21

Analysis, Design and Software Architecture

Course info
Language:
English
ECTS points:
15
Course code:
BSANDSA1KU
Participants max:
204
Offered to guest students:
yes
Offered to exchange students:
yes
Offered as a single subject:
yes
Price (single subject):
21250 DKK (incl. vat)
Programme
Level:
Bachelor
Programme:
BSc in Software Development
Staff
Course manager
Associate Professor
Teacher
Part-time Lecturer
Course semester
Semester
Efterår 2021
Start
30 August 2021
End
31 December 2021
Exam
Exam type
ordinær
Internal/External
ekstern censur
Grade Scale
7-trinsskala
Exam Language
GB
Abstract

The Analysis, Design, and Software Architecture course (BDSA) is part of the Bachelor in Software Development (BSWU). In this course, students will discover software engineering from a theoretical and practical perspective. Students will learn about the history of software engineering, software processes, and will be exposed to concepts, principles, techniques, tools, and technologies related to object-oriented analysis, design, and programming. The course comprises of two lecture blocks and three exercise blocks. Weekly exercises will be given to students to gain hands on practice of the concepts taught in class.


Description

The Analysis, Design, and Software Architecture course (BDSA) is part of the Bachelor in Software Development (BSWU). In this course, students will discover software engineering from a theoretical and practical perspective. Students will learn about the history of software engineering, software processes, and will be exposed to concepts, principles, techniques, tools, and technologies related to object-oriented analysis, design, and programming. The course comprises of two lecture blocks and three exercise blocks. Weekly exercises will be given to students to gain hands on practice of the concepts taught in class.

Formal prerequisites

The student must have the following skills to register for this course:

  • Familiarity with at least one object-oriented programming language such as Java, C++, C#, Objective-C.
  • Be able to design, implement, and test medium-sized object-oriented programs that includes the use of concepts such as classes, encapsulation, inheritance and polymorphism, interfaces, packages, data structures (arrays, collections, lists, etc.), threading, IO operations (files, streams, and serialization), and basic GUI programming.

    These background skills are achieved by following the basic programming courses in the 1st and 2nd semester at the IT University's bachelor degree programs in Software Development.


Intended learning outcomes

After the course, the student should be able to:

  • Describe and apply object-oriented methods for analysis and design.
  • Explain the principles of software architecture, including the variety of common architecture and design patterns and their use.
  • Explain and reflect on the different software development process models, practices, and techniques for software systems development that are covered in the course.
  • Explain and be able to execute all the primary facets of software development within software engineering including analysis, design, implementation, and testing.
  • Document the analysis, design, and software architecture of systems through the use of common standards for documentation including UML and C#'s documentation tools.
  • Design and implement software using the C# programming language, including the use of C# data structures (arrays, collections, strings, regexp), delegates, events, generics, LINQ, data access, multi-processing and threading, distributed programming, testing and NUnit, user interface programming, and Web programming.
  • Apply changes (re-factor) to a software system through adjustments in its architecture or refinements in its configuration and reflect on their implications.
  • Construct useful, coherent, large-scale systems of up to approx. 10 KLOC in size in the C# programming language, including the ability to perform system and domain analysis for a given problem, propose an appropriate software architecture, write a system specification and its implementation, and validate the implementation against its specification.
  • Effectively test large-scale systems. This includes both the understanding of the design implications as well as the ability to write effective tests using test-driven (or test-first) techniques.
Learning activities

The course comprises of week sessions organized as follows:
  • 2-hour Object-Oriented Analysis and Design lecture
  • 2-hour Object-Oriented Programming lecture
  • Two 2-hour exercise sessions
  • An additional 2-hour exercise session has been secured to support the course. This will be used flexibly to: (i) ensure more support from the teaching assistants, (ii) allow focused workshops to be run to integrate regular learning, and (iii) ease coordination for students to work on their weekly exercises.
Assignments will comprise:
  • before week 42, a set of exercises assigned to randomly generate triplets to be submitted within a week
  • after week 42, a medium size project assigned to teams of five to be submitted as final course hand-in

Mandatory activities

To access the exam, students will have to satisfy the mandatory activities requirements.

  • Participate to the exam simulation
  • Submit five genuine solution attempts to the weekly assignments
  • Participate to the three project reviews
  • Participate to the project demo

Note: mandatory activities might be subject to minor modifications prior to the course start. 

The student will receive the grade NA (not approved) at the ordinary exam, if the mandatory activities are not approved and the student will use an exam attempt.

Course literature

Details regarding the course literature will be communicated timely and will most likely include two books.  Additional research literature will be used and communicated throughout the course.

Student Activity Budget
Estimated distribution of learning activities for the typical student
  • Lectures: 25%
  • Assignments: 35%
  • Project work, supervision included: 35%
  • Other: 5%
Ordinary exam
Exam type:
X: Experimental form, External (7-point scale)
Exam variation:
X: Experimental form
Exam submisson description:
Assessment form & description:
The exam is twofold.
* First component is a project which must be handed in the form of a technical report.
* Second component is a 4-hour written exam on paper with no access to books or electronic aids.

The Technical report and written exam will be assessed independently; one single grade will be computed based on a 30/70 ratio between hand-in and written exam respectively. However, both the hand-in and the written exam will have to receive a positive grade to successfully pass the exam.

Submission of the technical report will follow the normal ITU submission timeline.


reexam
Exam type:
X: Experimental form, External (7-point scale)
Exam variation:
X: Experimental form
Exam submisson description:
Re-exam description:
The exam is twofold:
* First component is the technical report based on the group work throughout the course.
* Second component is a 20 minutes oral exam

The technical report and the oral exam will be assessed independently; one single grade will be computed based on a 30/70 ratio between hand-in and oral exam, respectively. However, both the hand-in and the oral exam will have to receive a positive grade to successfully pass the exam.

Students who didn´t participate in the group work can´t take the ordinary exam. To gain access to the re-exam those students must submit a technical report. The case for the report will be designed by the teachers and given to the students by the end of the course.
Submission of the technical report will follow the normal ITU submission timeline for re-exams.
No supervision will be offered during this period.
Students write and submit the report individually.

Time and date