计算机科学与技术(软件工程方向)_第1页
计算机科学与技术(软件工程方向)_第2页
计算机科学与技术(软件工程方向)_第3页
计算机科学与技术(软件工程方向)_第4页
计算机科学与技术(软件工程方向)_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2.4计算机科学与技术(软件工程方向)专业规范

一、软件工程专业教育的历史、现状及发展方向

1.软件工程学科与教育的发展

软件在当今的信息社会中占有重要的地位,软件产业是信息社会的支柱产业之-«随着软件应用日益

广泛、软件规模日益扩大,人们开发、使用、维护软件不得不采用工程的方法,以求经济有效地解决软件

问题。借助于计算机科学技术、数学、管理科学与工程诸多学科,今天的软件工程己由最初的一个学科方

向发展成为以计算机科学技术为基础的一个新兴交叉学科。该学科的发展可分为概念提出、学科雏形和学

科确立三个阶段。

(1)概念提出

I960年代末期,计算机程序在复杂度、规模和应用领域等方面的增长引人注目,这导致上千亿资金花

费在软件开发上,许多人的工作和生活依赖于软件开发的成果。软件产品帮助人们获得了更高的工作和生

产效率,同时也给人们提供了一个更加安全、灵活和宽松的工作与生活环境。尽管有很多成功之处,许多

软件产品在成本、工期、质量等方面仍存在严重问题。主要原因是:

1)软件产品是复杂的人造系统,具有复杂性、不可见性和易变性,难以处理。

2)个人或小组开发小型软件非常有效的编程技术和过程,在开发大型、复杂系统时难以发挥同样的作

用。

3)计算机和软件技术的快速发展,提高了客户对软件的期望,促进了软件产品的进化,为软件产品提

出了新的、更多的需求,因此增加了软件行业内的竞争,难以在可接受的开发进度内保证软件的质量。

1968年在德国举行的NATO软件工程会议上,为应对“软件危机”的挑战,提出了“软件工程”的

术语。这个时期有代表性的软件工程定义是“为了经济地获得在真实机器上可靠工作的软件而制定和使用

的合理工程原则和方法”。

1972年IEEE学会的计算机协会第一次出版了“软件工程学报”。此后,“软件工程”这个术语被广泛

用于工业、政府和学术界,众多的出版物、团体和组织、专业会议在它们的名称里使用“软件工程”这个

术语,很多大学的计算机科学系先后开设了软件工程课程。

(2)学科雏形

软件工程早期的发展是理清软件工程过程的各种活动,提出软件生命周期的概念和软件开发的瀑布模

型,制定软件生命周期中主要活动的质量标准。标准是工程的起点和归宿。人们在制定各种标准时,加深

了对软件产品的理解。软件不可靠、不可维护、不可移植导致开发和维护费用激增。特别是软件测试不能

证明软件正确,且事后的更改不一定能增进软件的质量。这些问题要求计算机科学改进构造软件的方法,

甚至开发出新的语言实现新的编程范型,设计高质量软件的规范或范型来开发软件。计算机科学从软件工

程实践中得到了许多待解决的问题,从而推动了计算技术的进展,如数据流、控制流、事件驱动、状态机

变换、面向对象、净室软件等方法。软件工程将这些技术规范化、模式化,并制作相应的工具,使得软件

生产率更高、质量更好、成本更低。它们相得益彰,相互促进。这个时期的软件工程定义特别强调,软件

工程以计算机科学和数学为基础,用系统的、可控制的、有效的方式建造高质量的软件。有代表性的定义

包括:

1)“软件工程是•种工程形式,它运用计算机科学和数学原理,针对软件问题获得一种经济有效的解

决方案。”

2)“用系统的、规范的、可度量的方法,开发、运行和维护软件”。

1991年,ACM和IEEE-CS的计算学科教程CC1991专题组将“软件工程”列为计算学科的九个知识

领域之一。

1980年代末到1990年代初,计算机硬件普遍采用大规模集成电路。在单主机计算模式下,基于瀑布

