软件工程课后习题答案(钱乐秋版)
- 格式:pdf
- 大小:680.67 KB
- 文档页数:10
软件工程---课后习题答案.doc第一章1.1什么是计算机软件?软件的特点是什么?计算机软件是指计算机系统中的程序及其文档软件的特点:●软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算。
●软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大。
●软件的使用没有硬件那样的机械磨损和老化问题。
1.2简述软件的分类,并举例说明1.系统软件系统软件居于计算机系统中最接近硬件的一层,其他软件一般都通过系统软件发挥作用。
例如:编译软件、操作系统。
2.支撑软件支撑软件是支撑软件的开发和维护的软件。
例如:数据库管理系统、网络软件、软件工具、软件开发环境。
3.应用软件应用软件是特定应用领域专用的软件。
例如:工程/科学计算机软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。
1.3简述软件语言的分类,并举例说明。
1.需求定义语言是用于书写软件需求定义的语言。
例如:PSL/PSA。
2.功能性语言是用于书写软件功能规约的语言,通常又称为功能规约语言。
例如:广谱语言、Z语言。
3.设计性语言是用于书写软件设计规约的语言。
例如:PDL。
4.实现性语言也称为程序设计语言,是用于书写计算机程序的语言。
例如:C、java、PROLOG、FORTRAN、COBOL、Modula。
5.文档语言是用于书写软件文档的语言。
通常用自然语言或半形式化语言书写。
1.4什么是软件工程?软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。
软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。
1.5简述软件工程的基本原则。
软件工程原则包括围绕工程设计、工程支持和工程管理所提出的以下4条基本原则。
1.选取适宜的开发模型必须认识需求定义的易变性,采用适宜的开发模型,保证软件产品满足用户的要求。
2.采用合适的设计方法合适的设计方法有助于这些特征的实现,以达到软件工程的目标。
第一章习题参考答案1﹑软件产品的特性是什么?答:软件产品特性:⑴是一种逻辑产品,与物质产品有很大的区别。
⑵软件产品的生产主要是研制,生产成本主要在开发和研制,开发研制完成后,通过复制就产生了大量软件产品。
⑶软件产品不会用坏,不存在磨损,消耗。
⑷生产主要是脑力劳动,还末完全摆脱手工开发方式,大部分产品是"定做"的⑸开发软件的费用不断增加,致使生产成本相当昂贵。
2﹑软件生产有几个阶段?各有何特征?答:⑴程序设计时代:这个阶段生产方式是个体劳动,使用的生产工具是机器语言,汇编语言。
⑵程序系统时代:这个阶段生产方式是小集团合作生产,使用的生产工具是高级语言,开发方法仍依靠个人技巧,但开始提出结构化方法。
⑶软件工程时代:这个阶段生产方式是工程化的生产,使用数据库﹑开发工具﹑开发环境﹑网络﹑分布式﹑面向对象技术来开发软件。
3﹑什么是软件危机?产生原因是什么?答:软件开发技术的进步未能满足发展的要求。
在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。
产生原因:⑴软件规模越来越大,结构越来越复杂。
⑵软件开发管理困难而复杂。
⑶软件包开发费用不断增加。
⑷软件开发技术落后。
⑸生产方式落后,仍采用手工方式。
⑹开发工具落后,生产率提高缓慢。
4﹑什么是软件工程?它目标和内容是什么?答:软件工程就是用科学的知识程和技术原理来定义,开发,维护软件的一门学科。
软件工程目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。
软件工程内容:研究内容包括开发技术和开发管理两个方面。
开发技术主要研究:软件开发方法,开发过程,开发工具和环境。
开发管理主要研究:软件管理学,软件经济学,软件心理学。
5﹑软件工程面临的问题是什么?答:软件工程需要解决的问题:软件的费用,可靠性,可维护性,软件生产率和软件的重用。
软件工程课后参考答案 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】第一章课后参考答案1.什么是软件危机它们有哪些典型表现为什么会出现软件危机“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。
这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。
它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
出现软件危机的主要原因(1)与软件本身的特点有关(2)与软件开发和维护过程中使用的方法不正确有关2.假设自己是一家软件公司的总工程师,当把图给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”时在引入变动,当然付出的代价更高。
一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。
3.什么是软件工程它有哪些本质特征怎么用软件工程消除软件危机软件工程是指导知道计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
软件工程钱乐秋课后习题答案软件工程是一门涉及软件开发和维护的学科,而钱乐秋老师的软件工程课程是在这个领域中被广大学生所喜爱的一门课。
在学习过程中,钱乐秋老师留给学生一些习题,以加强对知识的理解和运用。
本文将针对这些课后习题进行解答,帮助学生更好地掌握软件工程的重点内容。
1. 什么是软件工程?软件工程是一门研究如何对软件进行开发、维护和管理的学科。
它包括了软件需求分析、软件设计、软件编码、软件测试、软件维护等一系列过程。
软件工程的目标是提高软件的质量、效率和可靠性。
2. 软件开发生命周期有哪些阶段?软件开发生命周期一般包括需求分析、软件设计、编码、测试、部署和维护等阶段。
需求分析阶段确定软件的功能和性能需求;软件设计阶段设计软件的结构和算法;编码阶段将设计转化为可执行的程序;测试阶段测试软件的正确性和稳定性;部署阶段将软件安装到用户的计算机上;维护阶段解决软件中的问题并进行更新。
3. 什么是软件需求?它的分类有哪些?软件需求是指用户对软件的功能和性能方面的要求。
根据不同的角度和需求分类方法,软件需求可以分为功能需求、非功能需求和设计约束需求。
功能需求是指软件需要具备的功能或特性;非功能需求是指软件的性能、安全性、用户界面等方面的要求;设计约束需求是指软件设计和实现时需要遵循的规范和限制。
4. 什么是软件项目管理?它的重要性是什么?软件项目管理是指针对软件开发项目的组织、计划、协调和控制等活动。
它包括了项目范围管理、进度管理、风险管理、质量管理等方面的内容。
软件项目管理的重要性在于可以确保项目按时、按质量、按预算完成,同时还可以提高团队的协作效率和工作质量。
5. 什么是软件测试?为什么软件测试如此重要?软件测试是指通过运行软件来检测和评估软件的正确性、完整性和质量。
它是软件工程中非常重要的一环,因为软件测试可以发现软件中的错误和缺陷,防止错误的程序进入到用户的手中。
通过测试,可以提高软件的质量、可靠性和安全性,从而增加用户对软件的满意度。
软件工程课后习题参考答案1.简述软件开发的本质答: 软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。
P192.简述实施软件开发的基本途径。
答: 实施软件开发的基本途径是系统建模。
所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。
P193.简述何谓模型以及软件开发中所涉及的模型。
答: 模型是一个抽象。
该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。
软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。
4.简述软件开发所涉及的两大类技术。
答: 软件开发所涉及的两大类技术为: 一是求解软件的开发逻辑,二是求解软件的开发手段。
5、简述需求与需求规约的基本性质。
答:需求的基本性质:1) 必要的,该需求是用户所要求的。
2) 无歧义的,该需求只能用一种方式解释。
3) 可测的,该需求是可进行测试的。
4) 可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。
5) 可测量的,该需求是可测量的。
需求规约的基本性质:1) 重要性和稳定性程度: 按需求的重要性和稳定性,对需求进行分级。
2) 可修改的: 在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。
3)完整的:没有被遗漏的需求。
4)一致的:不存在互斥的需求。
6、简述软件需求的分类答:软件需求可以分为两大类:一类是功能需求,一类是非公能需求,而非公能需求可分为性能需求,外部接口需求、功能需求7、举例说明功能需求和非功能需求之间的基本关系。
答:非功能需求可作用于一个或多个功能需求,例如非功能需求可作用于一个或多个功能需求其中,非功能需求1作用于功能需求1和功能需求3等;非功能需求2作用于功能需求2等。
P248、有哪几种常用的初始需求发现技术?答:有5种常用的需求发现技术:自悟、交谈、观察、小组会和提炼。
软件工程课后习题答案习题1 略。
习题2 略。
习题3 略。
习题42.在什么情况下应该使用形式化说明技术?使用形式化说明技术时应遵守哪些准则?人们在理解用自然语言描述的规格说明时,容易产生二义性。
为了克服非形式化方法的缺点,人们把数学引入软件开发工程,创造了基于数学的形式化说明技术。
应用形式化方法的准则:(1)应该选用释放的表示方法;(2)应该形式化,但不要过分形式化;(3)应该估算成本;(4)应该有形式化方法顾问随时提供咨询;(5)不应该放弃传统的开发方法;(6)应该建立详尽的文档;(7)不应该放弃质量标准;(8)不应该盲目依赖形式化方法;(9)应该测试、测试再测试;(10)应该重用。
4.用有穷状态机说明自动化图书馆流通系统习题5 略。
习题6 略。
习题7 略。
习题8 略。
习题91.什么是面向对象方法学?它有哪些优点?面向对象方法学,是尽可能模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类认识世界解决问题的方法和过程,从而使得实现解法的解空间(也称为求解域)与描述问题的问题空间(也称为问题域)在结构上尽可能一致。
优点:1.与人类习惯的思维方法一致;2.稳定性好;3.可重用性好;4.较易开发大型软件产品;5.可维护性好10.建立订货系统的用例模型。
分析如下:从对这个订货系统的需求可以知道,仓库管理员通过放在仓库中的终端把零件入库/出库市事务报告给订货系统,系统接受到事务信息之后应该处理事务;采购员需要使用订货系统提供的产生报表功能,以获取订货报表。
综上所述,用例如下:习题101.用面向对象方法分析研究本书习题2第2题中描述的储蓄系统,试建立它的对象模型、动态模型和功能模型。
对象模型参考:以上还需将关联关系说明补全。
动态模型参考:(1)脚本正常情况脚本:储户有存款要求,填写存款单,包含储户个人信息,存款金额和存款类型;业务员查收存款,审核存款与存款单存款金额吻合;存款单生效;储户有取款要求,填写取款单,包含个人账号、密码(待定)和存款金额;业务员审核存款,验证储户身份,确定储户存款金额> = 取款金额;审核通过,取款单生效;系统打印利息清单,业务员把本金和利息返回储户。
软件工程(钱乐秋版)重点概述软件工程是一门涉及软件开发和维护的学科,它使用系统化的方法和工具,以提高软件的质量、效率和可靠性。
本文将介绍软件工程的一些重点概念和技术。
软件开发生命周期需求分析:明确用户需求,定义软件开发目标。
设计阶段:确定软件结构和功能的设计方案。
编码阶段:根据设计方案,编写软件代码。
测试阶段:验证软件功能和性能,并修复错误。
部署和维护:将软件交付给用户,并提供后续支持和更新。
软件需求工程需求获取:与用户沟通,了解用户需求。
需求分析:将需求进行分类和优先级排序。
需求规格说明:清晰、详细地描述软件需求。
需求验证:验证需求是否满足用户的期望。
软件设计原则模块化:将软件分为独立的模块,每个模块专注于一个特定的功能。
高内聚低耦合:模块内部的元素紧密相关,模块之间的依赖度低。
适应变化:设计时考虑需求变化的可能性。
可重用性:设计可重用的组件,提高开发效率。
软件测试单元测试:针对软件的最小单元进行测试。
集成测试:测试不同模块之间的合作效果。
系统测试:测试整个软件系统的功能和性能。
验收测试:由用户进行的最终测试,确认软件符合要求。
软件项目管理项目计划:制定项目计划和进度安排。
项目风险管理:识别、评估和处理项目风险。
团队协作:有效地管理团队成员和资源。
质量管理:确保软件质量符合标准和用户需求。
软件质量保证代码审查:通过人工审查代码,发现和修复潜在问题。
自动化测试:使用自动化工具执行测试用例。
配置管理:管理软件配置和版本控制。
缺陷管理:记录、跟踪和解决软件缺陷。
软件工程中的常用技术敏捷开发:迭代和自适应的开发方法。
DevOps:开发和运维部门的协同工作模式。
云计算:基于云平台提供软件和服务。
大数据技术:处理和分析大规模数据集。
:利用机器学习和深度学习实现智能化功能。
软件工程是一个综合性学科,涵盖了需求分析、设计、编码、测试和维护等方面。
通过掌握软件工程的重点概念和技术,开发人员可以提高软件开发的效率和质量,满足用户的需求。