概述+软件需求工程1_第1页
概述+软件需求工程1_第2页
概述+软件需求工程1_第3页
概述+软件需求工程1_第4页
概述+软件需求工程1_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章 需求工程王子科大沙河校区主楼西301w_ling(Software Requirements Engineering)今天的内容软件工程概述软件生命期可行性分析需求分析提交小组名单布置实验报告1-问题定义与可行性论证报告(3.6交)关于软件工程实践确定开发小组成员及分工(下课前提交)组长每周组织1-2次小组讨论会确定题目提交实验报告一:问题定义与可行性论证报告截止日期:3.6 ,可纸可电(w_ling)电子科大课程中心:90/参考题目机票预订系统宿舍管理系统超市管理系统文献管理器社区医生老人防走失(防跌倒)手机App人体多种生理信号的实时监测基于手机的心率实时

2、检测系统.(可以自选题目,考虑竞赛与创新基金的延续性)第一章 概述第一章 软件工程概述软件工程过程软件生命期软件开发模型软件开发方法软件开发工具与开发环境是指在软件工具的支持下,所进行的一系列软件开发和进化的活动。四类基本过程:P(Plan): 软件规格说明D(Do) :软件开发C(Check):软件确认A(Action):软件演进软件工程过程(Software engineering process)问题定义编 码需求分析软件设计可行性研究运行与维护测 试开发阶段运行阶段计划阶段软件生命期(SDLD)瀑布模型“能做吗?”“做什么?”“如何做?”“做出来”“做得怎么样?” “进一步完善” “是

3、什么?”软件开发方法与模型软件开发的目标是要在规定的投资和时间内,开发出符合用户的需求,高质量的软件,为此需要有成功的开发方法。 面向过程的开发方法 面向对象的开发方法 软件开发模型是描述软件开发过程中各种活动如何执行的模型。因此又称为软件过程模型,是对软件开发实际过程的抽象和简化。不同的开发方法有不同的软件过程模型。典型的软件开发模型有:瀑布模型、原型化模型、螺旋模型、喷泉模型等。结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟,应用最广泛的方法。主要特点是快速,自然和方便。结构化方法总的指导思想自顶向下、逐步求精。它的基本原则是功能的分

4、解与抽象。面向过程结构化方法结构化开发方法的组成: 结构化分析方法 SA法(Structured Analysis) 结构化设计方法 SD法(Structured Design) 结构化程序设计方法SP法(Structured Program)主要开发模型:瀑布模型、原型工作模型、螺旋模型面向过程结构化方法(structured)瀑布模型问题定义编 码需求分析软件设计可行性研究运行与维护测 试开发时期运行时期计划时期(目标与范围说明书)(可行性论证论告)(维护报告)(测试报告)(程序)(设计文档)(需求说明书)瀑布模型特点:上一阶段的变换结果是下一阶段的变换的输入,相邻两个阶段具有因果关系,紧

5、密相联。 为了描述软件开发过程中可能的回溯,尤其是维护阶段往往要经历上述各个阶段。采用循环模型描述。需求分析设计编码测试运行评价计划变种循环模型循环模型原型化工作模型(Prototyping Model)加工原型原型快速分析和设计建造原型客户评价原型1、原型系统仅包括未来系统的 主要功能,以及系统的重要 接口。2、为了尽快向用户提供原型, 开发原型系统时应尽量使用 能缩短开发周期的语言和工 具。 原型:是指模拟某种产品的原始模型,是软件的一个早期可运行的版本,它反映了最终系统的部分重要特性。基本思想是:花费少量代价建立一个可运行的系统,使用户及早获得学习的机会。螺旋模型螺旋模型 对大型软件,需

6、要多个原型描述系统的生存期,螺旋模型将瀑布模型与原型化模型结合起来,并加入了风险分析。 面向对象方法 是80年代推出的一种全新的软件开发方法。非常实用而强有力,被誉为90年代软件的核心技术之一。面向对象方法 其基本思想是:对问题领域进行自然的分割,以更接近人类通常思维的方式建立问题领域的模型,以便对客观的信息实体进行结构和行为的模拟,从而使设计的软件更直接地表现问题的求解过程。面向对象的开发方法以对象作为最基本的元素,是分析和解决问题的核心。OOAOOA面向对象的分析:强调的是对一个系统中的对象特征和行为的定义。建立系统的三类模型。OODOODOOD面向对象的设计:与OOA密切配合顺序实现对现

