Representative MS Projects and Publications in Research Areas of Software Architecture, Secure Software Engineering, Secure Coding, Formal Methods in Secure Software Engineering, Computer-Aided Software Engineering (CASE), and Programming Language Paradigms A. Software Architecture and Computer Aided Software Engineering (CASE) Project 1: Enhancing ACME to Support Aspect Oriented Software Architecture (Tuong Le, Project 2: Automated Tool Support for the Architecture Tradeoff Analysis Method (Brad Liouberger, Publication: Brad Lionberger and Cui Zhang, ATAM Assistant: A Semi-Automated Tool For The Architecture Tradeoff Analysis Method, Proceedings of the International Conference on Software Engineering and Applications, Cambridge, Massachusetts, November 2007. Project 3: A Tool to Connect Quality Attribute Requirements and Software Architecture Design Tactics (Ihsan Abdulsamed, Project 4: A Framework for Adding Design by ContractTM to the.net Object-Oriented Programming Languages (Jennifer Pandolfo, Publication: Jennifer Pandolfo and Cui Zhang, A Framework for Adding Design by Contract to the.net Object-Oriented Programming Languages, Journal of Object Technology, Vol. 9, No. 1, January-February 2010, pp. 81-115. Project 5: A Framework for Converting Formal Specifications in Object-Z to Dynamically Checkable Design Contracts in the.net Programming Languages (Nixon George, Publication: Nixon Sunny George, Cui Zhang and Anne-Louise Radimsky, FOZCIL: A Framework for Converting Formal Specifications in Object-Z to Design Contracts in OO Programming Languages, Proceedings of the IEEE International Conference on Information Reuse and Integration, pp. 218-221, Las Vegas, August 3-5, 2011 Project 6: A Tool Support for the Cost Benefit Analysis Method (Lisa Darville, Publication: Lisa Darville and Cui Zhang, A Semi-Automation of a Cost Benefit Analysis Method, Journal of Software Engineering and Applications, Vol. 5, No. 6, 2012, pp. 385-394
B. Secure Software Engineering, Secure Coding, Formal Methods in Secure Software Engineering, and CASE Project 1: An Enhancement to Java for Programming with Assertions Design and Implementation (Lucy Yuhong Zheng, Publication: Cui Zhang and Lucy Y. Zheng, An Enhancement to Java for Programming with Assertions, Proceedings of the International Conference on Parallel and Distribute Processing Techniques and Applications, pp.42-49, Las Vegas, July 1998. Publication: Cui Zhang and Lucy Y. Zheng, Object-Oriented Programming with Assertions, International Journal of Computer Science and Information Management, Vol.3, No.1, pp. 59-- 71, 2000. Project 2: Computer Aided Development of Reliable C++ Programs -- An Improvement to C++ (Satish, Project 3: Making Design by Contract Available on Internet (Ching Yen Ho, Project 4: Support for Design by Contract in the C# Programming Language (Rachel Henne- Wu, Publication: Rachel Henne-Wu, William Mitchell, and Cui Zhang, "Support for Design by Contract in the C# Programming Language," Proceedings of the International Conference on Software Engineering Research, Management, and Applications (SERA'04), pp. 102-109, LA, CA, May 2004. Publication: Rachel Henne-Wu, William Mitchell, and Cui Zhang, "Support for Design by Contract in the C# Programming Language", Journal of Object Technology, September- October Issue, 2005. Project 5: Support for Design by Signed Contract in.net Framework (Meenakshi Pannala, Project 6: Formal Specification of a Communication Protocol (Vincent Botz, Publication: Vincent Botz, Cui Zhang, and Chung-E Wang, Experiment in Formal Specification and Verification of a Distributed System, Proceedings of the International Conference on Computer Science, Software Engineering, Information Technology, E-Business, and Applications, Cairo, Egypt, December 27-29, 2004. Project 7: Generating Java Skeletal code with Design Contracts from Specifications in a Subset of Object Z (Sowmiya Ramkarthik, 2
Publication: Sowmiya Ramkarthik and Cui Zhang, Generating Java Skeletal Code with Design Contracts from Specifications in a Subset of Object Z, Proceedings of the IEEE/ACIS International Conference on Computer and Information Science, pp. 405-411, Honolulu, Hawaii, July 2006. Project 8: Enhancement to the Automated Conversion from Object-Z to Java Skeletal Code with Dynamical Checkable Design Contracts (Sherri Sanders, Publication: Sherri Sanders and Cui Zhang, Object-Z to Java/Perl : A Conversion from Object-Z to Executable Skeletal Code with Dynamically Checkable Design Contracts, Proceedings of the 2008 International Conference on Software Engineering and Knowledge Engineering, pp. 824-829, San Francisco, July 2008. Project 9: Generating Skeletal Spec# Code from Specifications in a Subset of Object-Z for Both Dynamic and Static Verification (Xiufeng Ni, Publication: Xiufeng Ni and Cui Zhang, Converting Specifications in a Subset of Object-Z to Skeletal Spec# Code for both Static and Dynamic Analysis, Journal of Object Technology, Vol. 7, No. 8, Nov-Dec 2008, pp. 165-185. Project 10: Automating the SEI SQUARE Process for Eliciting, Categorizing, and Prioritizing Security Requirements for Software Systems and Applications (Gordon Yip, Publication: Yip Gordon and Cui Zhang, mysquare: A Semi-Automated SQUARE Tool for Security Requirements, Proceedings of the International Conference on Software Engineering and Application, pp.218-225, Cambridge, Massachusetts, November 2009. Project 11: Formal Specification of Software Architecture Design Tactics for Quality Attribute Security using the Z Notation (Andrew Wyeth, Publication: Andrew and Cui Zhang, Formal Specification of Software Architecture Security Tactics, accepted by the International Conference on Software Engineering and Knowledge Engineering, to be held in San Francisco, July 2010. Project 12: Formal Specification in the Z Notation for Secure Query Processing in Deductive Database Systems (Ketul Rajanikant Patel, Project 13: Automating the SEI SQUARE Process with the Extensions of Formal Methods Support and Web Availability (Hadil Abukwaik, Publication: Hadil Abukwaik and Cui Zhang, esquare: A Formal Methods Enhanced SQUARE Tool, Proceedings of the 2012 International Conference on Software Engineering Research and Practice, pp. 131-137, Las Vegas, July 16-19, 2012 Project 14: Inferring Likely Design Contracts in Existing Code (Brian Bell, 3
Project 15: Automating the SEI SQUARE Process for Privacy and Security (Alan Lai, Publication: Alan Lai, Cui Zhang, and Senad Busovaca, 2-SQUARE: A Web-Based Enhancement of SQUARE Privacy and Security Requirements Engineering, International Journal of Software Innovation, 1(1), 41-35, January-March 2013 Project 16: Secure Coding Assistant: Enforcing Secure Coding Practices using the ECLIPS Development Environment (Ben White, in progress) C. Aspect Oriented Programming Project 1: Adding Aspect Oriented Programming Features to Microsoft C# (Wirote Channiti, Project 2: Adding Aspect Oriented Programming Features to Microsoft Visual Basic.NET by using the Multidimensional Separation of Concerns (MDSOC) Approach (Haryono, Publication: Haryono and Cui Zhang, "Adding Aspect-Oriented Programming Features to Visual Basic.NET by Using Multidimensional Separation of Concerns (MDSOC) Approach," Proceedings of the International Conference on Software Engineering Research and Practice (SERP'04), pp.441-447, Las Vegas, June 2004. Project 3: Extending Visual Basic.NET Environment for Aspect Oriented Programming Using AspectJ Approach (Santhosh Balraj, Project 4: Adding Aspect Oriented Programming Features to C# using Hyper/J Approach (Angela Hantelmann, Publication: Angela Hantelmann and Cui Zhang, Adding Aspect-Oriented Programming Features to C#.Net by Using Multidimensional Separation of Concerns (MDSOC) Approach, Journal of Object Technology, Vol. 5, No.4., May-June 2006, pp. 59-83. D. Functional Programming Languages, Data-Flow languages, and Concurrent Programming Languages Project 1: A Graphical and Syntax-Directed Programming Environment for SML (Bin He, Project 2: A Visual Programming Environment for a Subset of Functional Programming Language ML (Brian Jesse, Project 3: A Dataflow Computer and Language (Malone Wong, 4
Publication: Malone Wong, Cui Zhang, and Don Warner, The Design of a Dataflow Computer, its Programming Language, and its Implementation, International Conference on Parallel and Distributed Processing Techniques and Applications, pp.564-570, Las Vegas, June 2002. Project 4: Extending C# in.net with High Level Features for Concurrent Processing (Shimol Shah, Project 5: A Graphical Environment for both SML/NJ and MLj (Shivakumar Pillai, Project 6: A Debugging Tool for SML (Emilie Sholomytska, E. Programming Languages, XML, and Databases Project 1: Implementing an Abstract and Hierarchical Data Structure in Java (Holly Jajlil, Publication: Holly Tajlil and Cui Zhang, Adding a Hierarchical Data Structure to Java, Proceedings of International Conference on Computer Science and Informatics, pp.417-420, Research Triangle Park, NC, October 1998. Project 2: Extending Java with an Abstract and Persistent Data Structure for Facilitating Database Processing in a Client/Server Environment (Brietta O'Leary, Publication: Brietta O'Leary and Cui Zhang, Concurrent Programming for Database Processing Using Java Threads in a Client/Server Environment, Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications, pp.453 459, Las Vegas, June 28 -- July 1, 1999. Publication: Brietta O Leary and Cui Zhang, An Abstract and Persistent Data Structure in Java, International Journal of Computer Science and Information Management, Vol.4, No.1, pp.1-8, 2001. Project 3: An Extension and Experimental Implementation of An Abstract and Persistent Data Structure in an Multiple Client/Server Environment (Li Shao, Publication: Li Shao, Cui Zhang, and Richard Smith, An Abstract and Persistent Data Structure in a Multiple Client/Server Environment, Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications, pp.932-938, Las Vegas, June 24 -- 28, 2001. Project 4: RDBMS Based XML Database Management System (Hongling Sun, 5
Project 5: Generic XML Structure for Database Applications in any Type of Programming Language (Mahima Mallikarjuna, F. Other areas of Computer Science and/or Software Engineering Project 1 (collaboration with faculty member at UC Davis): Embedding Ch into Apache Web Server for Dynamic Web Pages (Chia-Hsin Huang, Project 2 (collaboration with faculty member at UC Davis): Design and Implementation of Ch/Tk for Interpretive Portable GUI in C/C++ (Wei Sun, Project 3 (collaboration with faculty member at UC Davis): Integration of Mathematical Notation in OpenRCT (Christy Bouma, Project 4: A Computer Assisted Instruction Tool (Suzanne Minton, Project 5: An Improvement to an Open Source Tool for UML (David Lin, Project 6: A Tool Support for the Metrics of Agile Software Projects (James Gennoy, Project 7: A Demonstration System for the Generation of Web Site Accessibility Compliance Metrics Using Disparate Testing Tools (Dale Fletter, 6