DAT251 Modern Software Development Methods

Course description for academic year 2019/2020

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 design principles and patterns, agile project management, practices and tools, and automatic testing. There will also be given an introduction to research on software engineering.

Learning Outcome

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

Knowledge:

  • Describe the values, principles and practices in agile software development
  • Discuss, assess and compare various elements of software development
  • Discuss various aspects of research on software engineering

Skills:

  • Develop software using Test Driven Development, including the use of mock objects
  • Support a product owner in applying Automatic Acceptance Testing
  • Set up and apply a Continuous Integration Environment
  • Manage a software project using an Agile Method Framework like Scrum or XP
  • Pinpoint Code Smells and violation of 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

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 DAT101 Modeling and Databases and DAT104 Software Development and Web Applications (HVL) or INF112 Software Engineering (UiB) is also recommended.

Teaching methods

Hands-on lab-exercises. A software development project. Writing a research proposal. Lectures.

Course requirements

A number of mandatory assignments in the form of labs, meetings, written reports, oral presentations. NB! Lab attendance is 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 digital assessment system.

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.

If there are few registered students, the exam could be oral. The type of exam will be announced in reasonable time.

Examination support material

None

More about examination support material

Course reductions

  • MOD251 (1) - Modern Software Development Methods - Reduction: 10 studypoints