|
CS619
|
Program Comprehension MSc. in
Computer Science, 2011-12
|
Background information
The purpose of this graduate-level course is to introduce the
techniques used in the analysis of programs. These
techniques are fundamental for the implementation of modern software
engineering techniques. Understanding how they work allows us to
- Develop a fuller understanding of what exactly these techniques are
analysing, and why
- Understand the limitations of program analysis: what can and
can't be determined by looking at programs
- Deepen our understanding of how programs actually work - what
happens ``under the hood''
Such techniques
provide the foundation for a wide range of tools used in software
engineering; examples include tools that:
- refactor, re-engineer or reclaim existing software
- reverse-engineer a class diagram from some source code
- examine source code to see if it adheres to particular coding
guidelines
- apply software metrics to code, to measure its design quality
- instrument the code, for example, to measure statement or branch
coverage during testing
- transform the code into a different format (e.g. to another
programming language)
- ..... and many others
Timetable
This course is currently scheduled to take place in semester 2. If
you've any queries about the course in
advance of this, please don't hesitate to contact me.
Closer to the start date, more course information will available through the university's
moodle system.
The software engineering toolsmith
CS619 is designed to give you the basic skills needed to develop your
own tools that you can then use to build better software. Relatively
few craftsmen get to use their skills to build their own tools and
shape them to their own particular requirements...
|
The blacksmith's basic shop equipment, his forge and bellows, anvil
and slack tub, are practically immovable and are used only in a
stationary position. These tools, however, are of no use without
endless number of other tools, mostly hand tools, which a blacksmith
collects or makes for himself to fit a variety of needs over the
years.
|
|
- from Ch 4 of The Art Of Blacksmithing
by Alex W. Bealer, Castle Books, 1995.
|