《软件工程课程设计》教学大纲

课程代码

045102191

课程名称

软件工程课程设计

英文名称

Software Engineering Course Design

课程类别

集中实践课

课程性质

必修

学时

总学时:32   实验学时:32   实习学时:0    其他学时:0

学分

2.0

开课学期

第六学期

开课单位

计算机科学与工程学院

适用专业

计算机科学与技术

授课语言

全英授课

先修课程

Java程序设计、算法设计与分析、数据库、软件工程

课程对毕业要求的支撑

本课程对学生达到如下毕业要求有如下贡献:

  1. (设计/开发解决方案)能够设计针对计算机工程复杂问题的解决方案,设计满足特定需求的计算机软硬件系统,并能够在设计环节中体现创新意识,考虑社会、健康、安全、法律、文化以及环境等因素。

  2. (使用现代工具)能够针对计算机工程复杂问题,开发、选择与使用恰当的技术、资源、现代工程工具和信息技术工具。

  3. (个人和团队)能够在多学科背景下的团队中承担个体、团队成员以及负责人的角色。

  4. (沟通)能够就计算机工程复杂问题与全球业界同行及社会公众进行有效沟通和交流,包括撰写报告和设计文稿、陈述发言、清晰表达或回应指令。并具备良好的国际视野,能够在跨文化背景下进行沟通和交流。

  5. (项目管理)理解并掌握计算机工程管理原理与经济决策方法,并能在多学科环境中应用。

课程目标

完成课程后,学生将具备以下能力:

1)了解软件工程概念和知识来解决复杂软件开发问题。采用软件工程过程和方法来设计和实现复杂软件。

2)能够选择和使用合适的现代软件工程工具和开发方法来进行复杂软件的开发实现。

3)能够和软件开发团队成员进行有效沟通来进行软件开发。

4)能够进行大型软件开发的项目管理,其中包括软件开发计划和日程安排等等

课程简介

软件工程是一门应用工程学和计算机科学概念来开发和维护有用可靠软件的课程,这一课程关注的领域包括设计、开发、测试、维护和管理。由于现实中的实用软件规模庞大和过于复杂,软件工程的课程讲授外的上机实验实习变得十分重要。

软件工程课程设计的目标是给学生们一个实习机会,在这一实习中采用软件工程概念和原则来进行软件开发。因此,这一课程设计了一些基础实验帮助学生掌握这些知识,这些实验要求学生在软件开发中灵活的应用软件工程技术。这一课程实习会覆盖软件开发的生命周期,包括软件需求获取、需求分析、软件设计、编码/实现以及测试。 学生们同时可以在这一课程中学习到如何进行软件开发项目管理和开发团队交流,从而在预算范围内开发出高质量的软件满足用户的要求。

教学内容与学时分配

此课程内容全部为实验学时,教学内容见下:

实验教学(包括上机学时、实验学时、实践学时)

(一) UML 学习3学时

教学要求: UML包含一系列的图形表示来构建面向对象系统的模型。学生学习UML,使用Rational Rose工具以及描述UML模型图(用例图、顺序图、状态图、类图、部件图等等)


(二)需求导出4学时

教学要求:实验任务为导出和撰写软件的需求规格说明。分析系统的功能性和非功能性需求,并用标准模板进行描述。形式化描述基于数学表示,可以也用来作为需求描述的表示方法。


(三)软件设计7学时

教学要求:实验任务为对软件系统进行面向对象的分析和设计。其中包括:描述系统体系结构,设计系统的主要类以及类之间的关系和交互,描述系统状态以及状态如何进行转换等等。


(四)软件实现12学时

教学要求:使用面向对象的程序语言(例如C++或者Java)以及开发环境和工具来实现一个大型复杂软件系统。系统的主要体系结构需要遵循MVC(模型-视图-控制器)模型


(五) 软件验证和维护6学时

教学要求:进行软件检验和有效性验证。使用软件审查的方法来检查软件源代码。针对软件结构以及软件功能来设计测试用例,使用这些测试用例对软件进行测试并撰写测试报告。对实现的软件系统进行维护并修复发现的软件错误。

教学方法

上机实验教学

考核方式

本课程注重实验过程考核,成绩评定为:

上机实验和实验表现:100%

教材及参考书

现用教材:Ian Sommerville. Software Engineering, Ninth Edition. ISBN: 978-7-111-34825, 机械工业出版社2011.

主要参考资料:

 (1)Roger S.Pressman. Software Engineering: A Practitioner Approach, ISBN:978-7-111-33581-8. 2011.

(2)Shari Lawrence Pfleeger and Joanne M.Atlee. Software Engineering Theory and Practice (Fourth Edition), 影印版, 高等教育出版社, 2009

