IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Softwareprodukter 
Kursusnavn (engelsk):Software Products 
Semester:Forår 2004 
Udbydes under:cand.it., internet- og softwareteknologi (int) 
Omfang i ECTS:7,50 
Kursussprog:Engelsk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:
Forventet antal deltagere:30 
Maks. antal deltagere:80 
Formelle forudsætninger:Before the course, the student should be able to:

  • program in Java or PHP

  • analyse multi-file source code

  • evaluate software architectures


The prerequisites can be fulfilled by Introduction to Algorithms and Data Structures (IADS) and Introductory Programming (GP), or similar courses. However, additional experience with large software projects is an advantage 
Læringsmål:

Modern software products are developed in product cycles where key functionalities of the product are iteratively added to a software kernel.



This process requires programmers that can identify key functionalities and redesign the kernel consistently. The purpose of the course is to characterize such development environments and provide analysis and programming techniques that are suitable for kernel redesign.



After the course, the student should be able to:

  • identify main phases of a software product cycle

  • understand the interaction between economic and technical goals in product cycles

  • identify main functionality of kernel software

  • use refactoring, modularization, and parameterization to redesign kernel software

  • apply version control and regression tests to kernel software

 
Fagligt indhold:The course consists of two main activities that take place simultaneously:

  1. lectures on product cycles and kernel development

  2. exercise work on a case study PostNuke (www.postnuke.com)


Lectures cover the following topics:



  • Product cycles


    • phases of a product cycle

    • interaction between economic and technical goals

    • increasing the productivity of product cycles


      • systematic licensing methods

      • effective update handling



  • Software kernels


    • identifying main functionality

    • kernel architecture and redesign:


      • refactoring

      • modularization

      • parameterization

      • version control

      • regression test of the kernel




Exercises cover a case study of a web content management system called PostNuke. postNuke is written entirely in PHP. During the exercises, the kernel and overall architecture of PostNuke will be explored. This will be a team effort defined as a LinuxLAB open source project.



Our understanding of the functionality of PostNuke forms the basis for individual or group productions aiming at redesigning the software package. The productions may take several forms. They can be:


  1. PHP source code extensions changing the functionality of PostNuke,

  2. a description of a new architecture, or
  3. some other written work related to the course syllabus.


 
Læringsaktiviteter:

The course consists of 3x45 minutes lectures and 2-3 hours exercises a week for approximately 8 weeks. In the remaining 4 to 5 weeks, students work on their production. In the following 4 week period, the production may be extended to a project. 

Eksamensform og -beskrivelse:X. experimental examination form (7-scale; external exam), 13-skala, Ekstern censur

The oral exam has a duration of 30 minutes excluding time for evaluation and feedback. During the exam, students present and defend their productions.



The deadline for handing in the production is friday 30 April 2004 before 12:00 at the Examination office.  

Litteratur udover forskningsartikler:Lerdorf R. & Tatroe K., ¿Programming PHP¿, O¿Reilly & Associates.