软件项目开发.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《软件项目开发.pptx》由会员分享,可在线阅读,更多相关《软件项目开发.pptx(94页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1本讲内容本讲内容1 1软件工程概述软件工程概述2 2软件工程过程和活动软件工程过程和活动3 3软件过程模型软件过程模型4 4 软件过程成熟度模型软件过程成熟度模型CMMCMM第1页/共94页21 软件工程概述软件工程概述1.1 1.1 软件的概念软件的概念1.2 1.2 为什么要软件工程为什么要软件工程1.3 1.3 什么是软件工程什么是软件工程1.4 1.4 参考书目参考书目第2页/共94页31.1 软件的概念软件的概念定义定义Program+Data Structure+Documents 软件的性质软件的性质复杂性难以描述性难以描述性不可见性不可见性变化性易于副本的大批量生产强合作性第
2、3页/共94页41.2 为什么要软件工程为什么要软件工程软件危机软件危机爆发时间1967年NATO的研究组首次提出1968年NATO软件工程会议首次提出软件工程概念1968-2013,近40多年“危机”一词软件危机依然存在Crisis!第4页/共94页51.2 为什么要软件工程为什么要软件工程软件危机面对的问题软件危机面对的问题艺术艺术 vs.标准化标准化错误的发现错误的发现软件需求获取软件需求获取软件支持和维护开发速度开发速度 vs.市场需求市场需求开发周期过长开发周期过长、开发成本过高开发成本过高研发风险研发风险软件开发中的复杂的协作软件开发中的复杂的协作(人员人员,问题问题,过程过程)不
3、同角色的软件神话不同角色的软件神话(管理者管理者,用户用户,开发者开发者,大众大众)第5页/共94页61.2 为什么要软件工程为什么要软件工程采用什么方法缓解危机采用什么方法缓解危机硬件?建筑学?拍电影?软件工程!第6页/共94页71.3 什么是软件工程什么是软件工程Fritz Bauer:“建立和应用完善的工程原理以便经济地得到在真实机器上可靠和有效运行的软件。特点:重原理、轻技术、无度量IEEE:(1)应用系统的有规则的定量的方法开发、使用和维护软件;即应用工程于软件。(2)研究研究(1)中的方法中的方法特点:粗糙第7页/共94页81.3 什么是软件工程什么是软件工程Definition软
4、件工程是以质量为核心,为了经济地开发满足客户需求的软件而研究、建立和应用的系统化的、有规则的、可度量的和可控制的工程原则、方法,涉及到软件过程、项目管理、开发方法、软件复用、软件度量、开发工具,甚至企业文化等各个方面。第8页/共94页9 A Quality FocusProcessMethodsCASE Tools1.3 什么是软件工程什么是软件工程第9页/共94页101.4 软件工程参考书目软件工程参考书目第10页/共94页112 过程和活动过程和活动2.1 软件过程的概念软件过程的概念2.2 问题定义活动问题定义活动2.3 可行性研究活动可行性研究活动2.4 需求分析活动需求分析活动2.5
5、 设计活动设计活动2.6 实施活动实施活动2.7 测试活动测试活动2.8 部署活动部署活动第11页/共94页122.1 软件过程的概念软件过程的概念软件过程的定义软件过程的定义软件过程由开发或维护软件及其相关产品的一系列活动构成,这些活动从不同的方面定义了软件开发中的步骤、交付物、涉众及其职责等流程要素 第12页/共94页132.1 软件过程的概念软件过程的概念Build theSystem控制 预算,计划表,标准输入需求资源人员,工具输出代码,文档Process控制/约束输入资源输出第13页/共94页142.1 软件过程的概念软件过程的概念WhatHowChange第14页/共94页152.
6、1 软件过程的概念软件过程的概念第15页/共94页162.1 软件过程的概念软件过程的概念Basic Activities(Basic Activities(基础活动基础活动)问题定义,需求,设计,实b现,软件验证,集成,软件演进/维护,退役Umbrella Activities(Umbrella Activities(辅助性活动辅助性活动)软件项目跟踪和控制,正式的技术复审,软件质量保证,软件配置管理,文档编制,复用管理,度量,风险管理,Something that covers or protects.保护物覆盖或保护的事物第16页/共94页172.2 问题定义活动问题定义活动What问题
7、定义是软件开发过程当中的一个定义要解决的问题并确定系统范围的活动。Why形成一个早期判断,达成一个最初共识 When项目日程表的最前端占整个软件开发时间中的比例很小 第17页/共94页182.2 问题定义活动问题定义活动Who系统分析师、出资方领导、出资方技术人员、开发方领导和项目经理 Where客户现场 第18页/共94页192.2 问题定义活动问题定义活动How第19页/共94页202.3 可行性研究活动可行性研究活动What可行性研究是以相对短的时间和相对低的成本来确定给定的问题在其约束条件内是否有解、有几种解以及哪个是最佳解。Why必须要先确立满足约束条件的方案是否存在、是否可行、是否
8、最优,然后再在最优方案的基础上进行开发 第20页/共94页212.3 可行性研究活动可行性研究活动When项目的早期阶段占整个软件开发时间中的比例较小,但比问题定义活动所消耗的时间长Who系统分析师、出资方领导、出资方技术人员、用户代表、开发方领导、项目经理、架构设计师、领域专家、财务人员、市场人员、软件质量保证(SQA,Software Quality Assure)人员等Where客户现场。第21页/共94页222.3 可行性研究活动可行性研究活动HowHow第22页/共94页232.4 需求分析活动需求分析活动What需求:主要是在产品构建之前确定的系统必须符合的条件或具备的功能,它们是
9、关于系统将要完成什么工作的一段描述语句,它们必须经过所有相关人员的认可,其目的是彻底地解决客户的问题。需求文档一组需求的集合 用户需求文档、系统需求文档和软件规约文档 第23页/共94页242.4 需求分析活动需求分析活动功能性需求和非功能性需求 功能性需求:描述了系统应该做什么,即具备的功能或服务。(输入、输出和计算等)非功能性需求:描述了系统必须遵守的约束条件。(响应时间、吞吐量、可靠性、可移植性、可扩展性、易用性、安全性、资源要求、可复用性、技术要求、文化和政策需求、法律需求、道德要求、隐私要求,等等)描述需求的标准是完整的、正确的、必要的、无歧义的、可行的、可验证的以及被设置了优先级别
10、的。What第24页/共94页252.4 需求分析活动需求分析活动Why需求不一致、模糊、矛盾需求变更客户忽略领域常识/知识/术语 客户集中于现有系统的不足之处,而忽略了系统要实现的关键功能零碎、无组织、不明确、表达不清不分轻重缓急 第25页/共94页262.4 需求分析活动需求分析活动When项目的早期阶段?贯穿于整个软件开发过程的需求活动贯穿于整个软件开发过程的需求活动第26页/共94页272.4 需求分析活动需求分析活动Who系统分析师、需求阐释者、客户代表、用户代表、开发方领导、项目经理、架构设计师、领域专家、财务人员、市场人员、软件质量保证(SQA,Software Quality
11、Assure)人员、程序员、测试人员、部署人员、技术文档编写人员、培训人员等。Where调研时,在客户现场编写软件需求规约文档时,可以在开发单位复审相关的需求文档时,根据需要来安排第27页/共94页282.4 需求分析活动需求分析活动How第28页/共94页292.5 设计活动设计活动 What 设计:是在系统的约束条件下(如预算、时间、人力资源、用户软、硬件环境和用户对系统的操作能力等),为了实现系统的功能性需求和非功能性需求,而找到并描述的一种遵循高质量的通用原则的方法,其交付文档能够指导开发人员实现系统。第29页/共94页302.5 设计活动设计活动 总体设计根据软件需求规约文档,确定一
12、个合理的软件体系结构。这个体系结构包括合理地划分组成系统的模块、模块间的调用关系以及模块间的接口关系。软件体系结构还从总体方面决定了系统的可扩充性、可维护性,以及系统的性能等。总体设计的设计粒度较大,有时也被称为概要设计、架构设计。第30页/共94页312.5 设计活动设计活动详细设计 详细设计地任务是在总体设计的基础上进一步确定如何实现目标系统,包括系统的数据对象的设计、人机接口的设计以及模块逻辑的详细设计。设计部件的粒度系统、子系统、框架、构件、组件、模块、类、方法等第31页/共94页322.5 设计活动设计活动Why软件架构是软件系统的核心应对复杂多变的情况,同时保持完整性应对系统在扩展
13、功能当中出现的问题大规模复用的有效基础 项目管理的基础 第32页/共94页332.5 设计活动设计活动When项目的中、早期阶段?工作量早期 中期 后期项目时间大小贯穿于整个软件开发过程的设计活动贯穿于整个软件开发过程的设计活动第33页/共94页342.5 设计活动设计活动Who主要包括架构设计师、软件设计员、复用工程师、设计复审员、项目经理、财务人员、软件质量保证(SQA,Software Quality Assure)人员和需求变更者等Where建议在软件企业内部进行设计 第34页/共94页352.5 设计活动设计活动How第35页/共94页362.6 实施活动实施活动What编码:是将软
14、件设计结果转换成用某种程序设计语言书写的程序。单元测试:是把一个模块作为独立的程序单元进行测试,以保证它能够正确执行规定的功能。集成:是指将单独的软件构件合并成一个整体的软件系统。集成分为集成子系统和集成系统两个级别:第36页/共94页372.6 实施活动实施活动Why以实施为中心的软件开发弱化的需求 弱化的设计 对实施人员的过度依赖 第37页/共94页382.6 实施活动实施活动Why将单元测试作为实施的一部分When项目的中、后期阶段 工作量早期 中期 后期项目时间大小贯穿于整个软件开发过程的实施活动贯穿于整个软件开发过程的实施活动第38页/共94页392.6 实施活动实施活动Who包括实
15、施员、代码复审员、集成员、测试工程师、测试员、项目经理、架构设计师、软件设计员、复用工程师、SQA人员和财务人员等Where建议在软件企业内部进行开发 第39页/共94页402.6 实施活动实施活动How第40页/共94页412.7 测试活动测试活动What测试:是选择适当的测试用例执行被测程序的过程,其测试:是选择适当的测试用例执行被测程序的过程,其目的在于发现程序错误。目的在于发现程序错误。缺陷缺陷:是系统任一方面(包括需求、设计或代码):是系统任一方面(包括需求、设计或代码)的缺点。该缺点会促成或潜在的促成一个或多个失的缺点。该缺点会促成或潜在的促成一个或多个失败发生。败发生。错误错误:
16、是指程序中的缺陷所产生的不正确结果。:是指程序中的缺陷所产生的不正确结果。失败失败:当一个程序不能运行或者其表现不可被接受:当一个程序不能运行或者其表现不可被接受时称为失败。失败是系统执行中出现的情况。失败时称为失败。失败是系统执行中出现的情况。失败源于代码缺陷。源于代码缺陷。单元测试、集成测试、系统测试、单元测试、集成测试、系统测试、(alpha)(alpha)、(Beta)(Beta)验收测试验收测试 第41页/共94页422.7 测试活动测试活动质量维度:描述质量的概念或评测质量的方法的不同视角 可靠性维度可用性维度性能维度测试用例:为特定目标开发的测试输入、执行条件和预期结果的集合。第
17、42页/共94页432.7 测试活动测试活动When项目的后期阶段?优点缩短测试时间易于定位缺陷 避免错上加错 工作量早期 中期 后期项目时间大小第43页/共94页442.7 测试活动测试活动Who主要包括测试工程师、测试员、软件设计员、实施员、项目经理、部署工程师、部署员、SQA人员和财务人员等 Where建议单元测试、集成测试和系统测试在实施员所在的开发现场及其附近进行测试和验收测试则完全在用户现场测试 第44页/共94页452.7 测试活动测试活动(5/5)How第45页/共94页462.8 部署活动部署活动What部署:是为确保最终用户可以正常使用软件产品而进行的活动。部署:是为确保最
18、终用户可以正常使用软件产品而进行的活动。根据产品类型,可以将部署分为三种模式根据产品类型,可以将部署分为三种模式:自定义安装模式自定义安装模式现场支持模式现场支持模式InternetInternet模式模式 第46页/共94页472.8 部署活动部署活动部署单元:由一个工作版本(可执行构件集)、文档(最终用户支持材料和发部署单元:由一个工作版本(可执行构件集)、文档(最终用户支持材料和发布说明)和安装工件组成布说明)和安装工件组成 部署计划:说明如何将产品从开发商转移到用户群部署计划:说明如何将产品从开发商转移到用户群兼容、转换和迁移策略兼容、转换和迁移策略 部署时间表部署时间表 部署顺序部署
19、顺序用户培训用户培训 第47页/共94页482.8 部署活动部署活动When项目的后期阶段?工作量早期 中期 后期项目时间大小第48页/共94页492.8 部署活动部署活动Who主要包括部署工程师、部署员、文档编写员、包装员、实施员、项目经理、SQA人员和财务人员等Where一部分工作可以在开发现场进行,如制定部署计划、包装产品、编写相关文档等;另一部分工作必须在用户现场进行,如测试、验收测试和用户正式使用中的安装、培训工作等。第49页/共94页502.8 部署活动部署活动How第50页/共94页513 3 软件过程模型软件过程模型3.1 3.1 过程模型概念过程模型概念3.2 3.2 线形顺
20、序模型系列线形顺序模型系列3.3 3.3 演进模型系列演进模型系列3.4 3.4 其它模型系列其它模型系列3.5 3.5 过程模型的选择过程模型的选择第51页/共94页523.1 过程模型概念过程模型概念为什么需要模型为什么需要模型?模型帮助我们解释事物模型帮助我们解释事物如何工作如何工作模型能够拓宽我们的视野模型能够拓宽我们的视野(抽象抽象)软件过程模型软件过程模型一个过程模型是一个过程的抽象表示一个过程模型是一个过程的抽象表示过程模型帮助我们更好地理解软件开发过程模型帮助我们更好地理解软件开发第52页/共94页533.1 过程模型概念过程模型概念(2/5)第53页/共94页543.1 过程
21、模型概念过程模型概念第54页/共94页553.1 过程模型概念过程模型概念第55页/共94页563.1 过程模型概念过程模型概念经典模型经典模型Linear Sequential ModelWaterfall ModelV ModelDepartment of Defense ModelRAD ModelPrototyping ModelBuild-and-Fix Model Incremental ModelSpiral ModelConcurrent Development ModelXP ModelRUP Model第56页/共94页573.2 线形顺序模型系列线形顺序模型系列线性顺序模
22、型线性顺序模型analysisdesigncodetestSystem/informationengineering第57页/共94页583.2 线形顺序模型系列线形顺序模型系列瀑布模型瀑布模型第58页/共94页59特征特征接受上一阶段的结果作为本阶段的输入接受上一阶段的结果作为本阶段的输入开发阶段严格按线性方式进行开发阶段严格按线性方式进行对本阶段的工作进行评审对本阶段的工作进行评审每一阶段具有相关的里程碑和交付产品每一阶段具有相关的里程碑和交付产品缺点缺点缺乏灵活性,难以适应需求不明确或需求经常变缺乏灵活性,难以适应需求不明确或需求经常变化的软件开发化的软件开发开发早期存在的问题往往要到交
23、付使用时才发现,开发早期存在的问题往往要到交付使用时才发现,维护代价大维护代价大适用适用在开发的早期阶段软件需求被完整确定在开发的早期阶段软件需求被完整确定3.2 3.2 线形顺序模型系列线形顺序模型系列第59页/共94页60实际使用的瀑布模实际使用的瀑布模型型3.2 3.2 线形顺序模型系列线形顺序模型系列第60页/共94页613.2 线形顺序模型系列线形顺序模型系列V V 模型模型第61页/共94页623.2 线形顺序模型系列线形顺序模型系列RAD(Rapid Application Development)RAD(Rapid Application Development)模型模型60
24、90 days第62页/共94页633.3 演进模型系列演进模型系列原型模型原型模型Listen to customerbuild/revisemock-upcustomer test-drives mock-up第63页/共94页643.3 演进模型系列演进模型系列边建边改边建边改 ModelModelBuild first versionModify until client is satisfiedMaintenancephaseRetirementDevelopmentMaintenance第64页/共94页653.3 演进模型系列演进模型系列边建边改边建边改 Model(Model(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 项目 开发
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内