课程概述

开设本课程的目的,就是向软件工程专业的学生介绍在这门学科中的主要内容,使学生掌握整个软件生存周期各阶段使用的方法和工具,摆脱过去落后的开发方式,用工程学的原理和方法来组织和管理软件开发,从而提高软件设计与开发的质量,为学生高水平就业打下坚实的基础。

       本课程是理论与实践结合较强的课程,要求学生课余时间必须自拟题目动手实现,通过实际动手,把课堂学到的知识用到实践中去,从而培养、锻炼独立工作能力、团队合作意识和科学的工作作风。课程教学要求达到的效果是要求学生掌握软件开发中方法和技术、掌握软件工程的相关概念、掌握软件工程中各种工具、文档写作、和图例的画法。

证书要求

Attendance

10

Attitude,   class activities, & participation

In-class   pre-learning check (2x5)

10

Homework   - Individual (Learning outcome 1,2,3)

20

Software   engineering methods and techniques for developing software projects - pair or   group (Learning outcome 2)

20

Final   Exam (Learning outcome1,2,3)

40

Total

100


授课大纲

Introduction

软件工程的概要介绍

课时

  •  Professional software development
  • ,
  •  Software engineering ethics
  • ,
  •  Case studies
  • ,


Software processes

软件工程应用的开发模型

课时

  •  Software process models
  • ,
  •  Process activities
  • ,
  •  Coping with change
  • ,
  •  Process improvement
  • ,


Agile software development

敏捷式开发技术介绍

课时

  •  Agile methods
  • ,
  •  Agile development techniques
  • ,
  •  Agile project management
  • ,
  •  Scaling agile methods
  • ,


Requirements engineering

需求分析过程

课时

  •  Requirements engineering processes
  • ,
  •  Requirements elicitation
  • ,
  •  Requirements specification
  • ,
  •  Requirements validation
  • ,
  •  Requirements change
  • ,


System modeling

系统模型设计

课时

  •  Context models
  • ,
  •  Interaction models
  • ,
  •  Structural models
  • ,
  •  Behavioral models
  • ,
  •  model-driven architecture
  • ,


Architectural design

结构化设计方法

课时

  •  Architectural design decisions
  • ,
  •  Architectural views
  • ,
  •  Architectural patterns
  • ,


Design and implementation

面向对象设计模型以及UML技术

课时

  •  Object-oriented design using the UmL
  • ,
  •  Design patterns
  • ,
  •  Implementation issues
  • ,


Software testing

软件测试技术介绍

课时

  •  Development testing
  • ,
  •  Test-driven development
  • ,
  •  Release testing
  • ,
  •  User testing
  • ,


Component-based software engineering

软件构件设计

课时

  •  Components and component models
  • ,
  •  Component composition
  • ,


Distributed software engineering

分布式软件系统技术

课时

  •  Distributed systems
  • ,
  •  Client–server computing
  • ,
  •  Software as a service
  • ,


Service-oriented software engineering

面向服务的软件工程技术

课时

  •  Service-oriented architecture
  • ,
  •  Service engineering
  • ,
  •  Service composition
  • ,


Real-time software engineering

实时软件工程系统技术介绍

课时

  •  Embedded system design
  • ,
  •  Architectural patterns for real-time software
  • ,
  •  Timing analysis
  • ,
  •  Real-time operating
  • ,

参考资料

Ian Sommerville. (2017) “Software EngineeringEnglish tenth edition. China Machine press. Beijing. ISBN 978-7-11158096-6.

Supplementary textbook:

Roger S. Pressman, Bruce R. M. (2017) Software Engineering-A Practitioner’s Approach”(English eighth edition. China Machine press. Beijing. ISBN 978-7-11148950-4.

张海藩.软件工程导论(第6版),清华大学出版社,2013年.

Other Materials

Course Packet, which includes required worksheets, readings, etc.

Materials that are available for downloading from the course website.