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 materialCourse reductions
- MOD251 - Moderne systemutviklingsmetodar - Reduction: 10 studypoints