每人每月的平均工资为4000美元,因此这个软件的成本大约为 50*4000=200000(美元)
(3)软件成本与硬件成本之和为计算机系统的总成本。这个软件的成本在总成本中所占的比例为
200000/(200000+125000)=61.5%
(4)在2002年开发这个应用程序所需的工作量约为 10000/(40*20)=12.5(人月) 这个软件的成本大约为 12.5*8000=100000(美元)
该软件的成本在总成本中所占的比例为 100000/(100000+2000)=98%
2.答:(1)在1985年对计算机存储容量的需求,估计是 M=4080e0.28(1985-1960) =4080e7 =4474263(字)
如果字长为16位,这个存储器的价格是 P=0.048*0.721985-1974*4474263 =5789(美元)
(2)如果一条指令的长度为一个字,则使存储器装满程序共需4474263条指令。 在1985年一名程序员每天可开发出10条指令,如果每月有20个工作日,则每人每月可开发出10*20=200条指令。
为了开发出4474263条指令以装满存储器,需要的工作量是 4474263/200≈22371(人月)
程序员的月平均工资是4000美元,开发出4474263条指令的成本为 22371*4000=89484000(美元)
(3)在1985年对存储容量的需求,估计为 M=4080e0.28(1995-1960) =4080e9.8 =73577679(字)
如果字长为32位,这个存储器的价格是 P=0.003*32*0.721995-1974*73577679 =7127(美元)
如果一条指令为一个字长,则为使存储器装满程序共需73577679条指令。
在1995年一名程序员每天可开发出30条指令,每月可开发出600条指令,为了开发出可装满整个存储器的程序,需用的工作量为
73577679/600=122629(人月) 开发上述程序的成本为
122629*6000=735776790(美元)
3.答:(1)计算机通过运行程序来控制宇宙飞船,而程序指令存放在存储器中。拆下存储器之后,计算机因取不来指令而无法运行程序,因此也就无法控制宇宙飞船了。
我们现在遇到的软件问题没有这么严重,还没有出现计算机不服从人的命令的情况。 (2)除非鲍曼能亲自分析有故障的部件,或者在计算机上还安装有另外一套故障检测系统,否则不依靠飞行指挥中心他很难知道HAL的故障预报有问题。
(3)应该把HAL设计成具有若干个储存的问题,供周期性测试之用。通过把应有的测试结果和HAL实际测试结果加以比较的方法,有可能发现HAL的故障预报问题。
此外,不论怎样具体设计HAL系统,都应该设置一种人工操作模式,并把人工操作模式设置为最高等级的控制模式,在任何情况下计算机控制都不能取消人工操作命令。
4.答:软件过程是为了开发出高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
软件过程定义了运用技术方法的顺序、应该交付的文档资料、为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。
软件过程是软件工程方法学的3个重要组成部分之一。
5.答:软件是计算机系统的逻辑部件而不是物理部件,其固有的特点是缺乏可见性,因此,管理和控制软件开发过程相当困难。
分阶段的生命周期模型提高了软件项目的可见性。管理者可以把各个阶段任务的完成作为里程碑来对软件开发过程进行管理。把阶段划分得更细就能够更密切地监控软件项目的进展情况。
6.答:里程碑是用来说明项目进展情况的事件。通常,把一个开发活动的结束或一项开发任务的完成定义为一个里程碑。
里程碑必须与软件开发工作的进展情况密切相关,而且里程碑的完成必须非常明显(也就是说,里程碑应该有很高的可见性)。
7.答:对这个软件的需求很明确,实现开平方功能的算法也很成熟,因此,既无须通过原型来分析需求也无须用原型来验证设计方案。此外,一旦实现并测试完之后,该产品将被抛弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。
综上所述,为了开发这个简单的软件,使用大多数人所熟悉的瀑布模型就可以了。 8.答:对这个项目的一个重要要求是,严格按照已对外公布了的日期完成产品开发工作,因此,选择生命周期模型时应该着重考虑哪些模型有助于加快产品开发的进度。使用增量模型开发软件时可以并行完成开发工作,因此能够加快开发进度。
这个项目是开发该公司已被广泛应用的字处理软件的新版本,从上述事实至少可以得出3点结论:第一,旧版本相当于一个原型,通过收集用户对旧版本的反映,较容易确定对新版本的需求,没必要再专门建立一个原型系统来分析用户的需求;第二,改公司的软件工程师对字处理软件很熟悉,有开发字处理软件的丰富经验,具有采用增量模型开发新版字处理软件所需要的技术水平;第三,该软件受到广大用户的喜爱,今后很可能还要开发更新的版本,因此,应该把该软件的体系结构设计成开放式的,以利于今后的改进和扩充。
综上所述,采用增量模型来完成这个项目比较恰当。
相关推荐: