Modeling & Analysis in
Software Engineering

 About     |     Members     |     Research     |     Publications     |     Software     |     Contact Us

 

About the Modeling & Analysis in Software Engineering Group 

The 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.


The Modeling & Analysis in Software Engineering Group (September 2010, missing on the foto is Tawhid Bin Waez)

References 

[1] Vincent Maraia. The Build Master: Microsoft's Software Configuration Management Best Practices. Addison Wesley. 2005. Also in How Many Lines of Code in Windows?. Knowing.NET. 
Link to article (last accessed October 25, 2010). 

[2] T. Kontzer. GM CTO Says Software Will Be Part Of Bumper-To-Bumper Warranties. In InformationWeek. Oct. 19, 2004. 
Link to article (last accessed October 25, 2010). 

[3] Jack Ganssle. A Million Lines of Code. EETimes. January 14, 2008. 
Link to article (last accessed October 25, 2010). 

[4] Chloe Taft. CDRH Software Forensics Lab: Applying Rocket Science To Device Analysis. The Grey Sheet. Elsevier. October 15, 2007. Available from
 Medical Devices Today (last accessed Ocober 25, 2010). 

[5] Reinhold E. Achatz. Keynote: Optimizing the Software Development in Industry (exemplified for Siemens). Peter Liggesmeyer, Klaus Pohl, Michael Goedicke (Eds.): Software Engineering 2005. March 8-11, 2005. Essen, Germany. LNI 64 GI 2005. (German) 

[6] Computing Careers: The Future Is Bright. ACM Technews. June 30, 2010.
 Link to article (last accessed October 25, 2010). 

[7] Information and Communications Technology Council. Labour Force Survey. September 2010. Link to article (last accessed November 10, 2010).

[8] Andrew Strieber. The 10 Best Jobs in 2011. Link to article (last accessed May 17, 2011).

[9] Robert E. Charette. This Car Runs on Code. IEEE Spectrum. February 2009.  
Link to article (last accessed October 25, 2010).  

[10] Peter H. Feiler. Model-Based Validation of Safety-Critical Embedded Systems. IEEE Aerospace Conference. Big Sky, MT, USA. 6-13 March 2010. Pages 1-10. Link to article (last accessed October 25, 2010). 

[11] Kevin Poulsen. Tracking the Blackout Bug. SecurityFocus. April 7, 2004.
 Link to article (last accessed October 25, 2010). 

[12] NASA will study Toyota accelerator problem. The Associated Press. March 30, 2010.
 Link to article (last accessed Ocober 25, 2010).

Software Technology Lab     |     School of Computing    |     Queen's University