DAT251 Modern Software Development Methods
Course description for academic year 2019/2020
Due to Covid-19, changes may occur in course descriptions for the spring semester of 2020. Changes in each course will be published on Canvas. When a course description has been changed on Canvas, the description on web is no longer valid. Examples of such changes could be accomplishment of practice, course type, or whether letter grades or passed/not passed will be used as grading scales.
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.
On successful completion of this module, students should be able to:
- 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
- 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
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.
Hands-on lab-exercises. A software development project. Writing a research proposal. Lectures.
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.
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
NoneMore about examination support material