Research  Academic Activities  Publications  Teaching  Grad Student Supervision  Recent Books  TESERC   HOME 

 

COURSES

 

 

 

 

Undergraduate Courses

 

     ¤  SENG401 (Winter, 2008/09/10)                - Analysis and Design of Large-Scale Software II   

     ¤  SENG523 (Fall, 2001/-/09/10)                  - Formal Methods      

     ¤  ENCM519.46 (Winter, 2006/07/08)              - Software Engineering Processes for Computer Engineers 

     ¤  SENG443 (Fall, 2003/04)                            - Software Architectures   

     ¤  SENG421 (Fall, 2001/02)                         - Software Engineering Metrics 

     ¤  ENEL413  (Winter, 2000/01)                         - Software Metrics  

     ¤  ENSF598  (Fall, 2000/01/02/03)                - Software Engineering Individual Research Project

         ENSF599  (Fall/Winter, 2000/01/02/03)     - Software Engineering Individual Project Course

     ¤  ENGG335 (Fall, 2002/03)                             - Computing for Engineers II (Labs)

 

 

Graduate Courses

 

    

     ¤  SENG629 (Winter, 2001/-/09/10)              - Software Engineering Standards and Models   

                                                                        (Wednesdays, Feb. 24 - March 31, 2010)

 

     ¤  SENG609.19 (Fall, 2001/-/09/10)              - Theoretical Foundations of Software Engineering  

                                                                        (Wednesdays, Oct. 21 - Dec. 2, 2009)

 

     ¤  SENG 609.27 (Fall, 2005/06/07)                - Empirical Foundations of Software Engineering

                                                                   

     ¤  SENG 609.26 (Fall, 2003/05/06)               - Cognitive Informatics for Software Engineering  

                                                                   

     - The U of C Software Engineering Courses Web Site

 

 

 


 

Courses Outlines

 

 

¤  SENG523 (Fall) - Formal Methods

     H(3-2), Monday/Wednesday/Fridays (13:00 - 13:50pm)ICT 518

Introduction: the formal approach to software development and software engineering, software system specification, and software as a mathematical entity; Mathematical foundations of software engineering: mathematical logic, set theory, FSMs, and denotational mathematics; Real-Time Process Algebra (RTPA): RTPA notations, the RTPA system modeling methodology, unified data models, unified process models, component specifications, ADT specifications, and system specifications, case studies on system specifications and refinement; The Z method: notation structure, types, schemata, case studies, and object-Z; Light-weighted formal methods: UML. Applications of formal methods: system architecture modeling, system static and dynamic behaviors modeling, case studies in different formal methods.

 

SENG 523 Outline | Schedule  

SENG 523 Website 

 

 

¤  SENG401 (Winter) - Analysis and Design of Large-Scale Software II  

     H(3-2), Monday/Wednesday/Fridays, ICT 114

  

Large-Scale Software Development by Software Engineering (SE): Basic constraints of SE. Tackling SE constraints by fundamental principles; Large-scale software analysis and design. A fundamental framework of SE; Engineering Large-Scale Software Development: Engineering foundations of SE. Generic engineering principles for SE. Coordinative work organization theory for SE; Design, Modeling, and Analysis of Large-Scale Software Systems: Classic mathematics for SE. Denotational mathematics for SE. Real-Time Process Algebra (RTPA). The RTPA methodology for SE; Case Study - Modeling a Telephone Switching System (TSS); Essential Foundations of Large-Scale Software Development in SE: Computational foundations of SE. Linguistics foundations of SE. System science foundations of SE. Management science foundations of SE. Cognitive informatics foundations of SE. Economics foundations of SE. Sociology foundations of SE; Software Industrial Organization; Perspectives on Software Science.

 

¤  ENCM 519.46 (Winter) - Software Engineering Processes for Computer Engineers  

     H(3-2), Monday/Wednesday/Fridays, ICT-518

  

This is a new course designed for computer and electrical engineers for awareness of best practice in software engineering and the inspiring theories behind them. It is recognized that computer and electrical engineering students need to prepare for sufficient software engineering knowledge, because the costs and significance of modern computers systems have been dominated by software since the 1990s.                    

 

This course is developed based on matured undergraduate and graduate courses and lectured by the author of the well established book on Software Engineering Processes. The course covers  principles and engineering foundations of software engineering, system science treatment of computer and software engineering, hardware/software co-designs, system organization and management theories, and current software engineering process models. This course is lectured using Power Point presentations, supplemented with light-weight weekly assignments and well designed group lab projects. The course materials are self-sufficient and no prerequisite is required.

 

It is believed that the future academic and industrial leaders of computer and electrical engineering are those who are well prepared with hardware/software co-design capabilities. This is one of the key objectives that include ENCM519.46 in the Computer and Electrical Engineering programs.

 

ENCM 519.46 Outline  

 

A unified framework of software engineering processes.

