Yi Liu

faculty

Yi Liu, PhD

Associate Professor

Computer & Information Science

Contact

508-910-6692

508-999-9144

{nkw33Bwocuuf0gfw

Dion 302E

Education

2005University of MississippiPhD
1998Nanjing University, ChinaMEng

Teaching

  • Software Engineering

Teaching

Programs

Teaching

Courses

Design and development of large distributed software systems with use of COTS (Components Off The Shelf), development of custom code, and integration with legacy systems. Course includes study of software architectures, frameworks, and types of middleware. Architectural design patterns and issues encountered in design of distributed systems are covered in depth.

Principles, methodologies, and techniques in designing software architecture. The course introduces the fundamental elements of software systems in the context of the design process. Architectural patterns, design patterns, and software frameworks are covered in depth. How to document design work to an acceptable standard is also covered.

Software development processes and the management of software projects. Software lifecycle processes and process models are studied, including universal software development models, models of software evolution, process management, and process assessment and improvement. Also studied are the management of teams and people, software size and cost estimation, project scheduling, and risk management. The use of industry standards is emphasized throughout.

A study of principles and practices for development of safe and secure software. This course focuses on the design and implementation of secure software. It uses security design patterns and secure coding practices to eliminate the accidental insertion of vulnerabilities into code and to mitigate the risk of security vulnerabilities.

Course in presentation of formal model-based methods of software development. Review of mathematical foundations for formal methods. Formal languages and techniques for specification and design, including specifying syntax using grammars, finite state machines, and Petri nets. Analysis and verification of specifications and designs. Use of assertions, invariants, and proofs. Automated program and design transformation

A study of principles and practices for development of safe and secure software. This course focuses on the design and implementation of secure software. It uses security design patterns and secure coding practices to eliminate the accidental insertion of vulnerabilities into code and to mitigate the risk of security vulnerabilities.

Prerequisites: Completion of three core courses.   Development of a detailed, significant project in computer science under the close supervision of a faculty member, perhaps as one member of a student team. This project may be a software implementation, a design effort, or a theoretical or practical written analysis. Project report with optional oral presentation must be evaluated by three faculty members including the project supervisor.  

Prerequisites: Completion of three core courses.   Development of a detailed, significant project in computer science under the close supervision of a faculty member, perhaps as one member of a student team. This project may be a software implementation, a design effort, or a theoretical or practical written analysis. Project report with optional oral presentation must be evaluated by three faculty members including the project supervisor.  

Supervised internships at suitable locations in industry and government. Internships must include training and supervision - both at the place of training and at the academic unit. This valuable form of professional training provides students with the opportunity to develop their engineering skills in an off-campus setting. Term paper required. Credit not be given retroactively. Prior arrangements necessary.

Research

Research interests

  • Software engineering with specific interests in software architecture, software frameworks, and software design patterns and secure software engineering
  • Geospatial data science