2022年安徽工业大学《软件工程》作业及答案 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年安徽工业大学《软件工程》作业及答案 .pdf》由会员分享,可在线阅读,更多相关《2022年安徽工业大学《软件工程》作业及答案 .pdf(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、学而不思则惘,思而不学则殆软件工程作业第一章1什么是软件危机,它有哪些典型表现?答: 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 概括地说, 软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。软件危机典型表现: 对软件开发成本和进度的估计常常很不准确。用户对“已完成的” 软件系统不满意的现象经常发生。软件产品的质量往往靠不住。软件常常是不可维护的。 软件通常没有适当的文档资料。软件成本在计算机系统总成本中所占的比例逐年上升。软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。产生软件危机的原因: 一方面
2、与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。软件不同于硬件, 它是计算机系统中的逻辑部件而不是物理部件。管理和控制软件开发过程相当困难。软件是规模庞大, 而且程序复杂性将随着程序规模的增加而呈指数上升。目前相当多的软件专业人员对软件开发和维护还有不省糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。2简述产生软件危机的原因和解决的思路。答:软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开发、维护的方法不正确有密切关系。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - -
3、-第 1 页,共 39 页学而不思则惘,思而不学则殆解决软件危机,既要有技术措施(方法和工具 ),又要有必要的组织管理措施。即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要出路。3什么是软件工程?它有哪些本质特性?答: 软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、 原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。软件工程本质特性: 1、软件工程关注于大型程序的构造;2、软件工程的中心课题是控制复杂性;3、软件经常变化; 4、开发软件的效率非常重要; 5、和谐地
4、合作是开发软件的关键;6、软件必须有效地支持它的用户; 7、在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。4软件工程是如何用来消除软件危机的?软件工程是从技术和管理两个方面来研究如何更好地开发和维护计算机软件,从源头上消除软件危机。5假设你是某软件开发企业的CEO,当你把教材P.4的图 1.1 给手下的软件工程师们看, 同时告诉他们应及早发现并改正错误的重要性时,有人不以为然, 认为要求在错误进入软件前就发现并清除它们是不现实的,并举例说: “如果一个故障是编码错误造成的,那么又如何能够在设计阶段就发现并清除呢?”那你应该如何说服?首先要对错误造成工作的延误或一些问
5、题表示歉意。错误是难免, 关精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 39 页学而不思则惘,思而不学则殆键是要虚心接受,在以后工作中要更加认真, 避免错误机率降到最低。在编码过程中要,首先要在头脑清醒,要保持工作前有足够的睡眠。这样错误机会也会降小。 在编程结束后, 首先要验证, 是否能正常运行或工作。再以后的工作更要虚心,认真,保证这种机会降到最低6简述软件的定义。软件 程序 + 数据 + 文档7软件工程的目的是什么?为高质量的软件开发提供一个科学的体系框架。8什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大要素?分
6、为哪三个分支?软件工程方法学就是指在软件生命周期全过程中使用的一整套管理和开发技术方法的集合。 目前,使用最广泛的软件工程方法学分别是传统方法学和面向对象方法学。软件工程作为一种层次化的技术,有方法、工具和过程三大要素,并由于其涉及学科内容的极为广泛, 而分为三个分支:软件开发技术、软件项目管理技术、软件质量管理技术。9简述软件工程的基本原理。软件工程有 7 条基本原理:1严格按照软件生命周期计划进行管理2坚持进行阶段评审3实行严格的产品控制4采用先进的程序设计技术精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 39 页学而不思则惘,思
7、而不学则殆5结果应能清楚的审查6开发小组成员应少而精7承认不断改进软件工程实践的必要性10软件工程的基本开发原则有哪些?软件工程的基本开发原则有:1模块化2抽象和信息隐蔽3模块的高内聚和低耦合4确定性5一致性6完备性11构成软件工程的基本元素有哪些?除了前面给出的软件工程三大要素,还应该包括控制和质量保证。这里的控制,即规模控制、成本控制、复杂性控制等。12什么是软件过程?它与软件工程方法学有何关系?软件过程是指为了获得高质量软件产品,在软件工具支持下, 由软件人员完成的一系列软件工程活动。软件过程规定了开发软件所需完成的各项任务步骤。过程步骤的设定与软件生命周期、 生命周期模型、 软件开发工
8、具, 以及参与开发的人员等诸方面因素有关。13什么是软件生命周期?什么是软件生命周期模型?答: 软件如同自然界任何事物一样,都有其孕育、 诞生、成长、成熟、精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 39 页学而不思则惘,思而不学则殆衰亡的生存过程。软件的这一过程,称为软件生命周期。软件生命周期模型也称软件开发过程模型,是为了解决产业环境中的实际问题, 而提出的开发策略。 是反映整个软件生命期中,系统开发、运行、维护等实施活动的一种结构框架。14简述软件生命周期方法学的途径,以及划分阶段步骤的目的和实质。软件生命周期方法学是软件工程
9、的传统途径,划分阶段步骤的目的和实质是:控制开发工作的复杂性,通过有限步骤,把抽象逻辑概念,转化为具体物力实现。15 试比较瀑布模型、 快速原型模型、增量模型和螺旋模型的优缺点,说明它们各自的适用范围。1瀑布模型。瀑布模型广为人知和历史悠久, 其优势是规范及文档驱动的方法。但问题是,往往不能够真正满足用户的需求。适用于传统软件工程领域的结构化开发。2原型模型。是为了克服瀑布模型的缺点而提出来的。通过快速构建一个在机器上可运行的原型系统,让用户试用原型,并收集反馈意见的办法,来获取用户真实的需求。3螺旋模型。螺旋模型适用于大型软件项目,比起之前的其它模型而言,有其一定的优越性, 但这些优越性并不
10、是绝对的。 主要体现在对开发人员的风险评估经验和专门知识的要求较高。如果项目风险较大, 而开发精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 39 页学而不思则惘,思而不学则殆人员的水平较低,不能准确的识别和分析风险, 则势必造成重大损失。4增量模型。具有在软件开发早期阶段使投资获得明显回报和交易维护的优点,但是要求软件具有开放的结构。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 39 页学而不思则惘,思而不学则殆第二章1在软件开发的早期阶段,为什么要进行可行性研究?其目的和任
11、务各是什么?可行性研究的目的是用最小的代价, 在尽可能短的时间内确定问题是否可解决,以及是否值得解决。可行性研究的任务不是解决问题,而是确定是否可解/值得解。2应该从哪些方面研究目标系统的可行性?主要从以下几个方面进行可行性研究:1. 技术可行性。以现有技术,能否在预定时间内完成该系统开发。2. 经济可行性。通过成本 -效益分析,估算系统的整体经济效益是否满足要求。3. 操作可行性。分析系统的运行方式、操作规程是否适应用户应用需要。4. 社会可行性。分析系统在法律、社会、市场等方面的认可度。3可行性研究有哪些工作步骤?(1) 复查定义,确定系统规模和目标。 (2) 研究老系统 (3) 导出高层
12、逻辑模型 (conceptual design) (4) 重新定义(5) 导出多种解法 (6) 推荐行动方针 (7) 开发计划 (粗略)(8) 审查、存档4简述系统流程图在可行性研究中的作用。系统流程图是概括的描述物理系统的传统工具。系统流程图反映的是信息在系统各部分间流动的情况。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 39 页学而不思则惘,思而不学则殆系统流程图可以帮助了解和分析系统,以概括的方式表达对系统的认识,并可以描述未来物理系统的概貌。5简述数据流图在可行性研究中的作用和用途。数据流图在可行性分析中可以帮助分析和描绘数
13、据在软件中流动和被处理的逻辑过程, 用图形的方式描述系统的逻辑功能,是系统分析员和用户之间理想的通信工具。6简单描述数据字典但内容和定义数据的方法。数据字典主要由下列4 种元素定义组成:1数据流 2数据流分量 3数据存储 4处理除了数据定义外,数据字典还应包含一些关于数据的其它信息。定义数据的方法通常采用自顶向下分解的方式。并由顺序、 选择、重复三种基本数据元素类型组成数据。7说明软件计划的内容和目标。软件计划的内容 项目任务范围+ 环境资源+ 工作量+ 进度软件计划的目标是为了提供一个框架,以便于管理者对资源、 成本和进度等进行合理的估算。8什么是软件范围?定义软件范围需要哪些信息?软件范围
14、就是在技术和管理层面上都是无二义性和可理解的项目范围,是软件开发各阶段的工作依据。定义软件范围需要以下信息:a. 与用户、总体目标及利益相关的问题。b. 有利于系统分析员理解的问题。 c. 集中于交流效果的问题。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 39 页学而不思则惘,思而不学则殆9简述软件开发环境资源的三个层次。软件开发环境资源由三个层次构成:开发环境、软件构件以及最重要的资源人。10软件环境资源的特征有哪些?它们对制定软件计划都有哪些意义?每一类资源都有四个特征: 资源描述、可用性说明和资源提供的时间、资源使用的延续时间
15、。可以为制定软件计划估算软件开发所需的资源。11软件计划中, 安排软件开发进度主要可以用哪些工具?都有哪些优缺点?编制进度计划的常用工具主要有甘特图和网络计划法。甘特图的优点是简单, 能动态地反映开发进展; 缺点是难以反映多个任务间的逻辑关系。网络计划法则恰好弥补了甘特图的缺点,最适合反映多个工作之间的逻辑关系。12主要的成本估计技术有哪些?其依据的主要是什么?主要有,代码行技术。是一种基于规模的分解估算:D=?f(vi)以及基于问题的分解估算:EV(Sopt+4Sm+Spess)/6 还有功能点技术。这种技术以功能点(FP)为单位,度量软件的规模。由于项目本身的复杂性,因此,成本估计技术主要
16、采用“分而治之”的分解技术对软件项目进行估算。13为什么说成本估计是不可能精准的?那是由于太多的变化因素人员、技术、环境、策略、复杂性等等,精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 39 页学而不思则惘,思而不学则殆使得成本估算永远不可能精确。14进行成本 /效益分析的方法主要有哪些?常用成本 /效益分析的方法主要有:(1) 货币的时间价值 (2) 投资回收期 (3) 纯收入 (4) 投资回收率15软件计划的主要内容有哪些?16如何对制定完成的软件计划进行复审?为什么要复审?软件计划的复审通常涉及有关软件工作范围和软硬件资源问题等
17、。复审应该邀请用户参加, 用户可提出建议,并与开发人员最终商定内容。复审内容分为技术和管理两个方面:技术方面需要考虑的问题有:1.系统的任务是否合理;2.系统的给你复杂性是否与开发成本、进度以及风险一致;3.系统规格说明书是否足够充分;4.系统性能要求是否恰当管理方面需要考虑的问题有:1.计划中描述的工作范围是否符合用户需求2.计划中对资源的描述是否有效、合理?3.计划中系统的开发成本与进度要求是否合理?4.计划中人员的安排是否合理?5.系统开发存在哪些风险?复审可以尽早发现错误,复审是软件质量保证的重要措施。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - -
18、- -第 10 页,共 39 页学而不思则惘,思而不学则殆第三章1为什么要进行需求分析?通常对软件系统有哪些需求?需求问题是软件工程项目失败的主要原因。一个高质量的软件, 很大程度上取决于对要解决的问题的认识,以及如何准确的表达用户的需求。需求分析就是要解决这个问题。通常,对一个软件系统的需求可以有功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求等多个方面。2怎样与用户有效地沟通,以获得用户的真实需求?访谈、情景分析,以及面向数据流的自顶向下求精等方法,编制简易的系统规格说明文档,创建原型等,是获取真实需求的有效方法。3需求分析的任务是什么?确定对待开发系统的综合要求。4通常系统
19、的需求可以分为哪几个层次?一般可以分成 5 个层次:(1) 功能需求:系统必须做什么?(2) 业务需求:反映客户组织机构对系统高层次的目标要求。(3) 运行需求:运行环境、软硬件配置等。(4) 属性需求:包括用户关心的属性,如效率、灵活性、完整性、可靠性等;开发者关心的属性,如可维护性、可复用性、可移植性等。(5) 未来可能的扩充需求:如HDIS 各组的合并, 3 维虚拟现实的效果等等。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 39 页学而不思则惘,思而不学则殆5进行需求分析的步骤有哪些?1确定系统的综合要求2分析系统的数据要求
20、3导出逻辑模型 4修正系统开发计划6简述建立原型模型对软件需求分析的作用。可以快速构建旨在演示目标系统主要功能的可运行程序,帮助用户确定及提供更为精准的需求,以利用户和开发者能够在目标系统应该“做什么”这一问题上尽快达成一致。7解释实体 -联系图及其用途。实体-联系图是按照用户的观点对数据建立的模型。描述从用户角度看到的数据,反映用户的现实环境, 并且与在软件系统中的实现方法无关。8说明为什么需要进行需求验证及验证的步骤有哪些?进行需求验证是为了确保软件开发的质量,降低开发成本。 通常对需求进行验证的步骤有: 验证需求的一致性、 验证需求的现实性、 验证需求的完整性和有效性。9银行计算机储蓄系
21、统的工作过程大致如下:储户填写的存款单或取款单由业务人员键入系统, 如果是存款则系统记录存款人姓名、住址(或电话号码 )、身份证号码、存款类型、存款日期、到期日期、利率及密码 (可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码, 若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。请用数据流图描绘本系统的功能, 并用实体联系图描绘系统中的数据对象。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 39 页学而不思则惘,思而不学则殆第四章1为每种类型的模块耦合举一个具体的例子。耦合分别是:内
22、容耦合,共用耦合(公共环境耦合),控制耦合,印记耦合(特征耦合),数据耦合2为每种类型的模块内聚举一个具体的例子。内聚分别是: 偶然内聚,逻辑内聚,时间内聚,过程内聚, 通信内聚,顺序内聚,功能内聚,信息内聚3简单说明系统总体设计的步骤步骤。典型的总体设计包括以下9 个步骤:1、确定最佳方案 2、选取合理方案 3、推荐最佳方案 4、功能分解 5、软件结构设计6、设计数据库 7、制定测试计划8、书写文档 9、审查和复审4举例说明模块化原理的经验1 和经验 2。5为什么要尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,完全不用内容耦合?减少模块之间的关联度,提高模块的独立性。因为内容耦合会导致
23、一个模块修改另一个模块的内容,使得程序逻辑发生严重问题。而公共耦合是若干模块通过一个公共数据环境相互作用,公共部分的改动将影响所有调用它的模块,公共部分的数据存取无法控制,并且复杂程度也会随耦合模块的个数增加而增加。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 39 页学而不思则惘,思而不学则殆控制耦合是一个模块通过传递开关、标志、名字等控制信息, 明显地控制选择另一个模块的功能。 由于接口单一, 因此仍然会影响被控模块的内部逻辑。而数据耦合只是模块间通过数据参数来交换I/O 信息,因此不会对其它模块产生任何等影响。6为什么模块的规
24、模要适中?过大不易理解;太小则接口开销过大。7请说明为什么模块控制的宽度和深度要适度。深度过大表示分工过细, 而宽度过大则表示系统复杂度大,所以模块控制的宽度和深度要适度。8简述面向数据流设计方法的基本思想。将由数据流图描绘的信息在系统中加工和流动的情况映射成软件结构。9常用数据流类型有哪些?变换流和事务流。10面向数据流的设计方法主要有哪几个步骤?主要有下面 7 个步骤:1复查基本系统模型2复查并精化数据流图3确定数据流图具有变换特性还是事务特性4确定输入流和输出流动边界,从而孤立出变换中心5完成“第一级分解”6完成“第二级分解” 7使用设计度量和启发式规则对第一次分割得到的软件结构进一步精
25、化精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 39 页学而不思则惘,思而不学则殆11用面向数据流的方法设计第二章习题17 系统的软件结构。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页,共 39 页学而不思则惘,思而不学则殆第五章1详细设计的任务是什么?包括模块的算法设计、 模块内的数据结构设计、 模块接口设计、 其它根据软件特点需要完成的设计、模块测试用例设计、设计文档编写、设计评审。2在对系统做详细设计时,应遵循哪些原则? 模块的逻辑描述应清晰易读、正确可靠; 设计的处理
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 2022年安徽工业大学软件工程作业及答案 2022 安徽 工业大学 作业 答案
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内