ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:106.97KB ,
资源ID:10265827      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10265827.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件工程 课后习题答案.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

软件工程 课后习题答案.docx

1、软件工程 课后习题答案第一章什么是计算机软件?软件的特点是什么?计算机软件是指计算机系统中的程序及其文档软件的特点:软件是一种逻辑实体,而不是有形的系统元件,其开发本钱和进度难以准确地估算。软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大。软件的使用没有硬件那样的机械磨损和老化问题。简述软件的分类,并举例说明1.系统软件系统软件居于计算机系统中最接近硬件的一层,其他软件一般都通过系统软件发挥作用。例如:编译软件、操作系统。2.支撑软件支撑软件是支撑软件的开发和维护的软件。例如:数据库管理系统、网络软件、软件工具、软件开发环境。3.应用软件应用软件是特

2、定应用领域专用的软件。例如:工程/科学计算机软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。 简述软件语言的分类,并举例说明。1.需求定义语言是用于书写软件需求定义的语言。例如:PSL/PSA。2.功能性语言是用于书写软件功能规约的语言,通常又称为功能规约语言。例如:广谱语言、Z语言。3.设计性语言是用于书写软件设计规约的语言。例如:PDL。4.实现性语言也称为程序设计语言,是用于书写计算机程序的语言。例如:C、java、PROLOG、FORTRAN、COBOL、Modula。5.文档语言是用于书写软件文档的语言。通常用自然语言或半形式化语言书写。1.4什么是软件工程? 软件工程是

3、应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原那么、方法,以提高质量、降低本钱为目的。1.5简述软件工程的根本原那么。 软件工程原那么包括围绕工程设计、工程支持和工程管理所提出的以下4条根本原那么。1.选取适宜的开发模型必须认识需求定义的易变性,采用适宜的开发模型,保证软件产品满足用户的要求。2.采用适宜的设计方法适宜的设计方法有助于这些特征的实现,以到达软件工程的目标。3.提供高质量的工程支撑软件工程工程的质量与开销直接取决于对软件工程所提供的支撑质量和效用。4.重视软件工程的管理仅当软件过程予以有效管理时,才能实现有效的软件工程。1.6软件工程生存周期分哪几

4、个阶段?分别简述各个阶段的任务。 1. 计算机系统工程计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机系统元素之间的关系,进行本钱估算,作出进度安排,并进行可行性分析。 2. 需求分析需求分析主要解决待开发软件要“做什么的问题,确定软件的功能、性能、数据、界面等要求,生成软件需求规约也称软件需求规格说明。3. 设计系统设计的任务是设计软件系统的体系结构,详细设计的任务是设计各个组成成分的实现细节,包括局部数据结构和算法。 4. 编码 编码阶段的任务是用某种程序设计语言,将设计的结果转换为可执行的程序代码。5.测试测试阶段的任务是发现并纠正软件中的错误和缺陷。1.7简

5、述CMM的5个等级。 1. 初始级 2. 可重复级 3. 已定义级 4. 已管理级 5. 优化级1.8简述CMMI的连续式模型和阶段式模型。 1.阶段式模型的结构类同于软件CMM,它关注组织的成熟度,CMMI-SE/SW/IPPD 1.1版中有5个成熟度等级:初始的、已管理的、已定义的、定量管理的、优化的。 2.连续式模型关注每个过程域的能力,CMMI中包括6个过程域能力等级:未完成的、已执行的、已管理的、已定义的、定量管理的、优化的。1.9简述各类软件过程模型的特点。1. 瀑布模型:上一阶段的活动完成并经过评审才能开始下一阶段的活动,接受上一阶段活动的结果作为本阶段活动的输入,依据上一阶段活

6、动的结果实施本阶段应完成的活动,对本阶段的活动进行评审。2. 演化模型:从结构初始的原型出发,逐步将其演化成最终软件产品的过程。演化模型特别适用于对软件需求缺乏准确认识的情况。3. 增量模型:将软件的开发过程分为假设干个日程时间交错的线性序列,融合了瀑布模型的根本成分重复地应用和演化模型的迭代特征,特别适用于需求经常发生变化的软件开发。4. 原型模型:开发人员和用户在“原型上达成一致,缩短了开发周期,加快了工程进度,降低本钱。5. 螺旋模型:将原型实现的迭代特征与瀑布模型中控制的和系统化的方面结合起来,不仅表达了这两种模型的优点,而且增加了风险分析。6. 喷泉模型:各个阶段没有明显的界限,开发