模型的软件开发过程和结构式过程语言编程范型占主导地位,软件工程得到极大的发展。以阶段论看待软

件生命周期,给规范和规程的制定、工具研制、预算管理、工程核算、组织质量过程带来极大方便,基于

瀑布模型的软件工程的研究在软件需求分析、软件设计、软件测试、软件质量保证、软件过程改进等多个

子领域得到深化和扩展,形成了软件工程学科的雏形。

(3)学科确立

1970年代末期,美国制定研究生教育计划时采纳了IEEE-CS提出的制定软件工程教程的建议,为软

件工程教育打下了基础。

1980年代末和1990年代初,软件工程教育得到卡内基-梅隆大学软件工程研究所(SEI)的培育和支

持。他们调查软件工程教育的现状;出版软件工程推荐教程;在卡内基-梅隆大学建立软件工程硕士教育计

划;组织和推动软件工程教育者研讨会。

1993年,IEEE-CS和ACM为把软件工程建设成为一个专业,建立了IEEE-CS/ACM联合指导委员会。

随后,该指导委员会被软件工程协调委员会(SWECC)替代。SWECC给出了“软件工程职业道德规范”、

“本科软件工程教育计划评价标准”和“软件工程知识体"(SWEBOK)。SWEBOK全面描述了软件工程

实践所需的知识,为开发本科软件工程教育计划打下了基础。

2004年8月,全世界500多位来自大学、科研机构和企业界的专家、教授经过多年的努力,推出了软

件工程知识体、软件工程教育知识体(SEEK)两个文件的最终版本,标志着软件工程学科在世界范围正

式确立,并在本科教育层次上迅速发展。软件工程、计算机科学、计算机工程、信息系统、信息技术并列

成为计算学科下的独立学科。

(4)我国的软件工程教育

我国的软件工程基础技术研究始于1980年代初。当时,软件开发方法学成为研究热点。1980年在北

273

京召开了我国首届软件工程研讨会,之后,许多高等学校和科研单位陆续开展了软件开发方法学、CASE

工具和环境、面向对象技术等软件工程基础技术的研究。“软件工程核心支撑环境”,“软件工程技术、工

具和环境的研究与开发(SEP)”等课题被列入国家重点科技攻关项目,其科研成果代表了我国软件工程技

术研究的水平。与此同时,部分高校面向研究生开设了软件工程课程,开始引进和编写软件工程教材:1984

年和1985年,国家科委选择重点高校招收了两批(200人)软件工程硕士,为软件工程教育积累了经验。

此后,高等院校开始为本科开设软件工程课程。部分高校从1988年开始试办软件工程专业(后来在学科

调整时又归并到计算机科学与技术学科)。

1990年代,软件重用和软件构件技术成为研究热点,面向对象方法和技术成为软件开发的主流技术,

软件过程研究及软件企业的过程改善受到广泛重视。随着软件工程技术的发展,高校又增设了面向对象技

术,支持面向对象技术的SmaHtalk语言、软件过程管理、软件测试技术、软件过程度量等课程,软件工程

领域的教学内容不断丰富,教学时数不断增加,教学改革不断深入。

为适应我国经济结构战略性调整,实现软件产业和软件人才培养的跨越式发展,2000年发布了18号

文件《国务院关于印发鼓励软件产业和集成电路产业发展的若干政策的通知》,2001年经教育部和国家计

委批准,全国成立了35所示范性软件学院。各高校软件学院和计算机学院(系)为培养高层次、实用型、

复合型、具有国际竞争力的人才,要求学生在思维创新的基础上,提高技术创新和工程创新能力,提高软

件工程实践和软件工程管理能力。这有效地促进了我国软件工程学科的发展,我国软件工程教育开始走向

成熟。

2.软件工程学科概况

SWECC发布的SWEBOK定义了软件工程学科的内涵,它由10个知识域构成。

(1)软件需求

软件需求描述解决现实世界某个问题的软件产品,及对软件产品的约束。软件需求涉及需求抽取、需

求分析、建立需求规格说明和确认,涉及建模、软件开发的技术、经济、时间可行性分析。软件需求直接

