DAT251 Modern Software Development Methods
Course description for academic year 2024/2025
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 emphasises on software in a broader picture, e.g. in relation to sustainability.
Learning Outcome
Upon successful completion of this module, students will achieve the following learning outcomes:
Knowledge:
- Identify various tools and development processes essential for software development.
- Define and elucidate the phases and components of the Software Development Life Cycle (SDLC), encompassing planning, requirements gathering, design, implementation, testing, deployment, and maintenance.
- Explain the principles and methodologies employed in software development, including agile and plan-driven approaches.
- Differentiate between software development practices and research methods.
- Apply diverse research methodologies to enhance the software development process.
- Demonstrate proficiency in validating the produced software.
Skills:
- Executing a software project leveraging aspects of the Software Development Life Cycle.
- Proficiency in employing diverse tools and frameworks, such as design thinking, within the development process.
- Integration of different software development processes and tools effectively.
- Demonstrating empirical validation of software processes, elements of processes, or the final product.
General competences:
- Analyzing and resolving issues linked to software development methodologies.
- Collaborating effectively within a team environment.
- Assessing the appropriateness of various SDLC models for specific project contexts.
- Displaying professionalism in both collaborative team efforts and individual work.
- Adapting to evolving project requirements and shifting priorities.
- Acknowledging the dynamic nature of software engineering and embracing continuous learning.
- Pursuing and implementing fresh knowledge and skills in emerging technologies and methodologies.
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
The course has an examination in two parts: an oral exam and a project report.
The students must conduct a software development project focusing on application of software engineering methodologies. The results from the project must be documented in a project report.
The project report counts for 25% of the final grade and the oral exam counts for 75% of the final grade.
Both parts must get a passing grade in order to get a final grade for the course.
In case one of the parts gets a failing grade, that part can be taken as a re-sitting/postponed exam.
Grading scale is A-F where F is fail.
Examination support material
Oral exam: none.
Report: all support material is permitted, however, students have to understand thoroughly the rules for citation and the use of sources.
More about examination support material