Sponsors

Programming Research Parasoft Netherlands BV Omnext Source2Value ps_testware Synergio Improve Quality Services Mithun

Additional

SolidSourceIT MagnaView

VVSS 2009 Presentations

From Analysis to Certification
The field of software development has changed over the last few years. The modern society has become more and more dependent on software and on products containing software. This means that on one hand the dependability of software has tremendously increased but on the other hand there are still quite a number of software engineering projects which overrun the budget, are late in delivery or are a total failure. A lot of effort is spent on improving the software development process and this has indeed let to an increase in the overall quality of the software and projects. However, there is still a long way to go. The next step in increasing the quality of software and projects is to focus on the software artifacts. This means a thorough analysis of the software products. For instance, the analysis of a user requirement document may reveal inconsistencies or ambiguities in the formulated requirements. The mining and analysis of source code gives insight in structure and maintainability of the code. The mining analysis of logs of a software system may reveal inconsistencies or inefficiencies with respect to the original (workflow) process description. Analysis of the underlying process models of a software system may reveal unexpected deadlocks. These mining and analysis results can be used to improve the software system and eventually to give a verdict on the quality of the software system. LaQuSo has worked over the last few years on the development of a certification methodology. This certification methodology uses the mining and analysis results when establishing the quality of a software artifact. So, strong analysis techniques are a requirement to be able to certify software products.
On the feasibility and benefits of model-based software testing
Model-based testing involves, in its most common form, testing software systems using various models of its behavior to generate test cases and verdicts (oracles). The fundamental ideas of model-based testing have been floating around for at least two decades. Several successful experiences have been reported by companies in various application domains such as Motorola, Nokia, or BMW. However, model-based testing is far to be a common practice. Evidence of its cost-effectiveness or even simple practice is still scant. And far more research is needed. This talk will introduce the basic principles of model-based testing and develop an argument demonstrating why there is no other option for effective test automation. It will also show why new modeling technologies are making it it easier to develop specifically tailored model-based testing tools within software development organizations. Actual examples, from both research and practice, will highlight the technologies involved, the challenges to be expected, and the potential benefits.
Measuring Software Quality: between hope and fears
Measuring Software Quality gains more and more interest, from a lot of different parties. However, until today little consensus seems to exist about the answers on fundamental questions such as why measuring quality, what to measure, how to measure, and how to present the results. In this presentation Jacob Brunekreef will explore the field and present some answers, focused on measuring code quality. These answers will be illustrated with the results of ongoing measurement activities at the Hogeschool van Amsterdam (where the quality of the code produced by all student projects in the first two years is measured), and some results from industrial experiences.
 
