University of Minnesota
Software Engineering Center
/

You are here

Ian De Silva

Ian De Silva
Student/Research Assistant
Office Location: 
6-248 Keller Hall
Biography: 
Ian De Silva is a Ph.D. student in the Department of Computer Science at the University of Minnesota. His focus area is software engineering, specifically in using simulation to facilitate the evaluation and tailoring of software engineering processes for large enterprise organizations. Additionally, Ian holds a M.S. in Computer Science from the University of Minnesota and a B.S. in Computer Science from Michigan State University where he also pursued an additional major in Computational Mathematics. Prior to graduate school, Ian worked for IBM as a software engineer where he developed tooling to support the IBM i mid-range server platform, led several small projects, and introduced development process changes to his team. He has also held numerous intern positions working on or in support of the IBM i platform. Beyond his research in simulation, Ian's professional interests include software engineering processes, software licensing, and software engineering education. After graduation, he plans to teach software engineering while working in the industry, allowing him to leverage his work experience in the classroom to better prepare students to succeed as software engineers.

Recent Publications

Domain Modeling for Development Process Simulation

Simulating agile processes prior to adoption can reduce the risk of enacting an ill-fitting process. Agent-based simulation is well-suited to capture the individual decision-making valued in agile. Yet, agile's lightweight nature creates simulation difficulties as agents must fill-in gaps within the specified process. Deliberative agents can do this given a suitable planning domain model. However, no such model, nor guidance for creating one, currently exists.

A Reference Model for Simulating Agile Processes

Agile development processes are popular when attempting to respond to changing requirements in a controlled manner; however, selecting an ill-suited process may increase project costs and risk. Before adopting a seemingly promising agile approach, we desire to evaluate the approach's applicability in the context of the specific product, organization, and staff. Simulation provides a means to do this. However, in order to simulate agile processes we require both the ability to model individual behavior as well as the decoupling of the process and product.

Efficient Test Coverage Measurement for MC/DC

Numerous activities require low-overhead monitoring of software applications, for example, run-time verification, test coverage measurement, and data collection. To support monitoring, current approaches usually involve extensive instrumentation of the software to be monitored, causing significant performance penalties and also requiring some means to ensure that the monitoring code will not cause incorrect behavior in the monitored application. To tackle this problem, we have explored a hardware-supported framework for monitoring and observation of software-intensive systems.