软件工程-2软件开发过程.ppt

上传人:牧羊曲112 文档编号:6441950 上传时间:2023-10-31 格式:PPT 页数:94 大小:510.06KB
返回 下载 相关 举报
软件工程-2软件开发过程.ppt_第1页
第1页 / 共94页
软件工程-2软件开发过程.ppt_第2页
第2页 / 共94页
软件工程-2软件开发过程.ppt_第3页
第3页 / 共94页
软件工程-2软件开发过程.ppt_第4页
第4页 / 共94页
软件工程-2软件开发过程.ppt_第5页
第5页 / 共94页
点击查看更多>>
资源描述

《软件工程-2软件开发过程.ppt》由会员分享,可在线阅读,更多相关《软件工程-2软件开发过程.ppt(94页珍藏版)》请在三一办公上搜索。

1、1,软件工程,西南财经大学天府学院,2,可行性研究,可行性研究的任务可行性研究的主要任务是“了解客户的要求及现实环境,从技术、经济和社会因素等三方面研究并论证本软件项目的可行性,编写可行性研究报告,制定初步项目开发计划。”,3,可行性研究内容(1)技术可行性(2)经济可行性(3)操作可行性(4)社会可行性(法律可行性)(5)抉择,4,技术可行性度量一个特定技术信息系统解决方案的实用性及技术资源的可用性考虑的问题开发风险分析资源分析相关技术的发展(现有技术能否实现新系统,技术难点、建议采用技术的先进性),5,经济可行性度量系统解决方案的性能价格比考虑的问题 成本/效益分析有形成本、效益无形成本、

2、效益 价值和成本的关系质量与价值、成本的关系价值/成本的均衡,6,成本和效益的估算开发成本的估算开发效益的估算运行成本的估算运行效益的估算,7,从哪些方面来考虑成本?,8,前期业务费用(签署开发合同之前)(1)招投标(2)做市场调研和市场分析系统开发费用硬件、软件年运行费用,9,系统开发费用系统分析员系统设计人员系统开发人员系统测试人员系统实施人员项目经理数据库管理员技术写作者秘书 数据通讯专家转换期间数据输入人员项目管理(QA),10,培训:开发人员内部培训课程 用户培训物资:复印磁盘、纸张等消耗品,11,购买硬件、软件:20台工作站Windows软件$1,00020台工作站内存升级$8,0

3、00网络软件$17,50020台工作站办公软件产品$20,000系统开发总费用$161,670,12,年运行费用(每年)人员:维护程序员/分析员网络管理员购买硬件、软件升级:硬件 软件物资和杂项,13,操作可行性,用户使用可能性时间进度可行性组织和文化上的可行性,14,社会可行性(法律可行性),开发项目是否会在社会上或政治上引起侵权、破坏或其它责任问题,15,可行性研究计划的完成,可行性研究计划,16,可行性研究的步骤,(1)复查确认系统目标、规模(2)研究正使用系统工作流程(3)导出新系统高层逻辑模型(4)重新定义问题(5)导出和评价供选择的方案(6)推荐可行的方案(7)草拟开发计划(8)编

4、写可行性研究报告,送审,17,为什么需要需求分析,开发人员往往急于求成希望对开发进行指导希望开发人员对用户的要求理解希望用户理解开发人员测试部门有理可依,18,需求分析的任务,准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么。用 规范的形式准确地表达用户的需求。,19,什么是用户需求,思考、涉及的几个问题如何识别、获取需求?你能够采取何种手段与用户进行交流沟通?何为需求建模?你如何理解模型与建模?,20,软件需求分析的几个阶段,问题分析问题评估和方案综合建模规约复审 系统分析员的主要焦点是“做什么(what)”,不是“怎样做(how)”,21,需求获取面临的挑战,客户说不清楚需求

5、 需求易变性问题的复杂性和对问题空间 理解的不完备性与不一致性,22,需求获取的常用方法,建立分析小组 领域专家:主角 系统分析员:导演客户访谈问题分析与确认,23,某出版社系统调查表,24,某出版社系统调查表,25,谁是客户,客户是指直接或间接从产品中获得利益的个人或组织 软件客户包括提出要求、支付款项、选择、具体说明或使用软件产品的项目风险承担者(s t a k e h o l d e r)或是获得产品所产生的结果的人。,26,客户与开发人员之间的合作关系,高质量的需求来源于客户与开发人员之间有效的交流与合作 通常,开发人员与客户或客户代理人成为一种对立关系,27,软件客户需求权利书(1)

