软件工程专业导论 范 锐 广东海洋大学软件学院 讲授内容 1.专业背景、目标和发展趋势 2.专业知识体系 3.专业的思想、方法和过程 4.专业的建模、环境和工具 5.专业人才岗位和能力要求 6.专业课程体系介绍与分析 7.学好专业的方法研讨 1 软件工程背景、目标和发展趋势 1 软件特性与问题 2 软件工程的产生 3 软件工程的目标要求 4 软件工程发展趋势 2 软件工程知识体系 SE的问题空间 知识结构: SWEBOK:学科的基石 SEEK:软件工程本科教学计划指南 SE的三层次知识结构 SE的问题空间 知识结构 SWEBOK:软件工程学科的基石 SEEK:制定软件工程本科教学计划的指南 软件工程本科的三层次知识结构 1)SWEBOK:软件工程学科的基石 SWEBOK的十一个领域 软件需求软件设计 软件构造软件测试 软件维护软件配置管理 软件工程管理软件工程过程 软件工程工具和方法 软件质量相关知识 SWEBOK:软件工程学科的基石 软件工程的相关学科 认知科学和人的因素计算机科学 计算机工程管理和管理科学 项目管理系统工程 数学 软件工程作为知识领域被其他计算学科引用 计算机科学计算机工程计算机信息系统计算机信息技术 ……… 2)SEEK:制定软件工程本科教学计划的指南 ⑴SEEK的主要框架知识领域、知识单元、知识点知识单元的参考学时 ⑵学生掌握知识点的方式知识 理解应用 ⑶标识知识点的重要程度核心 必修选修⑷用SEEK制定课程计划的途径 (1)SEEK的10个知识领域 494 ①计算基础172 ②数学和工程基础 89 ③职业实践35 ④软件建模与分析 53 ⑤软件设计45 ⑥软件验证与确认 42 ⑦软件进化10 ⑧软件过程13 ⑨软件质量16 ⑩软件管理19 (2)应用知识领域 以网络为中心的系统信息系统和数据处理 金融和电子商务系统 容错和可存活系统 高安全系统 安全攸关系统 嵌入式和实时系统 生物学系统 科学计算系统 电信系统 航空和交通系统 工业过程控制系统 多媒体、游戏和娱乐系统 小型移动平台系统 基于Agent的系统 中文信息处理……… 3)SE三层次知识结构 3 软件工程思想、方法和过程 1 软件工程核心思想 2 软件工程基本方法 3 软件工程过程 4 软件工程模型、环境和工具 1 软件建模 2 软件开发的组织、文化和基础设施 3 常用软件分析设计和开发工具 5 软件工程专业人才岗位与能力要求 1 软件企业岗位分析 2 能力要求 3 培养定位 4 软件人员职称考试 2.能力要求 软件工程师的能力和品质 ①能运用理论、模型和技术对问题进行识别和分析,能进行软件设计、开发、实现、验证和文档化,交付高质量的软件产品 ②能理解各种工程设计方法的优缺点,根据情况选择符合道德、社会、法律、安全和经济规范的合适方法 能力要求 ③重视产品交付期限、面对有限的资源、系统和组织能对各种矛盾进行协调、折衷和决策 ④能遵守纪律、交流和合作、能够评价人和团队的能力,了解团队和团队行为及角色 ⑤外语的表达与交流能力 人才培养的基本定位 培养目标 软件工程师 学生毕业后,应具备软件工程师从事软件工程实践所需要的素质、知识和能力 软件工程专业的学制一般为4年,授予工学学士学位 6 软件工程专业课程体系分析规范设计五组课程,以此为基础制定参考教学计划 1)课程设计 A 计算机科学优先课程 B 软件工程优先课程 C 共性基础和专业课程 D 软件工程核心课程一组E 软件工程核心课程二组 A 计算机科学优先课程 109 程序设计基础39, 48/16 面向对象方法学36, 48/16 软件工程导论34, 48/16 B 软件工程优先课程 109 软件工程与计算Ⅰ35,48/16 软件工程与计算Ⅱ36,48/16 软件工程与计算Ⅲ38,48/16 C 共性基础和专业课程 ①数学基础课程 51离散结构Ⅰ24, 48离散结构Ⅱ27, 48 ②技术基础课程 75数据结构和算法31, 48/16计算机体系结构15, 48/16操作系统和网络16, 48/16数据库13, 48/16 共性基础和专业课程 ③非技术基础课程 38工程经济学13,32 团队激励和沟通11,16/8 软件工程职业实践14,16 ④共性专业课程53 人机交互的软件工程方法25,32/16 软件工程综合实习(含毕业设计)28,420 D 软件工程核心课程一组 150 “软件构造技术”36,48/16 “软件设计与体系结构” 33,32/16 “软件质量保证与测试” 37,32/16 “软件需求分析”18,32/8 “软件项目管理”26,32/8 E 软件工程核心课程二组 150 “大型软件系统设计与软件体系结构”28,32/16 “软件测试”23,32/8 “软件详细设计”26,32/16 “软件工程的形式化方法” 34,32/16 “软件过程与管理”39,48/8 2)制定参考教学计划 ⑴ 制定软件工程教学计划的原则 ⑵ 中国高等学校本科生在校学时分析 ⑶ 四种参考教学计划 ⑴ 制定软件工程教学计划的原则 借鉴CCSE2004,满足SEEK最小核心要求 加强计算机学科基础 增强软件工程能力培养 加强团队精神和交流能力 与应用领域相结合 课内/外相结合 符合中国高等教育的实际情况 ⑵ 中国高等学校本科生在校学时分析 在校166周 共8个学期 最后一学期实习和毕业设计 每学期课内外总学时9学时/天x5天/周x22周=990学时 七个学期总学时 990学时x7=6930学时 课内学时减少课外学时应増加,反之课内学时增加课外学时应减少。
公共课学时分析 数学 (高等数学、线性代数、概率统计)250 海洋类知识 200 外语 250 政治 250 体育 100 课内学时总计1050 课内学时:课外学时 = 1:2 课内外学时总计3150 ⑶ 四种参考教学计划 ⑷ 软件工程专业课时分析 6.要注意的问题 1 教学计划要覆盖核心知识点 2 加强实践性教学环节、熟练使用软件工具 3 强调工程特点、遵循工程规律 质量、成本、进度 、人员、过程、管理 4 提高从业人员素质、发挥团队作用、加强组织建设 要注意的问题 5 强调英语的交流和应用能力 6 充分发挥各高校的优势和潜能,与应用领域相结合,培养具有不同特色的复合型软件人才,适应信息社会不同领域的需要海洋、航空、航天、石油、气象、金融、农业、医疗设备、服装设计、游戏、安全、…… 7 学好软件工程专业的方法研讨 网络管理员 程序员 (原程序员、 初级程序员) 初级资格 网络工程师 软件评测师 软件设计师 (原高级程序员) 中级资格 项目管理师 (原系统分析员) 设计师 信息系统 系统分析师 系统架构 高级资格 计算机网络 计算机软件 专业领域 信息系统运行管理员 多媒体应用制作 技术员 电子商务技术员 初级资格 信息系统监理师 数据库系统工程师 信息系统管理工程师 多媒体应用设计师 嵌入式系统设计师 计算机辅助设计师 电子商务设计师 中级资格 项目管理师 (原系统分析员) 设计师 信息系统 系统分析师 系统架构 高级资格 信息系统 计算机应用技术 专业领域 信息处理技术员 初级资格 信息技术支持工程师 中级资格 项目管理师 (原系统分析员) 设计师 信息系统 系统分析师 系统架构 高级资格 信息服务 专业领域 (A)计算机科学优先课程 (B)软件工程优先课程 (C) 共性基础和专业课程 (D)软件工程核心课程一组 (E)软件工程核心课程二组 计划1 A C D 计划2 A C E 计划3 B C D 计划4 B C E 选修课可选十五个应用领域, 或其他内容 A D B C E 2700 1:2 900 最大课内课时 2674 1:2.5 764 一般课内课时 1976 1:3 494 最小课内课时 总计 内外课时比 课时 课内课时模式 三种参考课时的教学模式 专业课内外总学时(七个学期)6930 -3150=3780 广东海洋大学软件学院 范锐 * 理论 原理 创新 应用 部署 配置 开发 倾向理论 倾向应用 组织系统行为 应用技术 软件开发 系统平台结构 计算机硬件体系 SE 摘自CC2005 软件工程知识体系指南(SWEBOK2004) 软件需求 软件需求基础 需求过程 软件获取 需求分析 需求规格说明 需求确认 实际考虑 软件构造 软件构造基础 管理构造 实际考虑 软件测试 软件测试基础 测试级别 测试技术 需求分析 测试度量 测试过程 软件维护 软件维护基础 软件维护关键问题 维护过程 维护技术 软件工程知识体系指南(SWEBOK2004) 软件需求 软件需求基础 需求过程 软件获取 需求分析 需求规格说明 需求确认 实际考虑 软件设计 软件设计基础 软件设计关键问题 体系结构 设计质量分析 设计符号 策略与方法 软件构造 软件构造基础 管理构造 实际考虑 软件测试 软件测试基础 测试级别 测试技术 需求分析 测试度量 测试过程 软件维护 软件维护基础 软件维护关键问题 维护过程 维护技术 配置管理 过程管理 配置标识 配置控制 状态报告 配置审计 发布管理 项目管理 范围定义 项目计划 项目实施 评审评价 项目收尾 工程度量 软件过程 实施变更 过程定义 过程评定 过程度量 工具方法 软件质量 相关知识 计算机工程 计算机科学 管理 数学 项目管理 质量管理 人类工程学 系统工程 配置管理 过程管理 配置标识 配置控制 状态报告 配置审计 发布管理 项目管理 范围定义 项目计划 项目实施 评审评价 项目收尾 工程度量 软件过程 实施变更 过程定义 过程评定 过程度量 工具方法 软件质量 相关知识 计算机工程 计算机科学 管理 数学 项目管理 质量管理 人类工程学 系统工程 配置管理 过程管理 配置标识 配置控制 状态报告 配置审计 发布管理 项目管理 范围定义 项目计划 项目实施 评审评价 项目收尾 工程度量 软件过程 实施变更 过程定义 过程评定 过程度量 工具方法 软件工具 需求工具 软件工程方法 启发式方法 形式化方法 原型方法 软件质量 质量基础 质量过程 实际考虑 相关知识 计算机工程 计算机科学 管理 数学 项目管理 质量管理 人类工程学 系统工程 设计工具 构造工具 测试工具 维护工具 配置管理工具 质量管理工具 项目管理工具 其他工具问题 问题定义 软件需求 总体设计 详细设计 编程调试 运行维护 定义阶段 开发阶段 维护阶段 软件经理/主管 系统测试组 组长 系统设计组 组长 软件设计组 组长 软件质量保证 SQA 软件配置管理组 系统工程师1 系统工程师2 系统测试 工程师 。
。。。 系统测试 工程师 。。。。 软件结构 工程师 设计 工程师 。。。。 软件配置 工程师 软件文档 工程师 。。。。 高级软件人才职位1 软件项目经理 2 需求分析师 3 软件构架师 4 软件测试师 5 软件工程师 软件项目经理 ?软件项目经理是整个项目的协调者和组织者,主要的职能是保证开发团队协调一致地工作。对内:做好团队内的沟通,保证大家的工作协调一致,不会产生冲突;对外:团队和客户沟通的桥梁。了解客户对项目功能和进度的期望要求,并根据团队的开发情况及时给出反馈,才能保证项目进展比较顺畅。 需求分析师 软件需求分析师从用户的业务中提取出软件系统能够帮助用户解决的业务问题,通过对用户业务问题的分析,规划出软件产品。 负责进行产品/项目需求调研、需求分析、业务建模、系统建模; 负责编写产品/项目需求调研报告,撰写需求规格说明书。 软件架构师 软件架构师在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。
他必须对开发技术非常了解,并且需要有良好的组织管理能力。可以这样说,一个架构师工作的好坏决定了整个软件开发项目的成败。 软件测试工程师 软件测试工程师通过编写测试方案并按照测试方案和流程对软件产品进行功能和性能测试,检查产品是否有缺陷,性能是否稳定,并给出相应的评价的那些专业技术人员。作为软件开发的重要环节,软件测试越来越受到人们的重视。 软件工程师 软件工程师既要有熟练的掌握软件编程的动手操作能力,又要了解对软件工程的规范,能进行软件开发和基本的软件架构能力。 广东海洋大学软件学院 范锐
发表回复