7、实世界的进一步建模。OOPOOPOOP面向对象的程序设计:是面向对象的技术中发展最快的,使用面向对象的程序设计语言,进行编码。面向对象方法(Object-Oriented )开发模型:喷泉模型喷泉模型分 析系统 设计软件 设计实 现喷泉模型它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性,喷泉模型使开发过程具有迭代性和无间隙性。 其特点如下: . 开发过程有分析、系统设计、软件设计和实现4个阶段。.各阶段相互重叠,它反映了软件过程并行性的特点。 .以分析为基础,资源消耗成塔型。.反映了软件过程迭代性的自然特性,从高层返回低层无资源消耗。 .强调增量开发,整个过程是一个迭代的逐步提炼的过

8、程。 软件开发工具与软件开发环境1软件开发工具协助开发人员进行软件开发活动所使用的软件或环境 需求分析工具、设计工具、编码工具、排错工具、测试工具等。2软件开发环境 全面支持软件开发全过程的软件工具的集合计算机辅助软件工程:CASE19开始第一步:第二步:第三步:问题定义可行性分析需求分析目的:弄清楚用户要求计算机解决什么问题任务:编写系统目标与规范说明书 系统目标与规范说明书1、项目:教材销售系统2、问题:人工销售教材手续繁琐,容易出错3、项目目标:建立一个高效率、无差错的计算机教材销售系统4、项目范围:利用现有的计算机,软件开发费用不得超过2000元5、初步想法:建议在系统中增加对缺书的统

9、计与采购功能6、可行性研究:建议进行大约10天的可行性研究,且研究费用不超过500元1. 问题定义其论证的焦点是:围绕着对系统开发的价值进行论证2. 可行性论证主要有以下四个方面: 1、技术可行性:分析技术冒险的各种因素,如:现有的技术是否能实现本系统,现有的技术人员是否能胜任,开发系统的软、硬资源是否能如期得到等。 2、经济可行性:开发这个系统有没有经济效益?多久能收回成本,因此要对经济的合理性进行评价。 3、运行可行性:为新系统规定的运行方案是否可行?如果新系统是建立在原来其它计算机系统上的,就不能要求它在现状态下直接运行,以免有与原来的任务相矛盾。 4、法律上可行性:新系统的开发,会不会

10、侵犯他人、集体或国家的利益,并由此而承担法律责任。举例:关于开发CAD系统的软件开发成本及效益分析 1 2 3 4 5 年604020 0成本-效益(万元)该系统节省经费该系统成本盈亏平衡点投资回收期 -成本及效益分析图可行性论证基于计算机系统的成本由四部分组成1、购置软、硬件及有关设备费用2、系统开发费用3、系统安装和维护费用4、人员培训费用费用例:经济可行性-进行成本效益分析,评估项目的开发成本。可行性论证报告1、系统概述2、可行性分析3、拟订开发计划4、结论意见可行性论证主要是对当前系统极其存在的问题的简单描述;对新系统的开发目的、目标、业务对象和范围;新系统和它各个子系统的功能与特性等

11、。这是报告的主体。包括新系统在经济上、技术上、运行上、法律上的可行性,以及对新系统的主客观条件的分析。包括工程进度,人员配备情况,资源配备情况,估计出每个阶段的成本、约束条件综合上述分析,说明新系统是否可行,结论可区分为三类:深刻立即进行 ;推迟进行 ; 不能或不值得进行3 需求分析为什么一定要做需求分析?项目的成败与需求分析失败的原因中,与需求过程相关的原因占了45%,而其中缺乏最终用户的参与以及不完整的需求又是两大首要原因,各占13%和12%。 未完成完成未实施完成名家怎么说?微软张益肇博士(现任微软亚洲研究院副院长,负责技术战略部)我最大的心得是,一个产品一定要找到能够真正适用的场合,不