6、,客户有如下权利:1.要求分析人员使用符合客户语言习惯的表达。2.要求分析人员了解客户系统的业务及目标。3.要求分析人员组织需求获取期间所介绍的信息,并编写软件需求规格说明。4.要求开发人员对需求过程中所产生的工作结果进行解释说明。5.要求开发人员在整个交流过程中保持和维护一种合作的职业态度。,28,软件客户需求权利书(2),6.要求开发人员对产品的实现及需求都要提供建议,拿出主意。7.描述产品使其具有易用、好用的特性。8.可以调整需求,允许重用已有的软件组件。9.当需要对需求进行变更时,对成本、影响、得失(t r a d e-o ff)有个真实可信的评估。10.获得满足客户功能和质量要求的系

7、统,并且这些要求是开发人员同意的。,29,软件客户需求义务书(1),客户有下列义务:1.给分析人员讲解业务及说明业务方面的术语等专业问题。2.抽出时间清楚地说明需求并不断完善。3.当说明系统需求时,力求准确详细。4.需要时要及时对需求做出决策。5.要尊重开发人员的成本估算和对需求的可行性分析。,30,软件客户需求义务书(2),6.对单项需求、系统特性或使用实例划分优先级。7.评审需求文档和原型。8.一旦知道要对项目需求进行变更,要马上与开发人员联系。9.在要求需求变更时,应遵照开发组织确定的工作过程来处理。10.尊重需求工程中开发人员采用的流程(过程)。,31,“签约”意味着什么,客户与开发人

8、员关系中的重要部分 客户代表经常把“签约”看作是毫无意义的 更为重要的是签名是建立在一个需求协议的基线上 与你的重要客户一起讨论权利书和义务书,以达成协议,并付诸实践,32,高质量的需求过程带来的好处,开发后期和整个维护阶段的重做的工作大大减少 强调需求质量并不能引起某些人的重视,他们错误地认为在需求上消耗多少时间就会导致产品开发推迟多少时间将选定系统的需求明确地分配到各软件子系统,强调采用产品工程的系统方法。这样能简化硬软件的集成,33,高质量的需求过程带来的好处,开发后期和整个维护阶段的重做的工作大大减少 强调需求质量并不能引起某些人的重视,他们错误地认为在需求上消耗多少时间就会导致产品开

9、发推迟多少时间将选定系统的需求明确地分配到各软件子系统,强调采用产品工程的系统方法。这样能简化硬软件的集成,34,优秀需求具有的特性,1.完整性 2.正确性 3.可行性 4.必要性 5.划分优先级 6.无二义性 7.可验证性,35,需求获取的内容,1.用户需求分类(1)功能性需求:定义了系统做什么(描述系统必须支持 的功能和过程)(2)非功能性需求(技术需求):定义了系统工作时的特性(描述操作环境和性能目标),36,两类需求包括的内容,(1)功能(2)性能(3)环境(4)界面(5)用户或人的因素(6)文档,(7)数据(8)资源(9)安全保密(10)软件成本消耗与开发进度(11)质量保证,37,

10、功能需求,系统做什么?系统何时做什么?系统何时及如何修改或升级?,38,性能需求,软件开发的技术性指标例如:存储容量限制 执行速度、相应时间 吞吐量,39,环境需求,硬件设备:机型、外设、接口、地点、分布、温度、湿度、磁场干扰等软件:操作系统 网络 数据库,40,界面需求,有来自其它系统的输入吗?到自其它系统的输出吗?对数据格式有规定吗?对数据存储介质有规定吗?,41,用户或人的因素,用户类型?各种用户熟练程度?需受何种训练?用户理解、使用系统的难度?用户错误操作系统的可能性?,42,文档需求,需哪些文档?文档针对哪些读者?,43,数据需求,输入、输出数据的格式?接收、发送数据的频率?数据的准

11、确性和精度?数据流量?数据需保持的时间?,44,资源需求,软件运行时所需的数据、软件。内存空间等资源。软件开发、维护所需的人力、支撑软件、开发设备等。,45,安全保密要求,需对访问系统或系统信息加以控制吗?如何隔离用户之间的数据?用户程序如何与其它程序和操作系统隔离?系统备份要求?,46,软件成本消耗与开发进度需求,开发有规定的时间表吗?软硬件投资有无限制?,47,质量保证,系统的可靠性要求?系统必须监测和隔离错误吗?规定系统平均出错时间?出错后,重启系统允许的时间?系统变化如何反映到设计中?维护是否包括对系统的改进?系统的可移植性?,48,怎样写需求分析报告,作报告时要先从宏观上讲一、二、三

12、、四、五,再从细节上讲A、B、C、D、E。需求分析不象侦探推理那样从蛛丝马迹着手。应该先了解宏观的问题,再了解细节的问题 如图 S=D1,D2,D3,Dn Di=P1,P2,P3,Pm Pj=F1,F2,F3,Fk,49,知识技能,绝大部分的软件开发人员都没有接受过高效需求工程所需技能的正规培训培训需求分析人员所有的开发人员都应接受一个基本的需求工程培训培训软件需求的用户代表和管理人员参与软件开发的用户代表应接受为期一天左右,关于需求工程的培训,开发管理者和客户管理者也应参加 让开发人员了解应用领域的基本概念组织一些简短的关于客户业务活动、术语、目标等方面的讨论会以帮助开发人员对应用领域有个基

