IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Software Engineering and Software Qualities 
Kursusnavn (engelsk):Software Engineering and Software Qualities 
Semester:Efterår 2015 
Udbydes under:cand.it., softwareudvikling og -teknologi (sdt) 
Omfang i ECTS:7,50 
Kursussprog:Engelsk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:
Forventet antal deltagere:
Maks. antal deltagere:70 
Formelle forudsætninger:This course is mandatory for MSc in Software Development, Design track first semester and please notice that the course is only open for students enrolled in Master of Science in IT.

-----
Course restriction!
Please note that there is a course restriction between this course and the SDT course Introduction to Software Testing. That means that if you have already taken Introduction to Software Testing, then you cannot take this course as there is an overlap. 
Læringsmål:Having read the course, a student should be able to

- discuss the organizational context in which professional software development takes place;

- discuss different quality dimensions, and apply the concepts to a project and its stakeholders;

- present and discuss different software development models, and argue how to choose a development approach based on quality requirements, kind of software, project context, and risks;

- present the purpose and activities of project management, quality management, and configuration management; develop and document project management, quality plan and configuration management plan for a small project; and motivate the choices made.

- present the purpose and activities of requirements engineering, develop a requirement specification for a small project, devise test strategies and develop test specification for a minor project and motivate the choices made.

- discuss the specificity of use qualities, perform a analysis and cooperative design sessions with potential users, and and motivate the choices made;

- discuss software process quality concepts, and describe the CMMI and software process improvement based on it.

- discuss the purpose of development and usage of software architectures, and design an overall architecture for a small project;

- identify and address communication and cooperation needs of a project (e.g. communication means, sharing of work artefacts, coordination of tasks) and discuss how communication tools and protocols support the cooperation and communication. 
Fagligt indhold:Please note, that due to technical challenges, changes may occur before the start of the semester (week 35) – this applies to all sections of the course description.

The course introduces the organization of and activities in professional software engineering. As software the majority of software engineering takes place in a distributed manner, the course addresses distributed software development explicitly. It aims at communicating an understanding of how the organization of the software development processes and the selection of methods need to respond to the quality requirements and the circumstances for a specific project.

The course is meant to provide an introduction to professional software engineering, enabling the student to competently act as a project member and to take over management responsibility for minor projects. Special focus is given to different software qualities and how to address them in the development process. The course addresses distributed software development explicitly
The course combines introduction to central themes in software engineering with a focus on software qualities. Specifically, it introduces into:

- a process based perspective on software engineering

- different quality dimensions, such as software use qualities, software product qualities, software process qualities and how to address them

- different ways of organizing the software engineering (development models)

- managing cooperation and communication between distributed team members.

- supporting process areas, such as project management, configuration management, quality management, and process improvement

- software engineering process areas such as requirements engineering and architectural design.

Note that there will be NO coding activities in the course. 
Læringsaktiviteter:

The work with the cases will take place in groups of 6 or 8 students acting as a project team. The lectures will introduce different approaches, methods and tools for software engineering. Instead of working with independent exercise tasks you will apply this knowledge on a realistic case. Part of the learning will be to plan your activities, work with the different tasks, and quality-assure your results. The team's task is to develop a set of documents that would typically be subject to a pre-study or - when applying an iterative or evolutionary process - the early iteration cycles or sprints. The set of documents should contain:
· a project charter;
· an initial analysis, including a mock-up of the product to be developed;
· a requirements specification;
· a configuration management plan;
· a quality assurance plan;
· a system test specification;
· an overall architecture specification; and
· a reflective discussion about the team's cooperation and communication.
This set of documents is referred to as the portfolio you have to hand in to be able to take the exam.

After 4 and after 8 weeks, partial hand-ins are due. The hand-ins are constituting the base for a review and evaluation. 

Obligatoriske aktivititer:The participation in at least 80% of the supervision meetings is mandatory.

The submissions of partial portfolios after week 4 and week 8 as specified in on learnIT teaching platform constitute another mandatory course element. If the increment of the portfolio handed in is not of acceptable quality, the group has 1 week to complement it. 
Eksamensform og -beskrivelse:X. experimental examination form (7-scale; external exam)

The oral exam will be 20 minutes per student including assessment and feedback.  

Litteratur udover forskningsartikler:Course literature:

Ian Sommerville, Software Engineering, 10th edition, Adisson Wesley 2015.
L. Mathiassen, A. Munk-Madsen, P.A. Nielsen and J. Stage. Object Oriented Analysis and Design. ISBN: 87-7751-150-6. 1st edition. 2000:
pages 26-31 and chapters 3, 4, 6, 9, 10 and 1