DD2385 Software Engineering 6.0 credits

Programutvecklingsteknik

A second course in computer science treating object oriented programming, object oriented modeling and analysis, program development with design patterns and advanced Java class libraries.

  • Educational level

    Second cycle
  • Academic level (A-D)

    C
  • Subject area

    Computer Science and Engineering
    Information Technology
    Information and Communication Technology
  • Grade scale

    A, B, C, D, E, FX, F

Course offerings

Spring 17 prutt17 for programme students

Intended learning outcomes

The overall aim of the course is to provide an understanding of basic object oriented software development including the use of design patterns, based on the Java programming language.

After the course you should be able to:

  • Use object oriented principles and concepts including loose coupling, encapsulation, inheritance and polymorphism in your own programming.
  • Describe and apply principles for good object oriented design.
  • Describe common design patterns and choose suitable patterns for simple applications.
  • Use UML class diagrams to document your own programming work in a clear and legible way.
  • Interpret UML class diagrams, e.g. as introduction to new 
    design patterns.
  • Understand a variety of advanced Java features including Swing GUI 
    components, exceptions, network programming and concurrency and be
    able to use these in lab work.
  • Perform an object-oriented analysis of an informal text-based software requirements document and use a Noun/Verb/Relational-Phrase methodology, to construct a data dictionary.
  • Translate the information contained in a data dictionary into a UML class diagram which accurately models the same information, including aggregation, inheritance and multiplicity.

Course main content

Object oriented programming in Java. Class libraries for collections, grafical components, client-server programming and threads. UML class diagrams.

Design patterns for object oriented program development and design criteria.

XML. Common object oriented methodologies. Testing. Other UML than class diagrams.

Lab work in Java. Alls labs are documented with UML.

Eligibility

Single course students: 90 university credits including 45 university credits in Mathematics or Information Technology. English B, or equivalent and Swedish B, or equivalent.

Recommended prerequisites

Knowledge in programming and computer science corresponding to the courses DD1320, DD1321, DD1343 + DN1243 or DD1344.
Skills in the Java language corresponding to DD1342 or DD2310.

Literature

Course literature will be announced at least 4 weeks before course start at course web page. The year before this Brande, Software design, was used.

Examination

  • LABA - Laboratory Work, 3.0, grade scale: A, B, C, D, E, FX, F
  • TEN1 - Examination, 3.0, grade scale: A, B, C, D, E, FX, F

In this course all the regulations of the code of honor at the School of Computer science and Communication apply, see: http://www.kth.se/csc/student/hederskodex/1.17237?l=en_UK.

Offered by

CSC/Theoretical Computer Science

Contact

Vahid Mosavat (vahid@kth.se)

Examiner

Ann Bengtsson <ann@kth.se>

Vahid Mosavat <vahid@kth.se>

Supplementary information

The course will from 2017/2018 have the new course code DD1385.

Add-on studies

DD1388 Program System Construction Using C++

Version

Course syllabus valid from: Spring 2013.
Examination information valid from: Spring 2009.