Skip to content. Skip to main navigation.

avatar

Yu Lei

Name

[Lei, Yu]
  • Professor, Department of Computer Science & Engineering

Professional Preparation

    • 1993 Bachelor of Science in Computer ScienceWuhan University
    • 1996 Master of Science in Software EngineeringChinese Academy of Sciences
    • 2002 Ph.D. in Computer ScienceNorth Carolina State University

Appointments

    • Sept 2014 to Present Professor
      University of Texas Arlington
    • Sept 2008 to Aug 2014 Assoc Prof
      University of Texas at Arlington
    • Sept 2002 to Aug 2008 Assist Professor
      University of Texas at Arlington
    • Jan 1997 to Jan 2002 Resarch Assistant
      North Carolina State University
    • Jan 1998 to Jan 2001 Member of Technical Staff
      Fujitsu Network Communications, Inc.
    • Aug 1996 to Dec 1996 Teaching Assistant
      North Carolina State University

Research and Expertise

  • Research Interests

    My research interests are in the area of automated software analysis, testing, and verification.My current focus includes software security, concurrency testing, combinatorial testing, and high performance computing.

Publications

      Conference Proceeding 2016
      • M. Nguyen, Z. Li, F. Duan, H. Che, Y. Lei, H. Jiang, The Tail at Scale: How to Predict It? Proceedings of 8th USENIX Workshop on Hot Topics in Cloud Computing (HotCloud), June 2016.

        {Conference Proceeding }
      2016
      • D. Kung, Y. Lei, An Object-Oriented Analysis and Design Environment, Proceedings of 29th IEEE Conference on Software Engineering Education and Training, pp. 91-100, April 2016.

        {Conference Proceeding }
      2016
      • D. E. Simos, K. Kleine, L. Ghandehari, B. Garn, Y. Lei, 
A Combinatorial Approach to Analyzing Cross-Site Scripting (XSS) Vulnerabilities in Web Application Security Testing. Proceedings of 28th International Conference on Testing Software and Systems, pp. 70 – 85, October 2016.

        {Conference Proceeding }
      2016
      • N. Li, Y. Lei, H. R. Khan, J. Liu, Y. Guo, 