¤  SENG609.19 (Fall) - Theoretical Foundations of Software Engineering

    QI (3-0), Wednesdays, 5:30 -8:30 pm, ICT516

 

Principles and constraints of software engineering (SE): Basic constraints of SE. Tackling SE constraints by fundamental principles; Multidisciplinary foundations of SE; Philosophical foundations of SE: Philosophies of science and engineering. Formal reasoning methodologies. SE philosophies; Engineering foundations of SE: Generic engineering principles for SE. Theory for SE organization; Mathematical foundations of SE: Classic mathematics. Descriptive mathematics. Real-time process algebra (RTPA); Computational foundations of SE: Basic computation models. Data object modelling. Behavior modelling. Program modelling. SE resources and processes modelling; Linguistics Foundations of SE: Formal language theory. Formal syntaxes. Formal semantics. Deductive semantics of RTPA. Applications of linguistics in SE; Informatics foundations of SE: Classic and contemporary information theories. Cognitive informatics. Informatics laws of software. Applications of informatics in SE.

 

 

 

¤  SENG629 (Winter) - Software Engineering Standards and Models

    QII (3-0), Wednesdays,  5:30 - 8:30 pm,  ICT516  

 

Empirical software engineering: Roles, Processes, Best practices, Experience repository, Benchmarks, Standardization. Formal description and algorithms of current software engineering standards and models: The capability maturity model (CMM), The ISO software quality system model (ISO 9001), The European software process model (BOOTSTRAP), The ISO software life-cycle process assessment standard (ISO 15504), and The unified software engineering process reference model (SEPRM). Case studies. Trends and future development in software engineering standardization.

 

¤  SENG609.26 (Fall) - Cognitive Informatics for Software Engineering

    QII (3-0), Mondays,  5:30 - 8:30 pm,  ICT516  

Overview: Cognitive science, Information theories, Cognitive foundations of the brain, Cognitive informatics (CI), Applications of CI in software engineering. Cognitive models of the brain: Neurophysiological foundations of cognition, The layered reference model of the brain (LRMB), The computational model of the brain, The cognitive model of the brain, RTPA: The descriptive mathematics for CI. Cognitive models of information representation in the brain: The hierarchical neural cluster (HNC) model of memory, The object-attribute-relation (OAR) model of internal information representation, Formal description of cognitive processes based on OAR and RTPA, The memory capacity of human brain. Cognitive informatics for software engineering (SE): Informatics properties of software, Cognitive informatics laws of SE, SE psychology, Software comprehension, SE skills and experiences. Cognitive complexity of software:  The cognitive weights of software, The cognitive complexity of software systems, Measurement of functional sizes of software based on cognitive complexity, Case studies on software cognitive complexity. Human traits and factors in SE: Fundamental human traits and needs, The human factors in engineering and socialization, The formal model of human errors, Interaction between motivation and attitude in SE.

¤  SENG609.27 (Fall) - Empirical Foundations of Software Engineering

    QII (3-0), Wednesdays,  5:30 - 8:30 pm,  ICT516  

Overview: Problems and approaches to SE, Engineering foundations of SE, Empirical methodologies of SE, Empirical foundations of SE. System Science Foundation of SE: System philosophies, System topology, System algebra, Principles of system science, Software systems engineering. Management Science Foundation of SE: Principles of management science, Decision theories, Quality systems, SE management. Economics Foundation of SE: Principles of economics, economic models, economic analyses, SE economics. Sociology Foundation of SE: Principles of sociology, Social psychology, Theory of social organization, Sociology and SE. Software Industry Organization: The natural of the software industry, the software maintenance crisis, Principles of industrial organization, infrastructure of SE.

 

 

¤  SENG443 (Fall) - Software Architectures  

     H(3-2), Monday/Wednesday/Fridays, ICT 114

  

Introduction. Software architectural engineering. Software architectural modeling. Architectural description languages (I) – UML. Architectural description languages (II) – RTPA. Software architectures: Frameworks. Patterns. Components. Processes. Distributed system architectures. Real-time system architectures. Built-in test (BIT) architectures. Project: Modeling the architectures and behaviors of systems. 

 

 

¤  SENG421 (Fall) - Software Engineering Metrics  

     H(3-2), Monday/Wednesday/Fridays, MS-527

  

Software engineering measurement and metrics; Foundations of measurement: measurement theory, graph theory, computing complexity theory, statistics; Models of software engineering measurement: Halstead’s software science, McCabe’s cyclomatic complexity, Albrecht’s function points, Boehm’s COCOMO model, Basili’s GQM paradigm, Humphrey’s process capability, Wang’s SE process benchmarking; Software product measurement: size, effort, productivity, costs, architectural properties, complexity, defects, quality; Software engineering process measurement: design, implementation, test, maintenance, reuse, management, SQA, process capability, project measurement; Predictive measurement; future development.