Software dominates our modern civilization. However, as size, complexity, and lifetime of software in- crease, so does its cost. It is estimated that software maintenance exceeds 80% of the total development costs. Of this, nearly half is spent in program understanding. Two main classes of instruments support program understanding. First, program analysis techniques extract a wealth of information from source code, dynamic program execution, and the development pro- cess itself, such as models, metrics, and proofs of correctness. Secondly, software visualization methods present this information in interactive ways to support the comprehension process using techniques such as graph layouts, diagrams, dense pixel displays, treemaps, glyphs, and timelines. However, a fundamental gap is identifiable between the two: software analysis and visualization are not integrated in ways that effectively and efficiently support the sense-making, reasoning process, and hypothesis forming central to understanding. We argue that this gap is at the center of the limited adoption and success of software visualization methods and, arguably, of some more complex software analysis methods. For software visualization to make a true difference, it has to be centered on answering the questions of its stakeholders, rather than show the data emerging from program analyses. We cast software analysis and visualization in a new framework, inspired by the highly successful visual analytics field. Central to our approach is providing abstractions, methods and tools that enable the stakeholders to effectively and efficiently formulate their questions as directly and as easily as possible, and ways that translate these questions, abstracting away from the raw analysis data, into suitable combinations of analysis and visualization instruments.
Contact us directly for further information; see below how to apply.
Fraude and fraudulent business practices are of all times. Legislators, regulators and financial authorities try to create legal frameworks and procedures for early detection and prevention, but they have failed consistently during the last 10-15 years. This proposal will create a unique cooperation between experts in Dutch auditing theory and software engineering researchers specialized in software analysis and domain-specific languages. The grand vision of this proposal is to create auditing services that can perform real-time monitoring of companies in order to fundamentally increase the reliability and transparency of financial systems and supporting IT systems. We start with the design of a meta-model for auditing and create the concepts and techniques to describe, analyze, and maintain specific company models and to automatically generate auditing services from them. These services include intake (establishing a company model based on the mining of available data and source code) and monitoring and checking (comparing actual data with the company's model). Key elements of our approach are the use of software analysis to extract facts from financial reports and source code of IT systems, to link the software with actions in the company's model, and to address global issues on maintenance and evolution of these models. The increased trust that is created by these advanced auditing services is in itself an enabler for software services in general. The PhD will initially start with the study of full automation of questionnaires (including data dependencies between questions) and generating interactive user interfaces for them. These questionaires are applicable in many domains, including auditing.Contact us directly for further information; see below how to apply.
Software and programming have a brilliant past that has brought us the automation of many expected and unexpected human and societal activities ranging from banking and consumer electronics to mobile networking, search engines and social networks. The present of software is overwhelming: many software systems have sizes in the range of 10-100 million lines of source code and contain tens of thousands of errors that are yet to be discovered. We claim that software will only have a big future if software itself becomes smaller. Smaller software leads to higher software productivity (we have to write less) and higher software quality (quality guarantees become part of the language and not of the program). But how can we reduce the size of programs by two or three orders of magnitude? A domain-specific language (DSL) is a dedicated language to solve problems in a clearly delineated domain. By using a DSL, programs can be written in high-level domain concepts rather than in low- level implementation concepts. The execution of DSL programs (by interpretation, compilation, simulation or other means) can also use domain knowledge to perform high-level checks, to optimize, and to provide guarantees. Size reductions (and corresponding productivity gains) with a factor 10-50 have been observed on real projects using DSLs. Our hypothesis is that DSLs are a very promising solution direction for raising both software productivity and software quality and that they should become an integral part of the software creation process. However, both the design and the implementation of DSLs provide conceptual, scientific and technical challenges that have to be solved before this can become reality. We will address DSL design by performing software analysis and fact extraction on software in the same domain that predates the DSL. Automatically extracted feature and concept diagrams will enable the human designer to quickstart his design activity. We will explore which concepts and tools are needed to provide the designer with a knowledge-intensive, interactive, design environment. The implementation of DSLs will be based on meta-programming, an approach where programs use other programs as data and may read, manipulate or write other programs. Known shortcomings of meta-programming will be addressed such as syntactic expressivity, compositionality and scaleability. Case studies in forensics, accountancy and meta-programming will be used for inspiration and validation of the project. We pose the challenge to create a completely self-hosting DSL development environment in less than 25.000 lines of code. Like the mythical Phoenix, such an environment can reproduce itself.Contact us directly for further information; see below how to apply.
CWI is an internationally renowned research institute in mathematics and computer science, located in Amsterdam, The Netherlands. The focus is on fundamental research problems, derived from societal needs. Research is carried out in 18 research themes. More information about these themes can be found on the website www.cwi.nl where you can also find the Annual Reports of the institute. A substantial part of this research is carried out in the framework of national or international programs.
CWI maintains excellent relations with industry and the academic world, both in the Netherlands as well as abroad. After their research careers at CWI, an increasing number of young staff members find employment in these sectors, for example in spin-off companies that are based on research results from CWI. Of course, library and computing facilities are first-rate. CWI's non-scientific services to its personnel include career planning, training and courses, assistance in finding housing, and tailor-made solutions to problems that may occasionally arise.
CWI has vacancies for talented PhD candidate for research in the above mentioned areas.
Requirements: The PhD candidates are required to have at least a master degree in computer science. Preferable qualifications for candidates include proven research talent, system programming skills, practical experience with systems and software development in a team. It is essential that you have good academic writing and presentation skills. Candidates are expected to have an excellent command of English.
Terms and conditions: The terms of employment are in accordance with the Dutch Collective Labour Agreement for Research Institues ("CAO-onderzoeksinstellingen"). Moreover CWI offers attractive working conditions, including flexible scheduling and help with housing for expat employees. The gross monthly salary, for an employee on a full time basis, is €2,037 during the first year and increases to €2,610 over a four year period. CWI also offers excellent and flexible terms of employment, including an employee pension fund.
More Information: Additional information can be obtained from prof.dr. Paul Klint and from our website.
Application: Please send your application before January 15, 2012 to: pd@cwi.nl. Applications should include a detailed CV, a motivation letter, a list of university grades, a copy of your master thesis, and preferably a list of publications.
Back to Paul Klint's Home page.