Jump to content

DAT251 Modern Software Development Methods

Course description for academic year 2023/2024

Contents and structure

The students shall learn about and get hands-on experience with selected modern methods in software development as well as getting an understanding on how to do research on software engineering.

The course focuses on methods and techniques for development of software systems, focusing especially on agile methods. Topics include object-oriented design principles and patterns, agile project management, technical and non-technical practices, innovation and requirements elicitation, test- and build automation, architecture, and technical debt.

There is also a focus on research in software engineering, and how practice and research interact to create new knowledge.

The course also try to emphazise software in a broader picture, e.g. in relation to sustainability.

Learning Outcome

On successful completion of this module, students should be able to:

Knowledge:

  • Describe principles and practices in agile software development
  • Discuss, assess and compare various elements of software development
  • Discuss various aspects of research on software engineering
  • Relate own practice to research/theory/litterature and reflect on it

Skills:

  • Carry out innovation work using frameworks like Design Thinking and Lean Startup
  • Manage a software project using an agile method framework like Scrum or XP
  • Develop software using TDD and test automation on different levels
  • Set up and apply Continuous Integration and Continuous Delivery
  • Pinpoint violations of object oriented Design Principles, and suggest improved solutions. Utilize design principles, patterns and refactoring techniques to obtain flexible, loosely coupled, cohesive, readable, testable, DRY, clean, well designed code

General:

  • Work ethics

Entry requirements

General requirements for admission to the programme.

Recommended previous knowledge

Programming skills corresponding to the course DAT102 Data Structures and Algorithms (HVL) or the course INF102 Algorithms, Data Structures and Programming (UiB).

Software development expertise corresponding to the courses DAT108 Advanced Programming and Web Applications and DAT109 Software Development (HVL) or INF101 Object-oriented programming and  INF112 Software Engineering (UiB) is also strongly recommended.

Teaching methods

Hands-on lab-exercises. A software development project. Paper reviews. Lectures.

Compulsory learning activities

A number of mandatory assignments in the form of labs, meetings, written reports, oral presentations. NB! Lab attendance may be mandatory.

The assignments must be submitted within set deadlines and must be approved before examination can take place.

Approved assignments are valid for the examination semester and 2 following semesters.

Assessment

5 hour written examination.

Time and place for the examination will be announced at Studentweb and the digital assessment system (WiseFlow).

The examination is digital and the students bring their own PC/MAC. The software used for the examination must be installed and tested before the examination.

Grading scale is A-F where F is fail.

Examination support material

None

More about examination support material

Course reductions

  • MOD251 - Moderne systemutviklingsmetodar - Reduction: 10 studypoints