影响软件设计、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程和软件质量等。

(2)软件设计

设计是软件工程最核心的内容。设计既是“过程”,也是这个过程的“结果”。软件设计由软件体系结

构设计、软件详细设计两种活动组成。它涉及软件体系结构、构件、接口,以及系统或构件的其他特征,

还涉及软件设计质量分析和评估、软件设计的符号、软件设计策略和方法等。

(3)软件构造

通过编码、单元测试、集成测试、调试、确认等活动,生成可用的、有意义的软件。软件构造除要求

符合设计功能外,还要求控制和降低程序复杂性、预计变更、进行程序验证和制定软件构造标准。软件构

造与软件配置管理、工具和方法、软件质量密切相关。

274

(4)软件测试

测试是软件生存周期的重要部分,涉及测试的标准、测试技术、测试度量和测试过程。测试不再是编

码完成后才开始的活动,测试的目的是标识缺陷和问题,改善产品质量。软件测试应该围绕整个开发和维

护过程。测试在需求阶段就应该开始,测试计划和规程必须系统,并随着开发的进展不断求精。正确的软

件工程质量观是预防,避免缺陷和问题比改正好。代码生成前的主要测试手段是静态技术(检查),代码

生成后采用动态技术(执行代码)。测试的重点是动态技术,从程序无限的执行域中选择一个有限的测试

用例集,动态地验证程序是否达到预期行为。

(5)软件维护

软件产品交付后,需要改正软件的缺陷、提高软件性能或其他属性、使软件产品适应新的环境。软件

维护是软件进化的继续。软件维护要支持系统快速地、便捷地满足新的需求。基于服务的软件维护越来越

受到重视。软件维护是软件生存周期的组成部分。然而,历史上维护从未受到重视。现在情况有了改变,

软件组织力图使软件运营时间更长,软件维护成为令人关注的焦点。

(6)软件配置管理

为了系统的控制配置变更,维护整个系统生命周期中配置的一致性和可追踪性,必须按时间管理软件

的不同配置,包括配置管理过程的管理、软件配置鉴别、配置管理控制、配置管理状态记录、配置管理审

计、软件发布和交付管理等。

(7)软件工程管理

运用管理活动,如计划、协调、度量、监控、控制和报告,确保软件开发和维护是系统的、规范的、

可度量的。它涉及基础设施管理、项目管理、度量和控制计划三个层次。度量是软件管理决策的基础。近

年来软件度量的标准、测度、方法、规范发展较快。

(8)软件工程过程

管理软件工程过程的目的是实现一个新的或者更好的过程。软件工程过程关注软件过程的定义、实现、

评估、测量、管理、变更、改进,以及过程和产品的度量。软件工程过程分为:①围绕软件生存周期过程

的技术和管理活动,即需求获取、软件开发、维护和退役的各种活动;②对软件生存周期的定义、实现、

评估、度量、管理、变更和改进。

(9)软件工程工具和方法

软件工程工具是以计算机为基础的,用于辅助软件生存周期过程。通常,工具是为特定的软件工程方

法设计的,以减少手工操作的负担,使软件工程更加系统化。软件工具的种类很多,从支持个人到整个生

存周期。软件工具分为:需求工具、设计工具、构造工具、测试工具、维护工具、配置管理工具、工程管

理工具、工程过程工具、软件质量工具等。

软件工程方法支持软件工程活动,使软件开发更加系统,并能获得成功。软件工程方法不断发展。当

前,软件工程方法分为:①启发式方法,包括结构化方法、面向数据方法、面向对象方法和特定域方法;

②基于数学的形式化方法;③用软件工程多种途径实现的原型方法,原型方法帮助确定软件需求、软件体

275

系结构、用户界面等。

(10)软件质量

软件质量贯穿整个软件生存周期,涉及软件质量需求、软件质量度量、软件属性检测、软件质量管理

技术和过程等。

SWEBOK还把软件工程相关学科列为知识域,它们是软件工程发展不可或缺的部分。相关学科知识

