软件工程专业规范.docx

上传人:b****1 文档编号:1875196 上传时间:2023-05-02 格式:DOCX 页数:29 大小:91.12KB
下载 相关 举报
软件工程专业规范.docx_第1页
第1页 / 共29页
软件工程专业规范.docx_第2页
第2页 / 共29页
软件工程专业规范.docx_第3页
第3页 / 共29页
软件工程专业规范.docx_第4页
第4页 / 共29页
软件工程专业规范.docx_第5页
第5页 / 共29页
软件工程专业规范.docx_第6页
第6页 / 共29页
软件工程专业规范.docx_第7页
第7页 / 共29页
软件工程专业规范.docx_第8页
第8页 / 共29页
软件工程专业规范.docx_第9页
第9页 / 共29页
软件工程专业规范.docx_第10页
第10页 / 共29页
软件工程专业规范.docx_第11页
第11页 / 共29页
软件工程专业规范.docx_第12页
第12页 / 共29页
软件工程专业规范.docx_第13页
第13页 / 共29页
软件工程专业规范.docx_第14页
第14页 / 共29页
软件工程专业规范.docx_第15页
第15页 / 共29页
软件工程专业规范.docx_第16页
第16页 / 共29页
软件工程专业规范.docx_第17页
第17页 / 共29页
软件工程专业规范.docx_第18页
第18页 / 共29页
软件工程专业规范.docx_第19页
第19页 / 共29页
软件工程专业规范.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

软件工程专业规范.docx

《软件工程专业规范.docx》由会员分享,可在线阅读,更多相关《软件工程专业规范.docx(29页珍藏版)》请在冰点文库上搜索。

软件工程专业规范.docx

软件工程专业规范

 

软件工程本科专业规范

 

教育部

××××××指导委员会

二零零四年十二月

 

三、软件工程专业教育内容和知识体系

3.1软件工程专业人才培养的教育内容及知识结构的总体框架

3.1.1本专业人才培养的教育内容及知识结构设计的理论依据

“软件工程”是一门用系统的、规范的、可度量的方法开发、运行和维护软件的学科。

主要的领域包括:

计算基础(CMP)、数学和工程基础(FND)、职业实践(PRF)、软件建模与分析(MAA)、软件设计(DES)、软件验证与确认(VAV)、软件演化(EVL)、软件过程(PRO)、软件质量(QUA)和软件管理(MGT),涉及数学、概率统计、逻辑、心理学等方面的内容,既着重于理论知识的教学和较高层次的分析问题、解决问题的方法的培养,也注重设计和工程实践能力的培养。

本规范重视知识单元的设计,也重视实用课程体系的设计。

定义了最小核心课程体系,也考虑到不同院系教育资源、系统和需求上的差异。

3.1.2本专业人才培养的教育内容及知识结构设计的总体框架

按照顶层设计的方法,理工科本科专业教育内容和知识体系由普通教育(通识教育)、专业教育和综合教育三部份构成:

普通教育包括:

①人文社会科学,②自然科学,③经济管理,④外语,⑤体育,⑥实践训练等知识体系;

专业教育包括:

①相关学科基础,②软件工程学科专业,③专业实践训练等知识体系;

综合教育包括:

①思想教育,②学术与科技活动,③文艺活动,④体育活动,⑤自选活动等知识体系。

软件工程专业教育内容由软件工程教育知识体与课程设置两部分组成。

3.2软件工程专业教育的知识体系

3.2.1软件工程专业教育知识体系概貌

软件工程教育知识体系的体系结构可以表示为三个层次:

最高层是知识领域(Area):

代表一个特定的学科子领域,用于组织、分类和描述软件工程知识体系的顶层概貌。

每个领域由英文的缩写词表示,比如CMP代表计算基础,MAA代表软件建模与分析。

本规范在知识领域前通常加上前缀SE-表示该知识领域属软件工程知识体系。

知识领域被分割成知识单元(Unit),代表领域中单独的主题模块,用知识领域缩写后面加一个字符串后缀来表示。

