Analysis, Design and Software Architecture
AbstractThe 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.
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.
- 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.
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 be given each week and submission requested, generally, within a week. Weekly assignments during the first half of the course will be assigned to randomly generated pairs.
To access the exam, students will have to satisfy the mandatory activities requirements.
Mandatory activities might be subject to modifications prior to the course start. The final list will be communicated during the first lecture, following is a likely list:
· Participate to the exam simulation
· Submit a percentage of the weekly activities (e.g., 8 out of 10)
· Participate to the project related events
The course will include a medium size project that groups of students will be challenged with. From the second half of the course onwards, groups will have to participate to activities related to the project including a few reviews and a final project presentation. Additional details regarding the project will be communicated during the first lecture.
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.
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 BudgetEstimated distribution of learning activities for the typical student
- Lectures: 15%
- Exercises: 40%
- Assignments: 40%
- Other: 5%
Ordinary examExam type:
C: Submission of written work, External (7-point scale)
C22: Submission of written work – Take home
Open book exam.
NB: No communication and collaboration allowed.
The duration of the exam is 4 hours.
Please, disregard the 1 day notation below.
Random fraud control with Zoom, will be conducted right after the submission.
Student Affairs and Programmes will randomly select 20 % of students who will have to show up in Zoom to check authorship of submitted solutions.
The selection of students for fraud control will be published in LearnIT right after the exam together with a link to the Zoom meeting.
More information in LearnIT before the exam.