域包括计算机工程、计算机科学、数学、管理学、项目管理、质量管理、系统工程学和软件人类工程学八

个领域。

3.软件工程学科的方法论

软件工程学科是计算学科的分支,计算学科中理论、抽象、设计等三个学科形态,绑定、大问题的复

杂性、概念和形式模型、一致性和完备性、效率、演化、抽象层次、按空间排序、按时间排序、重用、安

全性、折衷与决策等12个基本概念,数学方法、系统科学方法在软件工程学科中占有重要地位。此外,

软件工程还十分重视管理过程,以提高软件产品的质量、降低开发成本、保证工程按时完成。系统性、规

范性、可度量性也是软件工程非常关注的。

4.软件工程学科的相关学科

软件工程学科的理论基础是数学、计算机科学。软件工程的研究和实践涉及人力、技术、资金、进度

的综合管理,是开展最优化生产活动的过程;软件工程必须划分系统的边界,给出系统的解决方案。因此,

软件工程的相关学科有计算机科学与技术、数学、计算机工程、管理学、系统工程和人类工程学等。

(1)计算机科学与技术

在计算学科发展的早期,计算机科学家开发软件,电子工程师生产支持软件运行的硬件。随着软件规

模、复杂性和重要性的增加,确保软件按人们的意图运行格外重要。软件工程的主要基础是计算机科学与

技术。有效的软件开发实践需要比计算机科学原理更多的内容,它不仅需要计算机科学的理论、方法和工

具,还需要加强工程严密性、提高合理使用各种资源的管理水平。

软件工程教育知识体反映了软件工程对计算机科学的依赖,以及作为计算基础的主要成分。

(2)工程学科

软件工程强调采用工程化的方式开发软件,软件工程具有下列工程特征:

1)通过成本和收益的折衷分析调整软件工程策略。

2)能对软件工程涉及的某些对象,如质量、成本、工作量、进度等进行度量,要确认度量方法,并根

据经验和实验数据进行估算。

3)依靠团队,强调团队的效率和纪律性。

4)工程师能胜任多种角色,如研究、开发、设计、生产、测试、构造、操作、管理,以及销售、咨询

和培训等。

276

5)在软件工程过程中选择和使用合适的工具。

6)通过专业协会和最佳实践提高个人能力。

7)重用设计和设计制品。

工程活动以设计为中心,设计在软件工程活动中占有十分重要的地位。为了满足项目需求,工程设计

过程必须对潜在的冲突和约束进行折衷。工程设计涉及技术、经济、法律和社会等方血的问题。

因为软件的特殊性,软件工程与传统的工程学不同。软件工程更关注抽象、建模、信息组织和表示、

变更管理等。软件工程在产品的设计阶段必须考虑实现和质量控制。持续的进化是软件产品的重要特征。

软件工程设计的关键是工程设计决策,它将用于软件抽象的各个层次。重用和基于构件开发在工程设计实

践中越来越受到重视。

(3)管理学科

软件开发是一个项目目标实现的过程,管理科学的目标性和约束性原则在软件工程中得到重要的体

现。软件工程强调软件产品及其开发过程的成木、进度、质量和文档的属性,要求在特定的环境和一定的

组织机构内,有效地利用有限资源(人力、物力、财力等),通过协调一系列相互关联的任务,在规定的

时间内完成,并满足一定的性能、质量、数量、技术指标等要求。软件的特殊性增大了管理的难度,因此,

软件工程在软件生存周期的整个过程中,对需求、计划、成本、风险、过程和质量进行度量、跟踪、管理

与控制。

二、软件工程专业培养目标和规格

1.人才培养目标

培养德、智、体、美全面发展,掌握自然科学和人文社科基础知识、计算机科学基础理论、软件工程

专业及应用知识,具有软件开发能力,具有软件开发实践和项目组织的初步经验,具有创新、创业意识,

具有竞争和团队精神,具有良好的外语运用能力,能适应技术进步和社会需求变化的高素质软件工程专门

人才。

2.人才培养规格

