Università della Svizzera italiana

When and how java developers give up static type safety

Mastrangelo, Luis ; Hauswirth, Matthias (Dir.) ; Nystrom, Nathaniel (Dir.)

Thèse de doctorat : Università della Svizzera italiana, 2019 ; 2019INFO008.

The main goal of a static type system is to prevent certain kinds of errors from happening at run time. A type system is formulated as a set of constraints that gives any expression or term in a program a well-defined type. Besides detecting these kinds of errors, a static type system can be an invaluable maintenance tool, can be useful for documentation purposes, and can aid in generating ...

Università della Svizzera italiana

Change-centric improvement of team collaboration

Hattori, Lile Palma ; Lanza, Michele (Dir.)

Thèse de doctorat : Università della Svizzera italiana, 2012 ; 2012INFO002.

In software development, teamwork is essential to the successful delivery of a final product. The software industry has historically built software utilizing development teams that share the workplace. Process models, tools, and methodologies have been enhanced to support the development of software in a collocated setting. However, since the dawn of the 21st century, this scenario has begun...

Università della Svizzera italiana

Understanding the performance of interactive applications

Jovic, Milan ; Hauswirth, Matthias (Dir.)

Thèse de doctorat : Università della Svizzera italiana, 2011 ; 2011INFO011.

Many if not most computer systems are used by human users. The performance of such interactive systems ultimately affects those users. Thus, when measuring, understanding, and improving system performance, it makes sense to consider the human user's perspective. Essentially, the performance of interactive applications is determined by the perceptible lag in handling user requests. So, when...

Università della Svizzera italiana

Of change and software

Robbes, Romain ; Lanza, Michele (Dir.)

Thèse de doctorat : Università della Svizzera italiana, 2008 ; 2008INFO004.

Software changes. Any long-lived software system has maintenance costs dominating its initial development costs as it is adapted to new or changing requirements. Systems on which such continuous changes are performed inevitably decay, making each maintenance task harder. This problem is not new: The software evolution research community has been tackling it for more than two decades. However,...