COV 882 Special Module in Software Systems -- Software Abstractions

General Information


Class Timings: Mo/Wed from 11:00 hrs to 12:00 hrs Venue: Online (MS Teams) Instructor: Subodh Sharma (svs at cse.iitd.ac.in)


Course Description

Course Description:We often find that our programs don’t run according to their specifications and even when they do the programs are large and clunky to extend or modify. This is a direct result of programmers running away from designing abstractions and not sufficiently focussing on simplicity and clarity. Could we instead work with a simple language that captures the essential aspects of program design before we decide to develop such programs? Would it not be great to not only state the software abstractions of systems succinctly, but also analyse them fully automatically akin to the continuous integration model of software development? In this course, we shall study one such specification language called Alloy and learn to model system abstractions succinctly and incrementally. We shall also learn to apply Alloy analysis tool to models which will facilitate in finding deeps flaws early in the design process without having to explicitly write a ton of unit tests.

Reference Book

Software Abstractions by Daniel Jackson

Guest Talks