《软件工程的知识体系.ppt》由会员分享,可在线阅读,更多相关《软件工程的知识体系.ppt(26页珍藏版)》请在第壹文秘上搜索。
1、软件工程的知识体系学科导论系列讲座一、软件工程学科概况 按照CCSE2004发布的报告,软件工程学科由10个知识域构成:(1) 软件需求 软件需求描述解决现实世界某个问题的软件产品及对软件产品的约束,涉及需求获取、需求分析、建立需求规格说明和确认,领域问题建模,软件开发的技术、经济和时间可行性分析。软件需求直接影响软件开发全过程。(2) 软件设计 设计是软件工程最核心的内容。软件设计由软件体系结构设计、软件详细设计两种活动组成。它涉及软件体系结构、构件、接口,还涉及软件设计质量分析和评估、软件设计的表示、软件设计策略和方法等。(3) 软件构造 通过编码、单元测试、集成测试、调试、确认等活动,生
2、成可用的、有意义的软件。软件构造除要求符合设计功能外,还要求控制和降低程序复杂性、预计变更、进行程序验证和制定软件构造标准。软件构造与软件配置管理、工具和方法、软件质量密切相关。(4) 软件测试 测试是软件生存周期的重要部分,涉及测试标准、技术、度量和测试过程。测试的目的是标识缺陷和问题,改善产品质量。软件测试覆盖整个软件开发过程。正确的软件工程质量观是预防、避免缺陷和问题。测试的重点是建立一个有限的测试用例集,动态地验证程序是否达到预期行为。(5) 软件维护 软件维护是软件生存周期的组成部分。软件维护要支持系统快速地、便捷地满足新的需求。基于服务的软件维护越来越受到重视。软件组织力图使软件运
3、营时间更长,软件维护成为令人关注的焦点。(6) 软件配置管理 软件配置管理是一种标识、组织和控制修改的技术,维护整个系统生命周期中软件配置的一致性和可追踪性。内容包括配置管理过程的管理、软件配置鉴别、配置管理控制、配置管理状态记录、配置管理审计、软件发布和交付管理等。(7) 软件工程管理 运用管理活动,如计划、协调、度量、监控、控制和报告,确保软件开发和维护是系统的、规范的、可度量的。它涉及基础设施管理、项目管理、度量和控制计划三个层次。度量是软件管理决策的基础。近年来软件度量的标准、测度、方法、规范发展较快。(8) 软件工程过程 指生产一个最终能满足用户需求且达到工程目标的软件产品所需要的步
4、骤。软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。(9) 软件工程工具和方法 软件工程工具分为:需求工具、设计工具、构造工具、测试工具、维护工具、配置管理工具、工程管理工具、工程过程工具、软件质量工具等。 软件工程方法分为:启发式方法,包括结构化方法、面向数据方法、面向对象方法和特定域方法;形式化方法;原型方法,原型方法帮助确定软件需求、软件体系结构、用户界面等。(10) 软件质量 软件质量涉及软件质量需求、软件质量度量、软件属性检测、软件质量管理技术和过程等。 SWEBOK还把软件工程相关学科列为知识域,它们是软件工程发展不可或缺的部分。二
5、、软件工程学科的相关学科 软件工程学科的理论基础是数学、计算机科学。软件工程的研究和实践涉及人力、技术、资金、进度的综合管理,是开展最优化生产活动的过程;软件工程必须划分系统的边界,给出系统的解决方案。因此,软件工程的相关学科有计算机科学与技术、数学、计算机工程、管理学、系统工程和人类工程学等。 软件工程强调采用工程化的方式开发软件,软件工程具有下列工程特征:n1) 通过成本和收益的折衷分析调整软件工程策略。n2) 能对软件工程的质量、成本、工作量、进度等进行度量并根据经验和实验数据进行估算。n3) 依靠团队,强调团队的效率和纪律性。n4) 选择和使用合适的工具。n5) 通过专业协会和最佳实践
6、提高个人能力。n6) 重用设计和设计制品。 工程活动以设计为中心,设计在软件工程活动中占有十分重要的地位。为了满足项目需求,工程设计过程必须对潜在的冲突和约束进行折衷。工程设计涉及技术、经济、法律和社会等方面的问题。 软件工程更关注抽象、建模、信息组织和表示、变更管理等。软件工程在产品的设计阶段必须考虑实现和质量控制。持续的进化是软件产品的重要特征。软件工程设计的关键是工程设计决策,它将用于软件抽象的各个层次。重用和基于构件开发在工程设计实践中越来越受到重视。 软件开发是一个项目目标实现的过程,管理科学的目标性和约束性原则在软件工程中得到重要的体现。在满足用户需求的前提下,软件工程重点在软件产
7、品及其开发过程的成本、进度、质量和文档。软件的特殊性增大了管理的难度。因此,软件工程对需求、计划、成本、风险、过程和质量进行度量、跟踪、管理与控制。三、软件工程专业教育知识体系 “软件工程”是一门用系统的、规范的、可度量的方法开发、运行和维护软件的学科。主要的教育知识领域包括:计算基础、数学和工程基础、职业实践、软件建模与分析、软件设计、软件验证与确认、软件进化、软件过程、软件质量和软件管理。软件工程教学既重视理论知识和较高层次分析问题、解决问题的方法,也重视软件设计和工程实践。(1) 软件工程专业教育知识体系概貌 软件工程教育知识体系由三个层次组成: 知识领域(Area) 知识单元(Unit
8、) 知识点(Topic) 最高层是知识领域(Area),代表一个特定的学科子领域,用于组织、分类和描述软件工程知识体系的顶层概貌。每个知识领域由前缀SE-加该领域的英文缩写词表示,比如SE-CMP代表计算基础,SE-MAA代表软件建模与分析。n知识领域之下又划分成更小的知识单元(Unit),代表各个知识领域中的不同方向,用知识领域缩写后面加小写英文字母后缀表示。例如,MAA.er表示知识领域SE-MAA中的“需求获取”知识单元。n知识点(Topic)是整个体系结构中的最底层,代表知识单元中单独的主题模块。 软件工程专业共有10个知识领域,42个知识单元,建议最小核心学时数为494。(2) 软件
9、工程专业教育知识体系包括10个知识领域:nSE-CMP 计算基础nSE-FND 数学和工程基础nSE-PRF 职业实践nSE-MAA 软件建模与分析nSE-DES 软件设计nSE-VAV 软件验证与确认nSE-EVO 软件进化nSE-PRO 软件过程nSE-QUA 软件质量nSE-MGT 软件管理(3) 每个知识领域包含的核心知识单元 软件工程教育知识体系概要说明了各个知识领域、知识单元、所需的最小建议学时等。知识体系各领域的详细情况列在表1中。表内各知识单元后面的括弧内给出了它们各自的核心学时数。(4) 知识体系中的应用知识领域 作为软件工程专业本科教育的一部分,学生应该在一个或多个应用领域拥有专长,为此必须学习一些上述核心单元之外的知识。学生可以专注于上述10个知识领域中的一个或多个,也可以专注于表2所列16个应用领域知识单元中的45个。软件工程的学习方法软件工程的学习方法模仿类比与联想构思、设计、实施、运行实践、实践、再实践软件工程从业人员的基本要求软件工程从业人员的基本要求严谨遵循规范善于沟通与合作外语好