@

@

||Top page | Profile | Research| Teaching| Laboratory information ||

@

Graduate classes
( 1 ) Advanced Software Engineering
Producing reliable and efficient software systems requires effective development methods and software tools support. This class introduces the latest theory, methods, and techniques in software engineering, including formal specification techniques, refinement calculus, and various verification and validation techniques.
( 2)@Open Seminar
This seminar introduces the lastest development in our research projects on formal engineering methods and techniques. The goal of the seminar is to let graduate students learn various problems in software engineering, ways of addressing those problems, and the latest research results in the field.
Undergraduate classes
( 1 ) Formal Engineering Methods for Software Development
Formal engineering methods offer more practical techniques than conventional formal methods for large-scale software development. They emphasize the integration of mathematically-based notation and intuitive graphical notation for constructing comprehensible specifications. After a brief introduction to the fundamental principles of formal engineering methods by comparing them to conventional formal methods, this class focuses on the issue of how to write quality specifications using SOFL (Structured Object-oriented Formal Language). In addition to modules and condition data flow diagrams used in specifications, various kinds of data types, such as set types, sequence types, map types, composite types, and their application techniques are introduced. Many small examples are used to help students understand effective ways to write and to organize formal specifications, and a small project may also be used to improve students' skills and experience of using formal engineering methods in practice.
( 2 ) Software Design and Practice
Software design is one of the key activities in software development. A good design usually leads to good structure and performance of programs. In this course we teach various design principles, methods, and representations. The principles include abstract and decomposition, modularity, encapsulation, and information hiding, while the methods include top-down methods, bottom-up methods, structured methods, and object-oriented methods. The design representations include Data Flow Diagrams, Data Dictionary, Structured English, Structure Chart, Jackson Structure Chart, Flowchart, N-S Diagrams, Production Rule Notation (PRN), Pseudecode, and UML.. Furthermore, the techniques for transforming designs into programs are also explained.
( 3 ) Software Development Techniques Practice (2)
This class aims to help students learn the SOFL three-step formal specification approach for software development and UML model-driven software development method through various small projects.
( 4 ) Projects
We aim to teach the first, second, and third year students through the projects how to write programs in Java and how to test them based on formal specifications expressed using pre and postconditions. Students are given many small exercises to apply the specification-based programming and testing techniques. Furthermore, applications of the SOFL technology to the development or simulation of dependable systems, such as Intelligent Transport Systems (ITS) (e.g., Automatic Driving Systems for autombiles and trains), Medicare Systems, IC Card Systems, are also important topics of the projects.
Graduation Research Projects (for both undergraduate and postgraduate)
The graduation research projects for undergraduate students basically concentrated on two areas: (1) applications of the latest software development technologies (e.g., SOFL, UML) to the development of dependable systems, and (2) the development of support tools for SOFL.

The graduation research projects for postgraduate students mainly focus on the research and development of methods and support tools to support formal engineering methods for software engineering.
‰Δ‹GƒLƒƒƒ“ƒpƒX