13、本了解,50,需求获取,确定需求开发过程 编写项目视图和范围文档项目视图 将用户群分类并归纳各自特点 选择每类用户的产品代表 建立起典型用户的核心队伍把同类产品或你的产品的先前版本用户代表召集起来,从他们那里收集目前产品的功能需求和非功能需求,51,需求获取,让用户代表确定使用实例 召开应用程序开发联系会议 分析用户工作流程观察用户执行业务任务的过程 确定质量属性和其它非功能需求在功能需求之外再考虑一下非功能的质量特点 通过检查当前系统的问题报告来进一步完善 可查看需求是否有足够的灵活性以允许重用一些已有的软件组件,52,需求分析,绘制系统关联图。建立数据字典。为需求建立模型。建立用户接口原型

14、。确定需求优先级。,53,数据字典,数据字典(Data dictionary)是一种用户可以访问的记录数据库和应用程序源数据的目录。主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的数据字典。被动数据字典是指修改时必须手工更新其内容的数据字典。,54,数据字典是一个预留空间,一个数据库,这是用来储存信息数据库本身。数据字典可能包含的信息,如:数据库中所有模式对象的信息,如表、视图、簇、及索引等。分配多少空间,当前使用了多少空间等。列的缺省值。约束信息的完整性。用户的名字。用户及角色被授予的权限。用户访问或使用的审计信息。其它产生的数据库信息。,55,数据字典的组

15、成,数据项:是最基本的数据元素,是有意义的最小数据单元,在数据字典中,定义数据项特性包括:数据项的名称、编号、别名和简述;数据项的长度;数据项的取值范围。数据结构:数据项是不能分解的数据,而数据结构是可以进一步分解的数据包。数据结构由两个或两个以上相互关联的数据元素或者其他数据结构组成的。一个数据结构可以由若干个数据元素组成,也可以由若干个数据结构组成,还可以由若干个数据元素和数据结构组成。,56,数据流:数据流由一个或一组固定的数据项组成。定义数据流时,不仅说明数据流的名称、组成等,还应指明它的来源、去向和数据流量等。数据存储:数据存储在数据字典中只描述数据的逻辑存储结构,而不涉及它的物理组

16、织。处理过程:处理逻辑的定义仅对数据流程图中最底层逻辑加以说明,57,简而言之数据字典是在数据库设计时用到的一种工具,用来描述数据库中基本表的设计,主要包括字段名、数据类型、主键、外键等描述表的属性的内容。,58,补充知识,需求说明书:是根据与现场实际客户进行沟通,把客户的需求进行整理,CMMI中有标准的模板,重点是站在客户的角度讲产品功能。需求规格说明书:是从业务规则讲起的,细一点偏向于软件的概要设计。是从开发、测试的角度去讲产品功能,里面要包含原型界面、业务接口、活动图等,59,数据字典条目的定义举例,预订请求客人数据住宿期限+客房类别客人数据客人姓名+地址+身份证号码+护照号码+支付方式

17、 身份证号码=十进制15数字18护照号码字母+8数字8字母“A”“Z”十进制数字“0”“9”,60,F1:航班信息文件航空公司名称航班号起点终点日期 起飞时间降落时间航空公司名称2字母4 航班号3十进制数字3 字母“A”“Z”十进制数字“0”“9”起点终点1汉字10 起飞时间降落时间时分,61,时“00”“23”分“00”“59”日期年月日/年2000200120022004 月“01”“12”日“01”“31”,62,系统概要设计,主要采用面向对象程序程序设计方法,使用UML来描述。在这里用到到主要有两类用例图活动图,63,用例模型的基本组成:用例、角色和系统用例图:,风险分析,交易估计,进

18、行交易,进行交易,接待员,酒店系统,财务系统,64,如何发现角色-通过回答下面问题,可以帮助建模者发现角色使用系统主要功能的人是谁?需要借助于系统完成日常工作的人是谁?谁来维护、管理系统,保证系统正常工作系统控制的硬件设备有哪些?系统需要与哪些其它系统交互?对系统产生的结果感兴趣的人或事是哪些?,65,发现角色角色需要从系统中获得哪种功能?角色需要做什么?角色需要读取、产生、删除、修改或存储系统中的信息吗?系统中发生的事件需要通知角色吗?如果用系统的新功能处理角色的日常工作是简化了还是提高了工作效率?,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,Thank You!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号