软件件系统开发技术 软件工程.ppt

上传人:s****8 文档编号:67192568 上传时间:2022-12-24 格式:PPT 页数:512 大小:2.72MB
返回 下载 相关 举报
软件件系统开发技术 软件工程.ppt_第1页
第1页 / 共512页
软件件系统开发技术 软件工程.ppt_第2页
第2页 / 共512页
点击查看更多>>
资源描述

《软件件系统开发技术 软件工程.ppt》由会员分享,可在线阅读,更多相关《软件件系统开发技术 软件工程.ppt(512页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、课名:课名:软软 件件 工工 程程主主 讲:讲:谢谢 明明 志志EmailEmail:使用教材:软件系统开发技术(修订版)使用教材:软件系统开发技术(修订版)潘锦平潘锦平 施小英施小英 姚天昉姚天昉 西安电子科技大学出版社西安电子科技大学出版社12/22/20221第一章 软件工程概述12/22/202221.1 1.1 软件工程的背景和历史软件工程的背景和历史n19681968年年由由NATO(北大西洋公约组织北大西洋公约组织)在德国在德国Garmish召开的学术召开的学术会议会议上,上,Feitz BauerFeitz Bauer首先首先提出了提出了“软件工程软件工程”概念。概念。12/2

2、2/20223软件工程与编程软件工程与编程n前者是一门学科,一前者是一门学科,一种科学理论来指导软种科学理论来指导软件系统开发,标准化,件系统开发,标准化,自动化的过程自动化的过程n考虑如何分解一个系考虑如何分解一个系统,以便各人分工开统,以便各人分工开发;考虑如何说明每发;考虑如何说明每个部分的规格要求;个部分的规格要求;怎样才能易于维护怎样才能易于维护n单纯的代码编写单纯的代码编写n是软件工程发展的前是软件工程发展的前身身n是软件工程中占据很是软件工程中占据很少时间和空间的一部少时间和空间的一部分分12/22/20224计算机学科的发展计算机学科的发展计算机科学计算机科学(CS)计算机科学

3、计算机科学(CS)计算机工程计算机工程(CE)软件工程软件工程(SE)信息系统信息系统(IS)计算学科计算学科(computing discipline)12/22/2022560年代以来年代以来n工厂管理工厂管理n病人监护病人监护n工资统发工资统发n图书馆管理图书馆管理n机票预定机票预定n学籍管理学籍管理12/22/20226 早期早期 第二阶段第二阶段 第三阶段第三阶段 第四阶段第四阶段面向批处理面向批处理 多用户多用户 分布式系统分布式系统 强大的桌面系统强大的桌面系统有限的分布有限的分布 实时实时 嵌入嵌入“智能智能”面向对象技面向对象技术术自定义软件自定义软件 数据库数据库 低成本硬

4、件低成本硬件 专家系专家系统 软件产品软件产品 消费者的影响消费者的影响 人工神经网络人工神经网络 并行计算并行计算 网络计算机网络计算机195019601970198019902000Evolution of software#12/22/20227为什么发展如此之快为什么发展如此之快n不准确的时间和金钱的估算不准确的时间和金钱的估算n软件质量的低下软件质量的低下n相对硬件产品开发软件开发费用的增加相对硬件产品开发软件开发费用的增加n维护、增强软件系统的必要性维护、增强软件系统的必要性n硬件价格大幅度下降硬件价格大幅度下降12/22/20228软件技术面临的问题软件技术面临的问题 规模规模

5、复杂性复杂性 生产率生产率 12/22/20229 Windows9595有有10001000万行万行代码代码 Windows20002000有有50005000万行万行代码代码例:例:Exchange2000和和 Windows20002000开发人员结构开发人员结构Exchange2000Windows20002000项目经理项目经理25人人约约250人人开发人员开发人员140人人约约1700人人测试人员测试人员350人人约约3200人人12/22/202210人月神话人月神话焦油坑焦油坑 n史前史中,没有别的场景比巨兽在焦油坑中垂史前史中,没有别的场景比巨兽在焦油坑中垂死挣扎的场面更令人

6、震撼。上帝见证着恐龙、死挣扎的场面更令人震撼。上帝见证着恐龙、猛犸象、剑齿虎在焦油中挣扎。它们挣扎得越猛犸象、剑齿虎在焦油中挣扎。它们挣扎得越是猛烈,焦油纠缠得越紧,没有任何猛兽足够是猛烈,焦油纠缠得越紧,没有任何猛兽足够强壮或具有足够的技巧,能够挣脱束缚,它们强壮或具有足够的技巧,能够挣脱束缚,它们最后都沉到了坑底。最后都沉到了坑底。12/22/202211软件危机的主要特征软件危机的主要特征n软件开发周期大大超过规定软件开发周期大大超过规定 日期日期;n 软件开发成本严重超标软件开发成本严重超标;n 软件质量软件质量难于难于保证。保证。12/22/202212软件工程的定义软件工程的定义

7、Fritz Bauer在在NATO会议会议上给出的定义:上给出的定义:“软件工程软件工程是是为了经济地获得可靠的和能为了经济地获得可靠的和能在实际机器上高效运行的软件在实际机器上高效运行的软件而确立和使用而确立和使用的的健全健全的工程的工程原理(方法)原理(方法)。”12/22/202213软件工程的定义(软件工程的定义(2)IEEEIEEE【IEE83】给出的给出的软件工软件工程程定义:定义:“软件工程是软件工程是开发、运行、开发、运行、维护和修复软件的系统方法维护和修复软件的系统方法。”12/22/202214软件工程的定义(软件工程的定义(3)IEEEIEEE【IEE93】给出了一个更加

8、给出了一个更加综合的定义:综合的定义:“将系统化的、规范的、可将系统化的、规范的、可度量的方法应用于软件的开发、度量的方法应用于软件的开发、运行和维护的过程,即将工程化运行和维护的过程,即将工程化应用于软件中应用于软件中。”12/22/202215软件工程是一门交叉学科软件工程是一门交叉学科软件工程的主要研究内容u软件开发软件开发技术技术:软件开发方法软件开发方法学学 软件开发过程软件开发过程 软件工具软件工具和软件工程和软件工程环境环境 u软件工程管理软件工程管理:软件管理软件管理学学 软件经济学软件经济学 软件软件心理学心理学 软件工程所包含的内容不是一成不变的,软件工程所包含的内容不是一

9、成不变的,随着人们对软件系统的研制开发和生产的理解。随着人们对软件系统的研制开发和生产的理解。应用发展的眼光看待它。应用发展的眼光看待它。12/22/202216软件工程软件工程 一种层次化技术一种层次化技术工具工具方法方法过程过程质量焦点质量焦点Software engineering layers软件工程软件工程三个要素:三个要素:方法、工具、过程方法、工具、过程12/22/202217软件软件工程与一般工程的差异工程与一般工程的差异u软件是逻辑软件是逻辑产品产品而不是而不是实物实物产品产品u软件的功能依赖于硬件和软件的运行环境以及人们软件的功能依赖于硬件和软件的运行环境以及人们对它的操作

10、对它的操作u软件设计的复杂性软件设计的复杂性u软件特征软件特征:功能的多样性功能的多样性 实现的多样性实现的多样性 能见度低能见度低 软件结构合理性差软件结构合理性差u智力密集及知识产权保护智力密集及知识产权保护12/22/202218软件工程软件工程知识结构知识结构 20012001年年5 5月月ISO/IEC JTC 1ISO/IEC JTC 1(ISOISO和和IECIEC的第一联合的第一联合技术委员会)发布了技术委员会)发布了 SWEBOK指南指南V0.95(V0.95(试用试用版版)SWEBOK把软件工程学科的主体知识分为把软件工程学科的主体知识分为10个知个知识领域。识领域。12/

11、22/202219软件工程软件工程知识结构知识结构n 软软件件需需求求n 软软件件设设计计n 软软件件构构造造n 软软件件测测试试n 软软件件维维护护n 软软件件配配置置管管理理n 软软件件工工程程管管理理n 软软件件工工程程过过程程n 软软件件工工程程工工具具和和方方法法n 软软件件质质量量12/22/202220“软件工程软件工程”课程课程 与其它软件专业课的区别与其它软件专业课的区别(1)(1)立足于系统的整体。立足于系统的整体。(2)(2)讲授系统分析、系统设计、讲授系统分析、系统设计、测试及维护的理论和方法。测试及维护的理论和方法。(3)(3)构筑一构筑一个软件个软件系统系统,实践,

12、实践 软件开发全过程软件开发全过程。12/22/202221“软件工程软件工程”课程教学课程教学的目标的目标u转变转变对软件的认识:对软件的认识:上升上升 程序程序 系统系统u 转变转变思维定式:思维定式:上升上升 程序员程序员 系统工程师系统工程师 (系统分析员系统分析员)12/22/202222软件产品的标准化软件产品的标准化软件开发过程的标准化软件开发过程的标准化12/22/202223软件的工业化生产过程应具备的特点:软件的工业化生产过程应具备的特点:F明确的工作步骤明确的工作步骤F详细具体的规范化文档详细具体的规范化文档F明确的质量评价标准明确的质量评价标准“一个好的工业,应有一套良

13、好的标准来配套”12/22/202224软件工程技术的两个特点u 强调规范化强调规范化u 强调文档化强调文档化12/22/2022251.2 1.2 软件和软件生命期模型软件和软件生命期模型(Software Life Cycle)软件产品或软件系统从设计、投入使用软件产品或软件系统从设计、投入使用到被淘汰的全过程到被淘汰的全过程。12/22/202226软件生存期的阶段划分(1)(1)可行性研究与计划可行性研究与计划(2)(2)需求分析需求分析(3)(3)总体设计总体设计 (4)(4)详细设计详细设计(5)(5)实现实现(6)(6)集成测试集成测试(7)(7)确认测试确认测试 (8)(8)使

14、用和维护使用和维护成长期(开发期)成长期(开发期)怀孕期(计划期怀孕期(计划期)成年期(运行期)成年期(运行期)12/22/202227新的国际标准定义的新的国际标准定义的软件生存软件生存过程(过程(1995 ISO/IEC 12207)软件生存期过程软件生存期过程支持过程支持过程组织过程组织过程主要过程主要过程获获取取过过程程供供应应过过程程开开发发过过程程运运行行过过程程维维护护过过程程文文档档编编制制过过程程配配置置管管理理过过程程质质量量保保证证过过程程验验证证过过程程确确认认过过程程联联合合评评审审过过程程审审核核过过程程问问题题解解决决过过程程管管理理过过程程基基础础设设施施过过程

15、程改改进进过过程程培培训训过过程程12/22/202228软件工作的范围只考虑只考虑编写程序编写程序 涉及整个涉及整个软件生存软件生存周期周期扩展到扩展到12/22/202229 软件软件开发开发模型是软件开发全部过程、活动和任务模型是软件开发全部过程、活动和任务的的结构框架结构框架。它能直观表达软件开发全过程,明确规定。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。要完成的主要活动、任务和开发策略。软件软件开发开发模型模型也常称为:也常称为:软件软件过程过程模型模型 软件生存软件生存周周期模型期模型 软件工程范型软件工程范型软件开发模型软件开发模型12/22/2022

16、30可行性研究与计划可行性研究与计划需求分析需求分析设计设计编码编码运行维护运行维护测试测试定义定义阶段阶段开开发发阶阶段段维护阶段维护阶段瀑布模型(Waterfall Model)12/22/202231开发软件不仅仅是编程开发软件不仅仅是编程12/22/202232按照传统瀑布模型开发软件的特点按照传统瀑布模型开发软件的特点1.1.阶段间具有顺序性和依赖性。阶段间具有顺序性和依赖性。2.2.推迟实现的观点。推迟实现的观点。3.3.每个阶段必须完成规定的文档每个阶段必须完成规定的文档;每个阶段结束前完成文档审查每个阶段结束前完成文档审查,及早改正错误。及早改正错误。12/22/202233原

17、型模型(快速快速原原型模型型模型)原型范型原型范型用户测试用户测试运行原型运行原型建造建造/修改修改 原型原型 听取用听取用 户意见户意见12/22/202234采用原型模型的软件生存周期分析定义分析定义系统需求系统需求生成生成原型原型系统系统设计设计程序程序设计设计编码编码测试测试运运 行行和维护和维护原型化原型化含原型化的含原型化的软件生存期软件生存期12/22/2022351.3 1.3 软件质量的评价软件质量的评价n成功的标准成功的标准:用户在用户在用用用用 用户可很容易做完要做的事用户可很容易做完要做的事n失败的根本原因:失败的根本原因:开发人员写出的东西达不到开发人员写出的东西达不

18、到 用户要求用户要求(人的问题人的问题.技术问题技术问题)12/22/202236质量与生产率质量与生产率n质量是量是软件需求方最关心的件需求方最关心的问题,用,用户即使不即使不图物美价廉,也要求个物美价廉,也要求个货真价真价实 n质量与生量与生产率之率之间有着内在的有着内在的联系,高生系,高生产率率必必须以以质量合格量合格为前提前提 n质量与生量与生产率的提高就指望程序率的提高就指望程序员与程序与程序经理理 n非得在非得在质量与生量与生产率之率之间分个主次不可,那么分个主次不可,那么应该是是质量第一,生量第一,生产率第二率第二 12/22/202237质量与生产率(质量与生产率(2)n质量直

19、接体量直接体现在在软件的每段程序中,高件的每段程序中,高质量自量自然是开然是开发人人员的技的技术追求,也是追求,也是职业道德的要道德的要求求 n高高质量量对所有的用所有的用户都有价都有价值,而高生,而高生产率只率只对开开发方有意方有意义 n如果一开始就追求高生如果一开始就追求高生产率,容易使人急功近率,容易使人急功近利,留下利,留下隐患患 12/22/202238不贪污的官就是好不贪污的官就是好官吗官吗n“运行正确运行正确”的程序就是高质量的程序吗?的程序就是高质量的程序吗?n也许运行速度很低并且浪费内存;也许代码写也许运行速度很低并且浪费内存;也许代码写得一塌糊涂得一塌糊涂 12/22/20

20、2239软件的质量因素软件的质量因素 n软件的质量因素很多,如正确性、精确性、可软件的质量因素很多,如正确性、精确性、可靠性、容错性、性能、效率、易用性、可理解靠性、容错性、性能、效率、易用性、可理解性、简洁性、可复用性、可扩充性、兼容性等性、简洁性、可复用性、可扩充性、兼容性等等(还可以列出十几个)等(还可以列出十几个)n一般说来倾向于可维护性、可靠性、可理解性一般说来倾向于可维护性、可靠性、可理解性和效率和效率12/22/202240软件质量因素分类和武学分软件质量因素分类和武学分类类 正确性与精确性易用性可理解性与简洁性性能与效率可复用性与可扩充性少林派、武当派华山派昆仑派峨嵋派崆峒派1

21、2/22/202241正确性与精确性正确性与精确性 n机器不会主动欺骗人,软件运行不正确或者不机器不会主动欺骗人,软件运行不正确或者不精确一般都是人造成的精确一般都是人造成的 n需求分析错了,那么对客户而言这个软件也存需求分析错了,那么对客户而言这个软件也存在错误在错误 n如果软件没有如果软件没有100%地按需求规格执行,那地按需求规格执行,那么这个软件也存在错误么这个软件也存在错误n程序员要为程序员要为“正确正确”、“精确精确”四个字竭尽全四个字竭尽全力力 12/22/202242性能与效率性能与效率 n用户都希望软件的运行速度高些(高性能),用户都希望软件的运行速度高些(高性能),并且占用

22、资源少些(高效率)并且占用资源少些(高效率)n旧社会地主就是这么对待长工的:干活要快点,旧社会地主就是这么对待长工的:干活要快点,吃得要少点吃得要少点 n通过优化算法、数据结构和代码组织来提高软通过优化算法、数据结构和代码组织来提高软件系统的性能与效率优化的关键件系统的性能与效率优化的关键n工作是找出限制性能与效率的工作是找出限制性能与效率的“瓶颈瓶颈”12/22/202243易用性易用性 n导致软件易用性差的根本原因是开发人员犯了导致软件易用性差的根本原因是开发人员犯了“错位错位”的毛病:他以为只要自己用起来方便,的毛病:他以为只要自己用起来方便,用户也一定会满意用户也一定会满意 n当用户真

23、的感到软件很好用时,一股温暖的感当用户真的感到软件很好用时,一股温暖的感觉油然而生,于是就用觉油然而生,于是就用“友好友好”来评价易用性来评价易用性 12/22/202244可理解性与简洁性可理解性与简洁性(Note 1)n开发人员只有在自己思路清晰时才可能写出让开发人员只有在自己思路清晰时才可能写出让别人能理解的程序别人能理解的程序 n编程时还要注意不可滥用技巧,应该用自然的编程时还要注意不可滥用技巧,应该用自然的方式编程方式编程 n简洁是一种美简洁是一种美 n如果把学术文章写得很简洁,让人很容易理解,如果把学术文章写得很简洁,让人很容易理解,它往往中不了它往往中不了 12/22/20224

24、5可复用性与可扩充可复用性与可扩充性性 n一种方式是原封不动地使用现成的软件构件一种方式是原封不动地使用现成的软件构件 n一种方式是对现成的软构件进行必要的扩充后一种方式是对现成的软构件进行必要的扩充后再使用再使用 n可复用性好的程序一般也具有良好的可扩充可复用性好的程序一般也具有良好的可扩充性性 12/22/202246可行性研究与计划可行性研究与计划需求分析需求分析设计设计编码编码运行维护运行维护测试测试测试已经开始返回上级,再.瀑布模型的质量保障体系12/22/202247小结小结(Note 2)n软件的高质量主要是设计出来的软件的高质量主要是设计出来的n不是不是“管管”出来的出来的n更

25、不能依赖质量检查。更不能依赖质量检查。12/22/202248第二章第二章 可行性研究与计划可行性研究与计划12/22/202249系统流程图系统流程图(Note 3)输入单据输入单据磁盘文件磁盘文件处理处理输出单据输出单据12/22/202250数据流程图数据流程图数据源点数据源点和终点和终点变换数据变换数据的加工的加工文件文件数据数据逻辑关系符号:与、或、异或逻辑关系符号:与、或、异或 12/22/202251 2.1可行性研究基本概念可行性研究基本概念n可行性研究的任务:可行性研究的主要任务是可行性研究的主要任务是“了解客户的要求及了解客户的要求及现实环境,从技术、经济和社会因素等三方面

26、现实环境,从技术、经济和社会因素等三方面研究并论证本软件项目的可行性,编写可行性研究并论证本软件项目的可行性,编写可行性研究报告,制定初步项目开发计划。研究报告,制定初步项目开发计划。”12/22/202252可行性研究的内容(1)1)技术可行性技术可行性(2)(2)经济可行性经济可行性(3)(3)操作可行性操作可行性(4)(4)社会可行性社会可行性(法律可行性法律可行性)(5)(5)抉择抉择12/22/202253技术可行性技术可行性(Note 4)Note 4)n度量一个特定技术信息系统解决方案度量一个特定技术信息系统解决方案的实用性及技术资源的可用性的实用性及技术资源的可用性考虑的问题考

27、虑的问题n开发风险开发风险分析分析n资源资源分析分析n相关技术的发展相关技术的发展(现有技术能否实现新系统,(现有技术能否实现新系统,技术难点、建议采用技术的先进性)技术难点、建议采用技术的先进性)12/22/202254经济可行性经济可行性度量系统解决方案的性能价格比度量系统解决方案的性能价格比考虑的问题考虑的问题 成本成本/效益分析效益分析n有形成本、效益有形成本、效益n无形成本、效益无形成本、效益 价值和成本的关系价值和成本的关系n质量与价值、成本的关系质量与价值、成本的关系n价值价值/成本的均衡成本的均衡12/22/202255经济可行性考虑的问题经济可行性考虑的问题(Note 5)N

28、ote 5)成本和效益的估算成本和效益的估算开发成本的估算开发成本的估算开发效益的估算开发效益的估算运行成本的估算运行成本的估算运行效益的估算运行效益的估算12/22/202256成本分析成本分析n代码行技术代码行技术n(page 19)n任务估算技术任务估算技术n(page 20)n总成本、总人力相对误差在总成本、总人力相对误差在 内内nPutnam估算模型估算模型n(page 21)nCOCOMO模型比较复杂模型比较复杂12/22/202257效益分析效益分析n系统的经济效益使用新系统增加收入使用系统的经济效益使用新系统增加收入使用心系统可以节省的运行费用心系统可以节省的运行费用n总的效益

29、和软件生存周期有关总的效益和软件生存周期有关n货币的时间价值(货币的时间价值(page23)n投资回收期(投资回收期(page23)n投资回收率投资回收率(page23)n纯收入(纯收入(page23)n投资回收率投资回收率12/22/202258系统开发和每年运行费用举例系统开发和每年运行费用举例1.1.系统开发费用(一次)系统开发费用(一次).2 2名系统分析员名系统分析员(450(450小时小时/名名,45,45美元美元/小时小时)$40,500)$40,500.5 5名系统开发人员名系统开发人员(275(275小时小时/名名,36,36美元美元/小时小时)$49,500)$49,500

30、.1 1名数据库管理员名数据库管理员(30(30小时小时/名名,42,42美元美元/小时小时)$1,260)$1,260.2 2名技术写作者名技术写作者(120(120小时小时/名名,25,25美元美元/小时小时)$6,000)$6,000.1 1名秘书名秘书(160(160小时小时/名名,15,15美元美元/小时小时)$2,400)$2,40012/22/202259系统开发和每年运行费用举例系统开发和每年运行费用举例n.1 1名数据通讯专家名数据通讯专家(60(60小时小时/名名,42,42美元美元/小时小时)$2,400$2,400n2 2名在转换期间数据输入人员名在转换期间数据输入人员

31、$49,500$49,500 (40 (40小时小时/名名,12,12美元美元/小时小时)12/22/202260系统开发和每年运行费用举例系统开发和每年运行费用举例培训:培训:l三天的开发人员内部培训课程三天的开发人员内部培训课程$7,000$7,000l3030个用户,三天的内部培训课程个用户,三天的内部培训课程$10,000$10,000物资:物资:l复印复印$500$500l磁盘、纸张等消耗品磁盘、纸张等消耗品$650$65012/22/202261系统开发和每年运行费用举例系统开发和每年运行费用举例购买硬件、软件:购买硬件、软件:l2020台工作站台工作站WindowsWindows

32、软件软件$1,000$1,000l2020台工作站内存升级台工作站内存升级$8,000$8,000l网络软件网络软件$17,500$17,500l2020台工作站办公软件产品台工作站办公软件产品$20,000$20,000系统开发总费用系统开发总费用$161,670$161,67012/22/202262系统开发和每年运行费用举例系统开发和每年运行费用举例2.2.年运行费用(每年)年运行费用(每年)人员:人员:l维护程序员维护程序员/分析员分析员(250250小时小时/年年,42,42美元美元/小时小时)$10,500$10,500l网络管理员网络管理员(300300小时小时/年年,50,50

33、美元美元/小时小时)$)$15,00015,000购买硬件、软件升级:购买硬件、软件升级:l硬件硬件$5,0005,000l软件软件$6,0006,000物资和杂项物资和杂项$3,5003,500每年总运行费用每年总运行费用$40,000$40,00012/22/202263操作操作可行性可行性 用户使用可能性用户使用可能性 时间进度可行性时间进度可行性 组织和文化上的可行性组织和文化上的可行性12/22/202264社会可行性社会可行性(法律可行性法律可行性)开发项目是否会在社会上或政治上开发项目是否会在社会上或政治上引起侵权、破坏或其它责任问题引起侵权、破坏或其它责任问题12/22/202

34、265可行性研究计划的完成可行性研究计划的完成n可行性研究计划12/22/2022662.3 2.3 可行性研究的步骤可行性研究的步骤(page15page15)(1)(1)复查确认系统目标、规模复查确认系统目标、规模 (2)(2)研究正使用系统工作流程研究正使用系统工作流程(3)(3)导出新系统高层逻辑模型导出新系统高层逻辑模型(4)(4)重新定义问题重新定义问题(5)(5)导出和评价供选择的方案导出和评价供选择的方案(6)(6)推荐推荐可行的方案可行的方案 (7)(7)草拟开发计划草拟开发计划(8)(8)编写可行性研究报告编写可行性研究报告,送审,送审12/22/202267第三章第三章

35、需求分析和规格需求分析和规格说明说明12/22/2022683.1 3.1 为什么需要需求分析为什么需要需求分析n开发人员往往急于求成开发人员往往急于求成n希望对开发进行指导希望对开发进行指导n希望开发人员对用户的要求理解希望开发人员对用户的要求理解n希望用户理解开发人员希望用户理解开发人员n测试部门有理可依测试部门有理可依12/22/202269需求分析的任务需求分析的任务 准确地准确地定义定义未来系统的目标,确定为未来系统的目标,确定为了满足用户的需求系统必须做什么。用了满足用户的需求系统必须做什么。用 规范的形式准确地表规范的形式准确地表达用户的达用户的需求需求。12/22/202270

36、什么是用户需求什么是用户需求n思考、涉及的几个问题思考、涉及的几个问题v如何识别、获取需求如何识别、获取需求?你能够采取何种手段与用户进行交流沟通你能够采取何种手段与用户进行交流沟通?v何为需求建模何为需求建模?你如何理解模型与建模你如何理解模型与建模?12/22/202271软件需求分析的几个阶段软件需求分析的几个阶段问题分析问题分析问题评估和方案综合问题评估和方案综合建模建模规约规约复审复审 系统分析员的主要系统分析员的主要焦点焦点是是“做什么做什么(whatwhat)”,不是不是“怎样做怎样做(howhow)”12/22/202272需求获取面临的挑战需求获取面临的挑战(Note 6)N

37、ote 6)L 客户说不清楚需求客户说不清楚需求L 需求易变性需求易变性L问题的复杂性和对问题空间问题的复杂性和对问题空间 理解的不完备性与不一致性理解的不完备性与不一致性12/22/2022733.2 3.2 需求获取的常用方法需求获取的常用方法(Note 7Note 7)建立分析小组建立分析小组 领域专家:领域专家:主角主角 系统分析员:导演系统分析员:导演客户访谈客户访谈问题分析与确认问题分析与确认 12/22/202274某出版社系统调查表某出版社系统调查表编号提出问题1您在您在哪个部门工作?哪个部门工作?2出版业务流程是什么?出版业务流程是什么?3您您每日都处理那些文件、数据、报表?

38、每日都处理那些文件、数据、报表?4工作中手工处理特别麻烦的事情是什么?工作中手工处理特别麻烦的事情是什么?5工作中手工处理什么问题解决不了?影响效率的工作中手工处理什么问题解决不了?影响效率的问题有哪些?问题有哪些?6您认为提高工作效率,节省工作时间,减轻工作您认为提高工作效率,节省工作时间,减轻工作强度可采取哪些办法?强度可采取哪些办法?12/22/202275某出版社系统调查表某出版社系统调查表编号提出问题7您的部门需要成本核算和统计的内容有哪些?您的部门需要成本核算和统计的内容有哪些?8您的部门采用计算机管理工作情况如何?您的部门采用计算机管理工作情况如何?9如何改进业务流程使之更合理?

39、如何改进业务流程使之更合理?10哪些问题是目前传统手工方法根本无法解决的?哪些问题是目前传统手工方法根本无法解决的?11出版社计算机管理信息系统需要解决什么问题?出版社计算机管理信息系统需要解决什么问题?12/22/202276听听一个故事一个故事(Note 8)n主人公:主人公:nC o n t o s o制药公司的高级管理长官制药公司的高级管理长官Gerhard nC o n t o s o公司的信息系统开发小组的新管公司的信息系统开发小组的新管理员理员Cynthian内容:内容:n客户的需求观客户的需求观 12/22/202277谁是客户谁是客户n客户是指直接或间接从产品中获得利益的个人

40、客户是指直接或间接从产品中获得利益的个人或组织或组织 n软件客户包括提出要求、支付款项、选择、具软件客户包括提出要求、支付款项、选择、具体说明或使用软件产品的项目风险承担者体说明或使用软件产品的项目风险承担者(s s t a k e h o l d e r)t a k e h o l d e r)或是获得产品所产生或是获得产品所产生的结果的人。的结果的人。12/22/202278客户与开发人员之间的合作关系客户与开发人员之间的合作关系(Note 10)n高质量的需求来源于客户与开发人员之间有效高质量的需求来源于客户与开发人员之间有效的交流与合作的交流与合作 n通常,开发人员与客户或客户代理人成

41、为一种通常,开发人员与客户或客户代理人成为一种对立关系对立关系 12/22/202279软件客户需求权利书(软件客户需求权利书(1)(Note 11)客户有如下权利:客户有如下权利:1.要求分析人员使用符合客户语言习惯的表达。要求分析人员使用符合客户语言习惯的表达。2.要求分析人员了解客户系统的业务及目标。要求分析人员了解客户系统的业务及目标。3.要求分析人员组织需求获取期间所介绍的信息,要求分析人员组织需求获取期间所介绍的信息,并编写软件需求规格说明。并编写软件需求规格说明。4.要求开发人员对需求过程中所产生的工作结果要求开发人员对需求过程中所产生的工作结果进行解释说明。进行解释说明。5.要

42、求开发人员在整个交流过程中保持和维护一要求开发人员在整个交流过程中保持和维护一种合作的职业态度。种合作的职业态度。12/22/202280软件客户需求权利书软件客户需求权利书(2)(Note 12)6.要求开发人员对产品的实现及需求都要提供建要求开发人员对产品的实现及需求都要提供建议,拿出主意。议,拿出主意。7.描述产品使其具有易用、好用的特性。描述产品使其具有易用、好用的特性。8.可以调整需求,允许重用已有的软件组件。可以调整需求,允许重用已有的软件组件。9.当需要对需求进行变更时,对成本、影响、得当需要对需求进行变更时,对成本、影响、得失(失(t r a d e-o ff)有个真实可信的评

43、估。有个真实可信的评估。10.获得满足客户功能和质量要求的系统,并且获得满足客户功能和质量要求的系统,并且这些要求是开发人员同意的。这些要求是开发人员同意的。12/22/202281软件客户需求义务书软件客户需求义务书(1)(Note 13)客户有下列义务:客户有下列义务:1.1.给分析人员讲解业务及说明业务方面的术语给分析人员讲解业务及说明业务方面的术语等专业问题。等专业问题。2.2.抽出时间清楚地说明需求并不断完善。抽出时间清楚地说明需求并不断完善。3.3.当说明系统需求时,力求准确详细。当说明系统需求时,力求准确详细。4.4.需要时要及时对需求做出决策。需要时要及时对需求做出决策。5.5

44、.要尊重开发人员的成本估算和对需求的可行要尊重开发人员的成本估算和对需求的可行性分析。性分析。12/22/202282软件客户需求义务书(软件客户需求义务书(2)(Note 14)6.6.对单项需求、系统特性或使用实例划分优先对单项需求、系统特性或使用实例划分优先级。级。7.7.评审需求文档和原型。评审需求文档和原型。8.8.一旦知道要对项目需求进行变更,要马上与一旦知道要对项目需求进行变更,要马上与开发人员联系。开发人员联系。9.9.在要求需求变更时,应遵照开发组织确定的在要求需求变更时,应遵照开发组织确定的工作过程来处理。工作过程来处理。10.10.尊重需求工程中开发人员采用的流程(过程)

45、尊重需求工程中开发人员采用的流程(过程)。12/22/202283“签约签约”意味着什么意味着什么(Note 15)n客户与开发人员关系中的重要部分客户与开发人员关系中的重要部分 n客户代表经常把客户代表经常把“签约签约”看作是毫无意义的看作是毫无意义的 n更为重要的是签名是建立在一个需求协议的基更为重要的是签名是建立在一个需求协议的基线上线上 n与你的重要客户一起讨论权利书和义务书,以与你的重要客户一起讨论权利书和义务书,以达成协议,并付诸实践达成协议,并付诸实践 12/22/202284高质量的需求过程带来的好处高质量的需求过程带来的好处(Note 16)n开发后期和整个维护阶段的重做的工

46、作大大减开发后期和整个维护阶段的重做的工作大大减少少 n强调需求质量并不能引起某些人的重视强调需求质量并不能引起某些人的重视,他们他们错误地认为在需求上消耗多少时间就会导致产错误地认为在需求上消耗多少时间就会导致产品开发推迟多少时间品开发推迟多少时间n将选定系统的需求明确地分配到各软件子系统,将选定系统的需求明确地分配到各软件子系统,强调采用产品工程的系统方法。这样能简化硬强调采用产品工程的系统方法。这样能简化硬软件的集成软件的集成 12/22/202285优秀需求具有的特性优秀需求具有的特性(Note 17)Note 17)n1.1.完整性完整性 n2.2.正确性正确性 n3.3.可行性可行

47、性 n4.4.必要性必要性 n5.5.划分优先级划分优先级 n6.6.无二义性无二义性 n7.7.可验证性可验证性 12/22/2022863.3 3.3 需求获取的内容需求获取的内容 1.1.用户需求分类用户需求分类 (1)(1)功能性需求功能性需求:定义了系统做什么(描述系统必须支持定义了系统做什么(描述系统必须支持 的功能和过程)的功能和过程)(2)(2)非功能性需求(技术需求)非功能性需求(技术需求):定义了系统工作时的特性定义了系统工作时的特性 (描述操作环境和性能目标)(描述操作环境和性能目标)12/22/202287两类需求包括的内容两类需求包括的内容(1)(1)功能功能(2)(

48、2)性能性能(3)(3)环境环境(4)(4)界面界面(5)(5)用户或人用户或人的的因素因素(6)(6)文档文档 (7)(7)数据数据(8)(8)资源资源(9)(9)安全保密安全保密(10)(10)软件成本消耗软件成本消耗与开发进度与开发进度(11)(11)质量保证质量保证12/22/202288(1)(1)功能需求功能需求 系统做什么?系统做什么?系统何时做什么?系统何时做什么?系统何时及如何修改系统何时及如何修改 或升级?或升级?12/22/202289(2)(2)性能需求性能需求软件开发的技术性指标软件开发的技术性指标例如:例如:存储容量限制存储容量限制 执行速度、相应时间执行速度、相应

49、时间 吞吐量吞吐量12/22/202290(3)(3)环境需求环境需求硬件设备:硬件设备:机型、外设、接口、机型、外设、接口、地点、分布、温度、地点、分布、温度、湿度、磁场干扰等湿度、磁场干扰等软件:软件:操作系统操作系统 网络网络 数据库数据库12/22/202291(4)(4)界面需求界面需求 有来自其它系统的输入吗?有来自其它系统的输入吗?到自其它系统的输出吗?到自其它系统的输出吗?对数据格式有规定吗?对数据格式有规定吗?对数据存储介质有规定吗?对数据存储介质有规定吗?12/22/202292(5)(5)用户或人的因素用户或人的因素 用户类型?用户类型?各种用户熟练程度?各种用户熟练程度

50、?需受何种训练?需受何种训练?用户理解、使用系统的难度?用户理解、使用系统的难度?用户错误操作系统的可能性?用户错误操作系统的可能性?12/22/202293(6)(6)文档需求文档需求 需哪些文档?需哪些文档?文档针对哪些读者文档针对哪些读者?12/22/202294(7)(7)数据需求数据需求 输入、输出数据的格式?输入、输出数据的格式?接收、发送数据的频率?接收、发送数据的频率?数据的准确性和精度?数据的准确性和精度?数据流量?数据流量?数据需保持的时间?数据需保持的时间?12/22/202295(8)(8)资源需求资源需求 软件运行时所需的数据、软件。软件运行时所需的数据、软件。内存空

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 施工组织

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