Cleanroom Software Development Using Aspect - Oriented Programming
Total Page:16
File Type:pdf, Size:1020Kb
Cleanroom Software Development using Aspect - Oriented Programming Natacha Govan Universidade Nova de Lisboa – Faculdade de Ciências e Tecnologia [email protected] Abstract CSD software engineering is clamed to yield software The issue of this article is pertaining with, Cleanroom that is correct by mathematically sound design, and Software Development using Aspect–Oriented software that is certified by statistically-valid testing. Programming. Reduced cycle time results from an incremental Cleanroom Software Development (CSD) is an development strategy and the avoidance of rework engineering process to develop software that is high in [Foreman 05]. quality and with a certified level of reliability. It is well-documented that significant differences in cost Aspect-Oriented Programming (AOP), also known as are associated with errors found at different stages of the Aspect-Oriented Software Development (AOSD), is an software life cycle. By detecting errors as early as approach to software development, which tends to possible, CSD reduces the cost of errors during separate concerns, or breaking a program into distinct development and the incidence of failures during features. operation; thus the overall life cycle cost of software The understanding of the meaning and the usage as well developed under CSD can be expected to be far lower as the functionality of the CSD can be very helpful, as it than industry average [Foreman 05]. can enable one to produce a software and in a developing process. Typical characteristics of CSD include: The present paper analyses the relationship that may • Software development based on formal methods exist between the Cleanroom Software Development and • Incremental implementation under statistical the Aspect - Oriented Programming. quality control • Statistically sound testing. Key Words: Cleanroom Software Development, Aspect-Oriented Programming, Aspect-Oriented Software Aspect Oriented Software Development (AOSD) is a Development, Formal Methods, Statistical Quality set of emerging technologies that seeks new Control, Testing, cross-cutting, AspectJ. modularizations of software systems. AOSD allows multiple concerns to be separately expressed but nevertheless be automatically unified into working 1. Introduction systems [RETECM]. Separation of concerns is the process of breaking a program into distinct features that The name Cleanroom Software Development (CSD) overlap in functionality as little as possible. Specifically came about from the electronics industry, where a cross-cutting concerns are aspects of a program which physical cleanroom existed in order to prevent the affect other concerns. As an advance in modularization, introduction of defects during hardware fabrication. that measures the extent to which computer programs Harlan Mills was the proponent of CSD concept have been composed out of separate parts called modules. [Mills 87], and thereafter several authors (such as) have reported its use. The use of CSD was reported in early nineties in the military projects [Foreman 05]. 1.1. Motivation CSD process have been moving away from the traditional, craft-based software developing practices to a The current paper, aims at identifying the possible more rigorous and engineered based practices, and intersections between CSD and AOSD. In addition, these focusing on the prevention of the imperfections rather both software aspire to produce higher quality software than removing them. In addition, one can find that CSD with less error. process is in concordance with the capabilities The main concern is to analyze, understand and specifications that are expressed in the Communicating conclude whether the techniques with regards to CSD that Sequential Processes (CSP), [BH 05]. were mentioned above are applicable in AOSD or not. 1.2. Survey Methodology used to confirm that the design is a correct implementation of the specification. Therefore, the The present section explains the method used in order specification must define that function before design and to achieve the objective mentioned in the above section, functional verification can begin. Verification of program which is to identify the intersection between the CSD and correctness is performed through team review based on AOSD worlds. correctness questions. There is no execution of code prior to its submission for independent testing [Foreman 05]. Since it has been experienced a certain difficulty in getting a direct outcome from CSD by using AOSD, the This method can effectively detect changes in the aim is to associate and combine AOSD with CSD process that may affect its quality. characteristics, that were mentioned in the section 1, As described by [Hausler 94], the Cleanroom namely formal methods, statistical quality control and methodology provides a complete discipline within which statistically testing. Therefore, the current paper will software personnel can plan, specify, design, verify code, assist one in finding out whether there is a significant test and certify software. In a Cleanroom development, relationship between these two software development correctness verification replaces unit testing and processes, and consequently, the key common, or not, so debugging. After coding is complete, the software common points that may be of significant relevance in the immediately enters system test with no debugging. All test errors are accounted for from the first execution of the software development. However, it is important to bear in 1 mind that these software are designed to deliver a higher program with no private testing allowed. and a better software quality. 2.1. CSD development based on formal In addition, it is also known that by using CSD with methods another development processes can deliver a significant and quite accurate result, since every step of the process Formal methods use mathematical and logical is tested in order to solve the errors that may come about formalizations to find defects early in the software during the software development. At the same time, it is development lifecycle [Langari 05]. These two methods easier to correct the errors as they arrive in the beginning have been used separately to improve software quality of the program life cycle rather than at the end. since the 1980's. The combination of the two methods may provide further quality improvements through 1.3. Organization reduced software defects. This result, in turn, may reduce development costs, improve time to market, and increase This paper is organized as follows: overall product excellence. Defects in computer software Section 2 highlights the objectives, the formal are costly. Their detection is usually postponed to the test methods, the statistical quality control and the statistically phase, and their removal is also a very time consuming testing of the Cleanroom Software Development. and expensive task. The objective of this study is to Section 3 describes and clarifies Aspect-Oriented investigate the economic impact of an inadequate Programming with regards to its functionalities, infrastructure for software testing in the U.S - National objectives and the language that is used in this software. Institute of Standards and Technology (NIST). Finally, Section 4 states the findings concerning the The advantages of finding defects in the early stages are interrelationship between CSD and AOSD along with the decreased cost and increased quality. Results show that, related works. by using formal methods, a higher quality will be achieved and the software project can also benefit from 2. Cleanroom Software Development tools that usually support those methods [Langari 05]. Formal technical reviews or inspections find problems As it has been mentioned on the above sections CSD before they become part of design that will be used for is a process that aspires to create software without errors coding. This leads to higher quality products and saves and thus a high quality characteristic is attached to this time because errors are found early during the software. development process [Becker et all 01]. In CSD development, a key principle is that a computer program is an expression of a mathematical function. The Box Structure Method [Mills 98] is used for specification and design, and functional verification is 1 Testing performed by the own developers 2.2. Statistical quality control software in terms of reliability and confidence [Foreman 05]. Incremental development as practiced in CSD provides a basis for statistical quality control of the Cleanroom certification can reduce time to market development process. Each increment is a complete because you are not spending time testing and fixing iteration of the process, and measures of performance in when you need not be. When you reach the quality level each increment (feedback) are compared with desired, you can ship, even if complete path coverage is preestablished standards to determine whether or not the not achieved. Keep in mind that this is totally dependent process is "in control." If quality standards are not met, on the usage model. An inaccurate usage model and testing of the increment ceases and developers returns to probabilities result in inaccurate statistics. Statistical the design stage [Foreman 05]. usage testing is also more efficient than coverage testing. Re-work also tends to be reduced. More importantly, Cleanroom engineering achieves intellectual control maintenance teams are not held hostage supporting post by applying rigorous, mathematics-based