Applying combinatorial test data generation to big data applications. Proceedings of 31st IEEE/ACM International Conference on Automated Software Engineering (ASE), pp. 637 – 647, September 2016.

        {Conference Proceeding }

      Conference Proceeding 2015
      • F. Duan, L. Yu, Y. Lei, R. Kacker, R. Kuhn, “Improving IPOG’s Vertical Growth Based on a Graph Coloring Scheme,” Proceedings of 4th International Workshop on Combinatorial Testing (in junction with 8th IEEE International Conference on Software Testing, Verification and Validation), April 2015.

        {Conference Proceeding }
      2015
      • L. Yu, F. Duan, Y. Lei, R. Kacker, D. Kuhn, “Constraint Handling In Combinatorial Test Generation Using Forbidden Tuples,” Proceedings of 4th International Workshop on Combinatorial Testing (in junction with 8th IEEE International Conference on Software Testing, Verification and Validation), April 2015. 

        {Conference Proceeding }
      2015
      • J. Xu, Y. Lei, R. Carver, D. Kung, “A static, lightweight approach to detecting unbounded thread­instantiation loops”, Proceedings of IEEE International Conference on Software Testing, Verification and Validation, pp. 1 – 10, 2015.

        {Conference Proceeding }

      Conference Proceeding 2014
      • Z. Lei, Z. Li, Y. Lei, Y. Bi, L. Hu, W. Shen, “An Improved Image File Storage Method Using Data Deduplication,” Proceedings of IEEE 13th International Conference on Trust, Security, and Privacy in Computing and Communications (TrustCom), pp.638 -643, September 2014.

        {Conference Proceeding }
      2014
      • L. Yu, F. Duan, Y. Lei, R. N. Kacker, D. R. Kuhn, “Combinatorial Test Generation For Software Product Lines Using Minimum Invalid Tuples,” Proceedings of 15th IEEE International Symposium on High Assurance System Engineering (HASE), pp.65-72, January 2014. 

        {Conference Proceeding }

      Conference Proceeding 2013
      • J. Xu, Y. Lei, R. Carver, D. Kung, “A Dynamic Approach to Isolating Erroneous Event Patterns in Concurrent Program Executions,” Proceedings of International Conference on Multicore Software Engineering, Performance, and Tools (MUSEPAT), pp. 97-109, 2013. 

        {Conference Proceeding }
      2013
      • L. Ghandehari, Y. Lei, D. Kung, R. N. Kacker, D. R. Kuhn, “Fault Localization Based on Failure-Inducing Combinations,” Proceedings of 24th IEEE International Symposium on Software Reliability Engineering (ISSRE), pp. 168-177, 2013

        {Conference Proceeding }

      Conference Paper 2012
      • D. R. Kuhn, J. M. Higon, J. F. Lawrence, R. N. Kacker, Y. Lei, “Combinatorial methods for event-sequence testing”, Proceedings of 1st International Workshop on Combinatorial Testing (in conjunction with with 5thIEEE International Conference on Software Testing, Verification and Validation), April 2012. 
        {Conference Paper }
      2012
      • K. Shakya, T. Xie, N. Li, Y. Lei, R. Kacker, R. Kunh, “Isolating Failure-Inducing Combinations in Combinatorial Testing using Test Augmentation and Classification,” Proceedings of 1st International Workshop on Combinatorial Testing (in junction with 5thIEEE International Conference on Software Testing, Verification and Validation), April 2012. 
        {Conference Paper }
      2012
      • M. Borazjany, L. Yu, Y. Lei, R. Kacker, R. Kuhn, “Combinatorial Testing of ACTS: A Case Study,” Proceedings of 1st International Workshop on Combinatorial Testing (in junction with 5thIEEE International Conference on Software Testing, Verification and Validation), pp. 591 – 600, April 2012.
        {Conference Paper }
      2012
      • L. Ghandehari, Y. Lei, T. Xie, R. Kuhn, R. Kacker, “Identifying failure-inducing combinations in a combinatorial test set”, Proceedings of 5th IEEE International Conference on Software Testing, Verification and Validation (ICST), pp. 370-379, April 2012. 
        {Conference Paper }
      2012
      • W. Wilson, Y. Lei, Short Paper: “A Tiny Specification Meta Language,” 24th International Conference on Software Engineering and Knowledge Engineering, 2012. 
        {Conference Paper }
      2012
      • L. Yu, Y. Lei, R. Kacker, R. Kuhn, J. Lawrence, “Efficient Algorithms for T-Way Test Sequence Generation”, 17th IEEE International Conference on Engineering of Complex Computer Systems, pp. 220 – 229, 2012. 
        {Conference Paper }
      2012
      • J. Li, C. Nie, Y. Lei, Short Paper: “An Improved Delta Debugging for Combinatorial Testing”, Proceedings of 12th International Conference on Quality Software, August 2012.
        {Conference Paper }

      Journal Article 2012
      • D. Zhang, D. Liu, Y. Lei, D. Kung, C. Csallner, N. Nystrom, W. Wang, “SimFuzz: Test case similarity directed deep fuzzing”, Journal of Systems and Software, 85(1):102-111, 2012.
        {Journal Article }
      2012
      • D. R. Kuhn, J. M. Higdon, J. F. Lawrence, R. N. Kacker, Y. Lei, "Combinatorial Methods for Event Sequence Testing", CrossTalk: The Journal of Defense Software Engineering, 25(4):15-18, July/August, 2012.
        {Journal Article }

      Conference Paper 2011
      • W. Wang, Y. Lei, D. Liu, D. Kung, C. Csallner, D. Zhang, R. Kacker and R. Kuhn, "A combinatorial approach to detecting buffer overflow vulnerabilities", to appear in Proceedings of 41st Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN), June 2011.
        {Conference Paper }

      Journal Article 2011
      • J. Lawrence, R. N. Kacker, Y. Lei, D. R. Kuhn, and M. Forbes, “A Survey of Binary Covering Arrays,” The Electronic Journal of Combinatorics, vol. 18, P84 (30 pages), 2011.
        {Journal Article }

      Conference Paper 2010
      • Y. Zhu, W. Zhang, H. Jiang, Y. Lei, and J. Peng, "DCMTs: Supporting Dynamically Created Miratory Threads", Proceedings of the 13th IEEE International Conference on Computational Science and Engineering (CSE-2010), Hong Kong, China, December 11-13, 2010.
        {Conference Paper }
      2010
      • R. Carver and Y. Lei. "A Stateful Approach to Testing Monitors in Multithreaded Programs," presented at Proceedings of IEEE 12th High Assurance Systems Engineering, 2010.
        {Conference Paper }
      2010
      • D. L. Zhang, D. K. Lei, C. Csallner, and W. Wang. "Testing C programs for Vulnerability Using Trace-Based Symbolic Execution and Satisfiability Analysis," presented at Proceedings of Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN), 2010.
        {Conference Paper }

      Journal Article 2010
      • Y. L. Carver. "Distributed Reachability Testing," Concurrency and Computation: Practice and Experience, vol. 22, no. 18, pp. 2445-2466, 2010.
        {Journal Article }
      2010
      • Y. L. Carver. "A Class Library for Implementing, Testing, and Debugging Concurrent Programs," International Journal of Software Tools for Technology Transfer, vol. 12, no. 1, pp. 69-88, 2010.
        {Journal Article }

      Conference Paper 2009
      • Y. L. Wang. "A Navigation Graph Builder for Dynamic Web Applications," presented at Proceedings of International Conference on Computational Intelligence and Software Engineering, 2009.
        {Conference Paper }
      2009
      • Y. L. Wang, R. K. Sampath, and J. L. Kuhn. "A Combinatorial Approach to Building Navigation Graphs for Dynamic Web Applications," presented at Proceedings of 25th IEEE International Conference on Software Maintenance, September 2009.
        {Conference Paper }
      2009
      • R. K. Kuhn and Y. Lei. "Random vs. Combinatorial Methods for Discrete Event Simulation of a Grid Computer Network," presented at Proceedings of ModSim World, Virginia Beach, Virginia, October 2009.
        {Conference Paper }

      Journal Article 2009
      • R. K. Kuhn and J. H. Lei. "Combinatorial Software Testing," IEEE Computer, vol. 42, no. 8, pp. 94-96, August 2009.
        {Journal Article }
      2009
      • Y. L. Wong. "Reachability Graph-Based Test Sequence Generation for Concurrent Programs," International Journal on Software Engineering and Knowledge Engineering, vol. 18, no. 6, pp. 803-822, 2009.
        {Journal Article }

      Book Chapter 2009
      • Y. L. Bryce and R. K. Kuhn. "Combinatorial Testing," Handbook of Research on Software Engineering and Productivity Technologies: Implications of Globalization, Ramachandran, Eds. IGI Global, 2009.
        {Book Chapter }

      Conference Paper 2008
      • W. W. Zhang, Y. L. Liu, and D. Kung. "Reusing Exisiting Test Cases for Security Testing," presented at Proceedings of International Symposium on Software Reliability Engineering (ISSRE), 2008.
        {Conference Paper }
      2008
      • S. S. Wang and R. K. Lei. "An Interaction-Based Test Sequence Generation Approach for Testing Web Applications," presented at Proceedings of IEEE International Conference on High Assurance Systems Engineerng, 2008.
        {Conference Paper }
      2008
      • Z. L. Metsis and F. M. Lei. "Towards An Evaluation Framework for Assistive Environments," presented at Proceedings of 1st International Conference on Pervasive Technologies Related to Assistive Environments, 2008.
        {Conference Paper }
      2008
      • W. W. Zhang, Y. L. Liu, and D. Kung. "Reusing Exisiting Test Cases for Security Testing," presented at Proceedings of International Symposium on Software Reliability Engineering (ISSRE), 2008.
        {Conference Paper }

      Journal Article 2008
      • J. L. Forbes, R. K. Lei, and D. R. Kuhn. "Refining the in-parameter-order strategy for construction covering arrays," Journal of Research of NIST, vol. 113, pp. 287-297, 2008.
        {Journal Article }
      2008
      • R. K. Lei, V. O. Kuhn, and J. Lawrence. "Two Deterministic Strategies for Multi-Way Software Testing," Journal of Software Testing, Verification, and Reliability, vol. 18, no. 3, pp. 125-148, 2008.
        {Journal Article }
      2008
      • R. K. Kuhn and Y. Lei. "Automated Combinatorial Test Methods - Beyond Pairwise Testing," CrossTalk: The Journal of Defense Software Engineering, vol. 21, no. 6, 2008.
        {Journal Article }
      2008
      • Y. L. Kuhn and R. Kacker. "Practical Combinatorial Testing - Beyond Pairwise Testing," IEEE IT Professional, vol. 10, no. 3, pp. 19-23, 2008.
        {Journal Article }

      Conference Paper 2007
      • R. K. Lei, V. O. Kuhn, and J. Lawrence. "IPOG: A General Strategy for T-Way Software Testing," presented at 14th IEEE Annual International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS), Tucson, Arizona, March 2007.
        {Conference Paper }

      Journal Article 2007
      • R. C. Lei and D. K. Kacker. "A Combinatorial Strategy for Testing Concurrent Programs," Journal of Software Testing, Verification, and Reliability, vol. 17, no. 4, pp. 207-225, 2007.
        {Journal Article }

      Conference Paper 2006
      • R. C. Lei, V. G. Kung, and M. Hernandez. "A State Exploration-Based Approach to Testing Java Monitors," presented at 17th IEEE International Symposium on Software Reliability Engineering (ISSRE), Raleigh, North Carolina, November 2006.
        {Conference Paper }

      Journal Article 2006
      • R. C. Lei. "Reachability Testing of Concurrent Programs," IEEE Transactions on Software Engineering, vol. 32, no. 6, pp. 382-403, 2006.
        {Journal Article }
      2006
      • Y. L. Ye and D. Kung. "A Blocking-Based Approach to Protocol Validation," The Computer Journal, vol. 49, pp. 541-553, 2006.
        {Journal Article }

      Conference Paper 2005
      • Y. L. Wong and X. Ma. "Efficient Test Generation for Structural Testing of Concurrent Programs," presented at 10th IEEE International Conference on Engineering of Complex Computer Systems (ICECSS), Shanghai, China, June 2005.
        {Conference Paper }
      2005
      • M. P. S. Lei. "An Evaluation of E-Business Metamodels," presented at 17th International Conference on Software Engineering and Knowledge Engineering (SEKE), Taipei, July 2005.
        {Conference Paper }
      2005
      • R. C. Lei. "A New Algorithm for Reachability Testing of Concurrent Programs," presented at 18th IEEE International Symposium on Software Reliability Engineering (ISSRE), Chicago, Illinois, November 2005.
        {Conference Paper }
      2005
      • P. I. Lei. "An Approach to Unfolding Asynchronous Communication Protocols," presented at 13th International Symposium on Formal Methods (FM), New Castle, UK, July 2005.
        {Conference Paper }
      2005
      • D. K. Lei and Q. Ye. "A Blocking-Based Approach to Protocol Validation," presented at 29th IEEE International Computer and Software Applications Conference, Edinburgh, Scotland, July 2005.
        {Conference Paper }
      2005
      • E. W. Lei. "A Novel Framework for Non-Deterministic Testing of Message-Passing Programs," presented at 10th IEEE International Symposium on High Assurance Systems Engineering (HASE), Heidelberg, Germany, October 2005.
        {Conference Paper }

      Conference Paper 2004
      • Y. L. Carver. "A General Model for Reachability Testing of Concurrent Programs," presented at 6th International Conference on Formal Engineering Methods (ICFEM), Seattle, Washington, November 2004.
        {Conference Paper }
      2004
      • R. C. Lei. "Reachability Testing of Semaphore-Based Programs," presented at 28th International Conference on Computer Software and Applications (COMPSAC), Hong Kong, September 2004.
        {Conference Paper }
      2004
      • R. C. Lei. "Reachability Testing of Monitor-Based Programs," presented at IASTED International Conference on Software Engineering and Applications (SEA), MIT, November 2004.
        {Conference Paper }

      Conference Paper 2003
      • Y. Lei. "Non-deterministic Testing of Concurrent Programs," presented at 14th IEEE International Symposium on Software Reliability Engineering (ISSRE, Fast Abstract), Denver, Colorado, November 2003.
        {Conference Paper }

      Conference Paper 2002
      • K. C. T. Lei. "Efficient Reachability Testing of Asynchronous Message-Passing Programs," presented at 8th IEEE International Conference on Engineering for Complex Computer Systems (ICECCS), Greenbelt, Maryland, December 2002.
        {Conference Paper }
      2002
      • K. C. T. Lei. "Blocking-Based Simultaneous Reachability Analysis of Asynchronous Message-Passing Programs," presented at 13th IEEE International Symposium on Software Reliability Engineering (ISSRE), Annapolis, Maryland, November 2002.
        {Conference Paper }

      Conference Paper 1998
      • K. C. T. Lei. "In-Parameter-Order: A Test Generation Strategy for Pairwise Testing," presented at 3rd IEEE High-Assurance Systems Engineering Symposium (HASE), Washington DC, November 1998.
        {Conference Paper }

      Conference Paper 1997
      • M. P. S. Lei. "A Comparison of Workflow Metamodels," presented at ER-97 Workshop on Behavioral Modeling and Design Transformations: Issues and Opportunities in Conceptual Modeling, Los Angeles, California, November 1997.
        {Conference Paper }

