Automated Assessment Systems (AAS) are increasingly used in large computer science lectures to evaluate student solutions to programming assignments. The AAS normally carries out static and dynamic analysis of the pro...
详细信息
ISBN:
(纸本)9781665444347
Automated Assessment Systems (AAS) are increasingly used in large computer science lectures to evaluate student solutions to programming assignments. The AAS normally carries out static and dynamic analysis of the program code. In addition, simple forms of learning analytics can often be generated quite easily. However, structural analyses and comparison of solutions for larger sets of student programs are, in many cases, complicated and time-consuming. In this article, we introduce a methodology with which thousands of programs can be analyzed in less than a second, for example, to search for the use of certain control structures or the application of recursion. For this purpose, we have developed a software that creates a structural representation for each programming solution in the form of a TGraph, which is inserted into a graph database using Neo4j. On this database, we can search for structural features by queries in the language Cypher. We have tested this methodology extensively for Java programs, measured its performance, and validated the results. Our software can also be applied to programs in other programming languages, such as Scratch. Additionally, we plan to make our software available to the community.
Proponents of open source style software development claim that better software is produced using this model compared with the traditional closed model. However, there is little empirical evidence. in support of these...
详细信息
Proponents of open source style software development claim that better software is produced using this model compared with the traditional closed model. However, there is little empirical evidence. in support of these claims. In this paper, we present the results of a pilot case study aiming: (a) to understand the implications of structural quality;and (b) to figure out the benefits of structural quality analysis of the code delivered by open source style development. To this end, we have measured quality characteristics of 100 applications written for Linux, using a software measurement tool, and compared the results with the industrial standard that is proposed by the tool. Another target of this case study was to investigate the issue of modularity in open source as this characteristic is being considered crucial by the proponents of open source for this type of software development. We have empirically assessed the relationship between the size of the application components and the delivered quality measured through user satisfaction. We have determined that, up to a certain extent, the average component size of an application is negatively related to the user satisfaction for this application.
In so % ware analysis most research has traditionally been focused on the development of tools and techniques that can be used to formally prove key correctness properties of a so % ware design. Design errors can be h...
详细信息
ISBN:
(纸本)9781450350778
In so % ware analysis most research has traditionally been focused on the development of tools and techniques that can be used to formally prove key correctness properties of a so % ware design. Design errors can be hard to catch without the right tools, and even a % er decades of development, the right tools can still be frustratingly hard to use. Most so % ware developers know, though, that the number of coding errors is usually much larger than the number of design errors. If something is wrong, the problem can usually be traced back to a coding mistake, and less frequently to an algorithmic error. Tools for chasing down those types of errors are indeed widely used. They are simple to use, and considered effective, although they do not offer much more than sophisticated types of trial and error. The first commercial static source code analyzers hit the market a little over a decade ago, aiming to fill the gap between ease of use and more meaningful types of codeanalysis. Today these tools are mature, and their use is widespread in commercial so % ware development, but they tend to be big and slow. There does not seem to be any tool of this type yet that can be used for interactive codeanalysis. We'll describe the design and use of a different type of static analysis tool, that is designed to be simple, small, and fast enough that it can effectively be used for interactive codeanalysis even for large code bases.
暂无评论