ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:211.22KB ,
资源ID:29235976      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29235976.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件工程.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

软件工程.docx

1、软件工程12.美国一家公司在1982年计划用FORTRAN语言开发一个在VAX750计算机上运行的应答:(1) 10000/10=1000(人日)开发这个应用程序大约需用1000个人日。需要指出的是,上述工作量包括问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试等各个开发阶段的工作量,而不仅仅是编写程序所需的工作量。(2)每月平均工作20天,故开发这个软件需要用1000/20=50(人月)每人每月的平均工资为4000美元,因此这个软件的成本大约为50*4000=200000(美元)(3)软件成本与硬件成本之和为计算机系统的总成本。这个软件的成本在总成本中所占的比例为

2、200000/(200000+125000)=61.5%(4)在2002年开发这个应用程序所需的工作量约为10000/(40*20)=12.5(人月)这个软件的成本大约为12.5*8000=100000(美元)该软件的成本在总成本中所占的比例为100000/(100000+2000)=98%13.(1)为什么鲍曼拆下存储器就能摆脱计算机的干扰而独自控制宇宙飞船?我们现在答:(1)计算机通过运行程序来控制宇宙飞船,而程序指令存放在存储器中。拆下存储器之后,计算机因取不来指令而无法运行程序,因此也就无法控制宇宙飞船了。我们现在遇到的软件问题没有这么严重,还没有出现计算机不服从人的命令的情况。(2)

3、除非鲍曼能亲自分析有故障的部件,或者在计算机上还安装有另外一套故障检测系统,否则不依靠飞行指挥中心他很难知道HAL的故障预报有问题。(3)应该把HAL设计成具有若干个储存的问题,供周期性测试之用。通过把应有的测试结果和HAL实际测试结果加以比较的方法,有可能发现HAL的故障预报问题。此外,不论怎样具体设计HAL系统,都应该设置一种人工操作模式,并把人工操作模式设置为最高等级的控制模式,在任何情况下计算机控制都不能取消人工操作命令。1. 在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性?答:(1)开发一个软件时,需要判断原定的系统模型和目标是否现实,系统完成后所能带

4、来的效益是否大到值得投资开发这个系统的程度,如果做不到这些,那么花费在这些工程上的任何时间、人力、软硬件资源和经费,都是无谓的浪费。可行性研究的实质是要进行一次大大压缩简化了的系统分析和设计过程,就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。(2)一般说来,至少应该从以下三个方面研究每种解法的可行性:a.技术可行性。对要开发项目的功能、 性能和限制条件进行分析, 确定在现有的资源条件下,技术风险有多大,项目是否能实现,这些即为技术可行性研究的内容。这里的资源包括已有的或可以搞到的硬件、软件资源,现有技术人员的技

5、术水平和已有的工作基础。b.经济可行性。进行开发成本的估算以及了解取得效益的评估, 确定要开发的项目是否值得投资开发,这些即为经济可行性研究的内容对于大多数系统,一般衡量经济上是否合算,应考虑一个“底线”,经济可行性研究范围较广,包括成本效益分析, 长期公司经营策略, 开发所需的成本和资源,潜在的市场前景。c.操作可行性。有时还要研究社会可行性问题,研究要开发的项目是否存在任何侵犯、妨碍等责任问题。社会可行性所涉及的范围也比较广,它包括合同、责任、 侵权和其他一些技术人员常常不了解的陷阱等。必要时还应该从法律、社会效益等更广泛的方面研究每种解法的可行性。5. 北京某高校可用的电话号码有以下几类

6、:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。用2.5.2小节讲述的定义数据的方法,定义上述的电话号码。答:电话号码=校内电话号码校外电话号码校内电话号码=非零数字+3位数字校外电话号码=本市号码外地号码本市号码=数字零+8位数字外地号码=数字零+3位数字+8位数字非零数字=123456789数字零=03位数字=3数字38位数字=非零数字+7位数字1. 为什么要进行需求分析?通常对软件系统有哪些需求?答: “需求分析”确定系统必须

7、完成哪些工作,也就是对目标系统提出完整、准确、具体的要求。为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求,只有深入理解了用户的需求,我们的工作才会有意义。对软件通常有以下需求:功能需求:指定系统必须提供的服务;性能需求:指定系统必须满足的定时约束或容量约束,通常包括速度、信息量速率、主存容量、磁盘容量、安全性等方面的需求;可靠性和可用性需求:指定系统的可靠性,可用性量化了用户可以使用系统的程度;出错处理需求:说明系统对环境错误应该怎么响应;接口需求:描述应用系统与它的环境通信的格式;逆向需求:说明软件系统不应该做什么;将来可能提出的要求:应该明确列出那些虽然不属于当前系统开发范畴