Courses

      • CSE 4321-001 SOFTWARE TESTING & MAINTENANCE

        Software testing and maintenance play a critical role in ensuring the quality, and thus success, of a software product. Software testing is one of the most widely used approaches to ensuring software quality, and often consumes more than 50% of the total cost of a software project. Software maintenance is key to provide continuity of service, and is mainly concerned with how to control and manage software changes and evolution after the major features are released.

        This course is designed to cover the fundamental concepts, principles, methods, and techniques for performing effective software testing and maintenance. Examples of the topics to be covered include the notion of test adequacy, combinatorial testing, control flow testing, data flow testing, securityl testing, regression testing, code review, configuration management and software refactoring.

        Spring - Regular Academic Session - 2019 Download Syllabus Contact info & Office Hours
      • CSE 4321-001 SOFTWARE TESTING & MAINTENANCE

        Software testing and maintenance play a critical role in ensuring the quality, and thus success, of a software product. Software testing is one of the most widely used approaches to ensuring software quality, and often consumes more than 50% of the total cost of a software project. Software maintenance is key to provide continuity of service, and is mainly concerned with how to control and manage software changes and evolution after the major features are released.

        This course is designed to cover the fundamental concepts, principles, methods, and techniques for performing effective software testing and maintenance. Examples of the topics to be covered include the notion of test adequacy, combinatorial testing, control flow testing, data flow testing, securityl testing, regression testing, code review, configuration management and software refactoring.

      • CSE 4321-001 SOFTWARE TESTING & MAINTENANCE

        Software testing and maintenance play a critical role in ensuring the quality, and thus success, of a software product. Software testing is one of the most widely used approaches to ensuring software quality, and often consumes more than 50% of the total cost of a software project. Software maintenance is key to provide continuity of service, and is mainly concerned with how to control and manage software changes and evolution after the major features are released.

        This course is designed to cover the fundamental concepts, principles, methods, and techniques for performing effective software testing and maintenance. Examples of the topics to be covered include the notion of test adequacy, combinatorial testing, control flow testing, data flow testing, securityl testing, regression testing, code review, configuration management and software refactoring.

        Spring - Regular Academic Session - 2018 Download Syllabus Contact info & Office Hours
      • CSE 4321-001 SOFTWARE TESTING & MAINTENANCE

        Software testing and maintenance play a critical role in ensuring the quality, and thus success, of a software product. Software testing is one of the most widely used approaches to ensuring software quality, and often consumes more than 50% of the total cost of a software project. Software maintenance is key to provide continuity of service, and is mainly concerned with how to control and manage software changes and evolution after the major features are released.

        This course is designed to cover the fundamental concepts, principles, methods, and techniques for performing effective software testing and maintenance. Examples of the topics to be covered include the notion of test adequacy, control flow testing, data flow testing, combinatorial testing, regression testing, code review, configuration management and software refactoring.

        Spring - Regular Academic Session - 2017 Download Syllabus Contact info & Office Hours
      • CSE 5324-001 SOFTWARE ENGINEERING: ANALYSIS, DESIGN, AND TESTING

        Motivations, principles, and goals of software engineering; technical aspects of software projects, including: emphasis on object-oriented methods of requirements analysis and specification, design, and implementation; software testing concepts; team project.

        Fall - Regular Academic Session - 2016 Download Syllabus Contact info & Office Hours
      • CSE 6324-001 ADVANCED TOPICS IN SOFTWARE ENGINEERING

        Recent years have seen a proliferation of concurrent software systems. Allowing multiple threads/processes to execute simultaneously increases resource utilization and leads to improved computing efficiency. However, concurrent software systems are inherently nondeterministic. As a result, it is notoriously difficult to build these systems and ensure their correctness.

        The focus of this course is on the construction of concurrent software systems with high assurance. The topics covered by this course can be divided into two parts. The first part highlights basic concepts, principles, and techniques that are underlying the design, development, debugging, and testing of concurrent software systems. The second part provides an introduction to formal methods in modeling, specification and verification of concurrent software systems.

        Fall - Regular Academic Session - 2016 Download Syllabus Contact info & Office Hours
      • CSE 4321-001 SOFTWARE TESTING & MAINTENANCE

        Software testing and maintenance play a critical role in ensuring the quality, and thus success, of a software product. Software testing is one of the most widely used approaches to detecting software bugs, and often consumes more than 50% of the cost of software development. Software maintenance is key to provide continuity of service, and is mainly concerned with how to control and manage software changes and evolution after the major features are released.

        This course is designed to cover the fundamental concepts, principles, methods, and techniques for performing effective software testing and maintenance. Examples of the topics to be covered include the notion of test adequacy, control flow testing, data flow testing, combinatorial testing, regression testing, code review, configuration management and software refactoring.

        Spring - Regular Academic Session - 2016 Download Syllabus Contact info & Office Hours
      • CSE 5321-033 Software Testing

        Software testing is one of the most widely used approaches to detecting software bugs, and often consumes more than 50% of the total cost of a software project. Furthermore, software testing is a mental discipline that helps developers to write quality code in the first place. Software testing is at the core of the knowledge and skills a software engineer must possess.

        This course is designed to cover the fundamental concepts, principles, methods, and techniques for effective software testing. Examples of the topics to be covered include the notion of test adequacy, graph-based coverage criteria, control flow-based testing, data flow-based testing, combinatorial testing, regression testing, concurrency testing, and others.

        Fall - Regular Academic Session - 2015 Download Syllabus Contact info & Office Hours
      • CSE 5324-001 SOFTWARE ENGINEERING: ANALYSIS, DESIGN, AND TESTING

        Motivations, principles, and goals of software engineering; technical aspects of software projects, including: review of structured analysis and structured design, emphasis on object-oriented methods of requirements analysis and specification, design, and implementation; software testing concepts; team project.

        Fall - Regular Academic Session - 2015 Download Syllabus Contact info & Office Hours
      • CSE 6324-001 ADVANCED TOPICS IN SOFTWARE ENGINEERING

        Recent years have seen a proliferation of concurrent software systems. Allowing multiple threads/processes to execute simultaneously increases resource utilization and leads to improved computing efficiency. However, concurrent software systems are inherently nondeterministic. As a result, it is notoriously difficult to build these systems and ensure their correctness.

        The focus of this course is on the construction of concurrent software systems with high assurance. The topics covered by this course can be divided into two parts. The first part highlights basic concepts, principles, and techniques that are underlying the design, development, debugging, and testing of concurrent software systems. The second part provides an introduction to formal methods in modeling, specification and verification of concurrent software systems.

        Fall - Regular Academic Session - 2015 Download Syllabus Contact info & Office Hours
      • CSE 4321-001 SOFTWARE TESTING & MAINTENANCE

        Software testing and maintenance play a critical role in ensuring the quality, and thus the success, of a software product. Software testing is the single most widely used approach to detecting software bugs, and often consumes more than 50% of the cost of software development. Software maintenance is key to provide continuity of service, and is mainly concerned with how to control and manage software changes and evolution after the major features are released.


        This course is designed to cover the fundamental concepts, principles, methods, and techniques for performing effective software testing and maintenance. Examples of the topics to be covered include the notion of test adequacy, graph-based coverage criteria, control flow-based testing, data flow-based testing, combinatorial testing, regression testing, configuration management and software refactoring.

        Spring - Regular Academic Session - 2015 Download Syllabus Contact info & Office Hours
      • CSE 4321-001 Cse 4321-001

        Software testing and maintenance play a critical role in ensuring the quality, and thus the success, of a software product. Software testing is one of the most widely used approaches to detecting software bugs, and often consumes more than 50% of the cost of software development. Software maintenance is key to provide continuity of service, and is mainly concerned with how to control and manage software changes and evolution after the major features are released.

        This course is designed to cover the fundamental concepts, principles, methods, and techniques for performing effective software testing and maintenance. Examples of the topics to be covered include the notion of test adequacy, graph-based coverage criteria, control flow-based testing, data flow-based testing, combinatorial testing, regression testing, configuration management, and others.

        Spring - Regular Academic Session - 2014 Download Syllabus Contact info & Office Hours
      • CSE 5321-001 Cse 5321-001

        Software testing is one of the most widely used approaches to detecting software bugs, and often consumes more than 50% of the cost of software development. Furthermore, software testing is a mental discipline that helps developers to write quality code in the first place. Software testing knowledge and skills are at the core of the foundational knowledge and skills a software developer must master.

        This course is designed to cover the fundamental concepts, principles, methods, and techniques for performing effective software testing. Examples of the topics to be covered include the notion of test adequacy, graph-based coverage criteria, control flow-based testing, data flow-based testing, combinatorial testing, regression testing, object-oriented testing, concurrency testing, and others.

        Spring - Regular Academic Session - 2014 Download Syllabus Contact info & Office Hours
      • CSE 5324-001 Cse 5324-001

        Motivations, principles, and goals of software engineering; technical aspects of software projects, including: review of structured analysis and structured design, emphasis on object-oriented methods of requirements analysis and specification, design, and implementation; software testing concepts; team project.

        Fall - Regular Academic Session - 2013 Download Syllabus Contact info & Office Hours
      • CSE 6324-001 Cse 6324-001

        Recent years have seen a proliferation of concurrent software systems. Allowing multiple threads/processes to execute simultaneously increases resource utilization and leads to improved computing efficiency. However, concurrent software systems are inherently nondeterministic. As a result, it is notoriously difficult to build these systems and ensure their correctness.

        The focus of this course is on the construction of concurrent software systems with high assurance. The topics covered by this course can be divided into two parts. The first part highlights basic concepts, principles, and techniques that are underlying the design, development, debugging, and testing of concurrent software systems. The second part provides an introduction to formal methods in modeling, specification and verification of concurrent software systems.

        Fall - Regular Academic Session - 2013 Download Syllabus Contact info & Office Hours
      • CSE 5321-001 SOFTWARE TESTING
        Software testing is one of the most widely used approaches to detecting software bugs, and often consumes more than 50% of the cost of software development. Furthermore, software testing is a mental discipline that helps developers to write quality code in the first place. Software testing knowledge and skills are at the core of the foundational knowledge and skills a software developer must master. This course is designed to cover the fundamental concepts, principles, methods, and techniques for performing effective software testing. Examples of the topics to be covered include the notion of test adequacy, graph-based coverage criteria, control flow-based testing, data flow-based testing, combinatorial testing, regression testing, object-oriented testing, concurrency testing, and others.
        Spring - Regular Academic Session - 2013 Download Syllabus
      • CSE 4321-001 SOFTWARE TESTING & MAINTENANCE
        Software testing and maintenance play a critical role in ensuring the quality, and thus the success, of a software product. Software testing is one of the most widely used approaches to detecting software bugs, and often consumes more than 50% of the cost of software development. Software maintenance is key to provide continuity of service, and is mainly concerned with how to control and manage software changes and evolution after the major features are released. This course is designed to cover the fundamental concepts, principles, methods, and techniques for performing effective software testing and maintenance. Examples of the topics to be covered include the notion of test adequacy, graph-based coverage criteria, control flow-based testing, data flow-based testing, combinatorial testing, regression testing, configuration management, and others.
        Spring - Regular Academic Session - 2013 Download Syllabus
      • CSE 6324-001 ADVANCED TOPICS IN SOFTWARE ENGINEERING
        The focus of this course is on the construction of concurrent software systems with high assurance. The topics covered by this course can be divided into two parts. The first part highlights basic concepts, principles, and techniques that are underlying the design, development, debugging, and testing of concurrent software systems. The second part provides an introduction to formal methods in modeling, specification and verification of concurrent software systems.
        Fall - Regular Academic Session - 2012 Download Syllabus 1 Link
      • CSE 5324-001 SOFTWARE ENGINEERING: ANALYSIS, DESIGN, AND TESTING
        Motivations, principles, and goals of software engineering; technical aspects of software projects, including: review of structured analysis and structured design, emphasis on object-oriented methods of requirements analysis and specification, design, and implementation; software testing concepts; team project.
        Fall - Regular Academic Session - 2012 Download Syllabus
      • CSE 1325-001 OBJECT-ORIENTED PROGRAMMING
        Object-oriented programming is one of the most important programming paradigms in modern software development. Java is one of the most widely used object-oriented programming languages. The objective of this course is to introduce the fundamental concepts, principles, methods, and techniques of object-oriented programming using Java.
        Spring - Regular Academic Session - 2012 Download Syllabus
      • CSE 4321-001 SOFTWARE TESTING & MAINTENANCE
        Software testing and maintenance play a critical role in ensuring the quality, and thus the success, of a software product. Software testing is the single most widely used approach to detecting software bugs, and often consumes more than 50% of the cost of software development. Software maintenance is key to provide continuity of service, and is mainly concerned with how to control and manage software changes and evolution after the major features are released. This course is designed to cover the fundamental concepts, principles, methods, and techniques for performing effective software testing and maintenance. Examples of the topics to be covered include the notion of test adequacy, graph-based coverage criteria, control flow-based testing, data flow-based testing, combinatorial testing, regression testing, configuration management and software refactoring.
        Fall - Regular Academic Session - 2011 Download Syllabus 1 Link
      • CSE 1325-001 OBJECT-ORIENTED PROGRAMMING
        Object-oriented programming is one of the most important programming paradigms in modern software development. Java is one of the most widely used object-oriented programming languages. The objective of this course is to introduce the fundamental concepts, principles, methods, and techniques of object-oriented programming using Java. The topics covered in this course can be largely divided into two parts. The first part is focused on the foundation of object orientation. It covers the basic OO concepts, including objects, classes, object interaction, collections of objects, encapsulation, cohesion and others. The second part covers the more advanced topics, including inheritance, abstract classes, interface, exception handling, OO design and analysis, and others. This course will also cover several topics related to ensuring the quality of object-oriented programs such as testing, debugging, refactoring, and design patterns.
        Spring - Regular Academic Session - 2011 Download Syllabus
      • CSE 6323-001 Formal Methods in Software Engineering
        Software quality is a priority concern of any responsible software development process. One approach to increasing software quality is to apply formal methods, i.e. rigorous techniques that have a solid mathematical and logical foundation. In this course, we will study formal methods that can be used to support major software development stages, including requirement specification, software design, and software verification and validation. Examples of the topics covered in this course are Model Driven Architecture (MDA), Design by Contract, Java Modeling Language (JML), Temporal logic, Buchi automata, and Model checking.
        Spring - Regular Academic Session - 20091 Link