7、人员可以同步进行开发,可以提高软件工程开发效率,节省开发时间,适应于面向对象的软件开发过程。7. 基于构件的开发模型:利用预先包装的构件来构造应用系统。8. 形式化方法模型:易于发现需求的歧义性、不完整性和不一致性,易于对分析模型、设计模型和程序进行验证。1.10敏捷软件开发的特点是什么?1.个体和交互胜过过程和工具2.可以工作的软件胜过面面俱到的文档3.客户合作胜过合同谈判4.响应变化胜过遵循方案1.11简述敏捷软件开发的价值观。 3.与客户协作高于合同契约谈判1.12简述敏捷软件开发的原那么。的是通过尽早地和不断地交有价值的软件来使客户满意。2.即使到了开发的后期,也欢送改变需求。3.以几

8、周到几个月为周期,尽快、不断地发布可运行软件。4.在整个工程过程中,业务人员和开发人员必须天天一起工作。5.以积极向上的员工为中心建立工程组,给予他们所需要的环境和支持,对他们的工作予以充分的信任。6.工程组内效率最高、最有效的信息传递方式是面对面的交谈。7.测量工程进展的首要依据是可运行的软件。8.敏捷过程提倡可持续的开发,工程发起者、开发者和用户应能长期保持恒定的速度。9.应时刻关注技术上的精益求精和好的设计,以增强敏捷性。10.简单化是必不可少的,这是尽可能减少不必要工作的艺术。11.最好的构架、需求和设计出自于自我组织的团队。要定期反思怎样才能更有效,并据此调整自己的行为。1.13通过

9、本章学习,请对敏捷软件开发作简要评价。 略1.14简述CASE工具和环境的重要性。 CASE已被证明可以加快开发速度,提高应用软件生产率并保证应用软件的可靠品质。计算机专业人员利用计算机使他们的企业提高了效率,企业的各个部门通过使用计算机提高了生产率和效率,增强了企业的竞争力并使之带来了更多的利润。第二章1.识别用户的要求识别用户对基于计算机的系统的总体要求,标识系统的功能和性能范围,确定系统的功能、性能、约束和接口。2.系统建模和模拟一个基于计算机的系统通常可考虑建立以下模型:硬件系统模型、软件系统模型、人机接口模型、数据模型。3.本钱估算及进度安排开发一个基于计算机的系统需要一定的资金投入

10、和时间约束交互日期,需进行本钱估算,并作出进度安排。4.可行性分析主要从经济、技术、法律等方面分析所给出的解决方案是否可行。5.生成系统规格说明作为以后开发基于计算机的系统的依据。2.2基于计算机的系统由哪些元素组成?1.软件2.硬件3.人员4.数据库5.文档6.规程1.经济可行性a)本钱b)效益c)货币的时间价值d)投资的回收期e)纯收入2.技术可行性a)风险分析b)资源分析c)技术分析3.法律可行性4.方法的选择和折衷第三章3.1需求工程的重要性是什么? 可以确定客户需求 帮助分析人员理解问题 评估可行性 协商合理的解决方法 无歧义的规约方案、确认规约以及将规约转换到可运行的系统时的管理要

11、求。3.2需求工程具体包括哪些步骤?每个步骤的具体任务是什么?1.需求获取:系统分析人员通过与用户的交流、对现有系统的观察及对任务进行分析。2.需求分析与协商:分析每个需求与其他需求的关系以检查需求的一致性、重叠和遗漏的情况,并根据用户的需求对需求进行排序。3.系统建模:通过适宜的工具和符号系统地描述需求。4.需求规约:给出对目标软件的各种需求。5.需求验证:对功能的正确性、完整性和清晰性以及其他需求给予评价。6.需求管理:对需求工程所有相关活动的规约和控制。?请说明理由。 1.能够熟练地掌握计算机硬、软件的专业知识,具有一定的系统开发经验。 2.善于进行抽象的思维和创造性的思维,善于把握抽象

