Font Size: a A A

Research On Software Design And Implementation Techniques For Non-Functional Requirements

Posted on:2012-02-04Degree:DoctorType:Dissertation
Country:ChinaCandidate:Z Q CuiFull Text:PDF
GTID:1118330335463473Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
The application of computer systems becomes more popular and deeper, the scale and complexity of software systems increase continually. Efficiently control the complexity of software systems has already become a vitally important issue which needs to be addressed in both academia and industry. In addition to functional requirements, modern software systems also need to meet more and more non-functional requirements (properties). This is one of the key reasons why the complexity of software system is difficult to control. In the modular design and implementation of software, due to the coupling relation between the non-functional properties and primary functional properties are generally orthogonal, primary functional modules are cut across by non-functional requirements. As a result, it is difficult to naturally encapsulate them into individual modules. Furthermore, it causes complex dependences between multiply modules, which generate obstacles and increase the complexity of software system in multiple stages, such as:design, implementation, testing, and maintenance. To address some non-functional properties of software, this dissertation studied corresponding design and implementation techniques for them. The work of this dissertation mainly includes:1. An UML activity diagram based aspect-oriented modeling and verification techniqueAspect-oriented techniques introduce aspects to encapsulate crosscutting concerns, which have become an important way to deal with non-functional requirements. Based on UML activity diagrams, we propose an aspect-oriented modeling and verification technique to encapsulate non-functional properties as aspects. To enhance the capability of dealing with non-functional requirements by aspect-oriented modeling techniques, the aspect-oriented models are verified based on Petri-nets and CTL formulas after integrating aspects with primary models,.2. A concolic testing based buffer overflow detection techniqueBuffer overflow is a kind of common security defects of software (non-functional defects). Focused on buffer overflow, we propose a concolic testing based detection technique. This approach combines static analysis and dynamic execution techniques, which are largely complementary. At first, static analysis tools are used to report potential buffer overflow statements, then, potential faulty statements reported by static analysis are used to guide concolic testing and thus to reduce costs of detecting defects.3. An aspect-oriented programming technique for computational error handlingComputational error handling is a common non-functional requirement in scientific computing programs. We found error handling policies are typical crosscutting concerns, because error handling policies of the same type are generally similar, and could cut across multiple functional modules. As a result, we propose to encapsulate computational error handling policies as aspects, carry out a case study on a real-world Satellite Orbit Forecasting system. This work not only improves the modularity and maintainability of the program but also expands the application field of aspect-oriented programming.
Keywords/Search Tags:software non-functional requirements, aspect-oriented techniques, modeling, verification, testing, buffer overflow, computational error handling
PDF Full Text Request
Related items