制定人及制定时间

李剑,2019411

 “Software Engineering Course Design” Syllabus

Course Code

045102191

Course Title

Software Engineering Course Design

Course Category

Practice Course

Course Nature

Compulsory Course

Class Hours

 Class Hours32Experiment Hours32

Credits

2.0

Semester

6th Semester

Institute

School of Computer Science & Engineering

ProgramOriented

Computer Science and Technology

Teaching Language

English

Prerequisites

JAVA Programming, Algorithm Design and Analysis, DatabaseSoftware Engineering

 Student Outcomes

 (Special Training Ability)

  1.  Design / Development Solutions: An ability to design solutions for computer engineering complex problems, to design computer hardware and software systems that meet with specific requirements, and to embody innovation awareness in the design process and take into account social, health, safety, cultural and environmental factors.

  2.  Applying Modern Tools: An ability to develop, select and use appropriate technologies, resources, modern engineering tools and information technology tools for complex computer engineering issues.

  3.  Individual and Teams: An ability to function effectively as an individual, and as a member or leader in diverse teams and in multi-disciplinary settings.

  4.  Communication: An ability to communicate effectively on complex computer engineering problems with the engineering community and with society at large, such as being able to comprehend and write effective reports and design documentation, make effective presentations, give and receive clear instructions, and communicate in cross-cultural contexts with international perspective.

  5. Project Management: Demonstrate knowledge and understanding of computer engineering management principles and methods of economic decision-making, to function in multidisciplinary environments.

Course Objectives

 Student can be with following abilities after studying this course:

 1.An ability to understand software engineering concepts and knowledge for solving complex engineering problems and using them to build softwares. An ability to design and implement complex softwares with software engineering process and methods.

 2.An ability to select and use modern engineering tools and development methods for complex software’s implementation.

 3.An ability to communicate effectively with team members to build the software.

4.  An ability to take the software project management that will plan and schedule the software development process.

Course Description

 Software engineering is a discipline that allows us to apply engineering and computer science concepts in the development and maintenance of reliable, usable, and dependable software. There are several areas to focus on within software engineering, such as design, development, testing, maintenance, and management. Software development practice outside of the classroom is a very important process, mostly because real-world software is much larger and more complex.

The purpose of software engineering curriculum design is to give the students the practice that builds the software with software engineering concepts and principles. Therefore, basic experiments are designed to make students comprehend these while technology experiments require students to flexibly apply software engineering techniques in a process of software developing. The course is designed to cover software development life cycle of requirements gathering, requirements analysis, design, coding/implementation, and testing. Students will also learn about project management and team communication for the purpose of delivering high-quality software that satisfies customer needs and is within budget.

Teaching Content and Class Hours Distribution

Experiment, as follows:

Experimental Teaching

1UML Learning                                      Hours: 3

 Teaching aim: The Unified Modeling Language includes a set of graphic notation techniques to create visual models of object-oriented software-intensive systems. Students learn the notations of UML, use of Rational Rose and use UML Diagrams (use case diagram, sequence diagram, statechart diagram, class diagram; component diagram, etc..)


2Requirement Elicitation                               Hours: 4

 Teaching aim: This task is to elicit and specify requirements. Describe system’s functional and non-functional requirements and express them with standard form. Formal specification is a particular kind of mathematically based techniques for the requirement analysis and specification which will be used to express some requirements.


3Software Design                                     Hours: 7

 Teaching aim: This task is to make an object-oriented analysis and design for the software system. It includes: identifying system architecture, designing main classes and their relationships and interactions, specifying system states and states’ transitions, etc..


4Software Implementation                              Hours: 12

 Teaching aim: Implement a complex software with object-oriented programming language and development environment such as C++ and Java. The system architecture had better follow MVC(model-view-controller) model.


5Software verification and maintenance                    Hours: 6

 Teaching aim: Take the software verification and validation. Use software inspection to check the source codes. Design test cases according to system structures and functions to test the software and write testing report. Maintain the software and fix the software bugs.


Teaching Method

Experiment

Examination Method

Experiment and Performance: 100%

Teaching Materials and Reference Books

 Reference book:

 Ian Sommerville. Software Engineering, Ninth Edition. ISBN: 978-7-111-34825. 2011.

 Other references:

 [1] Roger S.Pressman. Software Engineering: A Practitioner Approach, ISBN:978-7-111-33581-8. 2011.

[2]Shari Lawrence Pfleeger and Joanne M.Atlee. Software Engineering Theory and Practice (Fourth Edition), 2009.

Prepared by Whom and When

Li Jian, April 11, 2019