8、,但是据分析将来很可能会提出来的要求。2. 怎样与用户有效地沟通以获取用户的真实需求?答:(1)访谈访谈是最早开始使用的获取用户需求的技术,也是迄今为止仍然广泛使用的需求分析技术;访谈有两种基本形式,分别是正式的和非正式的访谈。当需要调查大量人员的意见时,请被调查人填写调查表是十分有效的做法。在访问用户的过程中使用情景分析技术往往非常有效。所谓情景分析,就是对用户将来使用目标系统解决某个具体问题的方法和结果进行分析。系统分析员利用情景分析技术,往往能够获知用户的具体需求。(2)面向数据流自顶向下求精结构化分析方法实质上就是面向数据流自顶向下逐步求精进行需求分析的方法。通过可行性研究已经得出了目

9、标系统的高层数据流图,需求分析的一个主要目标就是把数据流和数据存储定义到元素级。为了达到这个目标,通常从数据流图的输出端着手分析。(3)简易的应用规格说明技术简易的应用规格说明技术是一种面向团队的需求收集技术。这种方法提倡用户与开发者密切合作,共同标识问题,提出解决方案要素,商讨不同的方案并指定基本需求。目前,这种技术已经成为信息系统领域使用的主流技术。(4)快速建立软件原型快速建立软件原型,是最准确,最有效,最强大的需求分析技术。所谓软件原型,就是快速建立起来的旨在演示目标系统主要功能的可运行的程序。 构建软件原型的要点是,它应该实现用户看得见的功能,省略目标系统的“隐含”功能。软件原型应该

10、具有的第一个特性是“快速”,第二个特性是“容易修改”。3. 银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员输入系答:描绘本系统功能的数据流图如图所示。计算机储蓄系统数据流图本问题中共有两类实体,分别是“储户”和“储蓄所”,在它们之间存在“存取款”关系。因为一位储户可以在多家储蓄所存取款,一家储蓄所拥有多位储户,所以“存取款”是多对多(M:N)关系。储户的属性主要有姓名、住址、电话号码和身份证号码,储蓄所的属性主要是名称、住址和电话号码,而数额、类型、到期日期、利率和密码则是联系类型存取款的属性。图是描述计算机储蓄系统中数据对象的实体-联系图。计算机储蓄系统的实体-联系图

11、3. 一个浮点二进制数的构成是:一个可选的符号(+或-),后跟一个或多个二进制位,再跟答:该有穷状态机的初态是“等待字符串输入”。在初态若接收到字符+、或字符-、或二进制位,则进入“输入尾数”状态;在初态若接收到其他字符,则进入终态“非浮点二进制数”。在“输入尾数”状态若接收到二进制位,则保持该状态不变;若接收到字符E,则进入“等待输入指数”状态;若接收到其他字符,则进入终态“非浮点二进制数”。在“等待输入指数”状态若接收到字符+、或字符-、或二进制位,则进入“输入指数”状态;若接收到其他字符,则进入终态“非浮点二进制数”。在“输入指数”状态若接收到二进制位,则保持该状态不变,若输入其他字符,

12、则进入终态“非浮点二进制数”;若输入结束,则进入终态“浮点二进制数”。综上所述,判断输入的字符串是否是浮点二进制数的有穷状态机如图2.10所示。图2.10 判断浮点二进制数的有穷状态机仔细研究图2.10所示的有穷状态机可以发现,它还有不够严格的地方。有兴趣的读者请进一步改进它,画出更严格的、与浮点二进制数定义完全一致的有穷状态机。 LMN 公司曾经完成过 个软件开发项目,有关这些项目的数据记录在表 表10.2历史数据 项目序号 规模(KLOC) 工作量(PM) 答:静态单变量模型假定在软件规模和开发软件所需的工作量之间存在如下的函数关系:E A B (KLOC)C根据表 中给出的历史数据,可以

13、画出软件规模与工作量之间的实际函数关系曲线,如图畅 所示。图 软件规模与工作量的关系从图 可以看出,在LMN 公司软件规模与工作量之间存在线性关系,直线的斜率是 。因此,静态单变量模型中的 个参数的值如下:A ,B ,C 根据适用于LMN 公司的这个静态单变量模型,可以估算出完成一个KLOC 的项目需用的工作量为E KLOC (PM) 为什么成本估算模型中的参数应该根据软件开发公司的历史数据来确定?答:每个公司开发的软件类型都不完全相同,此外,每个公司都有不同的经验、习惯、标准和策略,也就是说,不同公司的能力成熟度并不相同。因此,不同公司开发软件的生产率也不相同,显然不能用同样的成本估算参数来