12、的概念,并把它们重新整理成为各种逻辑成分,并给出简明、清晰的描述。 3.善于从相互冲突或混淆的原始资料中抽出恰当的条目来。 4.善于进行调查研究,能够很快学习用户的专业领域知识,理解用户的环境条件。 5.能够倾听他人的意见,注意发挥其它人员的作用。6.具有良好的书面和口头交流表达能力。3.4列出在制定需求获取策略时的3种主要考虑因素。1.功能需求。考虑系统要做什么,在何时做,在何时及如何修改或升级。2.性能需求。考虑软件开发的技术性指标。3.用户或人对因素。考虑用户的类型。3.5略举例说明一个系统的3个不同类型的非功能需求答:非功能性需求是指软件产品为满足用户业务需求而必须具有且除功能需求以外

13、的特性。软件产品的非功能性需求包括系统的性能、可靠性、可维护性、可扩充性和对技术和对业务的适应性等。例如在银行管理系统中,由于银行数据量的庞大以及对银行账户的管理需求,用户对系统的性能、可靠性、可维护性要求很高。平安性是对银行用户个人信息保密的根本要求;在使用系统时,由于用户庞大,要求能快速平安的执行要求,这就对系统的性能有高需求;银行的用户的变动比拟大,需求高要求的系统维护。3.7略3.8软件需求分析的操作性原那么和需求工程的指导性原那么是什么? 需求分析的操作性原那么:必须能够表示和理解问题的信息域。必须能够定义软件将完成的功能。必须能够表示软件的行为作为外部事件的结果。必须划分描述数据、

14、功能和行为的模型,从而可以分层次地揭示细节。分析过程应该从要素信息转移向细节信息需求工程的指导性原那么:在开始建立分析模型之前应领先理解问题。如果问题没有很好理解就急于求成,常常会产生一个解决错误问题的完美的软件。 强力推荐使用原型。这样做可以使用户了解将如何与计算机交互,而人们对软件质量的认识常常是基于对界面“友好性的切身体会。 记录每一个需求的起源和原因。这是建立对用户要求的可追溯性的第一步。 使用多个视图,建立系统的数据、功能和行为模型。这样做可帮助分析员从多方面分析和理解问题,减少遗漏,识别可能的不一致之处。 给需求赋予优先级。因为过短的时限会减少实现所有软件需求的可能性。因此,对需求

15、排定一个优先次序,标识哪些需求先实现,哪些需求后实现。 注意消除歧义性。因为大多数需求都是以自然语言描述,存在表达的歧义性问题 造成遗漏和误解。采用正式的技术评审是发现和消除歧义性的好方法。3.9软件需求规约主要包括哪些内容?1.引言2.信息描述3.功能描述4.行为描述5.检验标准6.参考书目7.附录3.10需求验证应该有哪些人参加?分析人员、用户、开发部门的管理者、软件设计、实现、测试的人员。 分析人员 需求分析 用户 获取系统 系统 信息 需求 用户要求 折衷方案 系统信息开发部门管理者 系统需求 软件设计、实现、测试人员第四章4.1简述软件设计阶段的根本任务。1.数据/类设计:将分析类模

16、型变换成类的实现和软件实现所需要的数据结构。2.体系结构设计:定义了软件的整体结构,由软件部件、外部可见的属性和他们之间的关系组成。3.接口设计:描述了软件内部、软件和协作系统之间以及软件同人之间的通信方式。4.部件级设计:将软件体系结构的结构性元素变换为对软件部件的过过程性描述。是怎么样的? 设计是在软件开发中形成质量的阶段,设计提供了可以用于质量评估的软件表示,是将用户需求准确地转化为完整的软件产品或系统的主要途径。4.3略4.4简述模块、模块化及模块化设计的概念。 模块是数据说明、可执行语句等程序对象的集合,是单独命名的,并且可以通过名字来访问的。 模块化是指把软件按照规定原那么,划分为

17、一个个较小的,相互独立的但又相互关联的部件。 模块化设计就是程序的编写不是开始就逐条录入计算机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,并定义和调试好各个框架之间的输入、输出链接关系。举例说明每种类型的模块耦合度和每种类型的模块内聚度。a)内容耦合:当一个模块直接修改或操作另一个模块的数据,或者直接转入另一个模块时就发生了内容耦合。此时,被修改的模块完全依赖于修改它的模块。如果发生以下情形,两个模块之间就发生了内容耦合:i.一个模块直接访问另一个模块的内部数据ii.一个模块不通过正常入口转到另一模块内部 iii.两个模块有一局部程序代码重叠(只可能出现在

18、汇编语言中) iv.一个模块有多个入口。b)公共耦合:假设一组模块都访问同一个公共数据环境,那么它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。 c)外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,那么称之为外部耦合。 d)控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。 e)标记耦合:一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。其实传递的是这个数据结构的地址。 f)数据耦合:一个模块访

