《软件工程-2软件开发过程.ppt》由会员分享,可在线阅读,更多相关《软件工程-2软件开发过程.ppt(94页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件工程西南财经大学天府学院1可行性研究v可行性研究的任务可行性研究的主要任务是可行性研究的主要任务是“了解客户的要求及现实了解客户的要求及现实环境,从技术、经济和社会因素等三方面研究并论环境,从技术、经济和社会因素等三方面研究并论证本软件项目的可行性,编写可行性研究报告,制证本软件项目的可行性,编写可行性研究报告,制定初步项目开发计划。定初步项目开发计划。”2v可行性研究内容(1)(1)技术可行性技术可行性(2)(2)经济可行性经济可行性(3)(3)操作可行性操作可行性(4)(4)社会可行性社会可行性(法律可行性法律可行性)(5)(5)抉择抉择3v技术可行性度量一个特定技术信息系统解决方案度
2、量一个特定技术信息系统解决方案的实用性及技术资源的可用性的实用性及技术资源的可用性考虑的问题考虑的问题开发风险开发风险分析分析资源资源分析分析相关技术的发展相关技术的发展(现有技术能否实现新系(现有技术能否实现新系统,技术难点、建议采用技术的先进性)统,技术难点、建议采用技术的先进性)4v经济可行性度量系统解决方案的性能价格比度量系统解决方案的性能价格比考虑的问题考虑的问题 成本成本/效益分析效益分析有形成本、效益有形成本、效益无形成本、效益无形成本、效益 价值和成本的关系价值和成本的关系质量与价值、成本的关系质量与价值、成本的关系价值价值/成本的均衡成本的均衡5v成本和效益的估算成本和效益的
3、估算v开发成本的估算开发成本的估算v开发效益的估算开发效益的估算v运行成本的估算运行成本的估算v运行效益的估算运行效益的估算6v从哪些方面来考虑成本?7v前期业务费用(签署开发合同之前)(1)招投标(2)做市场调研和市场分析v系统开发费用v硬件、软件v年运行费用8v系统开发费用系统分析员系统分析员系统设计人员系统设计人员系统开发人员系统开发人员系统测试人员系统测试人员系统实施人员系统实施人员项目经理项目经理数据库管理员数据库管理员技术写作者技术写作者秘书秘书 数据通讯专家数据通讯专家转换期间数据输入人员转换期间数据输入人员项目管理项目管理(QA)(QA)9v培训:培训:l开发人员内部培训课程开
4、发人员内部培训课程 l用户培训用户培训v物资:物资:l复印复印l磁盘、纸张等消耗品磁盘、纸张等消耗品10v购买硬件、软件:购买硬件、软件:l2020台工作站台工作站WindowsWindows软件软件$1,000$1,000l2020台工作站内存升级台工作站内存升级$8,000$8,000l网络软件网络软件$17,500$17,500l2020台工作站办公软件产品台工作站办公软件产品$20,000$20,000系统开发总费用系统开发总费用$161,670$161,67011年运行费用(每年)年运行费用(每年)人员:人员:l维护程序员维护程序员/分析员分析员l网络管理员网络管理员购买硬件、软件升
5、级:购买硬件、软件升级:l硬件硬件 l软件软件物资和杂项物资和杂项12操作可行性操作可行性用户使用可能性用户使用可能性时间进度可行性时间进度可行性组织和文化上的可行性组织和文化上的可行性13社会可行性社会可行性(法律可行性法律可行性)开发项目是否会在社会上或政治上引起侵权、开发项目是否会在社会上或政治上引起侵权、破坏或其它责任问题破坏或其它责任问题14可行性研究计划的完成可行性研究计划的完成v可行性研究计划15可行性研究的步骤可行性研究的步骤 (1)(1)复查确认系统目标、规模复查确认系统目标、规模 (2)(2)研究正使用系统工作流程研究正使用系统工作流程 (3)(3)导出新系统高层逻辑模型导
6、出新系统高层逻辑模型 (4)(4)重新定义问题重新定义问题 (5)(5)导出和评价供选择的方案导出和评价供选择的方案 (6)(6)推荐推荐可行的方案可行的方案 (7)(7)草拟开发计划草拟开发计划 (8)(8)编写可行性研究报告编写可行性研究报告,送审,送审16为什么需要需求分析为什么需要需求分析v开发人员往往急于求成开发人员往往急于求成v希望对开发进行指导希望对开发进行指导v希望开发人员对用户的要求理解希望开发人员对用户的要求理解v希望用户理解开发人员希望用户理解开发人员v测试部门有理可依测试部门有理可依17需求分析的任务需求分析的任务准确地准确地定义定义未来系统的目标,确定为了满足用户的未
7、来系统的目标,确定为了满足用户的需求系统必须做什么。用需求系统必须做什么。用 规范规范的形式准确地表达用户的的形式准确地表达用户的需求需求。18什么是用户需求什么是用户需求v思考、涉及的几个问题思考、涉及的几个问题v如何识别、获取需求如何识别、获取需求?你能够采取何种手段与用户进行交流沟通你能够采取何种手段与用户进行交流沟通?v何为需求建模何为需求建模?你如何理解模型与建模你如何理解模型与建模?19软件需求分析的几个阶段软件需求分析的几个阶段问题分析问题分析问题评估和方案综合问题评估和方案综合建模建模规约规约复审复审 系统分析员的主要系统分析员的主要焦点焦点是是“做什么做什么(whatwhat
8、)”,不是不是“怎样做怎样做(howhow)”20需求获取面临的挑战需求获取面临的挑战L 客户说不清楚需求客户说不清楚需求L 需求易变性需求易变性L问题的复杂性和对问题空间问题的复杂性和对问题空间 理解的不完备性与不一致性理解的不完备性与不一致性21需求获取的常用方法需求获取的常用方法建立分析小组建立分析小组 领域专家:领域专家:主角主角 系统分析员:导演系统分析员:导演客户访谈客户访谈问题分析与确认问题分析与确认 22某出版社系统调查表某出版社系统调查表编号提出问题1您在您在哪个部门工作?哪个部门工作?2出版业务流程是什么?出版业务流程是什么?3您您每日都处理那些文件、数据、报表?每日都处理
9、那些文件、数据、报表?4工作中手工处理特别麻烦的事情是什么?工作中手工处理特别麻烦的事情是什么?5工作中手工处理什么问题解决不了?影响效率的工作中手工处理什么问题解决不了?影响效率的问题有哪些?问题有哪些?6您认为提高工作效率,节省工作时间,减轻工作您认为提高工作效率,节省工作时间,减轻工作强度可采取哪些办法?强度可采取哪些办法?23某出版社系统调查表某出版社系统调查表编号提出问题7您的部门需要成本核算和统计的内容有哪些?您的部门需要成本核算和统计的内容有哪些?8您的部门采用计算机管理工作情况如何?您的部门采用计算机管理工作情况如何?9如何改进业务流程使之更合理?如何改进业务流程使之更合理?1
10、0哪些问题是目前传统手工方法根本无法解决的?哪些问题是目前传统手工方法根本无法解决的?11出版社计算机管理信息系统需要解决什么问题?出版社计算机管理信息系统需要解决什么问题?24谁是客户谁是客户v客户是指直接或间接从产品中获得利益的个人或组客户是指直接或间接从产品中获得利益的个人或组织织 v软件客户包括提出要求、支付款项、选择、具体说软件客户包括提出要求、支付款项、选择、具体说明或使用软件产品的项目风险承担者明或使用软件产品的项目风险承担者(s t a k e(s t a k e h o l d e r)h o l d e r)或是获得产品所产生的结果的人。或是获得产品所产生的结果的人。25客
11、户与开发人员之间的合作关系客户与开发人员之间的合作关系v高质量的需求来源于客户与开发人员之间有效的交高质量的需求来源于客户与开发人员之间有效的交流与合作流与合作 v通常,开发人员与客户或客户代理人成为一种对立通常,开发人员与客户或客户代理人成为一种对立关系关系26软件客户需求权利书(软件客户需求权利书(1)客户有如下权利:客户有如下权利:1.要求分析人员使用符合客户语言习惯的表达。要求分析人员使用符合客户语言习惯的表达。2.要求分析人员了解客户系统的业务及目标。要求分析人员了解客户系统的业务及目标。3.要求分析人员组织需求获取期间所介绍的信息,要求分析人员组织需求获取期间所介绍的信息,并编写软
12、件需求规格说明。并编写软件需求规格说明。4.要求开发人员对需求过程中所产生的工作结果进要求开发人员对需求过程中所产生的工作结果进行解释说明。行解释说明。5.要求开发人员在整个交流过程中保持和维护一种要求开发人员在整个交流过程中保持和维护一种合作的职业态度。合作的职业态度。27软件客户需求权利书软件客户需求权利书(2)6.要求开发人员对产品的实现及需求都要提供建议,要求开发人员对产品的实现及需求都要提供建议,拿出主意。拿出主意。7.描述产品使其具有易用、好用的特性。描述产品使其具有易用、好用的特性。8.可以调整需求,允许重用已有的软件组件。可以调整需求,允许重用已有的软件组件。9.当需要对需求进
13、行变更时,对成本、影响、得失当需要对需求进行变更时,对成本、影响、得失(t r a d e-o ff)有个真实可信的评估。有个真实可信的评估。10.获得满足客户功能和质量要求的系统,并且这些获得满足客户功能和质量要求的系统,并且这些要求是开发人员同意的。要求是开发人员同意的。28软件客户需求义务书软件客户需求义务书(1)客户有下列义务:客户有下列义务:1.1.给分析人员讲解业务及说明业务方面的术语等专给分析人员讲解业务及说明业务方面的术语等专业问题。业问题。2.2.抽出时间清楚地说明需求并不断完善。抽出时间清楚地说明需求并不断完善。3.3.当说明系统需求时,力求准确详细。当说明系统需求时,力求
14、准确详细。4.4.需要时要及时对需求做出决策。需要时要及时对需求做出决策。5.5.要尊重开发人员的成本估算和对需求的可行性分要尊重开发人员的成本估算和对需求的可行性分析。析。29软件客户需求义务书(软件客户需求义务书(2)6.6.对单项需求、系统特性或使用实例划分优先级。对单项需求、系统特性或使用实例划分优先级。7.7.评审需求文档和原型。评审需求文档和原型。8.8.一旦知道要对项目需求进行变更,要马上与开发一旦知道要对项目需求进行变更,要马上与开发人员联系。人员联系。9.9.在要求需求变更时,应遵照开发组织确定的工作在要求需求变更时,应遵照开发组织确定的工作过程来处理。过程来处理。10.10
15、.尊重需求工程中开发人员采用的流程(过程)。尊重需求工程中开发人员采用的流程(过程)。30“签约签约”意味着什么意味着什么 v客户与开发人员关系中的重要部分客户与开发人员关系中的重要部分 v客户代表经常把客户代表经常把“签约签约”看作是毫无意义的看作是毫无意义的 v更为重要的是签名是建立在一个需求协议的基线上更为重要的是签名是建立在一个需求协议的基线上 v与你的重要客户一起讨论权利书和义务书,以达成与你的重要客户一起讨论权利书和义务书,以达成协议,并付诸实践协议,并付诸实践 31高质量的需求过程带来的好处高质量的需求过程带来的好处v开发后期和整个维护阶段的重做的工作大大减少开发后期和整个维护阶
16、段的重做的工作大大减少 v强调需求质量并不能引起某些人的重视强调需求质量并不能引起某些人的重视,他们错误他们错误地认为在需求上消耗多少时间就会导致产品开发推地认为在需求上消耗多少时间就会导致产品开发推迟多少时间迟多少时间v将选定系统的需求明确地分配到各软件子系统,强将选定系统的需求明确地分配到各软件子系统,强调采用产品工程的系统方法。这样能简化硬软件的调采用产品工程的系统方法。这样能简化硬软件的集成集成 32高质量的需求过程带来的好处高质量的需求过程带来的好处v开发后期和整个维护阶段的重做的工作大大减少开发后期和整个维护阶段的重做的工作大大减少 v强调需求质量并不能引起某些人的重视强调需求质量
17、并不能引起某些人的重视,他们错误他们错误地认为在需求上消耗多少时间就会导致产品开发推地认为在需求上消耗多少时间就会导致产品开发推迟多少时间迟多少时间v将选定系统的需求明确地分配到各软件子系统,强将选定系统的需求明确地分配到各软件子系统,强调采用产品工程的系统方法。这样能简化硬软件的调采用产品工程的系统方法。这样能简化硬软件的集成集成 33优秀需求具有的特性优秀需求具有的特性v1.1.完整性完整性 v2.2.正确性正确性 v3.3.可行性可行性 v4.4.必要性必要性 v5.5.划分优先级划分优先级 v6.6.无二义性无二义性 v7.7.可验证性可验证性 34需求获取的内容需求获取的内容 1.1
18、.用户需求分类用户需求分类 (1)(1)功能性需求功能性需求:定义了系统做什么(描述系统必须支持定义了系统做什么(描述系统必须支持 的功能和过程)的功能和过程)(2)(2)非功能性需求(技术需求)非功能性需求(技术需求):定义了系统工作时的特性定义了系统工作时的特性 (描述操作环境和性能目标)(描述操作环境和性能目标)35两类需求包括的内容两类需求包括的内容(1)(1)功能功能(2)(2)性能性能(3)(3)环境环境(4)(4)界面界面(5)(5)用户或人的因素用户或人的因素(6)(6)文档文档 (7)(7)数据数据(8)(8)资源资源(9)(9)安全保密安全保密(10)(10)软件成本消耗软
19、件成本消耗与开发进度与开发进度(11)(11)质量保证质量保证36功能需求功能需求 系统做什么?系统做什么?系统何时做什么?系统何时做什么?系统何时及如何修改或升级?系统何时及如何修改或升级?37性能需求性能需求软件开发的技术性指标软件开发的技术性指标例如:例如:存储容量限制存储容量限制 执行速度、相应时间执行速度、相应时间 吞吐量吞吐量38环境需求环境需求硬件设备:硬件设备:机型、外设、接口、机型、外设、接口、地点、分布、温度、地点、分布、温度、湿度、磁场干扰等湿度、磁场干扰等软件:软件:操作系统操作系统 网络网络 数据库数据库39界面需求界面需求 有来自其它系统的输入吗?有来自其它系统的输
20、入吗?到自其它系统的输出吗?到自其它系统的输出吗?对数据格式有规定吗?对数据格式有规定吗?对数据存储介质有规定吗?对数据存储介质有规定吗?40用户或人的因素用户或人的因素用户类型?用户类型?各种用户熟练程度?各种用户熟练程度?需受何种训练?需受何种训练?用户理解、使用系统的难度?用户理解、使用系统的难度?用户错误操作系统的可能性?用户错误操作系统的可能性?41文档需求文档需求 需哪些文档?需哪些文档?文档针对哪些读者文档针对哪些读者?42数据需求数据需求 输入、输出数据的格式?输入、输出数据的格式?接收、发送数据的频率?接收、发送数据的频率?数据的准确性和精度?数据的准确性和精度?数据流量?数
21、据流量?数据需保持的时间?数据需保持的时间?43资源需求资源需求 软件运行时所需的数据、软件。软件运行时所需的数据、软件。内存空间等资源。内存空间等资源。软件开发、维护所需的人力、软件开发、维护所需的人力、支撑软件、开发设备等。支撑软件、开发设备等。44安全保密要求安全保密要求 需对访问系统或系统信息加以控制吗?需对访问系统或系统信息加以控制吗?如何隔离用户之间的数据?如何隔离用户之间的数据?用户程序如何与其它程序和操作系统隔离?用户程序如何与其它程序和操作系统隔离?系统备份要求系统备份要求?45软件成本消耗与开发进度需求软件成本消耗与开发进度需求开发有规定的时间表吗?开发有规定的时间表吗?软
22、硬件投资有无限制软硬件投资有无限制?46质量保证质量保证 系统的可靠性要求?系统的可靠性要求?系统必须监测和隔离错误吗?系统必须监测和隔离错误吗?规定系统平均出错时间?规定系统平均出错时间?出错后,重启系统允许的时间?出错后,重启系统允许的时间?系统变化如何反映到设计中?系统变化如何反映到设计中?维护是否包括对系统的改进?维护是否包括对系统的改进?系统的可移植性系统的可移植性?47怎样写需求分析报告怎样写需求分析报告v作报告时要先从宏观上讲一、二、三、四、五,再作报告时要先从宏观上讲一、二、三、四、五,再从细节上讲从细节上讲A A、B B、C C、D D、E E。需求分析不象侦探推需求分析不象
23、侦探推理那样从蛛丝马迹着手。应该先了解宏观的问题,理那样从蛛丝马迹着手。应该先了解宏观的问题,再了解细节的问题再了解细节的问题v如图如图S=D1,D2,D3,Dn Di=P1,P2,P3,Pm Pj=F1,F2,F3,Fk 48知识技能v绝大部分的软件开发人员都没有接受过高效需求工绝大部分的软件开发人员都没有接受过高效需求工程所需技能的正规培训程所需技能的正规培训培训需求分析人员所有的开发人员都应接受一个基本培训需求分析人员所有的开发人员都应接受一个基本的需求工程培训的需求工程培训培训软件需求的用户代表和管理人员参与软件开发的培训软件需求的用户代表和管理人员参与软件开发的用户代表应接受为期一天
24、左右用户代表应接受为期一天左右,关于需求工程的培训,关于需求工程的培训,开发管理者和客户管理者也应参加开发管理者和客户管理者也应参加 让开发人员了解应用领域的基本概念组织一些简短的让开发人员了解应用领域的基本概念组织一些简短的关于客户业务活动、术语、目标等方面的讨论会以帮关于客户业务活动、术语、目标等方面的讨论会以帮助开发人员对应用领域有个基本了解助开发人员对应用领域有个基本了解49需求获取v确定需求开发过程确定需求开发过程 v编写项目视图和范围文档项目视图编写项目视图和范围文档项目视图 v将用户群分类并归纳各自特点将用户群分类并归纳各自特点 v选择每类用户的产品代表选择每类用户的产品代表 v
25、建立起典型用户的核心队伍把同类产品或你的产建立起典型用户的核心队伍把同类产品或你的产品的先前版本用户代表召集起来,从他们那里收品的先前版本用户代表召集起来,从他们那里收集目前产品的功能需求和非功能需求集目前产品的功能需求和非功能需求50需求获取v让用户代表确定使用实例让用户代表确定使用实例 v召开应用程序开发联系会议召开应用程序开发联系会议 v分析用户工作流程观察用户执行业务任务的过程分析用户工作流程观察用户执行业务任务的过程 v确定质量属性和其它非功能需求在功能需求之外确定质量属性和其它非功能需求在功能需求之外再考虑一下非功能的质量特点再考虑一下非功能的质量特点 v通过检查当前系统的问题报告
26、来进一步完善通过检查当前系统的问题报告来进一步完善 v可查看需求是否有足够的灵活性以允许重用一些可查看需求是否有足够的灵活性以允许重用一些已有的软件组件已有的软件组件51需求分析v绘制系统关联图。绘制系统关联图。v建立数据字典。建立数据字典。v为需求建立模型。为需求建立模型。v建立用户接口原型。建立用户接口原型。v确定需求优先级。确定需求优先级。52数据字典v数据字典(Data dictionary)是一种用户可以访问的记录数据库和应用程序源数据的目录。主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的数据字典。被动数据字典是指修改时必须手工更新其内容的数据字典
27、。53v数据字典是一个预留空间,一个数据库,这是用来储存信息数据库本身。数据字典可能包含的信息,如:数据库中所有模式对象的信息,如表、视图、簇、及索引等。分配多少空间,当前使用了多少空间等。列的缺省值。约束信息的完整性。用户的名字。用户及角色被授予的权限。用户访问或使用的审计信息。其它产生的数据库信息。54数据字典的组成v数据项:是最基本的数据元素,是有意义的最小数据单元,在数据字典中,定义数据项特性包括:数据项的名称、编号、别名和简述;数据项的长度;数据项的取值范围。v数据结构:数据项是不能分解的数据,而数据结构是可以进一步分解的数据包。数据结构由两个或两个以上相互关联的数据元素或者其他数据
28、结构组成的。一个数据结构可以由若干个数据元素组成,也可以由若干个数据结构组成,还可以由若干个数据元素和数据结构组成。55v数据流:数据流由一个或一组固定的数据项组成。定义数据流时,不仅说明数据流的名称、组成等,还应指明它的来源、去向和数据流量等。v数据存储:数据存储在数据字典中只描述数据的逻辑存储结构,而不涉及它的物理组织。v处理过程:处理逻辑的定义仅对数据流程图中最底层逻辑加以说明56简而言之数据字典是在数据库设计时用到的一种工具,用来描述数据库中基本表的设计,主要包括字段名、数据类型、主键、外键等描述表的属性的内容。57补充知识v需求说明书:是根据与现场实际客户进行沟通,把客户的需求进行整
29、理,CMMI中有标准的模板,重点是站在客户的角度讲产品功能。v需求规格说明书:是从业务规则讲起的,细一点偏向于软件的概要设计。是从开发、测试的角度去讲产品功能,里面要包含原型界面、业务接口、活动图等58数据字典条目的定义举例预订请求客人数据住宿期限预订请求客人数据住宿期限+客房类别客房类别客人数据客人姓名客人数据客人姓名+地址地址+身份证号码身份证号码+护照号护照号码码+支付方式支付方式 身份证号码身份证号码=十进制十进制1515数字数字1818护照号码字母护照号码字母+8+8数字数字88字母字母“A”“Z”A”“Z”十进制数字十进制数字“0”“9”0”“9”59F1:F1:航班信息文件航班信
30、息文件 航空公司名称航班号起点航空公司名称航班号起点终点日期终点日期 起飞时间降落时间起飞时间降落时间 航空公司名称航空公司名称22字母字母44 航班号航班号33十进制数字十进制数字33 字母字母“A”“Z”A”“Z”十进制数字十进制数字“0”“9”0”“9”起点终点起点终点11汉字汉字1010 起飞时间降落时间时分起飞时间降落时间时分60 时时“00”“23”00”“23”分分“00”“59”00”“59”日期年月日日期年月日 /年年20002000200120012002200220042004 月月“01”“12”01”“12”日日“01”“31”01”“31”61系统概要设计v主要采用
31、面向对象程序程序设计方法,使用UML来描述。v在这里用到到主要有两类用例图活动图62v用例模型的基本组成:用例、角色和系统用例模型的基本组成:用例、角色和系统v用例图用例图:风险分析风险分析交易估计交易估计进行交易进行交易进行交易进行交易接待员接待员酒店系统酒店系统财务系统财务系统63v如何发现角色-通过回答下面问题,可以帮助建模者发现角色使用系使用系统主要功能的人是主要功能的人是谁?需要借助于系需要借助于系统完成日常工作的人是完成日常工作的人是谁?谁来来维护、管理系、管理系统,保,保证系系统正常工作正常工作系系统控制的硬件控制的硬件设备有哪些?有哪些?系系统需要与哪些其它系需要与哪些其它系统交互?交互?对系系统产生的生的结果感果感兴趣的人或事是哪些?趣的人或事是哪些?64v发现角色角色需要从系角色需要从系统中中获得哪种功能?角色需要做什么得哪种功能?角色需要做什么?角色需要角色需要读取、取、产生、生、删除、修改或存除、修改或存储系系统中的中的信息信息吗?系系统中中发生的事件需要通知角色生的事件需要通知角色吗?如果用系如果用系统的新功能的新功能处理角色的日常工作是理角色的日常工作是简化了化了还是提高了工作效率?是提高了工作效率?6566676869707172737475767778798081828384858687888990919293Thank You!94