软件工程专业的学制一般为四年,授予工学学士学位。其素质结构、能力结构和知识结构要求如下:

(1)素质结构要求

思想道德素质:热爱祖国,拥护中国共产党的领导,树立科学的世界观、人生观和价值观;具有责任

心和社会责任感;具有法律意识,自觉遵纪守法;热爱本专业,注重职业道德修养;具有诚信意识和团队

精神。

文化素质:具有一定的文学艺术修养、具有良好的文字和口头表达能力、具有交流和沟通能力与现代

意识。

277

专业素质:掌握科学思维方法、工程设计方法,具备良好的工程素养;具有创新、创业精神;具有严

谨的科学态度和务实的工作作风。

身心素质:具有较好的身体素质和心理素质。

(2)能力结构要求

掌握软件工程的知识与技能,具备软件工程师从事工程实践所需的专业能力。

获取知识能力:终身学习能力、信息获取能力、适应学科发展的能力等。

应用知识能力:需求分析和建模的能力、软件设计和实现的能力、软件评审与测试的能力、软件过程

改进与项目管理的能力、设计人机交互界面的能力、使用软件开发工具的能力等。

创新能力:在基础研发、工程设计和实践等方面具有一定的创新意识和能力。

(3)知识结构要求

工具性知识:外语、文献检索、科技写作等。

人文社会科学知识:文学、哲学、政治学、社会学、法学、心理学、思想道德、职业道德、艺术等。

自然科学知识:数学、物理学等。

工程学知识:工程经济学、其他工程应用领域的基础知识。

经济管理知识:经济学、管理学等。

专业技术基础知识:计算机科学、数学基础知识,包括离散数学、程序设计语言和程序设计、数据结

构、计算机体系结构、操作系统和网络、数据库等。

专业知识:软件需求、软件建模与分析、软件设计、人机交互、软件验证与确认、软件进化、软件过

程、软件质量和软件管理等。

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

1.人才培养的教育内容及知识结构的总体框架

(1)理论依据

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

识领域包括:计算基础、数学和工程基础、职业实践、软件建模与分析、软件设计、软件验证与确认、软

件进化、软件过程、软件质量和软件管理。软件工程教学既重视理论知识和较高层次分析问题、解决问题

的方法,也重视软件设计和工程实践。

本规范给出了知识单元的总体框架和课程体系的最小核心部分,并提出了课程体系设计的指导性建

议。不同院系可根据自己的教育资源、系统和需求,对本课程体系进行调整和扩充。

(2)总体框架

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

合教育三部分构成:

278

1)普通教育包括:①人文社会科学,②自然科学,③经济管理,④外语,⑤体育,⑥实践训练等知识

体系。

2)专业教育包括:①相关学科基础,②软件工程学科专业,③专业实践训练等知识体系。

3)综合教育包括:①思想教育,②学术与科技活动,③文艺活动,④体育活动,⑤自选活动等知识体

系。

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

(1)软件工程专业教育知识体系概貌

软件工程教育知识体系由知识领域、知识单元和知识点三个层次组成。

最高层是知识领域(Area),代表一个特定的学科子领域,用于组织、分类和描述软件工程知识体系

的顶层概貌。每个知识领域山前缀SE-加该领域的英文缩写词表示,比如SE-CMP代表计算基础,SE-MAA

代表软件建模与分析。

知识领域之下又划分成更小的知识单元(Unit),代表各个知识领域中的不同方向,用知识领域缩写后

面加小写英文字母后缀表示。例如,MAA.er表示知识领域SE-MAA中的“需求获取”知识单元。

知识点(Topic)是整个体系结构中的最底层,代表知识单元中单独的主题模块。

软件工程专业共有10个知识领域,42个知识单元,建议最小核心学时数为494。

(2)软件工程专业教育知识体系的知识领域

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

SE-CMP计算基础

SE-FND数学和工程基础

SE-PRF职业实践

SE-MAA软件建模与分析

SE-DES软件设计

SE-VAV软件验证与确认

SE-EVO软件进化

SE-PRO软件过程

SE-QUA软件质量

SE-MGT软件管理