例如,SE-MAA.er表示知识领域SE-MAA中的知识单元“需求获取”。

知识点(Topic)是整个体系结构中的最底层。

3.2.2本知识体系的知识领域

软件工程专业共包括10个知识领域:

SE-CMP计算基础

SE-FND数学和工程基础

SE-PRF职业实践

SE-MAA软件建模与分析

SE-DES软件设计

SE-VAV软件验证与确认

SE-EVL软件演化

SE-PRO软件过程

SE-QUA软件质量

SE-MGT软件管理

3.2.3每个知识领域包含的核心知识单元

软件工程专业共有10个知识领域,42个知识单元,共计496个核心学时。

软件工程知识体系概要说明了各个领域、单元、所需的最小建议学时等。

知识体系的各领域的详细情况列在表3-1中。

表内各知识单元后面的括弧内给出了它们各自的核心学时数。

有关知识领域、知识单元以及相关知识点的详细描述在附录A中给出。

表3-1知识领域和知识单元

知识领域

知识单元(639核心学时)

SE-CMP计算基础(276)

CMP.cf.

CMP.ct.

CMP.tl

CMP.fm

计算机科学基础(230)

代码开发技术(34)

代码开发工具(6)

形式化开发方法(12)

SE-FND数学和工程基础(110)

FND.mf

FND.ef

FND.ec

数学基础(70)

软件的工程基础(30)

软件的工程经济学(10)

SE-PRF职业实践(36)

PRF.psy

PRF.com

PRF.pr

团队动力/心理学(6)

交流沟通技能(10)

专业精神(20)

SE-MAA软件建模与分析(60)

MAA.md

MAA.tm

MAA.cf

MAA.rfd

MAA.er

MAA.rsd

MAA.rv

建模基础(20)

模型分类(16)

分析基础(6)

需求基础(4)

需求获取(4)

需求规约与文档(6)

需求确认(4)

SE-DES软件设计(49)

DES.con

DES.str

DES.ar

DES.hci

DES.dd

DES.ste

设计概念(4)

设计策略(8)

体系结构设计(10)

人机界面设计(10)

详细设计(12)

设计工具与设计评价(3)

SE-VAV软件验证与确认(45)

VAV.fnd

VAV.rev

VAV.tst

VAV.hct

VAV.par

基本知识(5)

评审(6)

测试(24)

人机用户界面测试和评价(6)

问题分析和报告(4)

SE-EVL软件演化(10)

EVL.pro

EVL.ac

演化过程(6)

演化活动(4)

SE-PRO软件过程(17)

PRO.con

PRO.imp

过程概念(4)

过程实现(13)

SE-QUA软件质量(16)

QUA.cc

QUA.std

QUA.pro

QUA.pca

QUA.pda

软件质量概念与文化

(2)

软件质量标准

(2)

软件质量过程(4)

过程保证(4)

产品保证(4)

SE-MGT软件管理(20)

MGT.con

MGT.pp

MGT.per

MGT.ctl

MGT.cm

管理概念

(2)

项目计划(6)

项目人员和组织

(2)

项目控制(4)

软件配置管理(6)

本规范给出课程建议的一个原则是,使知识体系的核心尽可能小,主要包括获得软件工程本科学位所必须具备的知识。

除了核心课程,还有必修课程和选修课,院校可根据自身优势和特点开设。

规范强调以下几点:

⏹核心课程不是全部课程

因为核心课程是最小的部分,它仅包括了核心知识单元和推荐知识单元,所以它不能构成完整的本科课程。

每个本科生的课程必须包括来自知识体系中的附加选修单元。

⏹核心单元不局限于本科的入门性课程

一些核心单元只有当学生在具有必需的基础知识后才能接受。

同时,介绍性课程也可以包括推荐或可选的知识单元。

核心即必须。

3.2.4知识体系中的应用知识领域

作为软件工程专业本科教育的一部分,学生应该在一个或多个应用领域拥有专长,为此必须学习一些上述核心单元之外的知识。

