IDATG1002
Software Engineering
Last taught 2023
Spring
Gjøvik
Norwegian
About this course
Content
This course will cover the following topics: Introduction to system development, object-oriented analysis and design, Unified Modeling Language (UML), agile development methodology, vision and requirements analysis, software architecture and design, documentation, testing, risk analysis, user participation, human-machine interaction, prototyping, user testing and project.
Learning outcomes
KNOWLEDGE The candidate must:
- be able to explain the principles of iterative, incremental and agile software development (I)
- have familiarized themselves with how a project is managed, documented and implemented
- be able to account for different types of tests and test strategies
- know the basic principles of software architecture and design
- know the basic features of human-machine interaction
- know the principles of universal design (E)
- know the characteristics of professional ethics for software developers (E)
- be able to account for privacy regulations (GDPR) (E)
SKILLS
The candidate must:
- be able to use agile software development methods to develop an information system (I)
- be able to model information systems using Unified Modeling Language (UML)
- be able to define and document the information system's vision and requirements
- be able to use requirements to design and conduct tests of the software
- be able to use methods and tools to plan, organize and manage projects (D)
- be able to develop software in accordance with the principles of universal design (E)
GENERAL COMPETENCE
The candidate must:
- be able to work in accordance with recognized professional ethics for software developers (E)
- be able to work effectively and purposefully in a team towards a common goal (E)
- be able to share and disseminate information and knowledge with team members and clients (E)
- have developed good writing and presentation skills in both Norwegian and English
- have practical experience of applying programming competence in interaction with software development methods to solve real-life problems (E, I)
Teaching methods
Lectures, projects, group supervision and workshops.