(3)每个知识领域包含的核心知识单元

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

域的详细情况列在表1中。表内各知识单元后面的括弧内给出了它们各自的核心学时数。有关知识领域、

知识单元以及相关知识点的详细描述在附录1中给出。

279

表1知识领域和知识单元

知识领域知识单元(最小核心学时数494)

CMP.cf计算机科学基础(140)

CMP.ct构造技术(20)

SE-CMP计算基础(172)

CMP.tl构造工具(4)

CMP.fm形式化开发方法(8)

FND.mf数学基础(56)

SE-FND数学和工程基础(89)FND.ef软件的工程基础(23)

FND.ec软件的工程经济学(10)

PRF.psy团队激励/心理学(5)

SE-PRF职业实践(35)PRF.com交流沟通技能(10)

PRF.pr专业技能(20)

MAA.md建模基础(19)

MAA.tm模型分类(12)

MAA.af分析基础(6)

SE-MAA软件建模与分析(53)MAA.rfd需求基础(3)

MAA.er需求获取(4)

MAA.rsd需求规约与文档(6)

MAA.rv需求确认(3)

DES.con设计概念(3)

DES.str设计策略(6)

DES.ar体系结构设计(9)

SE-DES软件设计(45)

DES.hci人机界面设计(12)

DES.dd详细设计(12)

DES.ste设计支持工具与评价(3)

VAV.fnd基本知识(5)

VAV.rev评审(6)

SE-VAV软件验证与确认(42)VAV.tst测试(21)

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

VAV.par问题分析和报告(4)

EVO.pro进化过程(6)

SE-EV0软件进化(10)

EVO.ac进化活动(4)

PRO.con过程概念(3)

SE-PRO软件过程(13)

PRO.imp过程实施(10)

QUA.cc软件质量概念与文化(2)

QUA.std软件质量标准(2)

SE-QUA软件质量(16)QUA.pro软件质量过程

QUA.pea过程保证(4)

QUA.pda产品保证(4)

MGT.con管理概念(2)

MGT.pp项目计划(6)

SE-MGT软件管理(19)MGT.per项目人员和组织(2)

MGT.ctl项目控制(4)

MGT.cm软件配置管理(5)

280

本规范设计知识体系的一个原则是,使知识体系的核心尽可能小,主要包括获得软件工程本科学位所

必须具备的知识。核心即必须。

(4)知识体系中的应用知识领域

作为软件工程专业本科教育的一部分,学生应该在••个或多个应用领域拥有专长,为此必须学习一些

上述核心单元之外的知识。学生可以专注于上述10个知识领域中的一个或多个,也可以专注于表2所列

16个应用领域知识单元中的4〜5个。对于每一个应用领域知识单元,学生应该在深入学习特定系统设计

的同时,广泛学习有关的领域知识,并且学习这些领域中典型产品的特性及其对系统设计与开发的影响。

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

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

知识领域知识单元

SAS.net以网络为中心的系统

SAS.inf信息系统和数据处理

SAS.fin金融和电子商务系统

SAS.sur容错和可存活系统

SAS.sec高安全保密系统

SAS.sfy安全攸关系统

SAS.emb嵌入式和实时系统

SAS.bio生物医学系统

SE-SAS特定系统和应用

SAS.sci科学系统

SAS.tel电信系统

SAS.av航空和交通系统

SAS.ind工业过程控制系统

SAS.mm多媒体、游戏和娱乐系统

SAS.mob小型移动平台系统

SAS.ab基于Agent的系统

SAS.chi中文信息处理

(5)授课方式、最少讲授时间或实验时间

本规范使用学时作为课时单位,表示以传统方式在课堂上授课的时间。为了避免任何可能的混淆,特

作以下说明:

1)不限定授课方式:近年来教育技术与手段有了很大进步,产生了许多新的教学方式。规范仍采用学

时作为统一授课单位。

2)课时数不包含课外的时间:即不包含教师的准备时间、学生实验时间和学生花在课堂外的时间。通

常,课堂外花费的时间约为课内时间的2倍。