他们可以专注于上述10个知识领域中的一个或多个,也可以专注于表3-2所列的4-5个应用领域单元。

对于每一个应用领域单元,学生应该在深入学习特定系统设计的同时,广泛学习有关的领域知识,并且学习这些领域中典型产品的特性及其对系统设计与开发的影响。

具体每个领域单元对应的知识点参见附录A。

表3-2知识体系中的应用领域

知识领域

知识单元

SE-SAS特定系统和应用

SAS.net

SAS.inf

SAS.fin

SAS.sur

SAS.sec

SAS.sfy

SAS.emb

SAS.bio

SAS.sci

SAS.tel

SAS.av

SAS.ind

SAS.mm

SAS.mob

SAS.ab

SAS.chl

以网络为中心的系统

信息系统和数据处理

金融和电子商务系统

容错和可存活系统

高安全系统

安全攸关系统

嵌入式和实时系统

生物学系统

科学系统

电信系统

航空和交通系统

工业过程控制系统

多媒体、游戏和娱乐系统

小型移动平台系统

基于Agent的系统

中文信息处理

3.2.5授课方式、最少讲授时间或实验时间

规定每学时为40-50分钟,指课堂讲授时间。

⏹不限定授课方式近年来教育技术与手段有了很大进步,产生了许多新的教学方式。

规范仍采用学时作为统一授课单位。

⏹课时数不包含课外的时间即不包含教师的准备时间和学生花在课堂外的时间。

通常,课堂外花费的时间约为课内时间的2-3倍,这个比例根据后面不同的课程计划模式供不同教育单位选择。

例如,若课内与课外时间为1:

3,则学生课内要花费3小时,课外花费9小时。

⏹规范中列出的每个单元的课时数为最小课时数但可以根据需要增加课时数。

3.3软件工程专业教育的课程体系

知识体系给出了软件工程专业的知识框架,据此构建相应的课程和课程体系。

本规范给出几个推荐的课程体系,供各院校参考。

推荐课程体系遵循以下原则:

●借鉴ACM和IEEE/CS联合推出的SE2004

●满足软件工程教育知识体最小核心要求

●加强计算机学科基础

●增强软件工程能力培养

●加强团队精神和交流沟通能力

●与应用领域相结合

●课内、课外相结合

●符合中国高等教育的实际情况。

课程教学包括理论课程教学和实验课程教学。

一门课程可以由一个或若干个知识领域构成,也可以从各知识领域中抽取相关的知识单元组成。

课程体系应覆盖知识体系的知识单元尤其是核心知识单元。

软件工程专业课程体系由核心课程和选修课程组成,核心课程应该覆盖知识体系中的全部核心单元。

同时,各高校可选择一些反映学科前沿和反映学校特色的选修课程。

3.3.1课程设置

课程设置分为以下不同类型:

1.数学基础课程:

包括高等数学和与本专业相关的数学基础知识,通常较早进行授课。

2.计算基础课程:

包括计算基础的入门知识。

此类课程可以是计算机科学的成熟课程,也可以是软件工程教育计划新定义的课程。

它们通常从第一年开始讲授,并延续到第二年甚至第三年。

3.软件工程核心课程:

包括软件工程教育核心知识。

此类课程是软件工程教育计划新定义的课程。

它们通常从第二年开始,并延续到第三年甚至第四年。

软件工程综合实践课程则安排在第四年。

4.非技术性必修课程。

覆盖了知识领域中的其它一些非技术内容,是从事软件工程职业的毕业生所必需掌握的知识和能力。

5.附加课程:

覆盖了知识领域中的其它一些内容、其它相关学科教程中的内容或知识体系中16个应用领域中的内容,但它们既不是入门课程,也不是软件工程的核心内容。

因此这些课程可以由各院校自行决定,办出特色。

本规范不展开讨论。

本规范根据计算机科学优先或软件工程优先、以及软件工程核心课程的不同组合方式,设计了四种课程设置参考方案,并在具体学时安排上提供课内总学时最小、一般和最大三种规格。

