软件工程 1968年由NATO(北大西洋公约组织)召开的学术会议上,首先提出了“软件工程”概念。 ●软件技术面临的问题 s95有1000万行代网 Exchange2000Windows2000 的250J 开发人员 测试人员 50人 软件工程——是指把系统的、规范化的、可以度量的方法运用于软件的开发、运行和维护的过程 ■工程方法:人们利用技术(或工具)、技能通过有组织活动完成契约规定的目标,即按预定完工期交付合 格成品 工程要素:人力、资金、技术 ■工程目标:在给定的资金、限制的时间内,完成符合相应标准的产品 软件工程的目标:提高软件质量与生产率,最终实现软件的工业化生产。 软件需求方最关心的问题是质量 软件供应方最关心的问题是生产率 质量与生产率之间有着内在的联系,高生产率必须以质量合格为前提。 软件工程技术的两个明显特点:强调规范化强调文档化 软件产品:软件=程序+文档 在选定的软件/硬件平台上的程序集合,能满足预定的功能、性能需求。有全套的说明、使用、维护的文档 软件生存周期 40—20-_40规律:工作量方面中,需求、设计占40%,软件构造占20%,测试及维护占40% 需求分析 用户的需要ned变为开发目标需求 requirement 建模抽象出能实现业务工程的计算机能实现的模型 开发项目性质:新概念型、新产品型、产品改进型、产品维护型 成果:需求规格说明、可行性报告、初步用户手册 需求规范,开发者的宪法,测试相符性的依据 初步用户手册,外部规范 设计 构思一个软件结构能满足规格说明定义的功能和性能要求 软件的性能潜藏在分析设计过程中 设计的两个阶段: 顶层(体系结构)设计:以模块s对象相互间关系形成的体系结构作为整体的解决 方案。功能和性能纳入到模块对象中 详细设计:选定数据结构和做算法设计,完成各模块或对象设计,既有功能,又有性 设计方法 传统的:面向功能,面向数据 面向对象:OO的事件驱动的对象交互 设计技术,抽象,模块化,数据隐藏,内聚性,耦合性
软件工程 1968 年由 NATO (北大西洋公约组织)召开的学术会议上,首先提出了“软件工程”概念。 ⚫软件技术面临的问题 复杂性 生产率 例:Windows95有1000万行代码 Windows2000有5000万行代码 Exchange2000和 Windows2000开发人员结构 测试人员 350人 约3200人 开发人员 140人 约1700人 项目经理 25人 约250人 Exchange2000 Windows2000 软件工程——是指把系统的、规范化的、可以度量的方法运用于软件的开发、运行和维护的过程 工程方法:人们利用技术(或工具)、技能通过有组织活动完成契约规定的目标,即按预定完工期交付合 格成品。 工程要素:人力、资金、技术 工程目标:在给定的资金、限制的时间内,完成符合相应标准的产品。 软件工程的目标: 提高软件质量与生产率,最终实现软件的工业化生产。 软件需求方最关心的问题是质量 软件供应方最关心的问题是生产率 质量与生产率之间有着内在的联系,高生产率必须以质量合格为前提。 软件工程技术的两个明显特点:强调规范化 强调文档化 软件产品:软件=程序+文档 在选定的软件/硬件平台上的程序集合,能满足预定的功能、性能需求。有全套的说明、使用、维护的文档。 软件生存周期 40—20—40 规律:工作量方面中,需求、设计占 40%,软件构造占 20%,测试及维护占 40% ➢ 需求分析 用户的需要 need 变为开发目标需求 requirement 建模抽象出能实现业务工程的计算机能实现的模型 开发项目性质:新概念型、新产品型、产品改进型、产品维护型 成果:需求规格说明、可行性报告、初步用户手册 需求规范,开发者的宪法,测试相符性的依据 初步用户手册,外部规范 ➢ 设计 构思一个软件结构能满足规格说明定义的功能和性能要求 软件的性能潜藏在分析设计过程中 设计的两个阶段: 顶层(体系结构)设计:以模块对象相互间关系形成的体系结构作为整体的解决 方案。功能和性能纳入到模块对象中 详细设计:选定数据结构和做算法设计,完成各模块或对象设计,既有功能,又有性 能 设计方法: 传统的:面向功能,面向数据 面向对象:OO 的事件驱动的对象交互 设计技术,抽象,模块化,数据隐藏,内聚性,耦合性
构造 软件构造是用某种编程语言编写源程序或以界面工具构造出应用界面,即现代意义编程 使用程序对象,力图方便,简易,并提供帮助 原则减低复杂性,利于结构化确认,防止多样性,充分利用标准 好的编码环境应支持“一边编码、一边测试” 测试 测试是交付的唯一手段(测试报告、测试结果评价) 测试目的:找瑕疵。完全测试不可能,测试回答的是规范满足程度 测试(系统测试,确认测试,集成测试,单元测试) 所有测试要在项目计划中作出子计划 维护 交付项目后的阶段即开始 维护类型:改正性维护,适配性维护,改进性维护 维护是支持业务过程变更的重要手段 第二章软件需求分析 需求分析的步骤 2.1需求分新的任务 准确地定义未来系统的目 定为了清足用户的需 什当前 规格说明书》规范的 形式准确地亳 棋型化 物理数化 系统 恩、涉及的几个闶题 型 模型冂需 如何定义系统需求? 如何识删、获取雷求? 你能够取何种手裊与用户进行交流沟? 逻辑 心何为需求? 目标具体化物理 模型 模型目标
➢ 构造 软件构造是用某种编程语言编写源程序或以界面工具构造出应用界面,即现代意义编程 使用程序对象,力图方便,简易,并提供帮助 原则 减低复杂性,利于结构化确认,防止多样性,充分利用标准 好的编码环境应支持“一边编码、一边测试” ➢ 测试 测试是交付的唯一手段(测试报告、测试结果评价) 测试目的:找瑕疵。完全测试不可能, 测试回答的是规范满足程度 测试(系统测试, 确认测试, 集成测试, 单元测试) 所有测试要在项目计划中作出子计划 ➢ 维护 交付项目后的阶段即开始 维护类型:改正性维护, 适配性维护, 改进性维护 维护是支持业务过程变更的重要手段 第二章 软件需求分析 准确地定义未来系统的目标,确定为了满足用户的需 求系统必须做什么。用 规范的 形式准确地表达用户的需求。 思考、涉及的几个问题 如何定义系统需求? ❖如何识别、获取需求? 你能够采取何种手段与用户进行交流沟通? ❖何为需求建模? 步骤: 收集需求 建立模型 细化模型 2.1 需求分析的任务 需求分析的步骤 当前 系统 目标 系统 物理 模型 逻辑 模型 逻辑 模型 物理 模型 模型化 抽象化 具体化 实例化 怎 么 做 做 什 么 当前 系统 目标 系统 需 求 定 义