19、问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。g)非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的1.巧合内聚:讲几个模块中没有明确表现出独立功能的相同程序代码段独立出来建立的模块称巧合内聚模块。 2.逻辑内聚:逻辑内聚是指完成一组逻辑相关任务的模块,调用该模块时,由传送给模块的控制性参数来确定该模块应执行哪一种功能。 3.时间内聚:时间内聚是指一个模块中的所有任务必须在同一时间段内执行。 4.过程内聚:过程内聚是指一个模块完成多个任务,这些任务必须指定的过程执行。 5.通信内聚:通信内聚是指

20、一个模块内所有处理元素都集中在某个数据结构的一块区域中。 6.顺序内聚:顺序内聚是指一个模块完成多个功能,这些功能又必须顺序执行 7.功能内聚:功能内聚是指一个模块中各个局部都是为完成一项具体功能而协同工作,紧密联系不可分割。 4.6耦合和软件可移植性的概念有何关系?耦合性是2个或多个模块相关的程度,可移植性是指软件从一个平台/环境转移到另一个平台/环境的难易程度。4.7描述信息隐蔽概念,并讨论信息隐蔽与模块独立两概念之间的关系。1.信息隐蔽指在设计和确定模块时,使得一个模块内包含信息(过程或数据),对于不需要这些信息的其他模块来说,是不能访问的。在面向对象方法中,信息隐蔽是通过对象的封装性来

21、实现的。 2.信息隐蔽的概念与模块的独立性直接相关4.8什么是模块的独立性?设计中为什么模块要独立?如何度量独立性?模块功能独立有何优点?1.模块独立性:A.模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单 B.模块独立性是指模块内部各局部及模块间的关系的一种衡量标准,由内聚和耦合来度量。2.A.具有独立的模块的软件比拟容易开发出来。这是由于能够分割功能而且接口可以简化,当许多人分工合作开发同一个软件时,这个优点尤其重要。 B.独立的模块比拟容易测试和维护。这是因为相对说来修改设计和程序需要的工作量比拟小,错误传播范围小,需要扩充功能时能够插入模块。总之,模

22、块独立是优秀设计的关键,而设计又是决定软件质量的关键环节。3.模块的独立程度可以由两个定性标准度量:内聚和耦合。4.A.具有独立的模块的软件比拟容易开发出来。这是由于能够分割功能而且接口可以简化,当许多人分工合作开发同一个软件时,这个优点尤其重要。B.独立的模块比拟容易测试和维护。主要包括哪些内容?1.工作范围A.系统目标B.运行环境C.主要软件需求D.设计约束/限制2.体系结构设计A.数据流与控制流复审B.导出的程序结构C.功能与程序交叉索引3.数据设计A.数据对象与形成的数据结构B.C.全局数据D.文件/数据与程序交叉索引4.接口设计A.人机界面规格说明B.人机界面设计规那么C.D.内部接

23、口设计规那么5.各部件的过程设计A.处理与算法描述B.接口描述C.设计语言或其他描述D.使用的部件E.内部程序逻辑描述F.注释/约束/限制6.运行设计A.运行部件组合B.运行控制C.运行时间7.出错处理设计A.出错处理信息B.8.平安保密设计9.需求/设计交叉索引10.测试局部A.测试方针B.集成策略C.特殊考虑11.特殊注解12.附录第五章5.1简述数据流图的主要思想,概述使用数据流图进行需求分析的过程。 数据流图描述输入数据流到输出数据流的变换即加工,用于对系统的功能建模。1.画出系统的输入和输出A.确定源和宿B.确定加工C.确定数据流D.顶层图通常没有文件2.画出系统内部A.确定加工B.