上述不同方案供各院校在教程设计时参考。

3.3.2软件工程专业的课程体系及核心课程

根据我国学制和学时,以及软件工程教育知识单元的分布,设计了28门课程和4种课程设置方案,每种方案均包含其中的20门课程。

表3-3给出了这些课程及所含的知识单元、建议学时数等。

图3-1给出了四种不同方案的课程设置。

附录B给出了和这些课程设置有关的更多细节和每门课程的详细描述。

表3-3软件工程专业的课程体系

课程

编号

课程名称

包含的知识单元

授课学时

开课

学期

课内外学时比

1:

3

1:

2.5

1:

2

1

CS101

程序设计基础

CMP.cf;CMP.tl;PRF.pr;MAA.rfd;DES.con;VAV.rev;VAV.tst

39

60

60

1

2

CS102

面向对象方法学

CMP.cf;CMP.ct;DES.con;DES.hci;VAV.fnd;EVO.pro

36

50

60

2

3

CS103

数据结构和算法

CMP.cf;VAV.tst

31

40

60

3

4

CS105

离散结构I

CMP.cf;FND.mf

24

40

50

2

5

CS106

离散结构II

CMP.cf;FND.mf;MAA.md

27

40

50

3

6

CS220

计算机体系结构

CMP.cf

15

30

60

4

7

CS226

操作系统和网络

CMP.cf

16

50

60

5

8

CS270T

数据库

CMP.cf;MAA.md

13

40

50

6

9

MA271

计算的统计学和经验方法

FND.mf;FND.ef

18

30

30

3

10

NT272

工程经济学

FND.ef;FND.ec;MGT.pp

13

20

20

3

11

NT181

团队激励和沟通

PRF.psy;PRF.com;MAA.rsd

11

30

30

1

12

NT291

软件工程职业实践

PRF.pr;QUA.cc

14

20

20

5

13

SE101

软件工程与计算I

CMP.cf;CMP.ct;CMP.tl;FND.ef;PRF.pr;MAA.tm;MAA.rfd;MAA.er;MAA.rsd;DES.con;DES.str;DES.dd;VAV.tst

35

60

60

1

14

SE102

软件工程与计算II

CMP.cf;PRF.pr;MAA.md;MAA.rv;DES.str;DES.dd;DES.nst;VAV.fnd;VAV.rev;VAV.tst;VAV.par;EVO.pro

36

50

60

2

15

SE200

软件工程与计算III

CMP.cf;CMP.ct;FND.ef;PRF.pr;MAA.md;DES.con;DES.str;DES.ar;DES.hci;DES.ev;VAV.fnd;VAV.rev;PRO.imp;MGT.con

38

50

50

3

16

SE201

软件工程导论

CMP.ct;FND.ef;PRF.pr;MAA.md;MAA.tm;MAA.rfd;MAA.er;MAA.rsd;MAA.rv;DES.con;DES.str;DES.ar;DES.hci;DES.dd;DES.nst;DES.ev;VAV.fnd;VAV.rev;VAV.tst;VAV.par;PRO.imp;MGT.con

34

50

50

3

17

SE211

软件代码开发技术

CMP.ct;CMP.tl;CMP.fm;FND.mf;MAA.md

36

50

60

4

18

SE212

人机交互的软件工程方法

CMP.ct;FND.ef;PRF.psy;MAA.md;MAA.tm;MAA.rfd;DES.hci;VAV.fnd;VAV.rev;VAV.tst;VAV.hct;QUA.pda

25

40

40

4

19

SE213

大型软件系统设计与软件体系结构

MAA.md;MAA.tm;DES.str;DES.ar;EVO.pro;EVO.ac;MGT.con;MGT.pp;MGT.cm

28

40

50

4

20

SE221

软件测试

MAA.rfd;VAV.fnd;VAV.rev;VAV.tst;VAV.par;QUA.pda

23

40

40

5

21

SE311

软件设计与体系结构

CMP.ct;MAA.md;MAA.tm;DES.str;DES.ar;DES.dd;DES.nst;DES.ev;EVO.pro;EVO.ac

