软件工程 课后习题答案_第1页
软件工程 课后习题答案_第2页
软件工程 课后习题答案_第3页
软件工程 课后习题答案_第4页
软件工程 课后习题答案_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、第一章1.1什么是计算机软件?软件的特征是什么?计算机软件是指计算机系统中的程序及其文件软件的特点:l软件是一个逻辑实体,而不是一个有形的系统组件,其开发成本和进度很难准确估计。l软件是开发或设计的,没有明显的制造过程。一旦开发成功,只需要复制,但是维护工作量很大。软件的使用没有像硬件那样的机械磨损和老化问题。1.2简要描述软件的分类并给出例子1.系统软件系统软件位于计算机系统中最靠近硬件的一层,其他软件通常通过系统软件发挥作用。例如,编译软件和操作系统。2.支持软件支持软件是支持软件开发和维护的软件。例如,数据库管理系统、网络软件、软件工具和软件开发环境。3.应用软件应用软件是针对特定应用领

2、域的特殊软件。例如:工程/科学计算机软件、嵌入式软件、产品线软件、网络应用软件、人工智能软件。1.3简要描述软件语言的分类并给出例子。1.需求定义语言是用于编写软件需求定义的语言。例如:psl/psa。2.函数式语言它是一种用于编写软件功能规范的语言,也称为功能规范语言。例如:广谱语言,z语言。3.设计语言是用于编写软件设计协议的语言。例子:pdl。4.工具语言也被称为编程语言,它是一种编写计算机程序的语言。例子:c,java,prolog,fortran,cobol,modula。5.文档语言是用于编写软件文档的语言。通常用自然语言或半正式语言书写。1.4什么是软件工程?软件工程是基于计算机

3、科学、数学和管理科学应用原理的软件开发项目。软件工程借鉴传统工程的原理和方法,旨在提高质量和降低成本。1.5简要描述软件工程的基本原理。软件工程的原则包括围绕工程设计、工程支持和工程管理的以下四个基本原则。1.选择合适的开发模式有必要认识到需求定义的可变性,并采用适当的开发模型来确保软件产品满足用户的需求。2.采用适当的设计方法合适的设计方法有助于实现这些功能,实现软件工程的目标。3.提供高质量的工程支持软件工程项目的质量和支出直接取决于为软件工程提供的支持的质量和有效性。4.重视软件工程的管理只有有效地管理软件过程,才能实现有效的软件工程。1.6软件工程生命周期的阶段是什么?简要描述每个阶段

4、的任务。1.计算机系统工程计算机系统工程的任务是确定待开发软件的总体要求和范围,以及软件与其他计算机系统要素之间的关系,估算成本,进行进度安排,并进行可行性分析。2.需求分析需求分析主要解决待开发软件的“做什么”问题,确定软件功能、性能、数据和接口的需求,并生成软件需求规范(又称软件需求规范)。3.设计系统设计的任务是设计软件系统的体系结构,详细设计的任务是设计各个组件的实现细节,包括本地数据结构和算法。4.编码编码阶段的任务是使用某种编程语言将设计结果转化为可执行的程序代码。5.测试测试阶段的任务是发现和纠正软件中的错误和缺陷。1.7简要描述坐标测量机的五个等级。1.初始水平2.可重复水平3

5、.级别已经定义4.管理级别5.优化级别1.8简要描述cmmi的连续模型和阶段模型。1.分阶段模型的结构类似于软件能力成熟度模型,它关注组织的成熟度。中有五个成熟度级别1.瀑布模型:前一阶段的活动只有在被评审后才能开始。接受前一阶段的结果作为本阶段活动的输入,根据前一阶段的结果实施本阶段要完成的活动,并对本阶段的活动进行评审。2.进化模型:从原始原型进化到最终软件产品的过程。进化模型尤其适用于对软件需求缺乏准确理解的情况。3.增量模型:软件开发过程被划分为若干个具有交错进度和时间的线性序列,它结合了瀑布模型(重复应用)的基本组成和进化模型的迭代特性,特别适用于需求变化频繁的软件开发。4.原型模型

