Date of Award
8-2015
Degree Type
Thesis
Degree Name
Master of Science in Software Engineering (MSSE)
First Advisor
Dr. Sheryl Duggins
Second Advisor
Dr. Frank Tsui
Third Advisor
Dr. Hassan Pournaghshband
Abstract
This paper researches a quantitative metric of investigating Formal Specification-Driven Development (FSDD). Formal specification is needed at the beginning of the development process to prevent ambiguity and to improve the quality through corrections of errors found in the late phases of a traditional design process, Software Development Life Cycle (SDLC). The research is conducted with capstone students using both the FSDD and the SDLC (traditional) models and a quantitative analysis is presented to evaluate the internal quality of the software. The tool used to measure the internal quality is the .NET 2013 analysis tool. Formal Specification-Driven Development (FSDD) is a new approach in which formal specification is used and functional units of code are incrementally written and tested prior to the code implementation. In the research, there is a comparative study of Formal Specification-Driven Development with the traditional model. This research realized the promising attributes of Formal Specification Driven Development. It promotes the incorporation of FSDD in the software development process. FSDD is radically different from the traditional ways of developing software. In the traditional software development model (SDLC), the tests are written after code implementation. In FSDD the test occurs during development. This model is more of a programmer’s process.
This study is the first complete evaluation of how FSDD affects software development and internal design quality. The study was carried out with students in a Software Engineering Capstone class. The research included a semester-long project to develop a ticketing system.
This research demonstrated that software developers applying Formal Specification-Driven Development (FSDD) approach are likely to improve some software quality aspects compared to Software Development Life Cycle (FSDD) approach. In particular this research has shown significant differences in the areas of code complexity and size statistically. The differences in internal quality can considerably improve the external software quality, software maintainability, software understandability, and software re-usability. The research establishes a standard for future studies. It focused mainly on the software process. This research is going to raise awareness of FSDD as a new software development approach to explore further.