[PAST EVENT] Bringing Design Thinking into Developers' Coding Activities

February 22, 2016
8am - 9am
McGlothlin-Street Hall, Room 020
251 Jamestown Rd
Williamsburg, VA 23185Map this location
Bringing Design Thinking into Developers' Coding Activities


The success of any complex software-intensive system depends heavily on the extent to which it addresses stakeholders' quality concerns such as reliability, availability, security and performance. Software architects utilize a rich set of proven and reusable architectural solutions such as tactics and patterns to satisfy each specific quality attribute. Current literature on architectural design advocates a requirements-driven approach for deciding when and where tactics/patterns/ styles should be used in order to address specific quality concerns. Unfortunately in practice, there is a knowledge gap between the high-level architecture design and the low-level implementation of that design. In a detailed investigation we observed that even when the architectural tactics are chosen upfront, developers--especially less experienced ones--often face difficulties implementing these design choices. We found several evidence of what we refer to as rudimentary implementations, where architectural tactics/patterns are implemented incompletely or incorrectly. Rudimentary implementation of architectural choices can result in enormous failures in a software system.

In this talk, I present a paradigm shift in utilizing automated source code analysis techniques to bring architecture and design thinking into developers' daily coding activities. I will present a novel Tactic Recommender System funded by National Science Foundation (NSF). This recommender system is trained through learning from the source code of thousands of open source software. It proactively helps developers make better design decisions during their daily programming activities, recommends them not only tactics but also the best matching source code from open source projects and increases the developers' architecture awareness. Furthermore, I will present another project funded by US Department of Homeland Security (DHS) which introduces the new concept of Common Architecture Weakness Enumeration (CAWE) and build a SmartIDE to prevent such weaknesses by stimulating security-architecture thinking into developers' programming environments.


Dr. Mehdi Mirakhorli is an Assistant Professor at Rochester Institute of Technology with a research background in software architecture design, requirements engineering, and application of data mining in software engineering. Previously, he worked as a software architect on large data-intensive software systems in the banking, meteorological and health care domains. He has served on the Program Committees for several conferences and as Guest Editor for a special edition of IEEE Software on the Twin Peaks of Requirements and Architecture. Dr. Mirakhorli has received two ACM SIGSOFT Distinguished Paper Awards at the International Conference on Software Engineering and has engaged in research projects with the US Department of Homeland Security (DHS). Furthermore Dr. Mirakhorli has been speaker in several technical venues such as ALTA Distinguished Speaker at Alcatel-Lucent and a technical briefing hold by the Department of Homeland Security on issues related to Security Architecture.