软件工程(第3版)第14章 人民邮电出版社
- 格式:ppt
- 大小:836.50 KB
- 文档页数:121
《软件工程》各章课后习题答案软件工程是计算机科学与技术的一门重要学科,旨在研究和应用工程原则和方法来开发高质量的软件系统。
课程中的习题对于加深学生对软件工程理论和实践的理解至关重要。
下面是对《软件工程》各章课后习题的答案,希望能够帮助你更好地掌握软件工程的知识。
第一章:软件工程导论1. 软件工程的定义:答:软件工程是通过应用系统化、规范化和可量化的方法进行软件开发、运行和维护的学科。
2. 软件工程的目标:答:软件工程的目标是提高软件开发的质量、效率和可靠性,使得软件能够满足用户的需求和期望。
3. 软件生命周期模型:答:常见的软件生命周期模型包括瀑布模型、迭代模型、敏捷模型等。
每个模型都有其独特的特点和适用场景。
4. 软件过程模型:答:软件过程模型描述了软件开发过程中的一系列活动和阶段,常见的软件过程模型包括瀑布模型、迭代模型、敏捷模型等。
5. 软件工程的基本原则:答:常见的软件工程基本原则包括分阶段、逐步求精、持续集成、迭代开发、需求优先等。
第二章:软件项目管理1. 软件项目管理的定义:答:软件项目管理是指对软件开发过程中的资源、进度、质量等进行有效管理,以确保软件项目能够按时、按质地完成。
2. 软件项目管理的内容:答:软件项目管理包括项目计划、需求管理、项目进度管理、资源管理、风险管理等方面。
3. 软件项目管理的方法:答:常见的软件项目管理方法包括敏捷项目管理、水平项目管理、里程碑项目管理等。
4. 软件项目管理的工具:答:常用的软件项目管理工具包括甘特图、PERT/CPM网络图、项目管理软件等。
第三章:软件需求分析与规格说明1. 软件需求的定义:答:软件需求是指用户对软件系统的要求和期望,包括功能需求、性能需求、接口需求等方面。
2. 软件需求分析的方法:答:常用的软件需求分析方法包括面向对象分析法、数据流图法、用例分析法等。
3. 软件需求规格说明的格式:答:常见的软件需求规格说明的格式包括自然语言描述、结构化描述、图形描述等。
“软件危机”的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。
主要表现在两个方面:(1)软件产品质量低劣,甚至在开发过程中就夭折。
(2)软件生产率低,不能满足需要。
软件工程三要素:方法,工具和过程软件是程序以及开发使用和维护程序所需的所有文档软件生存周期:1.可行性研究和项目开发计划 2.需求分析3.概要设计4.详细设计5.编码6.测试7.维护软件工程过程是指在软件工具的支持下所进行的一系列软件工程活动软件过程模型:瀑布模型,增量模型,螺旋模型,喷泉模型,智能模型1)瀑布模型:以文档作为驱动,适合于需求明确的软件项目开发,简单易用,消除非结构化的特征,降低软件的复杂性,促进软件开发工程化,会导致开发的软件不符合用户的需求而夭折。
2)增量模型:基于瀑布模型的渐增模型和基于原型的快速原型模型,适用于用户需求不明确,设计方案有风险的项目,非整体化开发模型。
3)螺旋模型:加入风险分析+瀑布+增量4)喷泉模型:面向对象技术,支持软件重用,迭代性,无间隙性。
5)智能模型:降低问题复杂性将软件生存周期中所使用的一整套技术的集合成为方法学或范型面向过程:结构化(瀑布模型)原型化功能的分解与抽象自顶向下逐步求精面向对象=对象+类+继承+消息OOA:对象模型(信息)状态模型(动态)处理模型(函数)OOD:概要设计详细设计OOD的5个层次由四类部件构成:5层次,主题层,类与对象层,结构层,属性层,服务层。
4部件:PDC问题域部件,HIC人机交互部件,TMC任务管理部件,DMC数据管理部件。
软件设计就是根据所表示的信息域的软件需求以及功能和性能需求进行数据设计系统结构设计过程设计界面设计构造一个高内聚,低耦合的软件模型概要设计:将软件需求转化为数据结构和软件的系统结构,划分出组成系统的物理元素:程序,数据库,过程,文件,类等详细设计:通过对结构表示进行细化,等到软件详细的数据结构和算法理解,抑郁测试和挑事,因而也有助于提高软件的可靠型模块间关系:层次结构,网状结构模块独立化:耦合性(数据耦合)内聚性(功能型内聚)确定类之间关系:聚合关系,泛化关系实现模型由构件图和配置图组成RUP统一过程横轴为时间轴,纵轴为核心工作流需求工程:1.获取需求2.需求分析与建模3.需求规格说明4.确认需求5.需求管理需求获取方法:1.面谈法2.问卷法3.会议讨论法4.原型法5.面向用例的方法需求分析方法:1。
软件工程原理方法与应用第3版课程设计项目背景随着计算机技术与信息技术的快速发展,软件已经成为现代社会不可或缺的一部分。
因此,如何提高软件开发的质量与效率,是当前亟待解决的问题。
软件工程原理方法与应用第3版课程设计旨在通过对软件界面设计、软件体系结构、代码规范等方面的学习,提高学生的软件开发能力和工程实践能力,使其掌握软件工程的基本原理和方法,为未来的工作和学习奠定基础。
课程目标1.培养学生的软件工程思维,提高软件工程开发能力;2.掌握开发工具的基础知识,提高软件开发效率;3.理解软件开发的流程,掌握软件工程的基本方法和技术;4.掌握软件测试、调试和维护的基本方法和技术;5.学习团队协作开发的方法和技术,提高软件开发协同能力。
课程内容第一章软件工程概述本章主要介绍软件开发的历史和发展,软件工程的基本概念和理论基础,以及软件开发过程中的质量保证措施和团队协作方式。
第二章软件项目管理本章主要介绍软件项目管理的基本概念和流程,包括项目计划、需求分析、设计、开发、测试和维护等各个阶段,以及相关工具和方法。
第三章需求分析与设计本章主要介绍软件需求分析和设计的基本方法和技术,包括需求获取、需求分析、需求规格说明、结构设计、数据设计和界面设计等方面的内容。
第四章软件开发过程本章主要介绍软件开发过程中的基本任务和技术,包括程序设计、代码规范、测试和发布等方面的内容。
第五章软件测试与维护本章主要介绍软件测试和维护的基本方法和技术,包括测试计划、测试用例设计、测试执行和缺陷管理等方面的内容。
课程设计要求本课程设计要求学生团队自主选择一个软件项目进行开发,并按照课程安排,完成相应的阶段任务和验收。
具体要求如下:第一阶段:需求分析1.选择项目,并根据项目需求,编写需求分析文档;2.设计并绘制UML图,包括用例图、活动图、时序图等;3.编写界面设计文档,包括界面布局、控件和交互;4.编写软件需求规格说明书。
第二阶段:设计与开发1.根据需求分析阶段的文档设计并编写软件体系结构和程序框架;2.编写具体模块的代码,遵循代码规范;3.完成软件的基本功能,并进行集成测试。
第一章软件工程引论1.在下列选项中,(D)不是软件的特征。
A.系统性与复制性 B. 可靠性与一致性 C. 抽象性与智能型 D.有形性与可控性2.软件是一种(B)产品。
A.有形 B. 逻辑 C. 物质 D. 消耗3.软件工程是一种(A)分阶段实现的软件程序开发方法。
A.自顶向下B. 自底向上C. 逐步求精D. 面向数据流4.与计算机科学的理论研究不同,软件工程是一门(B)学科。
A.理论性 B. 工程性 C. 原理性 D. 心理性5.软件工程与计算机科学性质不同,软件工程着重于(C)。
A.原理探讨 B. 理论研究 C. 建造软件系统 D. 原理性的理论6.下列说法正确的是(B)A.软件工程的概念于20世纪50年代提出B.软件工程的概念于20世纪60年代提出C.20世纪70年代出现了客户机/服务器技术D.20世纪80年代软件工程学科达到成熟7.软件工程方法学中的软件工程管理是其中的一个重要内容,它包括软件管理学和软件工程经济学,它要达到的目标是(D)A.管理开发人员,以开发良好的软件B.采用先进的软件开发工具,开发优秀的软件C.消除软件危机,达到软件生产的规模效益D.以基本的社会效益为基础,工程化生产软件第二章软件生命周期及开发模型1.软件生命周期包括可行性分析和项目开发计划、需求分析、总体设计、详细分析、编码、(B)、维护等活动。
A.应用 B. 测试 C. 检测 D. 以上答案都不正确2.软件生命周期模型有多中,下列项目中,(C)不是软件生命周期模型。
A.螺旋模型 B. 增量模型 C. 功能模型 D. 瀑布模型3.软件生命周期中时间最长的阶段时(D)A.需求分析阶段 B. 总体设计阶段 C. 测试阶段 D. 维护阶段4.瀑布模型是一种(D)A.软件开发方法B. 软件生存周期C. 程序设计方法学D. 软件生存周期模型5.软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(A)A.瀑布模型B. 对象模型C. 螺旋模型D. 层次模型6.在结构化的瀑布模型中,(D)阶段定义的标准将成为软件测试中系统测试阶段的目标A.详细设计阶段B. 总体设计阶段C. 可行性研究阶段D. 需求分析7.增量模型是一种(B)的模型A.整体开发B. 非整体开发C. 灵活性差D. 较晚产生工作软件8.(C)是指模拟某种产品的原始模型A.模型B. 最初模型C. 原型D. 进化模型9.建立原型的目的不同,实现原型的途径也有所不同,下列不正确的类型是(B)A.用于验证软件需求的原型B. 垂直原型C. 用于验证设计方案的原型D.用于演化出目标系统的原型10.原型化方法是一种(A)型的设计过程。
《软件工程与软件测试技术》课程复习大纲与练习题备注:1)复习材料包括:复习大纲、教材、授课幻灯片、习题课幻灯片、在线练习题。
2)如学员使用其他版本教材,请参考相关知识点第一章软件工程和软件测试概述•基本概念:软件、软件危机、软件工程、软件生命周期、软件过程模型•重点的知识点:–软件工程方法学的要素–软件生命周期都包括哪些阶段,每个阶段的任务–主要的软件过程模型有哪些,每个软件过程模型的特点、优点、缺点、适用场合•需了解的知识点–软件测试的起源–软件测试工程师应具备的素质第二章软件测试基础•基本概念:–软件测试,软件缺陷,软件质量保证,单元测试,集成测试,系统测试,确认测试,验收测试,黑盒测试,白盒测试,灰盒测试,开发方测试(alpha测试),用户测试(Beta测试),第三方测试,V模型,W模型,H模型,X模型,前置测试模型•重点的知识点:–软件测试的目的–软件测试的原则–软件测试的类型–软件测试模型–软件质量保证的工作内容•需了解的知识点–软件质量保证的工作过程–软件质量保证的目标–软件质量保证与软件测试的区别第三章白盒测试技术•基本概念:–白盒测试,静态测试,动态测试,桌面检查,代码审查,走查,静态结构分析,基本路径测试法,LCSAJ•重点的知识点–逻辑覆盖法(掌握各种逻辑覆盖的定义和条件)–基本路径测试法–最小测试用例数的计算–白盒测试的综合测试策略–ESTCA覆盖准则–LCSAJ覆盖准则•需了解的知识点–词法分析与语法分析–静态程序分析–程序插桩技术–静态质量度量法第四章黑盒测试技术•基本概念–黑盒测试,有效等价类、无效等价类,等价类划分法、边界值分析法、场景法、因果图法、正交实验法、判定表法,错误推测法、随机测试、功能分解法等•重点的知识点–功能测试用例设计方法(等价类划分法、边界值分析法、场景法、因果图法、正交实验法、判定表法,错误推测法、随机测试、功能分解法等)–测试方法综合使用策略•需了解的知识点–黑盒测试用例的编写和组织–QTP自动测试工具。
《实用软件工程》第3版习题参考答案习题 11.1 开发文档都有哪些?用图示表示它们之间的关系。
开发文档包括目标程序、源程序、详细设计说明书、概要设计说明书、需求规格说明书、用户需求报告、软件合同,它们之间的关系如下图所示。
1.2 简述软件工程研究的内容。
软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。
其中软件开发方法的内容又涵盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级。
常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型。
软件支持过程由所支持的CASE工具组成,常用的CASE工具有Power Designer和Rational Rose。
软件管理过程主要有CMMI、ISO9000、微软企业文化和敏捷文化现象。
1.3 详细解释软件的定义、程序的定义及软件工程的定义。
软件的定义:软件=程序+数据+文档。
这里的程序是指程序系统。
这里的数据不仅包括初始化数据、测试数据,而且包括研发数据、运行数据、维护数据,也包括软件企业积累的项目工程数据和项目管理数据中的大量决策原始记录数据。
这里的文档指的是软件开发过程中的分析、设计、实现、测试、维护文档、管理文档。
现在有一种新提法正在引起关注,这种提法是:软件=知识+程序+数据+文档。
程序是计算机为完成特定任务而执行的指令的有序集合。
从应用的角度可理解为:面向过程的程序=算法+数据结构面向对象的程序=对象+信息面向构件的程序=构件+构架软件工程是研究软件开发和软件管理的一门工程学科。
1.4 软件工程的7+1条基本原理有什么现实意义?软件工程的7条基本原理是在面向过程的程序设计时代(结构化时代)提出来的,但在面向数据和面向对象的程序设计的今天,它仍然有效。
并且在军事上的实时跟踪监控系统中有很好的应用,而且随着软件的开发和管理的进步,它将不断完善和充实。
软件⼯程原理、⽅法与应⽤【第三版】复习总结第⼀章绪论1.每18个⽉芯⽚的性能和速度均提⾼⼀倍,每隔12年软件⽣产⼤约提⾼⼀倍。
2.软件:是能够完成预定功能和性能的可执⾏的计算机诚信度。
包括使程序正常执⾏所需的数据,以及有关描述程序操作和使⽤的⽂档。
即:软件= 程序+ ⽂档3.软件的特征:软件的开发不同于硬件设计、不同于硬件制造、不同于硬件维修。
4.软件危机出现的原因:软件维护费⽤的急剧上升,直接威胁计算机应⽤的扩⼤;软件⽣产技术进步缓慢,是家居软件危机的重要原因。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------- 5.软件⼯程学的范畴:软件开发技术(软件开发⽅法学、软件⼯具、软件⼯程环境)、软件⼯程管理(软件管理学、软件经济学、度量学)。
6.软件⼯程:是指导计算机软件开发和维护的⼯程学科。
它采⽤⼯程的概念、原理、技术和⽅法来开发与维护软件,⽬的是为了实现按照预期的进度和经费完成软件⽣产计划,同时提⾼软件的⽣产率和可靠性。
7.软件的发展:⼤体经历了程序、软件、软件产品3个阶段。
8.⼯具和⽅法是软件开发技术的2⼤⽀柱。
9.3种编程泛型:过程式编程泛型、⾯向对象编程泛型、基于构件技术的编程泛型10.⾯向对象程序设计中,数据和操作被封装在⼀个对象中,对象之间则是通过消息相互联系。
11.构件:标准化/规格化的对象类。
12.常⽤变成⼒度的⼤⼩来⽐较3种编程泛型的差异。
粒度由⼩到⼤依次是:过程式编程范式、⾯向对象编程范式、基于构件的编程泛型。
13.软件⼯程的分化:传统软件⼯程:结构化分析-》结构化设计-》⾯向过程编码-》软件测试⾯向对象软件⼯程:OO分析与对象抽取-》对象详细设计-》⾯向对象的编码与测试基于构件的软件⼯程(以可复⽤构件和测试⼯具为后盾):领域分析和测试计划定制-》领域设计-》建⽴可复⽤构件库-》按‘构件集成模型’查找与集成构件14.分析先于设计,设计先于编码,使程序(的结构)适合于问题(的结构)。
软件工程课程教学大纲(SoftwareEngineering)学时数:32其中:实验学时:6课外学时:0学分数:2适用专业:计算机科学与技术一、课程的性质、目的与任务《软件工程》是计算机科学与技术专业教学计划中一门综合性和实践性很强的核心课程,主要内容包括软件工程概述、可行性分析、需求分析、概要设计、详细设计、面向对象分析与设计、编码、软件质量与质量保证、项目计划与管理。
根据培养基层应用型人才的需要,本课程的目的与任务是使学生通过本课程的学习,了解软件项目开发和维护的一般过程,掌握软件开发的传统方法和最新方法,为更深入地学习和今后从事软件工程实践打下良好的基础。
二、课程教学的基本要求(-)基本概念和基本知识:软件与软件工程,生存周期与软件开发模式,结构化分析、设计与编码,面向对象分析、设计与编码,软件的评审、测试与维护,项目计划与项目管理。
(二)基本技能:能用软件工程的方法参与软件项目的分析、设计、实现和维护重点:系统分析、系统设计、系统实现、系统维护难点:需求分析、软件测试课程的教学要求在每一章教学内容之后给出,大体上分为三个层次:了解、理解和掌握。
了解即能正确判别有关概念和方法:理解是能正确表达有关概念和方法的含义;掌握是在理解的基础上加以灵活应用三、课程的教学内容、重点和难点第一章概论一、软件(一)软件的发展;(二)软件的定义;(三)软件的特点、软件的种类。
二、软件工程的概念(一)软件危机与软件工程的定义;(二)软件工程的目标;(三)软件工程的原则。
三、软件生存周期与软件开发模型(一)瀑布模型、原型模型、螺旋模型、基于四代技术模型、面向对象与组件模型、混合模型。
教学要求:软件和软件工程的基本概念,软件生命周期及软件开发的各个模型重点:软件生存周期与软件开发模型第二章可行性分析一、可行性研究的任务二、可行性研究的步骤三、系统流程图四、成本/效益分析第三章需求分析一、需求分析的任务与步骤(一)需求分析的任务;(二)需求分析的步骤;(三)需求分析的原则。
软件工程第三版答案【篇一:软件工程课后答案】>1.1什么是计算机软件?软件的特点是什么?答:计算机软件指计算机系统中的程序及其文档。
软件的特点是:a 软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确得估算;b 软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大;c 软件的使用没有硬件那样的机械磨损和老化问题。
1.2 简述软件的分类,并举例说明。
答:在《计算机科学技术百科全书》中,将软件分为系统软件、支撑软件和应用软件3类。
a 系统软件:系统软件居于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用。
系统软件与具体的应用领域无关。
例如:编译程序、操作系统等。
b 支撑软件:支撑软件是支撑软件的开发和维护的软件。
例如:数据库管理系统、网络软件、软件工具、软件开发环境等。
c 应用软件:应用软件是特定应用领域专用的软件。
例如:工程/科学计算软件、嵌入式软件、产品线软件、web应用软件、人工智能软件。
1.4 什么是软件工程?答:在《计算机科学技术百科全书》中软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。
1.5 简述软件工程的基本原则。
答:软件工程原则包括围绕工程设计、工程支持和工程管理提出的以下4条基本原则:第一条:围绕适宜的开发模型;第二条:采用合适的设计方法;第三条:提供高质量的工程支撑;第四条:重视软件工程的管理。
1.6 软件生存周期分哪几个阶段?分别简述各个阶段的任务。
答:软件生存周期有计算机系统工程、需求分析、设计、编码、测试、运行和维护6个阶段。
a计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机系统元素之间的关系,进行成本估算,做出进度安排,并进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中做出选择。
b需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界面等要求,生成软件需求规约。
软件工程——原理、方法与应用绪论1.什么是软件危机?为什么会产生软件危机?答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。
1.软件维护费用急剧上升,直接威胁计算机应用的夸大。
2.软件生产技术进步缓慢2. 什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差别在哪里?答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。
采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。
3. 分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管理的相互关系。
答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。
当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。
新方法在推行初期,总有人不愿接受和采用。
若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。
(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。
软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。
所以对于一个理想的软件工程环境,应该同时具备技术和管理两个方面。
4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。
答:用C开发一个软件,是校园一卡通的模块。
首先,要在编辑程序支持下在计算机中输入源程序。
然后编译程序,把源程序翻译成目标程序。
如果发现错误,就重新调入编辑程序对源程序进行修改。
编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。
编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。
离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。
软件工程复习资料第一章1、软件的概念:软件是计算机中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。
2、软件具有下列特点:1.软件是一种逻辑产品,它具有抽象性和无形性。
2.软件的生产与硬件不同。
3.软件在运行和使用中,不会磨损和老化,但它存在退化问题。
4.软件的开发和运行对计算机系统有一定的依赖性。
5.软件开发至今仍未完全摆脱手工开发方式,大多数软件是“定做”的。
6.软件开发成本高、风险高。
7.相对于计算机硬件技术的发展,计算机软件技术的发展十分缓慢。
3、计算机软件技术的发展经历了三个阶段:程序设计时期(20世纪40年代中期至60年代中期),软件质量取决于个人编程水平。
程序系统时期(20世纪60年代中期至70年代中期),软件质量取决于开发小组的技术水平软件工程时期(20世纪70年代以后)。
软件质量取决于软件工程管理水平。
软件技术的发展主线是由个体简单的开发方式向着复杂、大规模、标准化、工程化的方向发展,在最高阶段,把软件开发界定为两方面的内容:软件开发和软件维护。
4、软件开发引发的问题: 1.社会对软件需求的不断发展2.软件开发理念和手段与客观实际存在的差异①对软件本身的认识存在差异②对软件的服务对象认识不足③对软件开发缺乏科学管理④软件开发手段落后5、软件危机1)发生时间:软件发展第二阶段(程序系统阶段)的末期(2)软件危机是指在计算机软件开发和维护过程中遇到的一系列严重问题。
(3)软件危机的主要表现有以下几方面:1.软件开发经费超支、进度拖延2.软件不能符合用户的要求3.软件难以维护4.软件可靠性差 5.软件开发生产率低4)主要原因:1 社会对软件的需求急剧增加2 软件本身的特点:软件本身存在着复杂性3软件开发理念和手段与客观实际存在的差异①对软件本身的认识存在差异②对软件的服务对象认识不足③对软件开发缺乏科学管理④软件开发手段落后寻找解决软件危机途径的过程就是软件工程形成的过程6、软件工程核心:以工程化的原理和方法对软件进行规划、定义、开发和维护;宗旨:以较少的投入,最快的时间生产出高质量的软件。