12、能只是为了技术而从事技术,为了研究而进行研究,却不管用户对你所研究的技术和产品有没有需求。否则,无论你的技术是多么优秀,多么先进,恐怕你的产品在市场上都无法获得成功。需求分析在软件开发中的地位需求分析对整个开发阶段都具有重大的影响,它是软件开发的基础。需求分析错误发现越晚,代价越高。软件需求无疑是当前软件工程中的关键问题,没有需求就没有软件。需求分析的任务是什么?软件需求分析的任务软件需求分析的任务:确定系统“做什么”用户和分析人员双方共同来理解系统的需求,描述: 定义软件的范围及必须满足的约束; 确定软件的功能和性能及与其他系统成分的接口; 建立数据模型、功能模型和行为模型; 最终提供需求规

13、格说明(软件需求说明书),并用于作为评估软件质量的依据。 需求说明书主要有三个作用:作为用户和软件开发人员之间的合同;作为开发人员进行设计和编程的根据;作为软件开发完成后验收的依据。主要内容概述、数据描述、功能描述、性能描述、参考文献、附录 特点正确性;无歧义性;完整性;可验证性;一致性;可理解性;可修改性;可追踪性。需求分析都分析些什么?软 件需 求用 户需 求系 统需 求功能需求非功能需求领域需求由客户管理员、用户等提出软件需求的内容软件需求分析的内容功能需求 它是对系统应该提供的服务、功能以及系统在特定条件下的行为的描述。它与软件系统的类型、使用系统的用户等相关,有时需要详细描述系统的功

14、能、输入/输出、异常等,有时还需要申明系统不应该做什么。 领域需求 是由软件系统的应用领域所决定的特有的功能需求,或是对功能的约束。产品需求机构需求外部需求互操作需求道德需求立法需求性能需求空间需求交付需求实现需求标准需求隐私需求安全性需求可用性需求效率需求可靠性需求可移植性需求非功能需求案例1:图书管理系统该系统除了一般的图书管理功能外,还能够为学生和教工从其他图书馆借阅图书和文献资料提供服务。软件需求的困难软件需求是软件工程中最复杂的过程之一应用领域的广泛性非功能性需求建模技术的缺乏与功能性需求的联系沟通上的困难很难几次就精确完整地提出所有的系统功能要求需求分析怎么做?步骤?方法?技术?它

15、还涉及这些因素和系统的精确规格说明以及系统进化之间的关系。它也提供现实需求和软件能力之间的桥梁。需求工程系统目标系统服务软件约束运行环境需求工程需求工程的基本活动 获取需求;深入实际,在充分理解用户需求的基础上,获取系统的需求。需求分析与建模;进行需求建模、对模型或原型进行分析。需求规格说明 确认需求;确保需求说明准确、完整地表达系统的主要特性。 进化需求。客户的需要总是不断(连续)增长的 ,进化需求是必要的。 案例分析因此系统应该具备以下功能: 基本数据维护功能 基本业务功能 数据库管理功能 信息查询功能该系统除了一般的图书管理功能外,还能够为学生和教工从其他图书馆借阅图书和文献资料提供服务

16、。案例1: 大学图书管理系统1. 功能需求基本数据维护功能: 提供使用者录入,修改并进行维护基本数据的途径。基本数据包括读者的信息、图书资料的相关信息,可以对这些信息进行修改,更新。基本业务功能: 读者借、还书籍的登记管理功能,随时根据读者借、还书籍的情况更新数据库系统,如果书籍已经借出,可以进行预留操作,书籍的编目、入库、更新等操作。数据库管理功能: 对所有图书信息及读者信息进行统一管理维护的功能,对书籍的借还也要进行详细的登记,以便协调整个图书馆的运作。信息查询功能: 提供对各类信息的查询功能,如对本图书馆的用户借书信息,还书的信息,书籍源信息,预留信息等进行查询,对其他图书馆的书籍、资料源信息的查询功能。1. 功能需求2.非功能需求 系统安全性需求:为保证系统安全性,对本图书馆的各项功能进行分级、分权限操作,对各类用户进行确认。对其它图书馆借阅图书和文献资料服务控制访问范围:如限IP、限用户等。 对系统可用性的需求:为了方

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论