24、确定数据流C.确定文件D.确定源和宿3.画出加工内部4.重复第3步,直至每个尚未分解的加工都足够简单即不必再分解5.2分别采用数据流方法中的哪些技术来完成用户需求的精确化、一致化和完全化任务?1.父图和子图平衡2.数据守恒3.局部文件4.一个加工的输入数据流不能与该加工的输入数据流同名5.每个加工至少有一个输入数据流和一个输出数据流6.在整套分层数据流中,每个文件应至少有一个加工读该文件,有另一个加工写该文件。7.分层数据流图中得每个数据流和文件都必须命名除了流入或流出文件的数据流,并且与数据字典一致。8.分层DFD中的每个根本加工即不再分解子图的加工都应有一个加工规约。略5.4在数据流图中,

25、可否将两个加工用一个数据流相连?可否将两个源用一个数据流相连?为什么? 两个加工可以直接用数据流相连,两个源不能直接用数据流相连。因为数据流由一组固定成分的数据组成。在DFD中,数据流的流向可以有以下几种:从一个加工刘向另一个加工,从加工流向文件写文件,从文件流向加工读文件,从源流向加工,从加工流向宿。略5.6略采用结构化分析方法写出书店管理系统的需求文档,包括数据流图及数据字典。总数据流图: 已售信息 进货信息 进货信息 销售 信息 进货信息 销售 销售 信息 信息 进货信息 进货 信息 会员信息 会员信息 会员 信息 存书 会员信息 进 会员信息 货 时间 进货信息 进货信息 是 否2、数

26、据字典存书数据字典: 属 性 名类 型长 度备 注书 号char10书的编号书 名char30书的名称作 者char20书的写作者类 型char20书的类型简 述char150书的简单介绍单 价smallmoney4书的价格现 存 数 量int4店内的现有存书数量店 内 位 置char20书在店内的具体位置出 版 社 号char10出版社的编号特价书char2是否为特价书缺省值是“否出版社数据字典:属 性 名类 型长 度备 注出版社号char10出版社的编号出版社名称char20出版社的名称所在城市char10出版社所在的城市 char15出版社的联系 进货数据字典:属 性 名类 型长 度备

27、注书 号char10书的编号进 价smallmoney4书的进价进货数量int4每本书的进货数量日 期datetime8进货的日期销售数据字典:属 性 名类 型长 度备 注日 期datetime8售货的日期书 号char10书的编号销售量int4售出的书本数量销售金额money8销售金额=单价*销售量会员信息数据字典:属 性 名类 型长 度备 注客服号char8会员卡的卡号姓名char20会员的姓名地址char50会员的家庭住址 char15会员的 号码购置书号char10书的编号店内收出数据字典:属 性 名长 度备 注月份6水电支出4水电费用员工支出4员工的工资其他支出4其他费用支出结算8每

28、月的总结算5.8略5.9略5.10 第六章6.1 简述面向数据结构方法的特点答:特点如下:1 以信息对象及其操作作为核心进行需求分析;2 认为复合信息对象具有层次结构,并且可按顺序,选择,重复3种结构分解为成员对象信息;3 提供由层次信息结构映射为程序结构的机制,从而为软件设计奠定良好的根底。6.2 采用Jackson图表示下面的文件结构:第七章略第八章什么是构件?答:根据pressman书中的定义构件是某系统中有价值的、几乎独立的并可替换的一个局部,它在良好定义的体系结构语境内满足某种清晰的功能。根据brown的定义构件是一个独立发布的功能局部,可以通过其接口访问它的效劳。根据?计算机科学技

29、术百科全书第二版?中的定义软件构件是软件系统中具有相对独立功能,可以明确标识,接口由规约指定,与语境有明显依赖关系,可独立部署,且多由第三方提供的可组装软件实体。软件构件须承载有用的功能,并遵循某种构件模型。可复用构件是指具有可复用价值的构件。在基于构件的软件开发中经常会使用到的商用成品构件,是指由第三方开发的满足一定构件标准并且可组装的软件构件。8.2 简述基于构件的软件开发过程。基于构件的软件开发过程:领域工程的步骤:1 领域分析 2 建立领域特定的基准体系结构模型 3 标识候选构件 4 泛化和可变性分析 5 构件重构 6 构件的测试 7 构件的包装 8 构件入库应用系统工程的步骤:1 建立应用系统的体系结构模型;2 寻找候选构件;3 评价和选择适宜的构件;4 构件的修改和特化;5 开发未被复用的不分;6 构件的组装;7 集成测试;8 评价被复

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1