软件工程第三次作业(主观题)
1.什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。
答:软件生命周期模型是描述软件开发过程中各种活动如何执行的模型
4.瀑布模型优点:
1)可强迫开发人员采用规范的方法(例如:结构化技术);
2)严格地规定了每个阶段必须提交的文档;
3)要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
缺点:
“瀑布模型是由文档驱动的”在可运行的软件产品交付给用户之前,用户只能通过文档来了解产品是什么样子的。
但是通过写在纸上静态的规格说明,很难全而正确的认识动态的软件产品。
适用范围:
需求明确,小规模软件开发。
5.快速原型模型
优点:
软件产品的开发基本上是线性的
缺点:
必须迅速地构建原型然后根据用户意见循序的修改原型适用范围:
用户需求不明确,需要通过构建原型来清楚的了解用户的真实需求。
6.增量模型
优点:
1)能够在较短的时间内向用户提交可完成部分工作的产品;
2)逐步增加产品功能可以使用户有较充裕的时间学习适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。
缺点:
1)较难把每个新的增量构件集成到现有的软件体系结构中,而又不破坏原来已经开发出的产品。
2)增量模型本身是自相矛盾的,它一方而要求开发人员把软件当做一个整体,另一个方而又要求开发人员把软件构件序列,每个构件本质上都独立于另一个构件,除非开发人员有足够的技术能力协调好这一明显的矛盾,否则增量模型开发出来的产品可能并不能令人满意。
适用范围:
软件开发周期较长的软件,有持续的合作。
7.螺旋模型
优点:
1)对可选方案和约束条件的强调有利于已有软件的重用,也有利于把软件质量作为软件开发的一个重要目标;
2)减少了过多测试(浪费资金)或者不足(产品故障多)所带来的风险;
a),在螺旋中维护的只是模型的另一个周期,在维护和开发之间没有本质的区别;缺点:
除非软件开发人员具有丰富的风险评估经验和这方而的专门知识,否则将出现真正的风险,
当项目实际上正在走向灾难时,开发人员可能还认为一切正常。
使用范围:
内部软件开发的大规模软件项目。
8.喷泉模型
优点:
对生命周期各阶段的区分变得不重要,不明显了;
分析阶段得到的对象模型也适用设计阶段和实现阶段;
提高软件项目开发效率,节省开发时间
缺点:
开发过程过分无序;
而向对象范型本身要求经常对开发活动进行迭代或求精;
在开发过程中需要大量的开发人员,因此不利于项目的管理。
适用范围:
而向对象的软件开发过程
2.说明敏捷过程的适用范围。
答:敏捷过程的适用范围软件需求经常变化或者需求变化比较大;项目团队与用户之间进行沟通比较容易;项目的开发风险比较高;规模比较小,一般项目组成员在50人之内;项目团队的成员能力比较强,而且具有责任感;项目的可测试性比较好。
3.需求分析的描述工具有哪些?
答:数据流图DFD,实体-联系图,状态转换图,层次方框图,Warnier图,IPO 图等;
4.修改一个已有的库存系统,使它能每天送给采购员一份订货报表,为此需要编写一段程序,估计需要开发成本5万元,该程序寿命为3年。
未来3年的每年收益预计为22000元、24000元、26620元。
银行年利率为10%。
试对此项目进行成本效益分析,以决定其经济可行性。
答:(1)货币时间价值
将来的收入折算成现在值
年将来值(元)(1+i)现在值(元)累计的现在值(元)
1220001. 1200002000
2240001.2119834. 7139834. 71
3266201.3320015. 04・59849. 75
(2)投资回收期:
两年后节省50000-39834. 71 = 10165. 29元
第三年以后在节省20015. 04元
因此投资回收期为2. 51年
纯收入:・59849. 75 - 50000二9849. 75
投资回报率:51% ~ 61%
5.影响软件维护的因素有哪些?
答:影响软件维护的因素包括人员因素、技术因素和管理因素、程序自身的因素。
具体影
响因素如下:(1)系统的规模。
系统规模越大,维护困难越多。
(2)系统的年龄。
系统运行时间越长,在维护中结构的多次修改,会造成维护困难。
(3)系统的结构。
不合理的程序结构会带来维护困难。
选项D不属于影响因素。
6.面向对象方法学的要点是什么?
面向对象方法学的要点面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。
面向对象方法把对象作为由数据及可以施加在这些数据上的操作所构成的统一体。
对象与传统的数据有本质区别,它不是被动地等待外界对它施加操作,相反,它是进行处理的主体。
必须
发消息请求对象主动地执行它的某些操作,处理它的私有数据,而不能从外界直接对它的私有数据进行操作。
(1)面向对象的软件系统是由对象组成的,软件中的任何元素都是对象,复杂的软件对象由比较简单的对象组合而成。
(2)把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据和一组方法。
数据用于表示对象的静态属性,是对象的状态信息。
(3)按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。
(4)对象彼此之间仅能通过传递消息互相联系。
7.请简述面向对象的基本概念。
答:1.对象
面向对象方法中的对象,是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位。
对象由一组属性和一组行为构成。
属性是用来描述对象静态特征的数据项,行为是用来描述对象动态特征的操作序列。
2.类
类是具有相同属性和服务的一组对象的集合。
3.封装
封装是面向对象方法的一个重要原则,就是把对象的属性和服务结合成一个独立的系统单位,并尽可能屏蔽对象的内部细节。
4.继承
特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承
5.多态性
多态性是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为你。
8.简述CMM(能力成熟度模型)的5个等级。
答:能力成熟度模型的5个等级是初始级、可重复级、已定义级、已管理级、优化级。
1、初始级(Initial)。
处于这个最低级的组织,基本上没有健全的软件工程管理制度。
每件事情都以特殊的方法来做。
如果一个特定的工程碰巧由一个有能力的管理员和一个优秀的软件开发组来做,则这个工程可能是成功的。
2、可重复级(Repeatable)。
在这一级,有些基本的软件项目的管理行为、设计和管理技术是基于相似产品中的经验,故称为“可重复”。
在这一级采取了一定措施,这些措施是实现一个完备过程所必不可缺少的第一步。
3、已定义级(Defined)。
在第3级,已为软件生产的过程编制了完整的文档。
软件过程的管理方面和技术方面都明确地做了定义,并按需要不断地改进过程,而且采用评审的办法来保证软件的质量。
在这一级,可引用CASE环境来进一步提高质量和产生率。
4、已管理级(Managed)。
一个处于第4级的公司对每个项目都设定质量和生产目标。
这两个量将被不断地测量,当偏离目标太多时,就采取行动来修正。
5、优化级(Optimizing)。
—个第5级组织的目标是连续地改进软件过程。
这样的组织使用统计质量和过程控制技术作为指导。
从各个方面中获得的知识将被运用在以后的项目中,从而使软件过程融入了正反馈循环,使生产率和质量得到稳步的改进。
9.什么是黑盒测试?黑盒测试主要采用的技术有哪些?
答:黑盒测试是在不知道内部程序的情况下进行的测试,一般使用输入和输出进行测试。
有:等价类划分法、因果图法、边界值法、正交表法、错误检测法等。
10.对于一个电子商务网站而言,以下哪些不是合适的用例?指出并说明理由。
输入支付信息;将商品放入购物车;结账;预订商品;用户登录;邮寄商品;查看商品详情
答:输入支付信息:太小邮件商品:系统功能之外查看商品详情:太小。