




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课名:软件工程主讲:谢明志Email:tommyshell@163.com使用教材:软件系统开发技术(修订版) 潘锦平施小英姚天昉西安电子科技大学出版社10/18/20221第一章软软件工工程概述1/15/20202§1.1软件工程程的背景景和历史史1968年由NATO(北大西洋洋公约组组织)在德国Garmish召开的学学术会议上,FeitzBauer首先提出出了“软件工工程”概念。1/15/20203软件工程程与编程程前者是一一门学科科,一种种科学理理论来指指导软件件系统开开发,标标准化,,自动化化的过程程考虑如何何分解一一个系统统,以便便各人分分工开发发;考虑虑如何说说明每个个部分的的规格要要求;怎怎样才能能易于维维护单纯的代代码编写写是软件工工程发展展的前身身是软件工工程中占占据很少少时间和和空间的的一部分分1/15/20204计算机学学科的发发展计算机科科学(CS))计算机科科学(CS))计算机工工程(CE))软件工程程(SE))信息系统统(IS))计算学科科(computingdiscipline)1/15/2020560年代代以来工厂管理理病人监护护工资统发发图书馆管管理机票预定定学籍管理理1/15/20206早期第二阶段段第第三阶段段第第四阶段段面向批处处理多用户分布式系系统强大的桌桌面系统统有限的分分布实时嵌入“智智能”面向对象象技术自定义软软件数据库低成本硬硬件专家系统软件产品品消费者的的影响人工神经经网络并行计算算网络计算算机195019601970198019902000Evolutionofsoftware#1/15/20207为什么发发展如此此之快不准确的的时间和和金钱的的估算软件质量量的低下下相对硬件件产品开开发软件件开发费费用的增增加维护、增增强软件件系统的的必要性性硬件价格格大幅度度下降1/15/20208软件技术术面临的的问题规模复杂性生产率1/15/20209Windows95有1000万行代码Windows2000有5000万行代码例:Exchange2000和和Windows2000开发人员员结构Exchange2000Windows2000项目经理25人约250人开发人员140人约1700人测试人员350人约3200人1/15/202010《人月神话话》焦油坑史前史中中,没有有别的场场景比巨巨兽在焦焦油坑中中垂死挣挣扎的场场面更令令人震撼撼。上帝帝见证着着恐龙、、猛犸象象、剑齿齿虎在焦焦油中挣挣扎。它它们挣扎扎得越是是猛烈,,焦油纠纠缠得越越紧,没没有任何何猛兽足足够强壮壮或具有有足够的的技巧,,能够挣挣脱束缚缚,它们们最后都都沉到了了坑底。。1/15/202011软件危机机的主要要特征软件开发发周期大大大超过过规定日期;软件开发发成本严严重超标标;软件质量量难于保证。1/15/202012软件工程程的定义义FritzBauer在NATO会议上给出的的定义::“软件工程程是为了经济济地获得得可靠的的和能在在实际机机器上高高效运行行的软件件而确立和和使用的健全的工程原理(方方法)。”1/15/202013软件工程程的定义义(2))IEEE【IEE83】】给出的软件工程程定义:“软件工程程是开发、运运行、维维护和修修复软件件的系统统方法。”1/15/202014软件工程程的定义义(3))IEEE【IEE93】】给出了一一个更加加综合的的定义::“将系统化化的、规规范的、、可度量量的方法法应用于于软件的的开发、、运行和和维护的的过程,,即将工工程化应应用于软软件中。”1/15/202015软件工程程是一门门交叉学学科软件工程程的主要要研究内内容软件开发发技术:软件开发发方法学软件开发发过程软件工具具和软件工工程环境软件工程程管理:软件管理理学软件经济济学软件心理学软件工程程所包含含的内容容不是一一成不变变的,随着人们们对软件件系统的的研制开开发和生生产的理理解。应用发展展的眼光光看待它它。1/15/202016软件工程程—一种层次次化技术术工具方法过程质量焦点点Softwareengineeringlayers软件工程程三个要素素:方法、工工具、过过程1/15/202017软件工程与一一般工程程的差异异软件是逻逻辑产品而不是实物产品软件的功功能依赖赖于硬件件和软件件的运行行环境以以及人们们对它的的操作软件设计计的复杂杂性软件特征征:功能的多多样性实现的多多样性能见度低低软件结构构合理性性差智力密集集及知识识产权保保护1/15/202018软件工程程知识结构构2001年5月ISO//IECJTC1(ISO和IEC的第一联联合技术术委员会会)发布布了《SWEBOK指南V0.95(试用版))》SWEBOK把把软件工工程学科科的主体体知识分分为10个知识识领域。。1/15/202019软件工程程知识结构构软件需求求软件设计计软件构造造软件测试试软件维护护软件配置置管理软件工程程管理软件工程程过程软件工程程工具和和方法软件质量量1/15/202020“软件工工程”课程与其它软软件专业业课的区区别(1)立足于系系统的整整体。(2)讲授系统统分析、、系统设设计、测试及维维护的理理论和方方法。(3)构筑一个软件系统,实践软件开发发全过程程。1/15/202021“软件工工程”课课程教学学的目标转变对软件的的认识::上升程序系系统转变思维定式式:上升程序员系系统工程程师(系统分析析员)1/15/202022软件产品品的标准准化软件开发发过程的的标准化化1/15/202023软件的工工业化生生产过程程应具备备的特点点:明确的工工作步骤骤详细具体体的规范范化文档档明确的质质量评价价标准“一个好好的工业业,应有有一套良好的标标准来配配套”1/15/202024软件工程程技术的的两个特特点强调规范范化强调文档档化1/15/202025§1.2软件和软软件生命命期模型型(SoftwareLifeCycle)软件产品品或软件件系统从从设计、、投入使使用到被被淘汰的的全过程程。1/15/202026软件生存存期的阶阶段划分分(1)可行性研研究与计计划(2)需求分析析(3)总体设计计(4)详细设计计(5)实现(6)集成测试试(7)确认测试试(8)使用和维维护成长期((开发期期)怀孕期((计划期期)成年期((运行期期)1/15/202027新的国际际标准定定义的软件生存存过程(1995ISO/IEC12207)软件生存存期过程程支持过程程组织过程程主要过程程获取过程供应过程开发过程运行过程维护过程文档编制过程配置管理过程质量保证过程验证过程确认过程联合评审过程审核过程问题解决过程管理过程基础设施过程改进过程培训过程1/15/202028软件工作作的范围围只考虑编写程序序涉及整个个软件生存存周期扩展到1/15/202029软件开发模型是软软件开发发全部过过程、活活动和任任务的结构框架架。它能直直观表达达软件开开发全过过程,明明确规定定要完成成的主要要活动、、任务和和开发策策略。软软件开发模型也常常称为::软件过程模型软件生存存周期模型软件工程程范型软件开发发模型1/15/202030可行性研研究与计计划需求分析析设计编码运行维护护测试定义阶段开发阶段维护阶段段瀑布模型型(WaterfallModel)1/15/202031开发软件件不仅仅仅是编程程1/15/202032按照传统统瀑布模模型开发发软件的的特点1.阶段间具具有顺序序性和依依赖性。。2.推迟实现现的观点点。3.每个阶段段必须完完成规定定的文档档;每个阶段段结束前前完成文文档审查查,及早改正正错误。。1/15/202033原型模型型(快速原型模型)原型范型型用户测试试运行原型型建造/修修改原型听取用户意见1/15/202034采用原型模型的软件生存存周期分析定义义系统需求求生成原型系统设计程序设计编码测试运行和维护原型化含原型化化的软件生存存期1/15/202035§1.3软件质量量的评价价成功的标标准:用户在用用户可很很容易做做完要做做的事失败的根根本原因因:开发人员员写出的的东西达达不到用户要求求(人的问题题.技术问题题)1/15/202036质量与生生产率质量是软软件需求求方最关关心的问问题,用用户即使使不图物物美价廉廉,也要要求个货货真价实实质量与生生产率之之间有着着内在的的联系,,高生产产率必须须以质量量合格为为前提质量与生生产率的的提高就就指望程程序员与与程序经经理非得在质质量与生生产率之之间分个个主次不不可,那那么应该该是质量量第一,,生产率率第二1/15/202037质量与生生产率((2)质量直接接体现在在软件的的每段程程序中,,高质量量自然是是开发人人员的技技术追求求,也是是职业道道德的要要求高质量对对所有的的用户都都有价值值,而高高生产率率只对开开发方有有意义如果一开开始就追追求高生生产率,,容易使使人急功功近利,,留下隐隐患1/15/202038不贪污的的官就是是好官吗“运行正正确”的的程序就就是高质质量的程程序吗??也许运行行速度很很低并且且浪费内内存;也也许代码码写得一一塌糊涂涂1/15/202039软件的质质量因素素软件的质质量因素素很多,,如正确确性、精精确性、、可靠性性、容错错性、性性能、效效率、易易用性、、可理解解性、简简洁性、、可复用用性、可可扩充性性、兼容容性等等等(还可可以列出出十几个个)一般说来来倾向于于可维护护性、可可靠性、、可理解解性和效效率1/15/202040软件质量量因素分分类和武武学分类正确性与精确性易用性可理解性与简洁性性能与效率可复用性与可扩充性少林派、武当派华山派昆仑派峨嵋派崆峒派1/15/202041正确性与与精确性性机器不会会主动欺欺骗人,,软件运运行不正正确或者者不精确确一般都都是人造造成的需求分析析错了,,那么对对客户而而言这个个软件也也存在错错误如果软件件没有100%%地按需求求规格执执行,那那么这个个软件也也存在错错误程序员要要为“正正确”、、“精确确”四个个字竭尽尽全力1/15/202042性能与效效率用户都希希望软件件的运行行速度高高些(高高性能)),并且且占用资资源少些些(高效效率)旧社会地地主就是是这么对对待长工工的:干干活要快快点,吃吃得要少少点通过优化化算法、、数据结结构和代代码组织织来提高高软件系系统的性性能与效效率优化化的关键键工作是找找出限制制性能与与效率的的“瓶颈颈”1/15/202043易用性导致软件件易用性性差的根根本原因因是开发发人员犯犯了“错错位”的的毛病::他以为为只要自自己用起起来方便便,用户户也一定定会满意意当用户真真的感到到软件很很好用时时,一股股温暖的的感觉油油然而生生,于是是就用““友好””来评价价易用性性1/15/202044可理解性性与简洁洁性(Note1)开发人员员只有在在自己思思路清晰晰时才可可能写出出让别人人能理解解的程序序编程时还还要注意意不可滥滥用技巧巧,应该该用自然然的方式式编程简洁是一一种美如果把学学术文章章写得很很简洁,,让人很很容易理理解,它它往往中中不了1/15/202045可复用性性与可扩扩充性一种方式式是原封封不动地地使用现现成的软软件构件件一种方式式是对现现成的软软构件进进行必要要的扩充充后再使使用可复用性性好的程程序一般般也具有有良好的的可扩充充性1/15/202046可行性研究与计划需求分析设计编码运行维护测试测试已经经开始返回上级级,再……..瀑布模型型的质量保保障体系系1/15/202047小结(Note2)软件的高高质量主主要是设设计出来来的不是“管管”出来来的更不能依依赖质量量检查。。1/15/202048第二章可可行性性研究与与计划1/15/202049系统流程程图(Note3)输入单据据磁盘文件件处理输出单据据1/15/202050数据流程程图数据源点点和终点点变换数据据的加工工文件数据逻辑关系系符号::与、或或、异或或1/15/202051§2.1可可行性研研究基本本概念可行性研研究的任任务:可行性研研究的主主要任务务是“了了解客户户的要求求及现实实环境,,从技术术、经济济和社会会因素等等三方面面研究并并论证本本软件项项目的可可行性,,编写可可行性研研究报告告,制定定初步项项目开发发计划。。”1/15/202052可行性研研究的内内容(1)技术可行行性(2)经济可行行性(3)操作可行行性(4)社会可行行性(法律可行行性)(5)抉择1/15/202053技术可行行性(Note4)度量一个个特定技技术信息息系统解解决方案案的实用用性及技技术资源源的可用用性考虑的问问题开发风险险分析资源分析相关技术术的发展展(现有技技术能否否实现新新系统,,技术难难点、建建议采用用技术的的先进性性)1/15/202054经济可行行性度量系统统解决方方案的性性能价格格比考虑的问问题成本/效益分析析有形成本本、效益益无形成本本、效益益价值和成成本的关关系质量与价价值、成成本的关关系价值/成本的均均衡1/15/202055经济可行行性考虑虑的问题题(Note5)成本和效效益的估估算开发成本本的估算算开发效益益的估算算运行成本本的估算算运行效益益的估算算1/15/202056成本分析析代码行技技术(page19)任务估算算技术(page20)总成本、、总人力力相对误误差在内内Putnam估估算模型型(page21))COCOMO模模型比较较复杂1/15/202057效益分析析系统的经经济效益益=使用用新系统统增加收收入+使使用心系系统可以以节省的的运行费费用总的效益益和软件件生存周周期有关关货币的时时间价值值(page23)投资回收收期(page23))投资回收收率(page23))纯收入((page23)投资回收收率1/15/202058系统开发发和每年年运行费费用举例例1.系统开发发费用((一次)).2名系统分分析员(450小时/名,45美元/小时)$40,500.5名系统开开发人员员(275小时/名,36美元/小时)$49,500.1名数据库库管理员员(30小时/名,42美元/小时)$1,260.2名技术写写作者(120小时/名,25美元/小时)$$6,000.1名秘书(160小时/名,15美元/小时)$$2,4001/15/202059系统开发发和每年年运行费费用举例例.1名数据通通讯专家家(60小时/名,42美元/小时)$2,4002名在转换换期间数数据输入入人员$49,,500(40小时/名,12美元/小时)1/15/202060系统开发发和每年年运行费费用举例例培训:三天的开开发人员员内部培培训课程程$7,00030个用户,,三天的的内部培培训课程程$10,,000物资:复印$500磁盘、纸纸张等消消耗品$6501/15/202061系统开发发和每年年运行费费用举例例购买硬件件、软件件:20台工作站站Windows软件$1,00020台工作站站内存升升级$8,000网络软件件$17,,50020台工作站站办公软软件产品品$20,,000系统开发发总费用用$161,6701/15/202062系统开发发和每年年运行费费用举例例2.年运行费费用(每每年)人员:维护程序序员/分析员(250小时/年,42美元/小时)$10,,500网络管理理员(300小时/年,50美元/小时)$$15,000购买硬件件、软件件升级::硬件$5,000软件$6,000物资和杂杂项$3,500每年总运运行费用用$40,,0001/15/202063操作可行性用户使用用可能性性时间进度度可行性性组织和文文化上的的可行性性1/15/202064社会可行行性(法律可行行性)开发项目目是否会会在社会会上或政政治上引引起侵权权、破坏坏或其它它责任问问题1/15/202065可行性研研究计划划的完成成可行性研研究计划划1/15/202066§2.3可行性研研究的步步骤(page15)(1)复查确认认系统目目标、规规模(2)研究正使使用系统统工作流流程(3)导出新系系统高层层逻辑模模型(4)重新定义义问题(5)导出和评评价供选选择的方方案(6)推荐可行的方方案(7)草拟开发发计划(8)编写可行行性研究究报告,送审1/15/202067第三章需需求分分析和规规格说明明1/15/202068§3.1为什么需需要需求求分析开发人员员往往急急于求成成希望对开开发进行行指导希望开发发人员对对用户的的要求理理解希望用户户理解开开发人员员测试部门门有理可可依1/15/202069需求分析析的任务务准确地定义未来系统统的目标标,确定定为了满满足用户户的需求求系统必必须做什什么。用用<需求规格格说明书书>规范的形形式准确确地表达达用户的的需求。1/15/202070什么是用用户需求求思考、涉涉及的几几个问题题如何识别别、获取取需求?你能够采采取何种种手段与与用户进进行交流流沟通?何为需求求建模?你如何理理解模型型与建模模?1/15/202071软件需求求分析的的几个阶阶段问题分析析问题评估估和方案案综合建模规约复审系统分析析员的主主要焦点是“做做什么(what)”,,不是““怎样做做(how)”1/15/202072需求获取取面临的的挑战(Note6)客户说不不清楚需需求需求易变变性问题的复复杂性和和对问题题空间理解的不不完备性性与不一一致性1/15/202073§3.2需求获取取的常用用方法(Note7)建立分析析小组领域专家家:主主角系统分析析员:导导演客户访谈谈问题分析析与确认认1/15/202074某出版社社系统调调查表编号提出问题1您在哪个部门工作?2出版业务流程是什么?3您每日都处理那些文件、数据、报表?4工作中手工处理特别麻烦的事情是什么?5工作中手工处理什么问题解决不了?影响效率的问题有哪些?6您认为提高工作效率,节省工作时间,减轻工作强度可采取哪些办法?1/15/202075某出版社社系统调调查表编号提出问题7您的部门需要成本核算和统计的内容有哪些?8您的部门采用计算机管理工作情况如何?9如何改进业务流程使之更合理?10哪些问题是目前传统手工方法根本无法解决的?11出版社计算机管理信息系统需要解决什么问题?1/15/202076听一个故事事(Note8)主人公::Contoso制药公司司的高级级管理长长官GerhardContoso公司的信信息系统统开发小小组的新新管理员员Cynthia内容:客户的需需求观
1/15/202077谁是客户户客户是指指直接或或间接从从产品中中获得利利益的个个人或组组织软件客户户包括提提出要求求、支付付款项、、选择、、具体说说明或使使用软件件产品的的项目风风险承担担者(stakeholder))或是获得得产品所所产生的的结果的的人。1/15/202078客户与开开发人员员之间的的合作关关系(Note10)高质量的的需求来来源于客客户与开开发人员员之间有有效的交交流与合合作通常,开开发人员员与客户户或客户户代理人人成为一一种对立立关系1/15/202079软件客户户需求权权利书((1)(Note11)客户有如如下权利利:1.要求分析析人员使使用符合合客户语语言习惯惯的表达达。2.要求分析析人员了了解客户户系统的的业务及及目标。。3.要求分析析人员组组织需求求获取期期间所介介绍的信信息,并并编写软软件需求求规格说说明。4.要求开发发人员对对需求过过程中所所产生的的工作结结果进行行解释说说明。5.要求开发发人员在在整个交交流过程程中保持持和维护护一种合合作的职职业态度度。1/15/202080软件客户户需求权权利书((2)(Note12)6.要求开发发人员对对产品的的实现及及需求都都要提供供建议,,拿出主主意。7.描述产品品使其具具有易用用、好用用的特性性。8.可以调整整需求,,允许重重用已有有的软件件组件。。9.当需要对对需求进进行变更更时,对对成本、、影响、、得失((trade--off)有个真实实可信的的评估。。10.获得满足足客户功功能和质质量要求求的系统统,并且且这些要要求是开开发人员员同意的的。1/15/202081软件客户户需求义义务书(1)(Note13)客户有下下列义务务:1.给分析人人员讲解解业务及及说明业业务方面面的术语语等专业业问题。。2.抽出时间间清楚地地说明需需求并不不断完善善。3.当说明系系统需求求时,力力求准确确详细。。4.需要时要要及时对对需求做做出决策策。5.要尊重开开发人员员的成本本估算和和对需求求的可行行性分析析。1/15/202082软件客户户需求义义务书((2)(Note14)6.对单项需需求、系系统特性性或使用用实例划划分优先先级。7.评审需求求文档和和原型。。8.一旦知道道要对项项目需求求进行变变更,要要马上与与开发人人员联系系。9.在要求需需求变更更时,应应遵照开开发组织织确定的的工作过过程来处处理。10.尊重需求求工程中中开发人人员采用用的流程程(过程程)。1/15/202083“签约””意味着着什么(Note15)客户与开开发人员员关系中中的重要要部分客户代表表经常把把“签约约”看作作是毫无无意义的的更为重要要的是签签名是建建立在一一个需求求协议的的基线上上与你的重重要客户户一起讨讨论权利利书和义义务书,,以达成成协议,,并付诸诸实践1/15/202084高质量的的需求过过程带来来的好处处(Note16)开发后期期和整个个维护阶阶段的重重做的工工作大大大减少强调需求求质量并并不能引引起某些些人的重重视,他们错误误地认为为在需求求上消耗耗多少时时间就会会导致产产品开发发推迟多多少时间间将选定系系统的需需求明确确地分配配到各软软件子系系统,强强调采用用产品工工程的系系统方法法。这样样能简化化硬软件件的集成成1/15/202085优秀需求求具有的的特性(Note17)1.完整性2.正确性3.可行性4.必要性5.划分优先先级6.无二义性性7.可验证性性1/15/202086§3.3需求获取取的内容容1.用户需求求分类(1)功能性需需求:定义了系系统做什什么(描描述系统统必须支支持的功能和和过程))(2)非功能性性需求((技术需需求):定义了系系统工作作时的特特性(描述操操作环境境和性能能目标))1/15/202087两类需求求包括的的内容(1)功能(2)性能(3)环境(4)界面(5)用户或人人 的因因素(6)文档(7)数数据(8)资资源(9)安安全保保密(10))软件成成本消耗耗 与开开发进度度(11))质量保保证1/15/202088(1)功能需求求系统做什什么?系统何时时做什么么?系统何时时及如何何修改或升级??1/15/202089(2)性能需求求软件开发发的技术术性指标标例如:存储容量量限制执行速度度、相应应时间吞吐量1/15/202090(3)环境需求求硬件设备备:机型、外外设、接接口、地点、分分布、温温度、湿度、磁磁场干扰扰等软件:操作系统统网络数据库1/15/202091(4)界面需求求有来自其其它系统统的输入入吗?到自其它它系统的的输出吗吗?对数据格格式有规规定吗??对数据存存储介质质有规定定吗?1/15/202092(5)用户或人人的因素素用户类型型?各种用户户熟练程程度?需受何种种训练??用户理解解、使用用系统的的难度??用户错误误操作系系统的可可能性??1/15/202093(6)文档需求求需哪些文文档?文档针对对哪些读读者?1/15/202094(7)数据需求求输入、输输出数据据的格式式?接收、发发送数据据的频率率?数据的准准确性和和精度??数据流量量?数据需保保持的时时间?1/15/202095(8)资源需求求软件运行行时所需需的数据据、软件件。内存空间间等资源源。软件开发发、维护护所需的的人力、、支撑软件件、开发发设备等等。1/15/202096(9)安全保密密要求需对访问问系统或或系统信信息加以以控制吗吗?如何隔离离用户之之间的数数据?用户程序序如何与与其它程程序和操操作系统统隔离??系统备份份要求?1/15/202097(10))软件成本本消耗与开发进进度需求求开发有规规定的时时间表吗吗?软硬件投投资有无无限制?1/15/202098(11))质量保证证系统的可可靠性要要求?系统必须须监测和和隔离错错误吗??规定系统统平均出出错时间间?出错后,,重启系系统允许许的时间间?系统变化化如何反反映到设设计中??维护是否否包括对对系统的的改进??系统的可可移植性性?1/15/202099怎样写需需求分析析报告作报告时时要先从从宏观上上讲一、、二、三三、四、、五,再再从细节节上讲A、B、C、D、E。需求分析析不象侦侦探推理理那样从从蛛丝马马迹着手手。应该该先了解解宏观的的问题,,再了解解细节的的问题如图S={{D1,D2,D3,…Dn}Di={P1,P2,P3,…Pm}Pj={F1,F2,F3,…Fk}1/15/2020100怎样写需需求分析析报告1/15/2020101§3.4需求的开开发和管管理整个软件件需求工工程研究究领域划划分为需需求开发发和需求求管理两两部分更更合适需求工程程域的层层次分解解示意图图1/15/2020102需求开发发(Note18)问题获取取(elicitation)分析(analysis))编写规格格说明((specification)验证(verification)1/15/2020103知识技能能(Note19)绝大部分分的软件件开发人人员都没没有接受受过高效效需求工工程所需需技能的的正规培培训培训需求求分析人人员所有有的开发发人员都都应接受受一个基基本的需需求工程程培训培训软件件需求的的用户代代表和管管理人员员参与软软件开发发的用户户代表应应接受为为期一天天左右,关于需求求工程的的培训,,开发管管理者和和客户管管理者也也应参加加让开发人人员了解解应用领领域的基基本概念念组织一一些简短短的关于于客户业业务活动动、术语语、目标等方面面的讨论论会以帮帮助开发发人员对对应用领领域有个个基本了了解1/15/2020104需求获取取(1))(Note20)确定需求求开发过过程编写项目目视图和和范围文文档项目目视图将用户群群分类并并归纳各各自特点点选择每类类用户的的产品代代表建立起典典型用户户的核心心队伍把把同类产产品或你你的产品品的先前前版本用用户代表表召集起起来,从从他们那那里收集集目前产产品的功功能需求求和非功功能需求求1/15/2020105需求获取取(2))(Note21)让用户代代表确定定使用实实例召开应用用程序开开发联系系会议分析用户户工作流流程观察察用户执执行业务务任务的的过程确定质量量属性和和其它非非功能需需求在功功能需求求之外再再考虑一一下非功功能的质质量特点点通过检查查当前系系统的问问题报告告来进一一步完善善可查看需需求是否否有足够够的灵活活性以允允许重用用一些已已有的软软件组件件1/15/2020106需求分析析(Note22)绘制系统统关联图图。建立数据据字典。。为需求建建立模型型。建立用户户接口原原型。确定需求求优先级级。1/15/2020107需求规格格说明((SRS)(Note23)采用原始始模板在在你的组组织中要要为编写写软件需需求文档档定义一一种标准准模板指明需求求的来源源为每项需需求注上上标号制制定一种种惯例来来为每项项需求提提供一个个独立的的可识别别的标号号或记号号记录业务务规范业业务规范范创建需求求跟踪能能力矩阵阵1/15/2020108需求验证证(Note24)对需求文文档进行行正式审审查以需求为为依据编编写测试试用例编写用户户手册在在需求开开发早期期即可起起草一份份用户手手册确定合格格的标准准让用户户描述什什么样的的产品才才算满足足他们的的要求和和适合他他们使用用的1/15/2020109需求管理理(Note25)确定一个个选择、、分析和和决策需需求变更更的过程程建立变更更控制委委员会评估每项项选择的的需求变变更跟踪所有有受需求求变更影影响的工工作产品品建立需求求基准版版本和需需求控制制版本文文档维护需求求变更的的历史记记录记录录跟踪每项项需求的的状态建建立一个个数据库库衡量需求求稳定性性记录基基准需求求的数量量和变更更数量使用需求求管理工工具商业业化的需需求管理理工具1/15/2020110项目管理理(Note26)选择一种种合适的的软件开开发方法法生存周周期项目开发发计划的的进度安安排将会会不断改改变发生需求求变更时时协商项项目约定定编写文档档和管理理与需求求相关的的风险跟踪需求求工程所所耗的工工作量1/15/2020111分析编写文档评审,商议基准需求说明需求变更过程管理客户需求市场当前基线修正后基线市场,客户,管理项目环境需求开发发与需求求管理之之间的界界限(Note27)1/15/2020112§3.5改进需求求过程(Note28)软件开发发过程的的改进有有以下两两个主要要目标::解决在以以前项目目或目前前项目中中遇到的的问题。。防止和避避免你可可能在将将来的项项目中要要遇到的的问题。。1/15/2020113四条改进进软件的的原则(Note29)改进过程程应该是是革命性性的、彻彻底的、、连续的的、反复复的人们和组组织机构构都只有有在他们们获得激激励时才才愿意变变更过程变更更是面向向目标的的将改进活活动看作作一些小小项目1/15/2020114过程改进进周期(Note30)评价当前前采用的的方法指定活动动改进计计划创建、实实验和实实施新过过程评价结果果图:软件件开发过过程改进进的周期期发现和建建议活动计划划新的过程程,实验验结果,,获得经经验实施情况况怎样活动计划划的效果果如何新过程是是否达到到预期目目标?计划下一一步的改改进周期期1/15/2020115§3.6软件需求求与风险险管理(Note31)听一个故故事:同样在Contoso制药公司司主人公“化学制制品跟踪踪系统””的项目目管理人人员Dave首席程序序员Helen首席测试试员Ramesh内容需求工程程的风险险为何物??1/15/2020116软件风险险管理的的要素(Note32)风险管理理就是使用用某些工工具和步步骤把项项目风险险限制在在一个可可接受的的范围内内。风险险管理提提供了一一种标准准的方法法来指出出风险并并把风险险因素编编成文档档,评估估其潜在在的威胁胁,以及及确定减减少这些些风险评价价(riskassessment)风险避免免(riskavoidance)风险控制制(riskcontrol)1/15/2020117编写项目目风险文文档(Note33)1/15/2020118与需求有有关的风风险下面介绍绍的风险险因素是是按需求求工程中中获取、、分析、、编写规规格说明明、验证证和管理理汇总起起来的,,并推荐荐了一些些方法用用于降低低风险发发生的可可能性或或减轻风风险发生生给项目目带来的的影响。。这张清单单仅仅是是一个起起点,在在你做项项目逐渐渐积累经经验过程程中,加加入你的的风险因因素清单单和减轻轻风险的的策略。。使用这这里提供供的条目目来帮助助你识别别需求风风险并采采用条件件—结果果的格式式来书写写风险说说明。1/15/2020119需求获取取(Note34)1)产品视图图与范围围2)需求开发发所需时时间3)需求规格格说明的的完整性性和正确确性4)对革新产产品的需需求5)明确非功功能需求求6)客户赞同同产品需需求7)未加说明明的需求求8)把已有的的产品作作为需求求基线9)给出期望望的解决决办法1/15/2020120需求分析析(Note35)1)划分需求求优先级级2)带来技术术困难的的特性3)不熟悉的的技术、、方法、、语言、、工具或或硬件平平台1/15/2020121需求规格格说明(Note36)1)需求理解解2)时间压力力对TBD的影响3)具有二义义性的术术语4)需求说明明中包括括了设计计1/15/2020122需求验证证(Note37)1)未经验证证的需求求2)审查的有有效性1/15/2020123需求管理理(Note38)1)变更需求求2)需求变更更过程3)未实现的的需求4)扩充项目目范围1/15/2020124建立项目目视图与与范围(Note39)一个项目目可能包包括一些些与软件件没有直直接关系系的需求求,例如如:硬件件的购买买、产品品的安装装、维护护或广告告。但在在此,我我们只关关心与软软件产品品有关系系的业务务需求。。1/15/2020125通过业务务需求确确定项目目视图(Note40)项目视图图可以把把项目参参与者定定位到一一个共同同和明确确的方向向上项目视图图描述了了产品所所涉及的的各个方方面和在在一个完完美环境境中最终终所具有有的功能能市场需求求文档&视图和范范围的文文档来自各个个渠道的的业务需需求可能能会发生生冲突1/15/2020126项目视图图和范围围文档的的模板(Note41)a.业务需求求a.1背景a.2业务机遇遇a.3业务目标标a.4客户或市市场需求求a.5提供给客客户的价价值a.6业务风险险b.项目视图图的解决决方案b.1项目视图图陈述b.2主要特性性b.3假设和依依赖环境境c.范围和局局限性c.1首次发行行的范围围c.2随后发行行的范围围c.3局限性和和专用性性d.业务环境境d.1客户概貌貌d.2项目优先先级e.产品成功功的因素素1/15/2020127计算机学学科的发发展计算机科学(CS)计算机科学(CS)计算机工程(CE)软件工程(SE)信息系统(IS)计算学科(computingdiscipline)计算学科科是研究究通过在在计算机机上建立立模型并并模拟物物理过程程来进行行科学调调查和研研究的学学科.1/15/2020128学科的3个形态态理论抽象(模模型化))设计重复出现现的概念念绑定(binding)概念与形形式模型型一致性和和完备性性抽象层次次重用……典型的学学科方法法:数学方法法系统科学学方法……计算中抽抽象的本本质和使使用。在在处理复复杂事务务、构造造系统、、隐藏细细节和获获取重复复模式方方面使用用抽象,,通过具具有不同同层次的的细节和和指标的的抽象,,能够表表达一个个实体和和系统计算机科科学与技技术学科科的方法法论1/15/2020129模型(model)模型:现实世界界某些重重要方面面的表示示。有时我们们使用术术语“抽象”来表示示模型,,因为我我们从现现实世界界中抽象出对我们们特别有有用的东东西。1/15/2020130抽象(模型化)源于实验验科学,主要要素素为数据据采集方方法和假假设的形形式说明明,模型的构构造与预预测实验验分析结结果分析析.在为可能能的算法法数据结结构和系系统结构构等构造造模型时时使用此此过程.抽象的结结果是概概念符号号模型1/15/2020131§3.4需求分析析的步骤骤当前系统目标系统物理模型逻辑模型逻辑模型物理模型模型化抽象化具体化实例化怎么做做什么当前系统目标系统需求定义1/15/2020132逻辑模型型和物理理模型模型是对对对象系系统的形形式化的的特征抽象,概概括性或或近似地地表示构造模型型的过程程是一个个抽象、、分析的过程程。对象系统模型系统抽象(映射)模型应用模型构造的过程1/15/2020133逻辑模型型物物理理模型(本质模模型、概念模型型)(实施模型型、技术术模型))现行系统目标系统描述重要要的业务务功能,,无论系系统是如如何实施施的。描述现实实系统是是如何在在物理上上实现的的。描述新系系统的主主要业务务功能和和用户新新的需求求,无论论系统应应如何实实施。描述新系系统是如如何实施施的(包包括技术术)。1/15/2020134分析阶段段中常用用的模型型(逻辑模模型)数据流图图(DFD)实体―联系图((ERD)类图实例图时序图状态图协作图事件列表表数据流定定义数据元素素定义……1/15/2020135数据流图图(DFD,DataFlowDiagram))(Note42)描述逻辑辑模型的的图形工工具,表表示数数据在系系统内的的变化。。DFD可以用来来表示一一个系统统或软件件在任何何层次上上的抽象象。较较大型软软件系统统DFD分成多层层(子图、父父图概念念),可以表示示数据流流和功能能的进一一步的细细节。1/15/2020136数据流程程图的表表示(32)数据源点点和终点点变换数据据的加工工文件数据逻辑关系系符号::与、或或、异或或1/15/2020137画数据流流图(page32-33)规则:由由外向里里画画系统的的输出、、输入化系统的的内部画加工的的内部1/15/2020138应该注意意的几个个问题(34)适当地命命名画数据流流而不是是控制流流先考虑稳稳定状态态忽略琐碎碎的枝节节随时准备备重画1/15/2020139分层数据据流图对于大型型系统,,往往使使用一张张数据流流图画出出所有数数据流和和加工是是不可能能的自顶向下下逐层分分解不要一下下子引入入过多细细节,应应该逐步步增加细细节例子(page35):图3.13(a)画出出了…...。图图3说明明“产生生新文件件”………。显然然……。。1/15/2020140由顶向下下画分层层数据流流图(page37)描绘中应应该注意意的问题题:编号父图和子子图的平平衡局部文件件分解的程程度1/15/2020141实例———运动会会管理系系统自学3..3.5节(Page40)1/15/2020142数据流图图的改进进检查数据据流图的的正确性性数据守恒恒(42)文件的使使用(page42)父图和子子图的平平衡(43)提高数据据流图的的易理解解性简化加工工间的联联系(page43)分解的均均匀(page43)适当地命命名(44)重新分解解(page44)1/15/2020143数据实体体关联图图(Note43)与数据流流图描绘绘了系统统中发生生的过程程一样,,实体联联系图((entity--relationshipdiagram,ERD)描绘了系系统的数数据关系系分析实体体联系图图有助于于对业务务或系统统数据组组成的理理解和交交互,并并暗示产产品将有有必要包包含一个个数据库库。实体(entity)是物理数数据项((包括人人)或者者数据项项的集合合,这对对所分析析的业务务或所要要构造的的系统是是很重要要的1/15/2020144化学制品仓库存货清单化学制品容器存储执行化学制品请求1MM1“化学制制品跟踪踪系统””的实体体联系图图1/15/2020145需求建模模实例酒店管理理系统的局部DFD已预订的入住预订请求求预订预订确认未预订的入住已预订的的入住请求求未预订的的入住请求求客人数据据客房数据据预订确认认信息客人信息息夜审结算信息财务系统时钟1/15/2020146需求建模模实例::某金融贸贸易系统统用例图(UML)风险分析交易估计进行交易进行交易接待员酒店系统财务系统1/15/2020147需求建模模实例::用例图举举例(UML)签定一份份保险单客户保险销售人员销售统计计客户统计计1/15/2020148需求建模模实例::UML类图实例例(Note44)客人姓名地址身份证号码护照号码……预订……入住住宿编号付款方式……退房……客房状态日期人数……设置状态……客房……服务日期数量设置……读取……服务类别名称价格设置……10..*10..*0..*0..11..*10..*1*1/15/2020149需求建模模实例::描述客房状态态的状态态图(Note45)取消预定入住已预订空闲占用维修维修完成退房换房入住事件创建1/15/2020150需求建模模实例::接电话的的顺序图(UML)受话者交换机远程交换机受话者拿起话筒听通话声拨号码铃响信号铃响铃响停止信号拿起话筒铃响停止<10deabc{b-a<1}{e-d<5}{c-b<10}路径1/15/2020151需求建模模实例::
UML协作图举举例计算机队列打印服务器打印机打印文件打印机忙保存打印文件打印机空闲打印文件1/15/2020152§3.5数据词典典(DD,DataDictionary)DD是对所有有与系统统相关的的数据元元素的一一个有组组织的列列表,以及精确的、、严格的的定义,使得用用户和系系统分析析员对于于输入、、输出、、存储成成分和中中间计算算有共同同的理解解1/15/2020153词典与数数据流图图之间关关系(page44)数据流图图描述了了系统的的“分解解”;依靠“词词典”来来说明各各个成分分的含义义;数据流图图中所有有名字的的定义就就构成一一本词典典;数据流图图和词典典结合在在一起构构成了““需求说说明书””数据流图图中出现现的每一一个数据据流名、、每一个个文件名名和每一一个加工工名在词词典中都都应该有有一个条条目给出出这个名名字的定定义。1/15/2020154词典条目目的各种种类型(page.45)四个类型型条目数据流文件数据项((指不在在分解的的数据单单位)加工词典条目目的实例例(page46-47)结合上次次自习的的内容自自行学习习本节1/15/2020155需求建模模实例::数据字典典条目的的定义预订请求求=客人人数据++住宿期期限+客房类别别客人数据据=客人人姓名+地址+身份证号号码+[护照号码码]+支付方式式身份证号号码=十进制15{数字}18护照号码码=字母母+8{{数字}8字母=“A”…““Z”十进制数数字=““0”…““9”1/15/2020156需求建模模实例::数据字典典条目的的定义F1:航班信息息文件={航空公司司名称++航班号号+起点++终点++日期++起飞飞时间++降落时时间}航空公司司名称==2{字母}4航班号==3{十进制数数字}3字母=“A”…““Z”十进制数数字=““0”…““9”起点=终终点=1{汉字}10起飞时间间=降落落时间==时+分分1/15/2020157需求建模模实例::数据字典典条目的的定义
时=“00”……“23”分=“00”……“59”日期=年年+月++日年=[2000|2001|2002|2004]月=“01”……“12”日=“01”……“31”1/15/2020158§3.6小说明数据流图图中每一一个基本本加工((即不再再进一步步被分解解的加工工)都必必须有一一个“小小说明””小说明中中应精确确描述用用户要求求一个加加工“做做什么””加工的激激发条件件加工逻辑辑加工优先先级加工执行行频率出错处理理1/15/2020159结构化的的语言(page51)构成方式式语态词汇举例1/15/2020160判定表与与判定树树(56)有些问题题不易用用单纯的的语言表表达判定表组组成:条件桩条件条目目操作桩操作条目目判定树1/15/2020161§3.7模型的作作用在建模过过程中了了解系统统通过抽象象降低复复杂性有助于回回忆所有有的细节节有助于开开发小组组间的交交流有助于与与用户的的交流为系统的的维护提提供文档档1/15/2020162需求分析析建模方方法分析建模模方法结构化分分析(传传统建模模方法))面向对象象分析1/15/2020163模型的作作用计算机世世界现实世界界影射1/15/2020164计算机世界现实世界结构化开发方法结构化分析结构化设计结构化编程OOAOODOOP面向对象开发方法模型的作作用1/15/2020165结构化分分析模型型的组成成结构数据流图(DFD)E-R图状态变迁图(STD图)加工说明控制说明数据对象说明数据字典(DD)1/15/2020166面向对象象分析模型的的组成结结构对象-关系模型类/对象模型对象-行为模型使用实例(UseCase)操作、属性、协作者1/15/2020167重点小结结1/15/2020168§3.8结构化分分析方法法(StructuredAnalisys,SA))基于数据据流技术术的分析析方法需求获取取应遵循循的三条条基本原原则:分解抽象投影1/15/2020169分析模型型的元素素数据字典典(DD):模型核心心(中心库)E-R图(ERD):数据流图(DFD)指明数据据在系统统中移动动时如何何被变换换;描述对数数据流进进行变换换的功能能;DFD中每个功功能的描描述包含含在加工工规约(小说明)。状态变迁迁图(STD))指明作为为外部事事件的结结果,系统将如如何动作。1/15/2020170E-R图是数据据建模的的基础客人入住客房状态客房服务服务类别姓名地址身份证号码护照号码电话……客房号床位数房间类别价格1……住宿编号住宿时间支付方式……日期,客人数状态(已预定/占用/维修中)……日期,数量……名称,价格……1/15/2020171将分析模模型转换换为软件件设计数据字典数据流图E-R图图状态变迁迁图加工规约控制规约约数据对描
述象数据设设计计体系结构构设计接口设计计过程设计计分析模型型设计模型型1/15/2020172§3.9实例考务处理理系统功功能(1)对考生送送来的报报名单进进行检查查;(2)对合格的的报名单单编好准准考证号号后将准准考证送送给考生生,并将将汇总后后的考生生名单送送给阅卷卷站;(3)对阅卷站站送来的的成绩单单进行检检查,并并根据考考试中心心制定的的合格标标准审定定合格者者;(4)制作考生生通知单单(含成绩及及合格/不合格标标志)送给考生生;(5)按地区进进行成绩绩分类统统计和试试题难度度分析,,产生统统计分析析表。1/15/2020173实例考务处理理系统功功能考务处理理系统的的分层DFD如下:1/15/2020174顶层数据据流图考生考务处理系统统考试中心阅卷站不合格报报名单报名单准考证考生通知知单成绩清单合格标准准错误成绩绩清单考生名单统计分析析表1/15/20201750层数据流流图登记报名单报名单准考证1统计成绩2不合格报名单考生通知单成统计分析表考生名册绩清单合格标准考生名单成绩清单错误1/15/2020176一层数据据流图(a)检查报名单报名单准考证1.1编准考证号1.2不合格报名单考生名册考生名单合格报名单登记考生1.31/15/2020177一层数据据流图(b)检查成绩清单2.1审定合格者2.2考生名册正确成绩清单制作通知单2.3分析统计成绩2.4分析试题难度2.5试题得分清单考生通知单难度分析表合格标准分类统计表成绩清单错误成绩清单经审定的成绩清单1/15/2020178S23.13.2顶层(不编号号)0层1层1/15/2020179数据字典典举例F1:航班信息息文件={航空公司司名称++航班号号+起点++终点++日期++起飞飞时间++降落时时间}航空公司司名称==2{字母}4航班号==3{十进制数数字}3字母=““A”…““Z”十进制数数字=““0”…““9”起点=终终点=1{汉字}10起飞时间间=降落落时间==时+分分1/15/2020180再来看看看——结构化分分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024中国其他日用杂品制造市场前景及投资研究报告
- 2024工业自动化行业市场分析报告
- 2025年度医院与营养健康管理机构合作开展营养干预服务合同
- 2025年度按揭房买卖合同法律咨询版
- 2021-2026年中国高低压变压器行业全景评估及投资规划建议报告
- 一位数乘两位数(教学设计)-2024-2025学年三年级上册数学西师大版
- 2025年度城市轨道交通工程垫资服务合同
- 装配式建筑施工的能源消耗与碳排放分析报告
- 习作:我和-过一天 教学设计-2024-2025学年语文四年级上册统编版
- 2025-2030年中国普通热电偶项目投资可行性研究分析报告
- 卫生院基本药物采购供应管理制度
- 抽水蓄能辅助洞室施工方案
- 数据结构英文教学课件:chapter7 Searching
- 护理核心制度及重点环节-PPT课件
- 夹套管现场施工方法
- 部编版语文五年级下册形近字组词参考
- 第三章走向混沌的道路
- 化探野外工作方法及要求
- 2006年事业单位工资改革工资标准表及套改表2
- 江苏省特种设备安全条例2021
- 青岛海洋地质研究所公开招聘面试答辩PPT课件
评论
0/150
提交评论