|
|
Modeling & Analysis in |
|
About | Members | Research | Publications | Software | Contact Us | |
|
About the Modeling & Analysis in Software Engineering GroupThe size and complexity of many pieces of modern software is astounding: For instance, the Microsoft XP operating system contains about 40 million lines of code, which, if printed, would occupy about 720,000 pages forming a stack 240 feet high [1]. In fact, it seems fair to say software ranks among the most complex human-made artifacts. But rather than being a curious exception, highly complex software appears to becoming the norm. Often, in parts of our daily lives where many people would not expect it or where failure would have severe consequences. For instance, new cars may contain about 100 million lines of code [2,7], new cell-phones more than 5 million [3], and even pace makers have 80,000 lines of code [4]. This trend has several consequences. First, many companies employ a surprisingly large number of software developers (e.g., Siemens employs more software developers than Microsoft [5]) and the the job prospects of software developers continue to be excellent (e.g., the US Bureau of Labor Statistics predicts that Computing will be one of the fastest growing professions for the forseeable future [6], a recent survey by the Canada's Information and Communications Technology Council is equally positive [7], and CareerCast even ranked Software Engineer as the best job in 2011 [8]). Second, the costs of development for many products are often heavily influenced by the cost of software development. For instance, in the early 1990ties, software accounted for just about 2% of the overall cost of developing a car; now, it is already about 13-15% [9]. Third, ensuring that the developed software is of appropriate quality is becoming more and more difficult. In fact, some experts believe that traditional development processes for, e.g., aircraft software are reaching the limit of affordability [10] and there already have been many cases where development practise appears to have been overwhelmed by system complexity (e.g., [11,12]). To conclude, there is evidence that we increasingly lack the means to develop software that meets modern demands in an efficient, cost-effective way. As part of the Software Technology Lab, the MASE group conducts research to address this problem. More concretely, we develop techniques and tools that, in some form, simplify the construction of modern software. Most of our work based on the observation that all other engineering disciplines use modeling (i.e., abstraction) very effectively to build complex artifacts reliably. We also use modeling of (aspects of) software to deal with complexity and aim at increasing the utility of these models by showing how they can be used for different tasks including design (e.g., via trade-off analyses), verification (e.g., via analyses that establish desirable properties), testing (e.g., via test case generation), and implementation (e.g., via automatic code generation). A description of research projects can be found here.
References | |
|
Software Technology Lab | School of Computing | Queen's University | |