3)表1中列出的每个知识单元学时为最小学时数,但可以根据需要适当增加。

281

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

知识体系给出了软件工程专业的知识框架,在此知识体系的基础上构建相应的课程和课程体系。各院

校可参照本规范推荐的几种核心课程体系,遵循以下原则构建具有本校特色的课程与课程体系:

1)借鉴ACM和IEEE-CS联合推出的SE2004。

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

3)加强计算机学科基础。

4)增强软件工程能力培养。

5)加强团队精神和交流沟通能力。

6)与应用领域相结合。

7)课内、课外相结合。

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

课程教学包括理论课程教学和实验课程教学。•门课程可以由一个或若干个知识领域构成,也可以从

各知识领域中抽取相关的知识单元组成。课程体系应覆盖知识体系的知识单元,尤其是核心知识单元。

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

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

(1)课程设置

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

1)数学基础课程:包括与本专业相关的数学基础知识。

2)计算基础课程:包括计算基础的入门知识。此类课程可以是计算机科学的成熟课程,也可以是软件

工程教育计划新定义的课程。它们通常从第一年开始讲授,并延续到第二年甚至第三年。

3)软件工程核心课程:包括软件工程教育核心知识。此类课程是软件工程教育计划新定义的课程。它

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

4)非技术性基础课程:覆盖了知识领域中的其他一些非技术内容,是从事软件工程职业的毕业生所必

需掌握的知识和能力。

5)附加课程:覆盖了知识领域中的其他一些内容、其他相关学科教程中的内容或知识体系中16个应

用领域中的内容。这些课程可以山各院校自行决定,办出特色,本规范不展开讨论。

(2)软件工程专业的课程体系及核心课程

根据软件工程知识单元的分布,设计了27门课程和4个参考教学计划,每种计划均包含19门课程。

表3给出了这些课程及所含的知识单元、参考学时数等。图1给出了四种参考教学计划的课程设置方案。

附录2给出了每门课程的详细描述。

282

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

课程学时

参考学时

课程最小授实验

课程名称包含的知识单元

编号核心课学时

学时学

CS101程序设计基础CMP.cfoCMP.tloPRF.proMAA.rfd»DES.coruYAV.rev。394816

VAV.tst

CS102面向对象方法学CMP.cfqCMP.ct。DES.con。DES.hcioVAV.fndoEVO.pro364816

CS103数据结构和算法CMP.cfoVAV.tst314816

CS105离散结构ICMP.cfoFND.mf2448

CS106离散结构IICMP.cfoFND.mfoMAA.md2748

CS220计算机体系结构CMP.cf154816

CS226操作系统和网络CMP.cf164816

CS270数据库CMP.cfoMAA.md134816

NT272工程经济学FND.ef□FND.ec。MGT.pp1332

NT181团队激励和沟通PRF.psy,PRF.com。MAA.rsd11168

NT291软件工程职业实践PRF.pr»QUA.cc1416

SE101软件工程与计算ICMP.cf0CMP.ctoCMP.tKFND.efPRF.pr。MAA.tm。MAA.rfd,354816

MAA.er<>MAA.rsd。DES.con®DES.str®DES.dd。VAV.tst

SE102软件工程与计算IICMP.cfoPRF.pr。MAA.md。MAA.rv。DES.str。DES.dd。364816

DES.ste.VAV.fndoVAV.rev。VAV.tst。VAV.par。EVO.pro

SE200软件工程与计算IIICMP.cf0CMP.ctoFND.ef«PRF.pr»MAA.md。DES.con。384816

DES.sir。DES.ar。DES.hcioDES.ev。VAV.fnd«VAV.revo

PRO.imp。MGT.con

SE201软件工程导论CMP.ctoFND.efoPRF.pr。MAA.md。MAA.tmoMAA.rfd。MAA.er0344816

MAA.rsdoMAA.rv。DES.con。DES.str。DES.ar。DES.hcio

DES.ddoDES.ste»VAV.fndoVAV.rev„VAV.tst。VAV.par。

PRO.imp0MGT.con

