软件工程习题集_第1页
软件工程习题集_第2页
软件工程习题集_第3页
软件工程习题集_第4页
软件工程习题集_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

精选文库21世纪高等学校计算机规划教材 软件工程习题集系别:计算机科学与技术系班级:软件102(对口)学号:101012241姓名:吕明敬 目 录 第1章 软件工程概述11.1 软件的概念及其特点11.2 按照功能层次软件可分为系统软件支撑软件应用软件11.3 用户定制软件与通用商业软件的特点11.4 软件工程的概念及其对软件产业化发展的积极意义21.5 软件工程涉及过程方法工具三个方面的技术问题21.6 软件工程管理主要体现在四个P上21.7 软件工程必须考虑工程目标以体现其工程价值31.8 结构方法的特点、面向对象方法的特点、面向对象方法的优越性31.9 Microsoft Visio的使用心得4第2章 软件开发过程模式52.1 软件开发期的目标任务及概要设计需要完成的任务52.2 瀑布模式的一大特点是里程碑管理机制52.3 瀑布模式的局限性52.4 抛弃型原型与进化型原型的异同62.5 原型进化模式不能适应较大型软件项目的开发的原因62.6 增量模式的优越性6第3章 软件项目管理83.1 软件开发机构内的质量控制部的作用83.2 项目负责人必须是管理专家的原因83.3 软件项目中文档的分类83.4 软件开发需要有配置管理其主要包括哪些方面的管理83.5 计算器程序93.6 质量标准13第4章 计算机系统工程144.1 计算机系统的组成及特征144.2 Client/Server结构的系统扩充性144.3 Browser/Server结构的特点及优点弱点164.4 网络游戏软件的体系结构174.5 高层分析194.6 软件项目实施前为什么要进行可行性分析194.7 软件开发可行性的标准20第5章 需求分析225.1 软件需求225.2 用户抱怨解决措施225.3 系统分析师应该具有的素质225.4 需求分析的基本过程235.5 软件用户的种类245.6 常用的调查手段265.7 需求分析中需求模型的用途265.8 泳道的含义295.9 需求分析中涉及哪些方面的需求验证295.10 原型需求验证和评审需求验证30第6章 结构化分析建模316.1 学生管理系统建模316.2 图书借阅管理系统建模326.3 库房管理系统流程346.4 入学管理系统的数据流程356.5 储蓄系统数据处理流图35第7章 基于UML的面向对象分析建模377.1 图书借阅管理系统377.2 商品库存管理系统377.3 银行储蓄系统38第8章 概要设计368.1 软件系统构架涉及因素368.2 软件分层体系结构特点及优势368.3 数据表及其关联与实体及其关系的不同378.4 索引的作用388.5 数据库设计建模388.6 概要设计中要求对模块进行抽象的作用388.7 模块抽象与信息隐蔽的作用398.8 模块内聚度与耦合度408.9 过程内聚与顺序内聚408.10 数据耦合与控制耦合的不同418.11 结构化程序控制的特点418.12 面向对象程序结构的类图及软件图的用途42第9章 结构化设计建模459.1 自动阅卷系统459.2 入学管理系统459.3 储蓄系统469.4 网上考试系统46第10章 基于UML的面向对象设计建模4710.1 面向对象设计建模的特点4710.2 设计类图和分析类图的区别4710.3 协作图与时序图的异同点4710.4 系统部署的因素4710.5 图书借阅管理系统设计类图4810.6 商品库存管理系统设计协作图4810.7 储蓄系统设计时序图48第11章 用户界面设计4911.1 GUI界面设计4911.2 GUI界面设计4911.3 传统窗体和Web页的比较4911.4 学生成绩查询窗体4911.5 学生成绩管理系统5011.6 界面要求有一致的风格50第12章 算法设计与编码5112.1 结构化流程控制的特点5112.2 程序流程图改用NS图、PAD图、PDL伪码进行算法5112.3 查询从1000以内将能够被7整除的数5212.4 零件库房管理系统53第13章 软件测试5413.1 简述单元测试的对象、内容及方法5413.2 渐增集成的概念5413.3 确认测试的概念5413.4 面向对象单元测试的特点5413.5 回溯法程序调试的特点55第14章 软件维护5614.1 软件可维护性5614.2 试说明软件维护实施过程5614.3 逆向工程56-第1章 软件工程概述1.1软件的概念及其特点软件的概念及其特点。答:(1)软件是计算机系统中的逻辑成分,是程序、数据、文档等诸多逻辑元素的集合,需要有物理硬件的支持才能产生作用;(2)软件的特点:软件有对硬件不可缺失的依赖;软件有不同于硬件的生产流程;软件有不同于硬件的生命过程。1.2按照功能层次软件可分为系统软件支撑软件应用软件按照功能层次分,软件可分为系统软件、支撑软件、应用软件。那么SQL Server是哪个层次的软件,ADO.NET是哪个层次的软件,Visual C+是哪个层次的软件?答:(1)SQL Server是系统软件(系统软件:为计算机底层软件,如操作系统、设备驱动程序、数据库引擎等)。(2)C+是支撑软件(支撑软件:介于系统软件与应用软件之间的支持软件开发的软件,最常用的是支持软件开发与维护的工具软件,如程序编译器、程序编辑器、错误检测程序、程序资源库等)。(3)ADO.NET是应用软件(应用软件:为最终用户提供应用服务的软件,通常有工具软件开发,并依靠系统软件的支持运行,如财务处理系统,生产控制系统,办公自动化系统)。1.3用户定制软件与通用商业软件的特点按照服务对象,软件可分为用户定制软件,通用商业软件。试举例说明这两类软件的特点。答:(1)用户定制软件由特定用户独享,一次需要针对特定用户进行专门的需求分析,以满足特定用户的特殊应用需要,例如:某特殊设备的控制系统、某企业的业务管理系统、某特定大厦的只能监控系统、某城市的交通监管系统。(2)通用商业软件是开发机构根据社会需求自主开发的软件,大多有广泛的用户群,如通用办公系统、通用财务系统。为满足通用性,通用商业软件往往需要有面向用户的应用配置,以使软件能适应各种不同的工作环境和满足各种不同的应用需要。1.4软件工程的概念及其对软件产业化发展的积极意义软件工程的概念及其对软件产业化发展的积极意义。答:软件工具用于对软件工程方法与软件过程的自动化或半自动化进行支持。软件工具也像工程方法一样,要求能够覆盖整个软件过程,如项目管理、软件分析、软件设计、程序创建、软件测试等,都要求有合适的软件工具的支持。1.5软件工程涉及过程方法工具三个方面的技术问题软件工程涉及过程、方法、工具三个方面的技术问题,这三个方面存在什么相互关系?试举例说明它们之间的关系。答:软件过程是软件开发与维护的实施路线和具体步骤,并且是软件开发时的工程化框架,是工程方法与软件工具得以有效应用的基础;软件工程方法指的是开发与维护软件时应该“如何做”的一系列技术性方法。工程方法涉及的内容有工程规范、工程策略、技术手段等。软件工程方法需要软件过程,因此也就需要考虑不同过程中工程方法的关联性。显然为使不同阶段的工程方法能有效的关联,工程方法需要形成体系,如结构化方法体系、面向对象方法体系,即这样的工程方法体系可以支持从软件分析到软件设计、实现的全过程任务的开展。软件工具用于对软件工程方法与软件过程的自动化或半自动化进行支持。软件工具也像工程方法一样,要求能够覆盖整个软件过程,如项目管理、软件分析、软件设计、程序创建、软件测试等,都要求有合适的软件工具的支持。1.6软件工程管理主要体现在四个P上软件工程管理主要体现在四个P上,即项目(Project),人员(People)、过程(Process)、产品(Product)。请简述这四个方面的管理,并谈一些自己的认识。答:(1)项目是一个工程单位,软甲开发即以软件项目为单位实施。应该说,软件项目使软件开发中的各种因素集中到了一起,它使软件开发有了管理的必要,并使软件开发有了管理的便利。(2)软件是智力劳动密集型产业,软件开发必须由人来完成。因此,开发人员,尤其是优秀技术人才,是决定软件能否成功开发的最关键因素之一。软件开发的人员组织结构是软件项目组,它是一个软件开发团队,其成员包括项目负责人、开发人员、资源管理员、软件测试员等。(3)过程管理的第一项工作是选择一个与所承担的软件项目相适应的过程模式。可供选择的过程模式有瀑布模式、原型模式、增量模式、螺旋模式;过程管理的第二项工作室基于所选过程模式制订出更加详细的里程碑过程计划,以便于软件开发能基于各个里程碑获得有效的过程控制。(4)产品管理包括产品质量管理、产品配置管理;为了确保软件产品的质量,必须建立一个有效的产品质量保证体系。该体系有质量标准、质量计划、质量控制等要素组成;为使产品及其配套资源具有一致性,必须建立完善的配置管理,该项管理是一组针对软件产品的追踪和控制活动,其贯穿于整个软件生存周期,以确保软件开发中的各种输出信息都是一致的。1.7软件工程必须考虑工程目标以体现其工程价值软件工程必须考虑工程目标,以体现其工程价值。一些主要的工程目标有降低成本、满足需求、改善性能、提高质量、及时交付。请按照你所认识的重要性,对上述工程目标进行优先级排序。答:满足需求、提高质量、改善性能、降低成本、及时交付。1.8结构方法的特点、面向对象方法的特点、面向对象方法的优越性结构化方法有什么特点?面向对象方法有什么特点?C语言是结构化程序的代表,java则是面向对象程序的代表,试以他们为依据说明结构化方法与面向对象方法的区别。答:(1)结构方法的特点是以实现软件功能为基本目标;(2)面向对象方法的特点是数据封装、类体继承、操作多态;(3)与结构化方法相比,面向对象方法可体现以下几个方面的优越性: 便利的由分析到设计的转换通道; 更加接近现实环境;更加有效的程序复用手段;可使软件以迭代方式逐步完善。1.9Microsoft Visio的使用心得Microsoft Visio 的使用心得。答:作为一个产品策划,能熟练的使用绘制流程图的软件Visio可以随心所欲的表达自己的想法。作为一个辅助工具,Visio的作用其实就是策划人员与技术人员之间的想法交流,以及策划人员对评审等人员的想法描述。所以流程图的明了严谨是需要具备的最基本条件。既然是“图”,简洁美观也可以更好的让工作进行,这就需要我们日常的多加练习了。其实在Visio的使用中我们也能掌握一些小技巧,比如F9可以切换连接线的功能,在连接线上如何随意添加文字等。所以对一个策划人员来说,有时候画流程图可能也像画画一样,还是蛮有趣味的。这些虽然现在还不会用,我想以后我会努力学好这些的。第2章 软件开发过程模式2.1软件开发期的目标任务及概要设计需要完成的任务软件开发期的目标任务是什么?概要设计需要完成什么任务?答:(1)软件概要设计; (2)软件详细设计; (3)编码和单元测试;(4)系统集成; (5)系统验收。概要设计需要提交概要设计说明书,她将作为详细设计与系统集成的依据。2.2瀑布模式的一大特点是里程碑管理机制瀑布模式的一大特点是里程碑管理机制。对此,你有什么认识?答:瀑布模式可带来基于阶段任务的里程碑管理。这是一种可量化的并能适应大型项目的管理机制,可以基于阶段设定和度量项目进程,可以按照阶段进行项目任务分配以及估算项目任务完成比例。通常,项目管理者可事先估算出每个阶段的任务量,并以此为依据规定每个阶段的任务时限,然后即可按阶段部署任务与监督项目进程。2.3瀑布模式的局限性为什么瀑布模式不能很好的适应用户需求变更?原型进化模式有为什么能很好地适应用户需求变更?答:瀑布模式的局限性,瀑布模式中的软件过程只能按规程推进,而且必须等到所有开发任务完成以后,才能获得可以交付使用的软件产品。因此,瀑布模式并不能获得对软件系统的快速创建,对于一些急于交付的软件系统开发,瀑布模式有操作上的不便。瀑布模式能够有效保证软件质量,对于需求明确的软件系统开发,瀑布模式是一种较好的过程模式。但是,瀑布模式的灵活性不是很好,如果已经开始设计,则来自用户的一个很小的需求变更请求,也可能会给软件项目带来大难题,由此导致项目延期。实际上,大多数应用系统在其开发初期用户的需求并不清晰,因此对于那些面向用户的应用系统的开发,瀑布模式有较大的不适应性。2.4抛弃型原型与进化型原型的异同试说明抛弃型原型与进化型原型的异同?答:相同点:首先它们都是软件原型,软件原型是指对软件问题的直观模拟或仿真。原型可用于软件分析与设计分析阶段所建的原型叫做分析原型,通常用来解决用户对软件系统在需求上的而模糊认识;设计阶段所建的原型叫做设计原型,通常用来试探某种设计是否能够获得预期的效果。不同点:(1)抛弃型原型是用了来对需求进行评鉴或对设计进行试探的,为使需求与设计问题尽快确定下来,并尽量减少原型成本,抛弃型原型往往利用第四代语言或软件快速生成工具创建。 进化型原型由于将演变为可被用户使用的产品,因此一般要求在最终产品开发平台上创建。(2)抛弃型原型不需要投入实际应用,因此可以就针对某个专卖问题建立局部原型,而无需考虑完整性,抛弃型原型也可能是一个叫完整的系统,但却是一个无须投入实际应用的试验品。 开发者大多选择可视化开发工具创建进化型原型,原因是这些可视化开发工具不仅能快速创建原型,而且还能使原型投入实际应用,并逐步演变为最终目标系统。2.5原型进化模式不能适应较大型软件项目的开发的原因一般认为,原型进化模式不能适应较大型软件项目的开发,原因是什么?答:原型进化模式对于面向用户的中小型软件开发会有一定的优势,但却因为管理规程上的不足,而不能有效保证软件质量,不能适应大型软件系统的开发。2.6增量模式的优越性增量模式结合了瀑布模式与原型进化模式的特点,更具体地说,其可体现出哪些方面的优越性?答:(1)增量模式提供了基于增量的需求适应性,能面向用户需求进行系统开发;同时又具有良好的里程碑流程控制,能够基于里程碑管理软件项目,可是项目进程与任务量化,可提供有效的质量保证,因此能很好的适应大型应用软件系统的开发;(2)增量模式中的软件规格细节定义是结合到在增量构件的开发中进行的,因此可通过增量构件而逐渐完善需求;(3)增量模式在开发初期时需获得需求框架;(4)软件开发可按照增量构件的功能价值安排优先顺序,并逐个实现与交付;(5)增量模式下的软件系统式基于增量构件逐渐扩充的,这种开发模式显然有利于开发者构件创建与系统集成的经验积累;(6)增量模式还有利于从总体上降低软件项目的技术风险。第3章 软件项目管理3.1软件开发机构内的质量控制部的作用软件开发机构内一般都设有质量控制部,并将其置于产品开发部、服务部之上。对此,你有什么看法?答:质量控制部是提供软件质量标准,负责各阶段软件成果评审,负责软件开发过程质量控制以及产品服务质量监督。质量控制部大多设置于组织结构的较高层次,以获得对整个项目有效的质量监控。3.2项目负责人必须是管理专家的原因通常认为项目负责人不一定是技术专家,但必须是管理专家。对此,你有什么看法?答:软件是为用户开发的,在开发过程中自始至终中必须得到用户的密切合作和支持,作为项目负责人要特别注意与用户保持联系,掌握用户心理和动态,因此项目负责人不一定是技术专家,但必须是管理专家。3.3软件项目中文档的分类软件项目中文档的分类。答:(1)技术文档:软件开发人员的技术性工作成果,如需求规格说明书、数据库设计说明书、概要设计说明书、详细设计说明书;(2)管理文档:软件开发人员的工作计划或工作报告,如项目开发计划、测试计划、开发进度月报、项目开发总结报告;(3)用户文档:软件开发人员为用户准备的软件操作使用说明,如用户手册、操作手册、系统维护手册。3.4软件开发需要有配置管理其主要包括哪些方面的管理软件开发需要有配置管理其主要包括哪些方面的管理。答:软件配置管理需要建立三个配置库,开发库、基线库与产品库。(1)开发库是一个面向开发人员的成果库,里面的成果一般是临时的,大多是有待进一步完善的半成品。可通过开发库动态追踪开发人员的工作轨迹,或还原其以前的工作动态,实际上,由于有了开发库,开发过程中的软件变更会变得相对容易管理;(2)基线库是一个面向项目组的成果库,用来保存被确认的基线成果。通常情况下,如果开发库中的软件半成品经过评审而确认达到了基线标准,就可从开发库移入基线库;(3)产品库是一个面向软件开发机构的成果库,用来保存最终产品。产品库的管理权一般属于软件机构中的配置管理部门,只有该部门的工作人员才具有操作权。3.5计算器程序编写一个计算器程序。用户输入运算数和四则运算符,输出计算结果。如图3-1“计算器”所示。图3-1 计算器计算器代码如下:var Form1: TForm1; temp1:real; temp2:real; flag:integer;implementation$R *.dfmprocedure TForm1.FormCreate(Sender: TObject);begintemp1:=0;temp2:=0;flag:=0;end;procedure TForm1.N4Click(Sender: TObject);beginshowmessage(本程序用于对DELPHI编程进行基本练习);end;procedure TForm1.N2Click(Sender: TObject);beginclose;end;procedure TForm1.Button1Click(Sender: TObject);beginedit1.Text:=edit1.Text+button1.Caption;end;procedure TForm1.Button2Click(Sender: TObject);beginedit1.Text:=edit1.Text+button2.Caption;end;procedure TForm1.Button3Click(Sender: TObject);beginedit1.Text:=edit1.Text+button3.Caption;end;procedure TForm1.Button4Click(Sender: TObject);beginedit1.Text:=edit1.Text+button4.Caption;end;procedure TForm1.Button5Click(Sender: TObject);beginedit1.Text:=edit1.Text+button5.Caption;end;procedure TForm1.Button6Click(Sender: TObject);beginedit1.Text:=edit1.Text+button6.Caption;end;procedure TForm1.Button7Click(Sender: TObject);beginedit1.Text:=edit1.Text+button7.Caption;end;procedure TForm1.Button8Click(Sender: TObject);beginedit1.Text:=edit1.Text+button8.Caption;end;procedure TForm1.Button9Click(Sender: TObject);beginedit1.Text:=edit1.Text+button9.Caption;end;procedure TForm1.Button10Click(Sender: TObject);beginedit1.Text:=edit1.Text+button10.Caption;end;procedure TForm1.Button11Click(Sender: TObject);beginflag:=1;temp1:=strtofloat(edit1.Text);edit1.Text:=;end;procedure TForm1.Button12Click(Sender: TObject);beginflag:=2;temp1:=strtofloat(edit1.Text);edit1.Text:=;end;procedure TForm1.Button13Click(Sender: TObject);beginflag:=3;temp1:=strtofloat(edit1.Text);edit1.Text:=;end;procedure TForm1.Button14Click(Sender: TObject);beginflag:=4;temp1:=strtofloat(edit1.Text);edit1.Text:=;end;procedure TForm1.Button16Click(Sender: TObject);beginedit1.Text:=;temp1:=0;temp2:=0;flag:=0;end;procedure TForm1.Button15Click(Sender: TObject);begincase flag of 1:temp2:=strtofloat(edit1.Text)+temp1; 2:temp2:=temp1-strtofloat(edit1.Text); 3:temp2:=strtofloat(edit1.Text)*temp1 ; 4: temp2:=temp1/strtofloat(edit1.Text);end; 或case edit1.Text:=floattostr(temp2);end;procedure TForm1.Button17Click(Sender: TObject);beginedit1.Text:=copy(edit1.Text,1,length(edit1.Text)-1);end;end.3.6质量标准什么是质量标准?国际标准是否一定高于国家标准?软件企业是否能制定自己的质量标准?答:软件质量标准是有关软件质量的纲领性规定,是建立有效的质量保证体系的基础,是评价软件质量好坏的基本依据。有人认为国际标准一定高于国家标准,国家标准又一定高于地区标准,而实际情形可能刚好相反。情况往往是,基于国际标准建立,同时根据自己国家的特定需要,加进了一些特别限制,因此国家标准往往要高于国际标准。实际上,一些较大的软件开发机构也可根据自身特点,并参照国际标准、国家标准,制定出有自己企业特征的质量标准。显然,这样的质量标准有更高的质量要求。第4章 计算机系统工程4.1计算机系统的组成及特征计算机系统有哪些元素组成?其特征是什么?答:计算机系统的组成元素如图4-1计算机系统组成所示。 计算机系统 软件系统硬件系统 应用系统工具系统 操作系统网络系统 数据库管理系统图4-1 计算机系统组成系统的最基本特征是具有整体性,虽然是由更小元素组成,但其作用仍体现为一个统一体。4.2Client/Server结构的系统扩充性例说明Client/Server结构的系统扩充性?答:Client/Server结构的系统扩充性如图4-2主机结构和图4-3C/S结构图所示。图4-2 主机结构图4-3 C/S结构图答:例如图43所示多媒体应用系统,或许初期应用只需要提供图片信息服务,因此初期系统只建立了图片服务器。然而,该系统扩充性好,虽然初期系统中没有视频服务、目录服务,但却可以在系统后续完善建设中添加进来,以提供给更加全面的多媒体应用服务。4.3 Browser/Server结构的特点及优点弱点Browser/Server结构有哪些特点?与Client/Server结构相比,有哪些优势及弱点?答:(1)特点:B/S结构的核心是Web服务器,其基于IIS建立互联网信息服务,通过HTTP协议实现客户端与服务器的信息交互,并通过ASP、JSP等,实现Web动态服务。B/S结构可最大限度地减轻客户端的计算负担。(2)与C/S相比较优缺点:在B/S结构有安装部署与前端访问的便利,然而在获得便利的同时,访问的快捷性与操控的灵活性则下降了。实际上,在B/S结构中,客户端与Web服务器通过HTML协议间接地进行交互,并且客户端Web服务器之间是间断性连接。因此,这种结构的性能、稳定性、操控性都不如传统的C/S结构。也因此,实际应用中经常将传统的C/S结构与B/S结构相结合,以满足多方面的应用需求。如图4-4C/S结构和B/S结构所示。图4-4 C/S结构与B/S结构4.4网络游戏软件的体系结构答:如图4-5 传统游戏结构流程图所示。图4-5 传统游戏结构流程图4.5高层分析软件开发为什么要作高层分析?需要进行哪些方面的高层分析?答:软件开发需要立项,并需要有立项依据。诸多依据即来自系统高层分析。系统高层分析一般仅限于系统的基本特征,而并不涉及内部细节,因此被看做高层分析。然而,需要注意的是,有待开发的软件只是计算机系统中需要添加的或需要改善的某种特定逻辑元素,她缺乏独立性,并依赖于硬件、底层软件、网络。实际上,对软件的分析,需要以硬件、底层软件、网络、其他支撑软件为背景,并且越是早期阶段,越需要考虑底层环境的支持,越需要关注外部环境的影响。一般来说,可从以下方面对系统进行高层分析:(1)软件系统的业务领域,业务边界与业务流程;(2)软件系统对硬件设施、网络环境、数据环境的依赖;(3)软件系统的安全层级、措施、与防范机制;(4)软件系统与其他相关系统之间的协作关系;(5)软件系统与用户组织及其工作任务的协调性与适应性。4.6软件项目实施前为什么要进行可行性分析软件项目实施前为什么要进行可行性分析?涉及哪些方面的可行性分析。答:可行性分析的目的是:以少量的时间及人力成本为代价,对项目时候可着手实施做出有依据的判断,以 避免因项目实施条件不具备而造成的大量人力、物力与时间的浪费。项目正式启动前,一般应进行可行性分析。由于技术与应用环境的复杂性,软件项目通常会有一定风险,其有可能达不到立项所期望的工程目标。因此,在然间项目正式实施之间,很有必要对其进行可行性分析,以判断立项中所期望的工程目标是否能够达到。分析时需要根据项目基本目标及条件限制,建立系统高层模型,即应在高层模型中体现出来,以方便对项目做出有依据的可行性判断。可行性分析还将产生对软件的高层定义,其一般基于项目基本目标与用户直观需求产生,可作为框架用于需求分析,能够方便后期软件规格的细节定义。可行性分析包括下面几个方面内容:(1)技术可行性:技术本身的限制;技术资源的限制。(2)经济可行性:项目成本估算;项目效益分析。(3)应用可行性。4.7软件开发可行性的标准如果软件开发所采用的技术即先进又成熟,该技术是否一定具有可行性?答:技术可行性分析是关于软件项目技术问题的高层策略,需要对有待开发系统的高层技术构架进行探索。对技术可行性的判断是基于软件开发者可能采用的技术而提出的,并需要从技术本身与技术资源这两个方面做出可行性评估。软件开发对技术的一半要求是:不但具有先进性,而且已经获得较好的工程经验,有一定的成熟度,可以保证开发出来的软件系统在工能、性能、安全灯诸多方面都能达到预期的技术目标。显然,技术的先进性与成熟度是两个需要平衡考虑的技术因素。技术资源限制是指开发者对所采用技术在把握程度上的限制,如熟练程度、资源丰富程度、技术支持等。毫无疑问的是,尽管开发者准备采用的技术史即先进有成熟的,但假如开发者对该技术缺乏经验,并且难以获得外部技术支持,则从工程角度考虑,该技术仍不具备可行性。项目还需考虑经济上的合理性,她应该是有经济支撑力的,并且可带来经济效益。通常,可从成本与效益这两个方面,对项目做出经济可行性评估。应用可行性需要考虑的是软件的可用性与实用性,所涉及的问题有:法律条款对软件的限制、应用授权对软件的限制、业务规则对软件的限制。显然,一个先行法律法规不允许使用的软件,或一个超越了使用授权范围的软件,或一个与所处领域业务规则有冲突的软件,将不具备应用可行性。第5章 需求分析5.1软件需求什么是软件需求?有哪些方面的软件需求?答:软件需求,即用户对软件的要求。通常,用户会根据自身业务需要提出软件要求,如要求财务软件系统能够按时自动生成财务分析报表,要求人力资源软件系统能够进行人力成本核算。软件需求的分类:功能需求、数据需求、性能需求、接口需求。5.2用户抱怨解决措施软件往往因不能满足应用需求而遭到用户抱怨。对此,如果你是软件开发者,你有何看法,并有何解决措施?答:可能是开发商专注于技术所致,开发者吧绝大部分精力放在软件技术上,如先进的体系结构、高效率的程序算法,而对用户需求不够重视,以致软件虽然实现了,但却没能满足用户所需。也可能是开发者缺乏把握软件需求的技能所致,虽然开发者并不缺少对用户的热情,但却不能很好的与用户沟通,不能很好地理解用户意图,以致确定下来的软件规格与用户需求并不一致。开发商在开发软件之前最好先把用户的意图理解清楚。5.3系统分析师应该具有的素质通常认为,系统分析师是需求分析专家,系统分析师应该具有哪些素质?答:(1)计算机系统知识体系;(2)用户领域知识体系;(3)工作责任心与认真态度;(4)对具体事务进行抽象的能力;(5)问题建模能力;(6)沟通与协调能力;(7)文档协作能力。系统分析师是需求分析责任人,其任务是获取用户需求,并根据软件用户需求定义软件技术规格,以利于软件开发者实现软件需求,如图5-1 系统分析师的职责所示。图5-1 系统分析师的职责5.4需求分析的基本过程试对需求分析的基本过程进行说明。答:如图5-2需求分析过程所示。如图5-2 需求分析过程5.5软件用户的种类 什么是软件用户?举例说明各不同种类的软件用户。答:一般说来,用户即指软件的使用人。然而,当用户作为一个与软件相关的抽象概念出现是,则有这范围更广德外延,泛指系统以外可从软件获得服务的对象,包括软件使用机构,软件直接操作者,软件间接受益者以及需要从软件获得服务支持的其他系统或设备,如图5-3 来自不同领域的用户所示。图5-3 来自不同领域的用户不同阶层的用户会有不同的软件需求:(1)高层用户所关注的可能是基于系统的业务法杖,如新系统是否有利于提高工作效率,是否有利于拓宽业务面,是否有利于改善客户关系;(2)中层用户所关注的可能是基于系统的业务运作,如新系统是否能确保现有业务模式的正常运转,是否能更方便,有效地提供她所需要的业务数据;(3)低层用户所关注的则往往是实际操作,如新系统是否能提供更加人性化并更加方便快捷的操作界面,是否能很快学会新系统的使用;用户与软件系统的亲密关系对用户进行分类:(1)软件系统管理员通常被看成是核心用户;(2)软件系统一般操作者被看成是直接用户;(3)与软件系统相关的部门负责人则是可能被看成是间接用户。5.6常用的调查手段调查仍是收集用户需求的最主要途径,常用的调查手段有哪些?答:(1)访谈;(2)座谈;(3)问卷;(4)跟班作业;(5)收集资料。5.7需求分析中需求模型的用途需求分析中可建立哪些方面的需求模型,分别有什么用途?答:业务树图是典型的结构化建模,用于展开业务,可是浑然一体的系统业务被分解为诸多业务细流,由此可使大而模糊地用户业务被分解成许多小而精准的用户业务。如图5-4 产品计划与生产管理系统业务树图所示。图5-4 产品计划与生产管理系统业务树图业务用例图是系统业务的用户应用举例。如图5-5 产品计划与生产管理系统业务用例图所示。业务活动图是系统业务的工作流程建模,可说明系统中业务的进行步骤。如图5-6“产品计划与生产管理”业务活动图所示。图5-5 产品计划与生产管理系统业务用例图图5-6 “产品计划与生产管理”业务活动图5.8泳道的含义业务活动建模中,泳道代表了什么?答:活动执行者通常可与用例图中的参与者对应,活动图中一般使用泳道表示,如图5-6 “产品计划与生产管理”业务活动图中的市场部,生产部,材料部。5.9需求分析中涉及哪些方面的需求验证?需求分析中涉及哪些方面的需求验证?答:(1)有效性验证;(2)一致性验证;(3)完整性验证;(4)现实性验证;(5)可检验性验证。5.10 原型需求验证和评审需求验证如何通过原型进行需求验证?如何通过评审进行需求验证?答:基于原型的需求验证过程如图5-7 基于原型的需求验证所示。图5-7基于原型的需求验证基于评审的需求验证过程有以下几方面:(1)一致性;(2)有效性;(3)完整性;(4)现实性;(5)可检验性;(6)可读性;(7)可跟踪性;(8)可调节性。第6章 结构化分析建模6.1学生管理系统建模某“学生管理系统”涉及以下实体:(1)学生(学号,姓名,性别,出生日期)(2)班级(班号,班名,班长,限制人数)(3)班主任(编号,姓名,学历,电话)(4)寝室(寝室号,寝室长,限制人数)(5)学生社团(社团号,社团名,限制人数,负责人)实体之间有以下关系:(1)学生必须按班级上课。一个班可安排多个学生上课,但一个学生只能安排在一个班。(2)学生必须按寝室住宿。一个寝室可安排多个学生住宿,但一个学生只能安排在一个寝室。(3)学生可参加学生社团。一个社团可接纳多个学生参加,一个学生可参加多个社团。为便于社团管理,学生入社时需要记录入社时间。(4)班级必须由班主任管理。一个班只能由一个班主任管理,但一个班主任可管理多个班。根据上述的描述,完成该问题的E-R建模。答:如图6-1 学生管理系统建模所示。6.2图书借阅管理系统建模某“图书借阅管理系统”涉及以下实体:(1)书目(书目号,ISBN号,书名,作者,出版商,出版日期,书价)(2)图书(图书标识码,存放位置,当前状态,变更日期)(3)图书管理员(管理员编号,姓名,职位,电话)(4)读者(读者编号,姓名,电话,E-mail,身份证号)并有以下涉及实体关系的业务说明:(1)图书应有书目,以提供图书检索的便利。一条书目可有多本同ISBN号的图书,每一本图书只能对应于一个书目。(2)图书可被读者借阅。读者在办理图书借阅时,管理员应记录借书日期,并记录约定还书日期,以督促读者按时归还图书。一个读者可借阅多本图书,一本图书每次只能被一个读者借阅。(3)图书将由管理员办理入库。图书入库时,应记录图书状态变更,如存库、外借,并记录变更日期。一个管理员可办理多本图书入出库,但一本图书的某次入出库办理必须由确定的管理员经手。根据上述描述,完成该问题的E-R建模。答:如图6-2图书借阅管理系统建模所示。图6-1 学生管理系统建模图6-2图书借阅管理系统建模6.3库房管理系统流程某“库房管理系统”流程图如图6-3库房管理系统图所示。该系统涉及多部门应用。其中,入库单将由采购部输入,出库单将由销售部输入,入出库统计分析报表由计划部打印,采购订单由采购部打印,使用数据流图说明该系统的数据处理流程。图6-3库房管理系统图6.4入学管理系统的数据流程某培训机构“入学管理系统”有报名、交费、就读等多项功能,并有课程表(课程号,课程名,收费标准)、学员登记表(学员号,姓名,电话)、学院选课表(学员号,课程号,班级号)、账目表(学员号,收费金额)等诸多数据表。下面是对系统各项功能的说明。(1)报名:有报名处负责,需要在学员登记表上进行报名登记,需要查询课程表让学员选报课程,学员所报课程将记录到学员选课表。(2)交费:由收费处负责,需要根据学员所报课程的收费标准进行收费,然后再项目表中记账,并打印收款数据给办理交费的学员。(3)就读:由培训处负责,在验证学员收款数据后,根据学员所报课程将学员安排到合适的班级就读。根据上述描述并使用数据流图分层说明该系统的数据处理流程。6.5储蓄系统数据处理流图某银行“储蓄系统”有开户、密码设置、身份验证、存款、取款等功能。下面是对这些功能的说明。(1)开户:客户可填写开立账户申请表,然后交由工作人员验证并输入系统。系统会建立账户记录,并会提示客户设置密码(若客户未设置,则会有一个默认密码)。如果开户成功,系统会打印一本存折给客户。(2)密码设置:在开户时客户即可设置密码。此后,客户在经过身份验证后,还可修改密码。(3)身份验证:系统可根据客户的账户、密码,对客户身份进行验证。(4)存款:客户可填写存款单,然后交由工作人员验证并输入系统。系统将建立存款记录,并在存折上打印该笔存款记录。(5)取款:客户可按存款记录逐笔取款,由客户填写取款单,然后交由工作人员验证并输入系统。系统首先会验证客户身份,如果客户身份验证通过,系统将根据存款记录累计利息,然后注销该笔存款,并在存折上打印该笔存款的注销信息与利息累计。根据上述描述并使用数据流图分析说明该系统的数据处理流图。答:如图6-4存款和6-5取款所示。图6-4“存款”数据流图图6-5 “取款”流程图第7章 基于UML的面向对象分析建模7.1图书借阅管理系统某“图书借阅管理系统”需求说明如下:(1)管理员应建立图书书目,以提供图书检索的便利。一条书目可有多本同ISBN号的图书,每一本图书只能对应于一个书目。(2)图书可被读者借阅。读者在办理图书借阅时,管理员应记录借书日期,并记录约定还书日期,以督促读者按时归还图书。一个读者可借阅多本图书,一本图书每次只能被一个读者借阅。(3)图书将由管理员办理入库。图书入库时,应记录图书状态变更,

温馨提示

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

评论

0/150

提交评论