14、估算工作量,而应该根据该公司开发软件的历史数据确定成本估算模型中的参数。 为什么推迟关键路径上的任务会延迟整个项目?答:关键路径定义为一组任务(称为关键任务) ,这组任务决定了完成项目所需要的最短时间。如果位于关键路径上的一个关键任务的完成时间被推迟了,则关键路径上的下一个任务的开始时间和结束时间也要相应地延迟。这样依次传递,会波及关键路径上的最后一个任务,从而延迟整个项目。 机动时间有何重要性?答:虽然不在关键路径上的任务并不决定完成项目所需要的最短时间,可以适当延迟一些时间,但是,如果这些任务延迟过久,则整个项目的完成时间也会被推迟。机动时间给出了完成这类任务的时间范围。此外,在制定进度计

15、划时仔细研究并充分利用工程网络中的机动时间,往往能够安排出既节省资源又不影响最终竣工时间的进度表。 假设有一项工程任务被分解成了a ,b , ,i 等 个子任务,表. 表10.3子任务完成时间及依赖关系 子任务标识 完成任务时间 依赖关系a b c a、b d a e b f c 、d g dh f 、g i e 、f 答:根据表. 中给出的信息,可以画出如图. 所示的工程网络。由于子任务a 和b 都不依赖于其他子任务,所以都可以从时刻零开始。根据最早时刻和最迟时刻的算法,可以算出每个事件的最早时刻和最迟时刻,算出的值已经标在工程网络中。为了便于对照图. 和表. ,在图中标注的完成任务时间后面

16、的括弧中写出了该任务的标识。图 工程网络 分析第 题所述的各个子任务之间的关系,找出关键路径和关键任务。答:从图 可以看出,事件 、 、 、 、 、 和 的最早时刻和最迟时刻相同,这些事件定义了关键路径。在图 中用粗线箭头代表关键路径。组成关键路径的子任务b 、c 、f 和h 是关键任务。 假设你被指定为项目负责人,你的任务是开发一个应用系统,该系统类似答:由于待开发的应用系统类似于以前做过的系统,开发人员已经积累了较丰富的经验,没有多少技术难题需要攻克。为了减少通信开销,充分发挥技术骨干的作用,统一意志统一行动,提高生产率,加快开发进度,项目组的组织结构以基于主程序员组的形式为宜。针对待开发

17、的系统,客户已经写出了完整的需求文档,项目组又有开发类似系统的经验,因此,可以采用广大软件工程师熟悉的瀑布模型来开发本系统。 一个程序能既正确又不可靠吗? 请解释你的答案。答:所谓软件可靠性,是程序在给定的时间间隔内按照规格说明书的规定成功地运行的概率。通常认为,软件可靠性既包含正确性又包含健壮性,也就是说,不仅在预定环境下程序应该能正确地完成预期功能,而且在硬件发生故障、输入的数据无效或用户操作错误等意外环境下,程序也应该能做出适当的响应。如果一个程序在预定环境下能够正确地完成预期的功能,但是在意外环境下不能做出适当的响应,则该程序就是既正确又不可靠。.为什么在开发软件的过程中变化既是必要的

18、又是不可避免的? 为什么必答:在开发软件的过程中,下述原因会导致软件配置项发生变化:新的市场条件导致产品需求或业务规则发生变化。客户提出了新需求,要求修改信息系统产生的数据或产品提供的功能。企业改组或业务缩减,引起项目优先级或软件工程队伍结构变化。预算或进度限制,导致对目标系统的重新定义。.CMM的基本思想是什么? 为什么要把能力成熟度划分成 个等级?答:CMM 的基本思想是,由于软件危机是因我们对软件过程管理不善而引起的,所以新软件技术的运用并不会自动提高软件的生产率和质量,提高软件生产率和软件质量的关键,是改进对软件过程的管理。能力成熟度模型有助于软件开发机构建立一个有规律的、成熟的软件过程。对软件过程的改进不可能一蹴而就,只能是在完成一个又一个小的改进步骤基础上不断进行的渐进过程。因此,CMM 把软件过程从无序到有序的进化过程分成 个阶段,并把这些阶段排序,形成 个逐层提高的等级。这 个成熟度等级定义了一个有序的尺度,用以测量软件机构的软件过程成熟度和评价其软件过程能力,这些等级还能帮助软件机构识别出其现有的软件过程的缺陷,指出应该做哪些改进,并且帮助他们把应做的改进工作排出优先次序。成熟度等级是妥善定义的向成熟软件机构前进途中的平台,每个成熟度等级都为软件过程的继续改进提供了一个台阶。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1