33

40

50

5

22

SE312

软件详细设计

CMP.ct;CMP.tl;CMP.fm;MAA.tm;DES.dd;EVO.ac

26

40

40

6

23

SE313

软件工程的形式化方法

CMP.fm;FND.mf;MAA.md;MAA.tm;MAA.rsd;MAA.rv;DES.dd;DES.nst;DES.ev;EVO.ac

34

40

50

6

24

SE321

软件质量保证与测试

FND.mf;VAV.fnd;VAV.rev;VAV.tst;VAV.par;PRO.con;QUA.std;QUA.pro;QUA.pca;QUA.pda

37

50

50

6

25

SE322

软件需求分析

MAA.tm;MAA.rfd;MAA.er;MAA.rsd;MAA.rv;MAA.rfd

18

30

40

6

26

SE323

软件项目管理

MAA.mgt;PRO.con;PRO.imp;MGT.con;MGT.pp;MGT.per;MGT.ctl;MGT.cm

26

40

40

7

27

SE324

软件过程与管理

MAA.er;MAA.rsd;MAA.rfd;EVO.pro;PRO.con;PRO.imp;QUA.cc;QUA.std;QUA.pro;QUA.pca;QUA.pda;MGT.pp;MGT.per;MGT.ctl

39

50

60

7

28

SE400

软件工程综合实习

CMP.ct;PRF.psy;PRF.com;PRF.pr;MAA.tm;MAA.er;MAA.rsd;MAA.rv;DES.str;DES.ar;DES.hci;DES.dd;DES.nst;DES.ev;VAV.rev;VAV.tst;MGT.pp;MGT.per;MGT.cm

28

40

50

8

合计

476

790

900

其中“程序设计基础(CS101)”、“面向对象方法学(CS102)”和“软件工程导论(SE201)”是一组计算机科学优先课程,“软件工程与计算I(SE101)”、“软件工程与计算II(SE102)”和“软件工程与计算III(SE200)”是一组软件工程优先课程,每种具体的课程安排方案只选其中一组。

为了供不同的院校选择适合自己的软件工程专业核心课程,本规范把一部分软件工程专业核心课程分为两组。

其中,“软件代码开发技术(SE211)”、“软件设计与体系结构(SE311)”、“软件质量保证与测试(SE321)”、“软件需求分析(SE322)”和“软件项目管理(SE323)”是一组,“大型软件系统设计与软件体系结构(SE213)”、“软件测试(SE221)”、“软件详细设计(SE312)”、“软件工程的形式化方法(SE313)”和“软件过程与管理(SE324)”是一组。

每个具体的课程安排方案只选其中一组。

这样,就形成四种不同的推荐课程方案,如图3-1所示。

 

图3-1课程设置的不同可选方案

 

 

 

 

可看到,四种不同的课程设置方案分别为:

1)计算机科学优先课程+必修课程+软件工程核心课程组合I

2)计算机科学优先课程+必修课程+软件工程核心课程组合II

3)软件工程优先课程+必修课程+软件工程核心课程组合I

4)软件工程优先课程+必修课程+软件工程核心课程组合II

3.4软件工程专业的实践教学内容及体系

软件工程专业培养的毕业生应该熟练掌握软件工程知识与技能,并且具备作为软件工程师从事工程专业所需的专业能力。

系统的专业工程实践体系不仅有利于培养学生深入掌握专业技术,而且有利于培养从事该专业工作所必需的专业道德与行为规范。

实践教学体系需要重点培养的主要内容有:

工具的使用与实验技能、工程设计与实现能力、评审与测试能力、团队协作与沟通能力、过程管理与控制能力等。

实践教学的形式包括:

课程实验、综合设计、项目实践、企业实践、毕业设计等。

实践教学的安排应遵循循序渐进的原则,从小型问题开始,最终使他们像在大系统中工作一样完成实习任务,并学会认识和理解大型系统。

同时,在实践训练的各个环节中,尽可能地反复安排对专业素质与职业道德的训练。