SE211软件代码开发技术CMP.ctoCMP.tloCMP.fm。FND.mf»MAA.md364816

SE212人机交互的软件工程方法CMP.ctoFND.efoPRF.psy。MAA.md0MAA.tm。MAA.rfdo253216

DES.hcioVAV.fndoVAV.rev。VAV.tsl«VAV.hetoQUA.pda

SE213大型软件系统设计与软件MAA.mdoMAA.tm。DES.str。DES.ar0EVO.pro。EVO.aco283216

体系结构MGT.con«MGT.pp。MGT.cm

SE221软件测试MAA.rfd,.VAV.fndoVAV.rev0VAV.tst«VAV.par。QUA.pda23328

SE311软件设计与体系结构CMP.ctoMAA.md。MAA.tm。DES.str。DES.ar..DES.dd。333216

DES.ste«EVO.pro6EVO.ac

SE312软件详细设计CMP.ct0CMP.11eCMP.fm。MAA.tmoDES.dd。EVO.ac263216

SE313软件工程的形式化方法CMP.fm。FND.mfoMAA.mdoMAA.tm。MAA.rsdoMAA.rv®DES.dd。343216

DES.ste,EVO.ac

SE321软件质量保证与测试FND.mfoVAV.fndoVAV.rev0VAV.tst。VAV.par。PRO.con。373216

QUA.stdorfdQUA.pro。QUA.pea。QUA.pda

SE322软件需求分析MAA.tmoMAA.rfdoMAA.er。MAA.rsdoMAA.rv。MAA.rfd18328

SE323软件项目管理MAA.mgtoPRO.con。PRO.imp。MGT.con。MGT.pp。MGT.per«26328

283

课程学时

参考学时

课程最小授实验

课程名称包含的知识单元

编号核心课学时

学时学

111

MGT.ctloMGT.cm

SE324软件过程与管理MAA.er。MAA.rsd。MAA.rfd0EVO.pro,PRO.con0PRO.imp。39488

QUA.cc。QUA.stdoQUA.pro。QUA.pea。QUA.pda。MGT.pp。

MGT.per-MGT.ctl

SE400软件工程综合实习CMP.ctoPRF.psy0PRF.com。PRF.pr。MAA.tm。MAA.er。28420

(含毕业设计)MAA.rsd0MAA.rv。DES.stroDES.ar«DES.hei,DES.dd。

DES.ste0VAV.rev。VAV.tstoMGT.pp。MGT.per。MGT.cm

(注:实验学时指课内授课学时,具体安排时需要按课内外学时比例进行相应扩充。)

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

其中,程序设计基础(CS101)、面向对象方法学(CS102)和软件工程导论(SE201)是一组计算机

科学优先课程;软件工程与计算I(SE101)、软件工程与计算II(SE102)和软件工程与计算HI(SE200)

是一组软件工程优先课程。制定具体教学计划时只选其中一组。

284

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

为两组。其中,软件代码开发技术(SE211)、软件设计与体系结构(SE311)、软件质量保证与测试(SE321)、

软件需求分析(SE322)和软件项目管理(SE323)是一组;大型软件系统设计与软件体系结构(SE213)、

软件测试(SE221)、软件详细设计(SE312)、软件工程的形式化方法(SE313)和软件过程与管理(SE324)

是另一组。制定具体教学计划时只选其中■组。

本规范根据计算机科学优先或软件工程优先,以及软件工程核心课程的不同组合方式,设计了四种参

考教学计划方案,如图3-1所示,供各院校参考。

四种教学计划的课程设置方案分别如下(见附录3):

1)计算机科学优先课程(A)+共性基础和专业课程(C)+软件工程核心课程组合I(D)

2)计算机科学优先课程(A)+共性基础和专业课程(C)+软件工程核心课程组合11(E)

3)软件工程优先课程(B)+共性基础和专业课程(C)+软件工程核心课程组合1(D)

4)软件工程优先课程(B)+共性基础和专业课程(C)+软件工程核心课程组合11(E)

4.软件工程专业的实践教学内容

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论