软件工程东北大学信息科学与工程学院课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件工程东北大学信息科学与工程学院课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 东北大学 信息科学 工程学院 课件
- 资源描述:
-
1、1软件工程整 体 概 述THE FIRST PART OF THE OVERALL OVERVIEW,P L E A S E S U M M A R I Z E T H E C O N T E N T第一部分3Chapter 1 软件工程概述 1.1 软件的概念 1.2 为什么学习软件工程 1.3 什么是软件工程 1.4 课程结构 1.5 参考书目 1.6 教材案例-在线宠物商店41.1 软件的概念(1/2)软件:新的驱动力 In the early 1980s,a front page story in Business Week magazineBanking&Finance Govern
2、ment Insurance Manufacturing Media&Publishing Retail Travel Utilities 51.1 软件的概念(2/2)定义Program+Data Structure+Documents Wang Jiahua,软件工程,pp.1 软件的性质复杂性难以描述性不可见性变化性风险性易于副本的大批量生产强合作性61.2 为什么学习软件工程(1/4)软件危机爆发时间 1967年NATO的研究组首次提出 1968年NATO软件工程会议首次提出软件工程概念 1968-2006,近40年“危机”一词软件危机依然存在Crisis!71.2 为什么学习软件工程
3、(2/4)软件危机面对的问题 艺术 vs.标准化 错误的发现 软件需求获取 软件支持和维护 开发速度 vs.市场需求 开发周期过长、开发成本过高 研发风险 软件Trouble 软件开发中的复杂的协作(人员,问题,过程)不同角色的软件神话(管理者,用户,开发者,大众)81.2 为什么学习软件工程(3/4)采用什么方法缓解危机硬件?建筑学?拍电影?软件工程!91.2 为什么学习软件工程(4/4)挑战101.3 什么是软件工程(1/4)Fritz Bauer:“建立和应用完善的工程原理以便经济地得到在真实机器上可靠和有效运行的软件重原理、轻技术、无度量 IEEE:(1)应用系统的有规则的定量的方法开
4、发、使用和维护软件;即应用工程于软件。(2)研究(1)中的方法粗糙111.3 什么是软件工程(2/4)Definition软件工程是以质量为核心,为了经济地开发满足客户需求的软件而研究、建立和应用的系统化的、有规则的、可度量的和可控制的工程原则、方法,涉及到软件过程、项目管理、开发方法、软件复用、软件度量、开发工具,甚至企业文化等各个方面。Guo Jun121.3 什么是软件工程(3/4)发展历程(1)131.3 什么是软件工程(4/4)发展历程(2)141.4 课程结构(1/2)Chapter 1软件工程概述 Chapter 2过程和活动 Chapter 3软件过程模型 Chapter 4问
5、题定义和可行性研究的方法 Chapter 5 需求分析方法 Chapter 6 软件设计方法 Chapter 7软件实施和测试方法 Chapter 8项目管理方法151.4 课程结构(2/2)实验教学主要内容需求采集,角色分配,制定计划(4)系统分析与设计(4)系统分包与集成,配置管理(4)系统测试与交付(4)基于团队合作的项目模拟开发(8)161.5 参考书目(1/2)教材软件工程及应用/东北大学出版社 2007年5月 参考推荐软件工程/东北大学出版社/王家华/中面向对象的软件工程/机械出版社/Timothy C.Lethbridge/加171.5 参考书目(2/2)181.6 教材案例-在
6、线宠物商店(1/3)宠物大战 SUN Vs.Microsoft 主要功能:列举宠物商品类别和提供搜索功能 显示宠物列表和宠物具体信息 提供用户登录验证、注册新用户和维护用户信息等功能 管理购物车 实现结帐处理 查询订货情况 统计销售记录191.6 教材案例-在线宠物商店(2/3)问题(1/2):从何开始?采用什么技术?需要多少时间?需要多少人?哪些角色?能否并行、协作地开发?人力应该如何高效率的投入?开发计划?直接编码?需求?设计方案和模型?人机交互的界面?功能优先级?201.6 教材案例-在线宠物商店(3/3)问题(2/2):开发风险?可扩展性?复用?设计模式?编码规范?需求变更?测试?开发
7、过程?软件度量?最后期限?21Chapter 2 过程和活动 2.1 软件过程的概念 2.2 问题定义活动 2.3 可行性研究活动 2.4 需求分析活动 2.5 设计活动 2.6 实施活动 2.7 测试活动 2.8 部署活动222.1 软件过程的概念(1/9)软件工程是一种层次化的技术 A Quality FocusProcessMethodsCASE Tools232.1 软件过程的概念(2/9)软件过程的定义软件过程由开发或维护软件及其相关产品的一系列活动构成,这些活动从不同的方面定义了软件开发中的步骤、交付物、涉众及其职责等流程要素 242.1 软件过程的概念(3/9)为什么要引入软件过
8、程?(1/2)软件工作的范围软件的开发风险(规模、周期、复杂度)涉及整个软件生存周期扩展到少,可预知、可控多,不易预知,不易控制发展到只考虑编写程序252.1 软件过程的概念(4/9)为什么要引入软件过程?(2/2)软件开发的角色软件标准团队中更多的角色扩展到软件产品的标准化软件开发过程的标准化扩展到程序员262.1 软件过程的概念(5/9)Build theSystem控制 预算,计划表,标准输入需求资源人员,工具输出代码,文档Process控制/约束输入资源输出272.1 软件过程的概念(6/9)WhatHowChange282.1 软件过程的概念(7/9)292.1 软件过程的概念(8/
9、9)Basic Activities(基础活动)问题定义,需求,规约,设计,实现,软件验证,集成,软件演进/维护,退役 Umbrella Activities(辅助性活动)软件项目跟踪和控制,正式的技术复审,软件质量保证,软件配置管理,文档编制,复用管理,度量,风险管理,Something that covers or protects.保护物覆盖或保护的事物302.1 软件过程的概念(9/9)公共过程框架Common Process FrameworkFramework ActivitiesTask SetsTasksMilestones,deliverablesSQA pointsUmbr
10、ella Activities312.2 问题定义活动(1/3)What问题定义是软件开发过程当中的一个定义要解决的问题并确定系统范围的活动。Why形成一个早期判断,达成一个最初共识 When项目日程表的最前端占整个软件开发时间中的比例很小 322.2 问题定义活动(2/3)Who系统分析师、出资方领导、出资方技术人员、开发方领导和项目经理 Where客户现场 332.2 问题定义活动(3/3)How342.3 可行性研究活动(1/3)What可行性研究是以相对短的时间和相对低的成本来确定给定的问题在其约束条件内是否有解、有几种解以及哪个是最佳解。Why必须要先确立满足约束条件的方案是否存在、
11、是否可行、是否最优,然后再在最优方案的基础上进行开发 352.3 可行性研究活动(2/3)When 项目的早期阶段 占整个软件开发时间中的比例较小,但比问题定义活动所消耗的时间长 Who 系统分析师、出资方领导、出资方技术人员、用户代表、开发方领导、项目经理、架构设计师、领域专家、财务人员、市场人员、软件质量保证(SQA,Software Quality Assure)人员等 Where 客户现场。362.3 可行性研究活动(3/3)How How(1/2)372.4 需求分析活动(1/7)What(1/3)需求:主要是在产品构建之前确定的系统必须符合的条件或具备的功能,它们是关于系统将要完成
12、什么工作的一段描述语句,它们必须经过所有相关人员的认可,其目的是彻底地解决客户的问题。需求文档 一组需求的集合 用户需求文档、系统需求文档和软件规约文档 382.4 需求分析活动(2/7)What(2/3)392.4 需求分析活动(3/7)功能性需求和非功能性需求 功能性需求:描述了系统应该做什么,即具备的功能或服务。(输入、输出和计算等)非功能性需求:描述了系统必须遵守的约束条件。(响应时间、吞吐量、可靠性、可移植性、可扩展性、易用性、安全性、资源要求、可复用性、技术要求、文化和政策需求、法律需求、道德要求、隐私要求,等等)描述需求的标准 是完整的、正确的、必要的、无歧义的、可行的、可验证的
13、以及被设置了优先级别的。What(3/3)402.4 需求分析活动(4/7)Why需求不一致、模糊、矛盾需求变更客户忽略领域常识/知识/术语 客户集中于现有系统的不足之处,而忽略了系统要实现的关键功能零碎、无组织、不明确、表达不清不分轻重缓急 412.4 需求分析活动(5/7)When项目的早期阶段?贯穿于整个软件开发过程的需求活动422.4 需求分析活动(6/7)Who 系统分析师、需求阐释者、客户代表、用户代表、开发方领导、项目经理、架构设计师、领域专家、财务人员、市场人员、软件质量保证(SQA,Software Quality Assure)人员、程序员、测试人员、部署人员、技术文档编写
14、人员、培训人员等。Where 调研时,在客户现场 编纂软件需求规约文档时,可以在开发单位 复审相关的需求文档时,根据需要来安排432.4 需求分析活动(7/7)How网罗需求entry/工作上下文范围entry/领域知识和可重用的需求do/获取涉众的原始需求exit/建立原始需求记录定义系统do/分析系统需求exit/制定软件需求文档exit/改进业务词汇表管理系统规模do/分析需求优先级、工作量和风险等属性exit/修订系统开发计划需求变更请求do/问题分析和变更描述exit/提交需求变更申请启动需求do/确定需求的涉众、范围、目标和限制条件do/估算项目费用exit/达成一致意见 更多迭代
15、 未通过复审 需求变更实现do/修改需求文档do/修改设计文档do/修改测试用例do/修改程序exit/评估变更结果 通过复审 who/系统分析师、项目经理、客户代表、开发方领导、财务人员等who/系统分析师、需求阐释者、客户代表、用户等who/系统分析师、需求阐释者等复审do/审查需求文档exit/发布审查结论who/系统分析师、项目经理、客户代表、用户代表、领域专家、SQA人员等who/系统分析师、项目经理、领域专家、SQA人员等who/用户代表、客户代表、系统分析员、需求阐释者等需求变更处理do/评估变更影响do/预算变更成本do/制定变更计划do/审查exit/发布审查结论who/用户
16、代表、客户代表、项目经理、系统分析师、架构设计师、软件设计员、开发方领导、财务人员等who/系统分析师、需求阐释者、项目经理、架构设计师、软件设计员、测试人员、实施员、SQA人员、用户代表、客户代表、财务人员、部署人员等 需求定义完成 未通过复审 通过复审 442.5 设计活动(1/7)What 设计:是在系统的约束条件下(如预算、时间、人力资源、用户软、硬件环境和用户对系统的操作能力等),为了实现系统的功能性需求和非功能性需求,而找到并描述的一种遵循高质量的通用原则的方法,其交付文档能够指导开发人员实现系统。452.5 设计活动(2/7)总体设计 任务是根据软件需求规约文档,确定一个合理的软
17、件体系结构。这个体系结构包括合理地划分组成系统的模块、模块间的调用关系以及模块间的接口关系。软件体系结构还从总体方面决定了系统的可扩充性、可维护性,以及系统的性能等。总体设计的设计粒度较大,有时也被称为概要设计、架构设计。462.5 设计活动(3/7)详细设计 详细设计地任务是在总体设计的基础上进一步确定如何实现目标系统,包括系统的数据对象的设计、人机接口的设计以及模块逻辑的详细设计。设计部件的粒度 系统、子系统、框架、构件、组件、模块、类、方法等472.5 设计活动(4/7)Why软件架构是软件系统的核心应对复杂多变的情况,同时保持完整性应对系统在扩展功能当中出现的问题大规模复用的有效基础
18、项目管理的基础 482.5 设计活动(5/7)When项目的中、早期阶段?工作量早期 中期 后期项目时间大小贯穿于整个软件开发过程的设计活动492.5 设计活动(6/7)Who主要包括架构设计师、软件设计员、复用工程师、设计复审员、项目经理、财务人员、软件质量保证(SQA,Software Quality Assure)人员和需求变更者等 Where建议在软件企业内部进行设计 502.5 设计活动(7/7)How定义架构草案entry/软件需求规约文档do/定义多个备选架构草案do/选择最优架构草案exit/审查架构草案who/架构设计师、软件设计员、项目经理、SQA人员、财务人员等改进架构d
19、o/考虑设计原则和架构模式do/分析设计元素do/分析元素间的关系和接口exit/修改设计模型设计专用构件设计数据库设计可复用的框架或构件选择可复用的框架或构件entry/软件可复用资产库do/查找符合条件的的框架和构件do/选择适合的框架或构件修订设计说明书do/修订设计说明书exit/复审设计说明书 新的迭代或需求变更 架构设计早期who/架构设计师、复用工程师who/架构设计师、复用工程师、软件设计员who/复用工程师、软件设计员who/构件设计员who/数据库设计员who/架构设计师、复用工程师、软件设计员、项目经理、SQA人员、财务人员等 需要设计新的可复用框架或构件 开发专用构件
20、需要设计数据库 找到合适的框架或构件 未通过复审 通过复审 未通过审查通过审查512.6 实施活动(1/5)What编码:是将软件设计结果转换成用某种程序设计语言书写的程序。单元测试:是把一个模块作为独立的程序单元进行测试,以保证它能够正确执行规定的功能。集成:是指将单独的软件构件合并成一个整体的软件系统。集成分为集成子系统和集成系统两个级别:522.6 实施活动(2/5)Why以实施为中心的软件开发 弱化的需求 弱化的设计 对实施人员的过度依赖 对实施活动的轻视 需要的时间进入工作状态 具有技术含量 水平存在差异 实施质量不易度量 532.6 实施活动(3/5)Why将单元测试作为实施的一部
21、分 When项目的中、后期阶段 工作量早期 中期 后期项目时间大小贯穿于整个软件开发过程的实施活动542.6 实施活动(4/5)Who包括实施员、代码复审员、集成员、测试工程师、测试员、项目经理、架构设计师、软件设计员、复用工程师、SQA人员和财务人员等 Where建议在软件企业内部进行开发 552.6 实施活动(5/5)How制定计划do/修订实施计划/集成测试/测试计划/预算实施成本exit/审核计划和预算who/架构设计师、软件设计员、复用工程师、项目经理、实施员、集成员、测试工程师、测试员、SQA人员、财务人员等实施构件do/开发或改进构件do/制作测试驱动程序和桩模块do/执行单元测
22、试do/修订集成计划/测试计划(方案)exit/复审代码who/实施员、集成员、测试工程师、代码复审员 未通过代码复审 集成每个子系统do/将新建或变更构件集成到相关子系统中do/对集成的子系统进行测试who/集成员、测试员、测试工程师集成系统do/集成出新的工作版本do/集成测试who/集成员、测试员、测试工程师迭代总结(实施)entry/实施的工作版本do/审查计划执行情况/实施质量/实施成本who/项目经理、实施员、集成员、测试工程师、测试人员、架构设计师、软件设计员、复用工程师、SQA人员、财务人员等未通过子系统测试 通过代码复审 通过子系统测试 此次迭代中还有其它子系统未集成 已完成
23、此次迭代中的子系统集成 此次迭代中还有子系统未被集成到工作版本 完成 未通过审核 通过审核 未通过集成测试 通过集成测试 此次迭代中还有其它构件未实施 已完成此次迭代中构件的实施 562.7 测试活动(1/6)What 测试:是选择适当的测试用例执行被测程序的过程,其目的在于发现程序错误。缺陷:是系统任一方面(包括需求、设计或代码)的缺点。该缺点会促成或潜在的促成一个或多个失败发生。错误:是指程序中的缺陷所产生的不正确结果。失败:当一个程序不能运行或者其表现不可被接受时称为失败。失败是系统执行中出现的情况。失败源于代码缺陷。单元测试、集成测试、系统测试、(alpha)、(Beta)、验收测试
24、572.7 测试活动(2/6)质量维度:描述质量的概念或评测质量的方法的不同视角 可靠性维度 可靠性维度 性能维度测试用例:为特定目标开发的测试输入、执行条件和预期结果的集合。582.7 测试活动(3/6)Why及时检查出项目中的缺陷和不足保证所开发的软件能够达到用户满意测试是项目管理的重要内容 592.7 测试活动(4/6)When项目的后期阶段?优点 缩短测试时间 易于定位缺陷 避免错上加错 工作量早期 中期 后期项目时间大小602.7 测试活动(5/6)Who主要包括测试工程师、测试员、软件设计员、实施员、项目经理、部署工程师、部署员、SQA人员和财务人员等 Where建议单元测试、集成
25、测试和系统测试在实施员所在的开发现场及其附近进行测试和验收测试则完全在用户现场测试 612.7 测试活动(6/6)How制定测试计划entry/需求规约文档/设计说明书/集成构建计划do/制定测试计划do/设计测试用例和测试过程do/分析测试工作量,预算测试成本who/测试工程师、项目经理、SQA人员和财务人员实施测试do/设计/实现测试用的驱动程序和桩模块do/测试构件和子系统who/软件设计员、实施员 单元测试失败 或还有其它单元测试未实施 集成测试 完成单元测试 who/测试员 完成集成测试 集成测试失败 或还有其它迭代内集成测试未测 系统测试who/测试员 系统测试未通过 测试 通过
展开阅读全文