Analyzing Certification
Certification is used for various kinds of analysis in various parts of the software development process. This includes certifying people, organizations and software artifacts, such as software requirements, system designs or software source code. Staying close to its scientific research results and scientific capabilities LaQuSo focuses on the certification of software artifacts. Several certification projects have been performed. Certificates are handed out by independent experts. The certification requirements and the certification report must be publicly available. Certifying software products can be important for software risk reduction since not only in the certification process errors are found and corrected but also results of the (formal) analysis guarantee the absence of complete classes of flaws. Reduction of risks in software development is becoming more and more important with increasing societal and commercial dependency of the reliability of software components. Certification can play a central role in increasing trust in core components. Also, an upcoming demand for software liability raises more and more interest in certification. Finally, with the increasing use of outsourcing, certification of both the requirements specification and of the produced code can help in guaranteeing an effective production of reliable software upon which the society and ‘the business’ can depend.
Product Quality Analysis of OpenOffice.org with SourceInventory and Columbus
The Department of Software Engineering at the University of Szeged, MultiRacio Ltd. and FrontEndART Ltd. recently accomplished a large project called OpenOffice++ for analyzing, improving and monitoring the quality of OpenOffice.org source code by using the SourceInventory tool which is based on the Columbus framework. The project was 26 months long and had a volume of 0.5 million Euros. This project is now being continued for three years in a larger scale (2,5 million Euros) involving new partners (Sun Microsystems, Polygon - IBM, Budapest University of Technology and Economics, and Eötvös Loránd University). We develop technologies, tools and a methodology for assessing the quality of the source code. The applied methods include the automatic analysis of source code and the extraction of information from which we calculate various quality indicators with which we rank and certify the product. Our tools continuously scan the source code of OpenOffice.org releases (8 million lines of C++ code) and store the measured values in an SQL database. The results can be accessed and queried through a web-based interface. Using the extracted information our tools also audit the code to detect bugs and identify design problems. The problematic code fragments are being refactored to obtain better quality code and more than 180 resulting patches were already contributed back to the OpenOffice.org community. It is also possible to apply this quality assessment and monitoring system to software systems developed in other languages (C/C++/C#/Java/SQL).
Introducing Requirements Management for Existing Systems - Lessons Learned
When testing existing systems, we often discover that we miss some important input to base the test cases on: the specification of the system. That is when we start to reverse engineer and complete the documentation on the system. This activity yields us a big number of requirements, that need to be managed accordingly. The introduction of requirements management in a later system release has a number of specificities compared to requirements management started from the very first release of a system. This presentation highlights some of these differences and describes the difficulties encountered in a recent project that aimed to introduce requirements management for an existing system.
Evolving Critical Systems: A Research Agenda for Software Engineering
Increasingly software can be considered to be critical, due to the business or other functionality which it supports. Upgrades or changes to such software are expensive and risky, primarily because the software has not been designed and built for ease of change. Expertise, tools and methodologies which support the design and implementation of software systems that evolve without risk (of failure or loss of quality) are essential. We address a research agenda for building software that (a) is highly reliable and (b) retains this reliability as it evolves, either over time or at run-time.
Realities of API asbestos
There are different incarnations of software asbestos: spaghetti code, code cloning, code tangling, code with hidden assumptions, code with vendor-specific language extensions, code that is locked into proprietary and outdated component/SOA technology, and so on. This presentation is concerned with API asbestos: software that is locked into specific APIs up to a point that it is difficult or infeasible to replace one (say aged) API by another (say modern) API, or to replace API-based, low-level code by modules that are based on generative or model-driven techniques instead. Hence, API asbestos hampers software evolution and modernization in particular. There is no best practice yet for removal of software asbestos but the presentation discusses some first ideas and open research questions towards such a best practice. The presentation is based on research on API-usage analysis and automated API migration specifically in the context of the Java platform.
RFID protocols and privacy
Radio Frequency Identification (RFID) is a technology based on short-range wireless communication between a transponder and a reader to remotely identify an object to which the transponder is attached. This technology is replacing not only the widespread bar code, which is currently used to identify objects, but also smart cards for payment and ticketing applications such as mass transit. It is well known that the deployment of RFID tags leads to security risks such as loss of privacy (through object tracking), insecure authentication (with biometric passports), and theft of service (in public transportation). The protocols proposed for applications employing RFID technology must therefore be carefully verified to prevent such vulnerabilities. Because RFID chips have limited resources, it is in general not possible to use the standard "off-the-shelve" cryptographic protocols. New protocols are being designed every day and many of them are shown to contain weaknesses after a careful scrutiny. The lecture starts by giving an overview of the privacy issues related to RFID systems. After discussing attacks on the privacy of some existing RFID protocols, I will discuss a formal definition of privacy (or untraceability) and show its implications.
Minimum effort, Maximum results
A part the development process, from analysis to certification, is the testing process. Test-M is the answer to the ever growing costs of this expensive process. Testing has become a goal on his own, rather than being just one of the quality measures to be taken. Testing could become more efficient and cheaper without losing quality by making testing specific, taking quality measures were needed without the unnecessary generic waste: “Minimum effort, Maximum results”. In many organizations structured testing seems to be the approach to determine the quality of IT-solutions. However many of the defects found by testers are introduced earlier in the development process and you would like to prevent these defects or at least discover them earlier. With just testing, focusing on the quality of the end products, you don't get a grip on your project. To control your projects you also need to pay attention to the quality of the intermediate deliverables and the development process itself. A result-driven approach, based upon experiences in the areas of structured testing and quality assurance, will support all stakeholders of a project to control both product quality and process quality. Getting grip on these quality aspects will assure project success: on time, within budget and the expected product quality. Testing is necessary and will also be necessary in the future. Testing or Product quality will however focus more and more on preventing errors rather than only recording these errors.
 
Dn-based Architecture Assessment of Java Open Source Software Systems
Since their introduction in 1994 the Martin’s metrics became popular in assessing object-oriented software architectures. While one of the Martin metrics, normalized distance from the main sequence Dn, has been originally designed with assessing individual packages, it has also been applied to assess quality of entire software architectures. The approach itself, however, has never been studied. In this paper we take the first step to formalizing the Dn-based architecture assessment of Java Open Source software. We present two aggregate measures: average normalized distance from the main sequence Dąn, and parameter of the fitted statistical model lambda. Applying these measures to a carefully selected collection of benchmarks we obtain a set of reference values that can be used to assess quality of a system architecture. Furthermore, we show that applying the same measures to different versions of the same system provides valuable insights in system architecture evolution.
A Common Language: Creating Requirement Statement Templates
The formal documentation of natural language requirements in a requirements specification is an important piece of a software engineering project. This document lays the groundwork for the development of a software system. It represents an agreement between the customer and the development team as to what is going to be built. The requirements written in this document become the common language between all stakeholders. By creating requirement statement templates projects and companies can gain: a decrease in amount of time required to reach shared understanding with stakeholders; the ability to identify comprehension risks in requirements statements; a decrease in amount of rework needed to initial draft of requirements; an ability to add additional sentence formatting to help engineers identify high risk terms; cnsistent use of terminology throughout all requirement documents; and test cases can be systematically created based on templates The process discussed in this presentation can be used to develop natural language requirement templates so that key stakeholders understand the basic intent of each statement, regardless of the domain information contained within that statement.
Requirements Engineering and Certification
Quality makes products which do not return and customers who do. Requirements are essential for making quality. From the testing community (among others) we hear more and more complaints about the quality (and availability…) of the requirements. But what makes requirements ‘good’ requirements? The answer from the test community is often that ‘good’ requirements need to be SMART. But is this sufficient? In this presentation ‘golden’ rules for gathering and specifying ‘good’ requirements will be presented. Do we answer the question “do we know enough to start gathering requirements”? We need to have a clear picture about scope, context and all the stakeholders. How do we deal with changing scope and context, and how to deal with changing requirements? A well defined process for both requirements engineering and requirements management is essential for project success. By thoroughly defining requirements in an early stage, functional as well as non-functional requirements, a clear and distinct frame of reference will be originated. By verifying and validating the product in a later stage, we can determine whether the product will meet the requirements which can be a fundament for further product certification. Not only checking whether the product will meet the requirements can contribute to product certification but also meeting the requirements for the process and the requirements for the people involved. In the testing community this is already common practice by having recognized certification for the testers according to ISTQB or TMap. In this presentation certification for the requirement engineer will be introduced according to the Certified Professional for Requirements Engineering (CPRE) certification model originated by the International Requirements Engineering Board IREB. Learn more about requirement engineering and certification!
Measuring and Rating Technical Quality of Software: An instrument for software cost reduction
The success of many organizations depends on the ability of their software systems to evolve as fast as their business processes. A system that meets its functional requirements today may not do so tomorrow if, due to low technical quality, it can only be changed with high cost and risk. The Software Improvement Group has developed a practical model for measuring technical quality of software products. In this presentation, Joost Visser will explain how this quality model can be employed to find opportunities for cost reduction in software portfolios.