第一章1 简述软件的发展过程。
共经历了四个阶段;第一阶段:(20世纪50年代初期到60年代初期的十余年)计算机系统开发的初期。
第二阶段:(20世纪60年代中期到70年代中期的十余年)软件产品与“软件作坊”的概念开始出现。
软件开发人员不再像早期阶段那样只因个人工作需要而开发,而就是为了用户更好地使用计算机。
第三阶段:(20世纪70年代中期到80年代末期)分布式系统嵌入“智能”;硬件价格下降,软件价格急剧上升,导致了软件危机的加剧。
第四阶段:(20世纪80年代末期开始)强大的桌面系统与计算机网络迅速发展。
2 简述软件的定义与特点。
定义:软件就是计算机程序、规程以及运行计算机系统可能需要的相关文档与数据。
特点:(1)就是一种逻辑实体,具有抽象性;(2)软件的生产不存在明显的制造过程;(3)在软件的运行与使用的过程中,不会存在像硬件那样的机械磨损及老化问题;(4)由于对计算机系统的依赖性,对软件的通用性造成了一定的影响;(5)软件的开发方式还没有完全脱离手工开发方式,还不能完全采用组装的方式进行软件开发;(6)作为提高工作效率的逻辑产品,本身具有复杂性;(7)成本相当昂贵;(8)相当多的软件工作设计社会因素。
3 软件有哪些种类1、按功能特征进行划分(1)系统软件。
(2)支撑软件。
(3)应用软件2、按规模大小进行划分微型、小型、中型、大型、甚大型、、极大型4 什么就是软件危机?答:就是指在计算机软件的开发与维护过程中所遇到的一系列严重问题。
5 什么就是软件工程?有哪些本质特性?怎样用软件工程消除软件危机?答:就是指导计算机软件开发与维护的一门工程学科。
特性略。
技术措施与管理措施消除软件危机。
6 软件工程的三要素;方法、工具与过程。
7、结合自己的亲身经历,谈谈软件工具在软件开发过程中的作用。
使软件开发更加模式化,工程化,从而提高软件开发的效率与封装性。
8、CASE 的研究与CASE 产品的开发就是近年来软件工程领域的特点之一。
请列举数种您所熟悉的CASE 工具或环境,综述它们的概念与优缺点,并分析其实现方法。
rose、“数据字典”(工具)第二章1、什么就是软件生命周期?它有哪些活动?软件生命周期就是指软件产品从考虑其概念开始到交付使用,直至最终退役为止的整个过程。
软件生存周期可以划分为软件定义、软件开发与运行维护3 个时期2、每一种过程模型的优点与缺点分别就是什么?瀑布模型:优点:它在软件发展的早期,为开发人员提供了一种开发的基本框架,有利于大型软件开发过程中人员的组织、管理,有利于软件的开发方法与工具的研究与使用,从而提高了大型软件项目开发的质量与效率。
缺点:(1)在软件开发的初始阶段指明全部需求就是非常困难的,有时甚至就是不现实的(2)需求一旦确定,用户与软件项目负责人要等一段时间(经过设计、实现、测试、运行个阶段)才能得到一份软件的最初版本。
(3)瀑布模型中的软件活动就是文档驱动的,当阶段之间规定过多的文档时,会大大增加软件开发的工作量;而且当管理人员以文档的完成情况来评估项目完成进度时,往往会产生错误的结论,因为后期测试阶段发现的问题会导致返工,前期完成的文档只不过就是一个未经返工修改的初稿而已。
原型模型:优点:原型系统能够逐步明确用户需求,可以适应需求的变化性,而且由于用户参与到软件开发过程,能够及早发现问题、降低软件开发的风险,加快软件产品的形成,降低软件开发的成本。
缺点:(1)对于大型软件项目,如果不经过系统分析并对系统进行整体划分,直接用原型来模拟系统功能就是十分困难的。
(2)对于计算量大、逻辑性较强的程序模块,原型法很难真正构造出来供用户评价。
(3)对于批处理系统,其大部分处理就是内部进行的,应用原型方法有一定的困难。
(4) 原型的快速构造特点导致项目文档容易被忽略,给原型的后期改进与维护造成困难。
(5)在原型建立中的许多工作进展会被浪费掉,特别就是对于丢弃型原型策略。
在一定程度上,增加了系统的开发成本,降低系统的开发效率。
螺旋模型:喷泉模型:优点:可以提高软件项目开发效率,节省开发时间。
缺点:由于各个开发阶段的重叠性,开发人员的管理与阶段生成的文件管理存在困难。
增量模型:优点:(1)就是能在较短时间内,向用户提交可完成部分工作的产品。
(2)逐步增加产品功能,可以使用户有较充裕的时间学习与适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。
缺点:增量的力度选择也很难把握,有时候很难将客户的需求映射到适当规模的增量上。
构件组装模型:优点:这大大提高了软件开发的效率,而且构件模型允许多个项目同时开发,降低了费用,提高了可维护性。
缺点:由于存在多种构件标准,缺乏通用的构件组装结构标准,如果自行定义标准的话,会引入较大的风险;构件可重用性与软件系统高效性之间不易协调,需要权衡;RUP:RUP具有很多长处:提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的开发活动为每个开发成员提供了必要的准则、模板与工具指导,并确保全体成员共享相同的知识基础。
它建立了简洁与清晰的过程结构,为开发过程提供较大的通用性。
但同时它也存在一些不足:RUP只就是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行与支持等方面的内容;此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。
可以说RUP就是一个非常好的开端,但并不完美,在实际的应用中可以根据需要对其进行改进并可以用OPEN与OOSP等其她软件过程的相关内容对RUP进行补充与完善。
3、软件瀑布模型为什么要划分阶段?各个阶段的任务就是什么?在软件开发早期,开发只就是被简单地分成编写代码与修改代码两个阶段。
往往在拿到项目后立刻编写程序,然后调试通过后直接交付给用户使用。
如果应用中出现错误,或者有新的要求,都需要重新修改代码。
这种小作坊式的软件开发方法有明显的弊端,如缺乏统一的项目规划、不太重视需求的获取与分析、对软件的测试与维护考虑不周等,这些都会导致软件项目的失败。
概念阶段:计划、需求分析开发阶段:设计、编码、测试维护阶段:运行维护4、什么就是原型?试述原型模型在软件生命周期中的应用。
原型一般就是指对某种产品进行模拟的初始版本或者原始模型,在工程领域中具有广泛应用。
由于软件规模与复杂性越来越大,软件开发在需求获取、技术实现手段选择、应用环境适应等方面面临巨大考验。
为了应对早期需求获取的不易以及后期需求的变化,人们选用原型方法构造软件系统。
5、为什么说喷泉模型较好地体现了面向对象软件开发过程无缝与迭代的特性?6.RUP 模型的思想就是什么?RUP 模型融合了哪些传统生命周期模型的特点?迭代增量开发思想;(1)面向对象:从技术角度,RUP开发就是基于面向对象技术,即它使用与支持面向对象技术的概念与方法。
RUP要求建立的设计模型、实现模型都就是对象模型。
(2)USE CASE驱动(3)以架构为中心;(4)螺旋上升式的开发过程;(5)以质量控制与风险管理为目标;(6)与UML配置;(7)适用性强;7、举例说明哪些项目的开发适用于原型模型或螺旋模型,哪些不适于采用这两种模型。
螺旋模型适合于大型软件的开发,应该说它就是最为实际的方法,它吸收了软件工程“演化”的概念,使得开发人员与客户对每个演化层出现的风险有所了解,继而做出应有的反应。
不适用:小型软件。
原型一般就是指对某种产品进行模拟的初始版本或者原始模型,在工程领域中具有广泛应用。
不适用:大型软件项目;含有对于计算量大、逻辑性较强的程序模块;第三章1、可行性研究的任务就是什么?可行性研究的任务就是以最小的代价在尽可能短的时间内确定问题就是否能够解决。
简单地说,可行性研究的最终结果就是决定项目“做还就是不做”而不就是“如何做”。
2、可行性研究有哪些步骤?1、确定系统规模与目标2、研究目前正在使用的系统3、导出新系统的高层逻辑模型4、重新定义问题5、导出与评价选择的解法6、推荐行动方针7、草拟开发计划8、书写计划任务书文档并提交审查3、成本-效益分析可用哪些指标进行度量?如果用比率分析法,有以下几种指标:1,相关指标分析法。
产值成本率=成本/产值*100%;销售收入成本率=成本/销售收入*100%;成本利润率=利润/成本*100%2,构成比率分析法,直接材料费用比率=直接材料成本/产品成本*100%直接人工费用比率=直接人工费用/产品成本*100%制造费用比率=制造费用/产品成本*100%4、项目开发计划有哪些内容?引言(目的、背景、参考文献、术语);项目概述(功能、条件、运行环境、产品、程序、文档、服务、验收标准、实施计划、工作任务分解、进度、预算、人员) 5、按照题意设计如下流程图:计算机房产管理系统:要求系统有分房、退房、调房、咨询与统计功能。
房产科把住户申请表输入系统后,系统首先检查申请表的合法性,不合法的拒绝接受,合法的申请表根据申请表类型(分、调、退房)分别进行处理。
分房申请处理:根据申请者的情况(年龄、工龄、职称、职务、家庭人口等)计算其分数;当分数高于给定值时,按分数高低将申请单插到分房队列的适当位置,输出核准后的分房单。
分房处理:每月月底进行分房。
从分房文件中读出空房信息,然后根据住户的实际情况,从住房标准文件中读出住房标准进行校核,如果符合,则分配住房给该住户,打印出住房分配通知单,并登记相应的住户信息。
退房,调房处理类似。
咨询、查询:对空房、住房、房租情况进行查询与统计。
6、为方便储户,某银行拟开发计算机储蓄系统。
储户填写的存款单或取款单由业务员输入系统,如果就是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果就是取款,系统计算利息并印出利息清单给储户。
写出问题定义并分析此系统的可行性,画出系统流程图。
7、为方便旅客,某航空公司拟开发一个机票预订系统。
旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入该系统,系统为旅客安排航班,印出取票通知与账单,旅客在飞机起飞的前一天凭取票通知单与账单交款取票,系统校对无误即打印出机票给旅客。
写出问题定义并分析此系统的可行性,画出系统流程图。
这个系统的可行性就是在一个理想的环境下,比如:乘客不满意安排的座位需要调换,或者需要改机票;这些种种因素都没考虑进去。
技术上可行:使用现有的技术能实现这个系统;经济上可行:这个系统的经济效益可以超过她的开发成本;操作上可行:操作方式简单,但就是有缺陷;社会、政策允许的可行性:可行。
8、某计算机系统投入使用后,5 年内每年可节省人民币2 000 元。
假设系统的投资额为5 000 元,年利率为12%。