3.4.1课程实验

课程实验是重要的实践教学环节,与课堂教学相辅相成。

实验贯穿于理论、抽象和设计过程,对软件和硬件的设计和实现、测试原理和方法起示范作用。

实验不仅仅是对理论的验证,重要的是技术训练和能力培养,包括动手能力、分析问题和解决问题能力、书写和表达能力、协作能力等。

教学活动是教师和学生不断交流沟通的过程,实验是实现这个过程的桥梁,加深对理论过程的理解,启发学生深入思考,敢于创新,达到理论联系实际的教学效果。

实验内容、方式和方法要有利于学生实验能力、独立工作与协作能力的培养。

通过实验,学生要掌握相关课程涉及的技术与方法,训练学生的基本实验技能和工具的使用。

实验可以在老师的指导下进行,也可以由学生自主独立完成,实验室提供实验设施和器材。

实验分为观察性实验、验证性实验、设计性实验、研究性实验等。

除有关的数学基础课程之外,原则上软件工程专业教育的课程均应设置相应的课程实验。

(1)公共基础系列实验

公共基础系列实验主要包括:

物理实验和/或化学实验、计算机基本操作实验等。

这个系列的实验是公共课程的基础之一。

(2)程序设计技术系列实验

程序设计技术系列实验主要有:

高级语言程序设计实验、数据结构与算法设计实验等,还可以包括人机界面实验等内容。

重点培养学生程序设计能力与技巧,程序调试与测试能力,以及程序开发环境与工具的使用。

(3)软件系统系列实验

软件系统系列实验有:

操作系统实验、数据库原理及应用实验、软件系统架构实验等,还可以包括编译技术实验以及与应用领域相关的图形学实验、嵌入式系统实验、人工智能系统实验等其它选修课的内容。

学生可以深刻体会各种软件的结构和工作过程,而不仅仅局限在原理上。

(4)硬件技术系列实验

硬件技术系列实验包括:

电路分析实验、数字电子技术实验、计算机原理实验和/或汇编语言程序设计实验、计算机网络实验等。

通过这些实验,学生可以较深入地接触当今计算机设计的基本环境。

(5)软件工程方法实验

软件工程方法系列实验应包括软件需求、设计、测试、过程管理等方面的内容。

通过这些实验,学生可以较深入地理解软件工程的各个过程与规范,了解相关软件工程工具的使用方法,了解团队合作与沟通的技巧。

这类实验一般以团队的方式进行。

在上述5类课程实验中,应该有一定数量的实验以团队合作的方式进行,特别是在数据结构与算法、操作系统、数据库技术、软件工程等课程中。

教师可以布置若干大作业,由学生在其中轮换承担不同的角色(如系统设计、编码、测试、文档写作等),同时也可以考虑以答辩的方式并邀请优秀学生参与大作业的评价,从中培养学生的表达和评价能力。

3.4.2综合性课程设计

设立综合性课程设计使学生能综合应用若干课程的技术与方法。

这些综合设计可以作为单独的实验课程开设,也可以纳入相应的课程教学计划内。

附录C给出5个综合课程设计范例。

(1)程序设计课程设计

本课程是程序设计系列课程的重要组成部分,通过本课程的学习,使学生能更进一步地理解程序设计方法,熟练掌握常用的数据结构和算法。

在编程实现时要保持良好的程序设计风格,根据课程设计完成情况进行考核,并结合设计报告对学生进行等级评定。

(2)操作系统课程设计

本课程要求学生能掌握LINUX系统结构、实现机理和各种典型算法,系统地了解操作系统的设计和实现思路,运用内核开发环境实现对内核的修改,并了解发展动向和趋势。

本课程重点培养学生操作系统的系统设计和调试能力。

(3)软件工程课程设计

本课程设计要使学生系统地掌握软件工程及软件管理的过程、方法和工具,为学生将来从事软件的研发和管理奠定基础。

要求针对一个相对大型的软件开发课题,完成需求分析、软件设计、软件测试和

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2