In this MOOC, we explore how the effectiveness of software development projects can be pro-actively improved by applying concepts, techniques, and tools from software diagnosis. The term "software diagnosis" refers to recently innovated techniques from automated software analysis and software visual analytics that aim at giving insights into information about complex software system implementations, the correlated software development processes, and the system evolution. As precondition, our interested learners for this course shall have general knowledge about software development processes and procedures and have experience in IT-systems development or software maintenance.
Tuesday, March 10, 2015 08:00 (UTC) to Monday, May 04, 2015 22:00 (UTC)
Language: English
IT Technical Principles

Course information


In this MOOC, we explore how the effectiveness of software development projects can be pro-actively improved by applying concepts, techniques, and tools from software diagnosis. The term "software diagnosis" refers to recently innovated techniques from automated software analysis and software visual analytics that aim at giving insights into information about complex software system implementations, the correlated software development processes, and the system evolution. To this end, all common, traditionally separated infomation sources of software development get automatically extracted, related, and combined. The ultimate goals of these techniques are to provide not only software engineers but also all other stakeholders better instruments to monitor, to comprehend, to discuss, and to steer software development activities. In particular we will investigate how "software maps" as cartography-oriented, general-purpose, powerful visual analytics instruments can be used to improve software development effectiveness and transparency.

As precondition, our interested learners for this course shall have general knowledge about software development processes and procedures and have experience in IT-systems development or software maintenance. This course is especially interesting for

  • IT-project managers
  • Software developers, software testers and software engineers
  • Software architects and modelers
  • Parties responsible for financing the IT-development in a company

Course Contents

Introduction to Software Engineering (week 1)

  • Software Dependency
  • Software Development
  • Software Complexity
  • Software Maintenance
  • Static Source Code Analysis

Software Metrics (week 2)

  • Software Metrics
  • Lines-of-Code (LoC)
  • Code Duplicates
  • Nesting Level (NL)
  • Cyclomatic Complexity (McCabe)
  • Halstead Complexity
  • Module Dependencies
  • OO Metrics

Analytics (week 3)

  • Analytics
  • Visual Analytics
  • Visualization Pipeline
  • Predictive Analytics
  • Software Analytics

Automated Data Mining and Visualization Techniques (week 4)

  • Version Control Systems
  • Mining SW Repositories
  • Treemaps
  • 2.5D Treemaps
  • Hierarchical Circular Bundle Views

Applying Visual Software Analytics (week 5)

  • Software Maps
  • Exploring System Implementations
  • Discovering Error-Prone Code
  • Monitoring Technical Debts
  • Involvement and Knowledge Distribution
  • Refactoring Planning
  • Monitoring Redesign Processes

Related Techniques and Outlook (week 6)

  • Tracing
  • TraceViews
  • Code Usage & Test Coverage
  • Software Effectiveness
  • Prescriptive Software Analytics

Learning Objectives

At the conclusion of this course, participants should be able to

  • outline concepts and methods from scientific fields that contribute to software analytics;
  • describe objectives underlying “data-driven” software engineering approaches;
  • discuss challenges for software maintenance due to software complexity and dependency;
  • list, describe, and compare software metrics as quality measures used in software analytics;
  • outline and contrast different visualization techniques used by software analytics;
  • obtain first experience in using automated visual software analytics tools;
  • reflect on using elements of automated visual software analytics in own projects as means to improve effectiveness of software development processes.

You'll find additional video lecturing material on www.tele-task.de.

Course contents


  • Welcome

  • Week 1

  • Week 2

  • Week 3

  • Week 4

  • Week 5

  • Week 6

  • Final Exam:

    The final exam for the course. It is split into a theoretical part and a practical part, both of which can be started and solved independently.
  • Course End Survey

How to enroll


If you would like to enroll for this course, there are no formal prerequisites or limitations. The course is free and open for everyone. Just register for an account on openHPI and go for the course!

Enroll me for this course

Dates and Statistics


This course was held from Mar 10, 2015 through May 04, 2015.

4980 learners enrolled.

Certificate Requirements


A record of achievement is issued to those who have earned more than 50% of the maximum number of points for the sum of all graded assignments. A confirmation of participation is issued to those who have completed at least 50% of the course material. Find out more in the certificate guidelines.

This course is offered by


Jürgen Döllner studied mathematics and computer science at the University of Siegen, Germany (1987-1992). He got his Ph.D. in computer science from the University of Münster, Germany, in 1996; he also received here his habilitation degree in 2001. In 2001 he became full professor for computer science at the Hasso-Plattner-Institute at the University of Potsdam, where he is leading the computer graphics and visualization department.

His major research areas are in computer graphics, geoinformatics, software engineering. In particular, the reserach is focused on concepts, tools, and techniques for complex software systems and graphics-based systems. His research topics include geovisualization (3D real-time rendering, 3D non-photorealistic rendering, web mapping, 3D spatial analysis, virtual 3D city models, and 3D virtual environments) as well as software visualization and visual analytics for software engineering (e.g., visualization of complex hierarchies, activities and dynamics, system evolution, software maps, and system metrics).

He is author of more than 200 papers in computer graphics and visualization (for an overview of publications see www.hpi3d.de). He serves as reviewer to a number of international and national journals, conferences, and workshops.

Helpdesk

Your request has been sent to our support team, and will be answered as soon as possible.

Thank You!

Oops something went wrong.

Back