a
当前位置: 课程信息 >  信息安全

| 信息安全

[2017-12-26]

软件工程  课程教学大纲

Course Outline

课程基本信息(Course Information

课程代码

Course Code

SE407

*学时

Credit Hours

16

*学分

Credits

1

*课程名称

Course Title

(中文)软件工程

(英文)Software Engineering

*课程性质

Course Type

必修

授课对象

Target Audience

本科二年级

*授课语言

(Language of Instruction)

中文

*开课院系

School

信息安全工程学院

先修课程

Prerequisite

 

授课教师

Instructor

马颖华

课程网址

(Course Webpage)

ftp://ma-yinghua:public@public.sjtu.edu.cn/

 

*课程简介(Description

软件工程课程是信息类的专业课程,主要介绍软件的制作过程,能够使学生了解软件生成的过程,了解并实践安全有效地完成软件开发全部过程的各类方法,了解成功的软件开发过程的要素和理念。

本课程共八周,其中前三周为集中授课,主要授课内容包括:软件需求分析;测试驱动的开发;软件过程包括瀑布等经典过程,以及敏捷过程和极限开发;软件设计中重点介绍软件模式和重构。课程后几周,学生7人一组进行自选题目的项目开发,作为课程的考核内容。其中第四周老师和学生共同确定项目分组和开发内容。项目要求每一个小组完成两轮开发迭代。在整个项目开发期间,教师将根据学生实际情况,安排单独的小组答疑或者集体答疑。

通过本门课程的授课和实践过程,学生应能够理解软件开发过程及其要素,在实践中深化对软件工程的理解,体会人的因素在软件工程中所起的重要作用,与此同时,加强学生的动手实践能力和创造能力。

*课程简介(Description

Software Engineering is a professional course for students of Information Technology related majors. It introduces software developing process, many kinds of methods which are used in the software developing process, and important principles which helps to lead software developing to a success.

The course takes eight weeks( two hours per week), among these, the first three weeks are taken in classroom where we will learn how to analysis requirement, what is about test-driven developing(TDD), varied software procedures, agile development and the relationship among software design and refactoring. In the rest of this course, students will be organized into small groups each includes 7-8 student, to develop a software as the long-term homework which is the course evaluation. During long-term homework period, student can contact with teacher and ask for classroom QA or group QA.

With this course, student would be able to understand software engineering process and its essential factors, and deepen those understanding in practicing, so as to comprehend the important role the factor of human being playing in software engineering, and at the same time, creativity and practical ability would also be enhanced.

课程教学大纲(course syllabus

*学习目标(Learning Outcomes)

1.了解需求分析及管理的方法,并实践其中一种方法

2.了解多种软件过程,并在大作业中实践敏捷开发过程

3.了解测试驱动开发,并在大作业中实践自动测试系统

4.了解软件设计的设计模式和重构

5.了解人的因素在软件开发中的重要作用,并在大作业的团队管理中加以实践

6.了解软件开发的各类工具,例如代码管理、过程管理等,并在大作业中加以应用

7.形成对软件过程的整体认知,具备一定的软件开发经验。

*教学内容、进度安排及要求

(Class Schedule

&Requirements)

教学内容

学时

教学方式

作业及要求

基本要求

考查方式

软件过程模型

1

授课

延伸阅读

了解各类软件过程

课堂问答

需求分析

1

授课

完成一项项目构思并进行需求分析

避免技术性思考,关注需求

课后作业

测试驱动开发

1

授课

学习并了解一种自动测试系统

结合项目构思,完成部分测试文档

大作业

开发规范

1

授课

学习一种开发框架

了解规范设定目的

大作业

敏捷开发

1

授课

了解敏捷开发过程及其思想

掌握开发过程管理

大作业

软件设计和重构

1

授课

了解软件设计方法

了解软件设计及重构原理和应用过程

大作业

学生实践项目开发过程

10

集体答疑和个别答疑相结合

分组完成两轮项目开发

开发任务明确、分工具体,广泛实践

大作业

*考核方式

(Grading)

(成绩构成)课后作业5%;大作业95%(其中,项目组总评40%,个人总结60%

*教材或参考资料

(Textbooks & Other Materials)

《需求:缔造伟大商业传奇的根本力量

《用户故事和敏捷方法》

《测试驱动开发》

《验收测试驱动开发》

《硝烟中的ScrumXP

《敏捷软件开发——原则、模式与实践》

Scrum敏捷软件开发

《重构:改善既有代码的设计》

《设计模式:可复用面向对象软件的基础》

http://www.extremeprogramming.org

http://github.com

http://fitnesse.org

 

其它

More

 

备注

Notes

 

 

备注说明:

1.带*内容为必填项。

2.课程简介字数为300-500字;课程大纲以表述清楚教学安排为宜,字数不限。

访问数量:
 a