An error occurred while loading the video player, or it takes a long time to initialize. You can try clearing your browser cache. Please try again later and contact the helpdesk if the problem persists.

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.

Self-paced since May 4, 2015
Language: English
Programming

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

Enroll me for this course

The course is free. Just register for an account on openHPI and take the course!
Enroll me now

Learners

Current
Today
6,111
Course End
May 04, 2015
3,694
Course Start
Mar 10, 2015
2,268

Rating

This course was rated with 5.0 stars in average from 1 votes.

Certificate Requirements

  • Gain a Record of Achievement by earning at least 50% of the maximum number of points from all graded assignments.
  • Gain a Confirmation of Participation by completing at least 50% of the course material.

Find out more in the certificate guidelines.

This course is offered by

Prof. Dr. Jürgen Döllner

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.