6、:开发人员和用户对原型达成一致,缩短了开发周期,加快了项目进度,降低了成本。5.螺旋模型:将原型实现的迭代特性与瀑布模型的控制和系统方面相结合,不仅体现了这两种模型的优点,还增加了风险分析。6.喷泉模型:每个阶段没有明显的边界,开发人员可以同时开发,可以提高软件项目开发的效率,节省开发时间,适应面向对象的软件开发过程。7.基于组件的开发模型:使用预先打包的组件来构建应用系统。8.形式化方法模型:很容易发现需求的模糊性、不完整性和不一致性,并验证分析模型、设计模型和程序。1.10敏捷软件开发的特征是什么?1.个人和互动比过程和工具更好2.工作软件比包罗万象的文档更好3.客户合作比合同谈判好4.应

7、对变化比遵循计划要好1.11简要描述敏捷软件开发的价值。1.个人和互动高于过程和工具2.可运行的软件高于详细的文档3.与客户的合作高于合同谈判4.对时间变化的反应高于遵循计划1.12简要描述敏捷软件开发的原则。1.当务之急是通过尽早持续交付有价值的软件来满足客户。2.即使在开发的后期,也欢迎您改变需求。3.尽快发布可运行的软件,并在几周到几个月的周期内持续发布。4.在整个项目期间,业务人员和开发人员必须每天一起工作。5.建立一个以积极员工为中心的项目团队,给他们所需的环境和支持,让他们对自己的工作充满信心。6.面对面的对话是在项目团队内部传递信息的最有效的方式。7.衡量项目进度的主要基础是可运

8、行的软件。8.敏捷过程提倡可持续发展,项目发起人、开发人员和用户应该能够长时间保持恒定的速度。9.始终关注卓越的技术和良好的设计,以提高灵活性。10.简化是必不可少的,它是减少不必要工作的艺术。11.最好的架构、需求和设计来自自组织的团队。12.团队应该定期反思如何更有效,并相应地调整他们的行为。1.13通过本章,请对敏捷软件开发做一个简短的评估。(略)1.14简要描述案例工具和环境的重要性。实践证明,case可以加快开发速度,提高应用软件的生产率,保证应用软件的可靠质量。计算机专业人员使用计算机来提高企业的效率,企业的各个部门使用计算机来提高生产率和效率,增强企业的竞争力,带来更多的利润。第

9、二章2.1简要描述系统工程的任务1.确定用户需求确定用户对基于计算机的系统的一般要求,确定系统的功能和性能范围,并确定系统的功能、性能、约束和接口。2.系统建模与仿真基于计算机的系统通常可以考虑以下模型:硬件系统模型、软件系统模型、人机界面模型和数据模型。3.成本估算和进度安排开发一个基于计算机的系统需要一定的资本投资和时间限制(交互日期),成本主要从经济、技术、法律等方面解决是可行的。5.生成系统规格作为将来开发基于计算机的系统的基础。2.2基于计算机的系统的要素是什么?1.软件2.五金器具3.人事部门4.资料库5.文件6.程序2.3简要描述可行性分析的任务1.经济可行性a)成本福利c)货币

10、的时间价值d)投资回收期e)净收入2.技术可行性a)风险分析资源分析c)技术分析3.法律可行性4.方法的选择和折衷第三章3.1需求工程的重要性是什么?它可以确定客户需求,帮助分析师了解问题评估的可行性,协商合理的解决方案,在将协议转换为操作系统时确认协议和管理要求。3.2需求工程具体包括哪些步骤?每一步的具体任务是什么?1.需求获取:系统分析师与用户沟通,观察现有系统并分析任务。2.需求分析和协商:分析每个需求与其他需求之间的关系,检查需求的一致性、重叠性和遗漏性,并根据用户的需求对需求进行排序。3.系统建模:通过适当的工具和符号系统地描述需求。4.需求说明:给出了目标软件的各种需求。5.需求

11、验证:评估功能和其他需求的正确性、完整性和清晰性。6.需求管理:需求工程所有相关活动的调节和控制。3.3系统分析员应具备哪些思想素质和基本知识?请说明理由。1.能够熟练掌握计算机软硬件专业知识,并有一定的系统开发经验。2.擅长抽象思维和创造性思维,掌握抽象概念,将其重组为各种逻辑成分,并给出简洁明了的描述。3.善于从冲突或混乱的原始材料中提取适当的项目。4.善于调查研究,能够快速了解用户的专业知识,了解用户的环境状况。5.能够倾听他人的意见,关注他人的角色。6.具有良好的书面和口头沟通能力。3.4列出制定需求获取策略时的三个主要考虑因素。1.功能要求。考虑什么、何时、何时以及如何修改或升级系统

12、。2.性能要求。考虑软件开发的技术指标。3.用户或人为因素。考虑用户的类型。3.5(略)3.6说明了系统的三种不同类型的非功能性需求答:非功能性需求是指软件产品为了满足用户的业务需求而必须具备的功能,而非功能性需求。软件产品的非功能性需求包括系统性能、可靠性、可维护性、可扩展性以及对技术和业务的适应性。例如,在银行管理系统中,由于银行数据量巨大和银行账户的管理要求,用户对系统的性能、可靠性和可维护性有很高的要求。安全性是对银行用户个人信息保密的基本要求。在使用系统时,由于用户数量庞大,要求快速、安全地实现需求,对系统的性能有很高的要求;银行的用户发生了很大变化,对系统维护的要求也很高。3.7(

13、略)3.8软件需求分析的操作原则和需求工程的指导原则是什么?需求分析的操作原则:我必须能够表达和理解问题的信息领域。我必须能够定义软件将执行的功能。l必须能够表示软件的行为(作为外部事件的结果)。描述数据、功能和行为的l模型必须被划分,以便细节可以分层显示。分析过程应该从元素信息转移到细节信息需求工程的指导原则:在开始建立分析模型之前,你应该了解这个问题。如果问题没有被很好地理解,它通常会产生一个完美的软件来解决错误的问题。强烈推荐l原型。通过这样做,用户可以知道如何与计算机交互,人们对软件质量的理解通常是基于他们对界面“友好性”的个人体验。记录每个需求的来源和原因。这是建立用户需求可追溯性的

14、第一步。l使用多个视图来构建系统的数据、功能和行为模型。这样做可以帮助分析师从各个方面分析和理解问题,减少遗漏并识别可能的不一致。我优先考虑需求。因为时间限制过短会降低实现所有软件需求的可能性。因此,对需求进行优先排序,并确定哪些需求将首先实现,哪些将稍后实现。我注意歧义消除。因为大多数需求是用自然语言描述的,所以描述中存在歧义,这导致了遗漏和误解。正式的技术评审是发现和消除歧义的好方法。3.9软件需求规范的主要内容是什么?1.介绍2.信息描述3.功能描述4.行为描述5.检验标准6.文献学7.附录3.10谁应该参与需求验证?分析师、用户、开发部门经理、软件设计、实施和测试人员。分析家需求分析用

15、户获取系统系统信息要求、用户要求交易系统信息开发部门经理系统需要软件设计人员、实现人员和测试人员第四章4.1简要描述软件设计阶段的基本任务。1.数据/类设计:将分析类模型转换成类实现和软件实现所需的数据结构。2.架构设计:它定义了软件的整体结构,由软件组件、外部可见属性及其关系组成。3.界面设计:描述软件内部、软件与协作系统之间、软件与人之间的通信模式。4.组件级设计:将软件架构的结构元素转化为软件组件的过程描述。4.2软件设计和软件质量之间的关系是什么?设计是软件开发中形成质量的阶段。设计提供了可用于质量评估的软件表示,并且是将用户需求准确转换成完整软件产品或系统的主要方式。4.3(略)4.4简要描述模块、模块化和模块化

温馨提示

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

评论

0/150

提交评论