软件工程-原理、方法及应用(史济民第二版)答案
- 格式:pdf
- 大小:240.04 KB
- 文档页数:14
《软件工程》各章课后习题答案软件工程是计算机科学与技术的一门重要学科,旨在研究和应用工程原则和方法来开发高质量的软件系统。
课程中的习题对于加深学生对软件工程理论和实践的理解至关重要。
下面是对《软件工程》各章课后习题的答案,希望能够帮助你更好地掌握软件工程的知识。
第一章:软件工程导论1. 软件工程的定义:答:软件工程是通过应用系统化、规范化和可量化的方法进行软件开发、运行和维护的学科。
2. 软件工程的目标:答:软件工程的目标是提高软件开发的质量、效率和可靠性,使得软件能够满足用户的需求和期望。
3. 软件生命周期模型:答:常见的软件生命周期模型包括瀑布模型、迭代模型、敏捷模型等。
每个模型都有其独特的特点和适用场景。
4. 软件过程模型:答:软件过程模型描述了软件开发过程中的一系列活动和阶段,常见的软件过程模型包括瀑布模型、迭代模型、敏捷模型等。
5. 软件工程的基本原则:答:常见的软件工程基本原则包括分阶段、逐步求精、持续集成、迭代开发、需求优先等。
第二章:软件项目管理1. 软件项目管理的定义:答:软件项目管理是指对软件开发过程中的资源、进度、质量等进行有效管理,以确保软件项目能够按时、按质地完成。
2. 软件项目管理的内容:答:软件项目管理包括项目计划、需求管理、项目进度管理、资源管理、风险管理等方面。
3. 软件项目管理的方法:答:常见的软件项目管理方法包括敏捷项目管理、水平项目管理、里程碑项目管理等。
4. 软件项目管理的工具:答:常用的软件项目管理工具包括甘特图、PERT/CPM网络图、项目管理软件等。
第三章:软件需求分析与规格说明1. 软件需求的定义:答:软件需求是指用户对软件系统的要求和期望,包括功能需求、性能需求、接口需求等方面。
2. 软件需求分析的方法:答:常用的软件需求分析方法包括面向对象分析法、数据流图法、用例分析法等。
3. 软件需求规格说明的格式:答:常见的软件需求规格说明的格式包括自然语言描述、结构化描述、图形描述等。
第一章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.采用合适的设计方法合适的设计方法有助于这些特征的实现,以达到软件工程的目标。
3.提供高质量的工程支撑软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。
第一章练习题一、填空题1、软件工程三要素是:方法、工具、过程。
2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。
二、名词(术语)解释:1、可靠性---是指在给定的时间间隔内,程序成功运行的概率。
可靠性是衡量软件质量的一个重要目标。
2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。
可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。
三、问答题1、面向对象方法的优点是什么?答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。
(2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。
2、可视化开发方法的优点有哪些?答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。
(2)软件开发简单,易学、易上手。
(3)专业或非专业人员都能参与软件开发活动。
第二章练习题一、填空题:1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工程活动。
2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。
3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。
4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规范、项目规范。
二、简答题:1、瀑布模型的优点有哪些?答:1、强迫开发人员采用规范的技术方法;2、严格地规定了每个阶段必须提交的文档;3、每个阶段结束前必须正式进行严格的技术审查和管理复审。
2、瀑布模型的缺点是什么?答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。
2、在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。
3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。
软件工程课后答案完整版软件工程是一门涉及软件开发与管理的学科,它关注着如何有效地组织、设计、开发和维护软件系统。
作为一门实践性强的学科,课后答案对于学习软件工程的学生来说非常重要。
本文将以软件工程课后答案为主题,为您提供一份完整版的答案,旨在帮助您更好地理解和掌握软件工程的知识。
一、需求分析与规格说明1. 问题描述对于任何一门软件工程课程,需求分析和规格说明都是至关重要的环节。
通过合理地分析需求,可以明确软件系统的功能需求、性能需求和用户需求,从而为后续的设计和开发工作奠定基础。
在这一部分中,我们将详细讨论问题描述、需求规格说明以及软件需求规格说明的编写步骤和技巧。
2. 答案示例问题描述:某个公司需要开发一个在线购物系统,能够满足用户浏览商品、下单购买、支付、评价等功能。
需求规格说明:该系统需要具备以下功能需求:- 用户注册登录:用户可以通过注册登录系统,建立个人账号,用于后续购物操作。
- 商品浏览:用户可以浏览系统中的商品,包括商品图片、详细介绍、价格等信息。
- 购物车管理:用户可以将感兴趣的商品加入购物车,并对购物车进行管理,如增加、删除、修改商品数量等操作。
- 订单管理:用户可以在购物车中选择商品提交订单,并进行支付操作。
- 支付功能:系统需要集成常用的支付渠道,如支付宝、微信支付等,以便用户支付订单。
- 评价功能:用户在收到商品后可以对商品进行评价,并可以查看其他用户对商品的评价。
三、软件系统设计与实现1. 系统架构设计系统架构设计是软件工程中的核心环节之一,它关注着如何将系统划分为各个模块,并确定模块之间的接口和依赖关系。
在这一部分中,我们将着重讨论系统架构设计的原则、方法以及常用的架构模式。
2. 答案示例系统架构设计的主要目标是实现系统的可扩展性、灵活性和可维护性。
在本次项目中,我们采用了经典的三层架构模式,即用户界面层、业务逻辑层和数据访问层。
- 用户界面层:负责与用户进行交互操作,接收用户输入的请求,并向用户展示系统的响应结果。
里面包含绝大部分的软件工程第二版中的课后习题答案瞿中编第一章仿真试题1、瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。
八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和( )。
A、详细计划B、可行性分析C、运行阶段D、测试与排错2、从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大( )。
A、详细设计阶段B、概要设计阶段C、需求分析阶段D、测试和运行阶段3、在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试中的系统测试阶段的目标( )。
A、需求分析阶段B、详细设计阶段C、概要设计阶段D、可行性研究阶段4、软件工程的出现主要是由于( )。
A.程序设计方法学的影响B.其它工程科学的影响C. 软件危机的出现D.计算机的发展5、软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是( )A、硬件环境B、软件开发的环境C、软件开发工具和软件开发的环境D、开发人员的素质6、软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为( )A、相互排斥B、相互补充C、独立使用D、交替使用7、UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法( )A、基于瀑布模型的结构化方法B、基于需求动态定义的原型化方法C、基于对象的面向对象的方法D、基于数据的数据流开发方法8、在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高( )A、结构化方法B、原型化方法C、面向对象的方法D、控制流方法9、结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的( )A、控制流B、数据流C、程序流D、指令流10、软件开发的结构化生命周期方法将软件生命周期划分成( )A、计划阶段、开发阶段、运行阶段B、计划阶段、编程阶段、测试阶段C、总体设计、详细设计、编程调试D、需求分析、功能定义、系统设计11、软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为( )A、瀑布模型B、对象模型C、螺旋模型D、层次模型12、软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是( )A、分析阶段B、设计阶段C、编码阶段D、测试阶段13、软件开发模型是指软件开发的全部过程、活动和任务的结构框架。
软件工程(史济民第三版)-原理、方法及应用课后习题软件工程(史济民第三版)-原理、方法及应用课后习题软件工程是一门涉及软件开发和维护的学科,具有原理、方法和应用三个方面的内容。
本章将探讨史济民第三版的软件工程课后习题,包括问题分析、需求规格说明、软件设计、软件测试等方面的内容。
1. 问题分析问题分析是软件工程中的第一步,它涉及对问题的背景、需求和目标进行分析。
在史济民第三版的课后习题中,有许多问题需要进行分析和解决。
例如,习题1要求分析一个给定的场景,找出需求和问题,进而提出解决方案。
对于这类问题,我们可以采用以下的分析步骤:1. 理解问题背景和需求:阅读习题中的场景,了解涉及的业务领域和需求。
2. 识别问题:找出场景中存在的问题和挑战,例如效率低下、错误率高等。
3. 提出解决方案:基于问题的分析,提出改进措施和解决方案,例如引入自动化工具、优化算法等。
2. 需求规格说明需求规格说明是软件工程中的重要环节,它涉及对软件系统需求进行详细描述和规定。
在史济民第三版的习题中,有许多涉及需求规格的问题。
例如,习题2要求对给定的场景进行需求分析,并书写需求规格说明。
在完成这类习题时,我们可以参考以下的格式:1. 概述:对软件系统的背景和目标进行简要描述。
2. 功能需求:详细列出系统需要实现的功能和特点。
3. 非功能需求:描述与系统性能、安全性等相关的需求。
4. 约束:列出系统开发过程中需要遵守的限制条件。
3. 软件设计软件设计是软件工程中的核心环节,它涉及软件系统的整体结构和模块设计。
在史济民第三版的习题中,有许多关于软件设计的问题。
例如,习题3要求设计一个给定场景下的软件系统。
在进行软件设计时,我们可以使用以下的设计方法:1. 模块化设计:将软件系统划分为不同的模块,并设计各个模块的功能和接口。
2. 流程图和数据流图:使用图形化的工具描述软件系统的流程和数据流动。
3. 面向对象设计:基于对象和类的概念进行系统设计,强调封装、继承和多态等特性。
软件工程习题CH1一、填空题1、软件工程需要解决的问题包括:费用、可靠性、可维护性、生产率和重用。
2、到目前为止,软件生产的发展经历了三个阶段,即程序设计、程序系统和软件工程。
3、计算机科学中的研究曾国均可用于软件工程,但计算机科学侧重于原理和理论,而软件工程侧重于软件系统构造。
4、软件工程有用管理科学的方法和原理进行软件生产的管理。
5、软件工程是用科学知识和技术原理来定义、开发、维护软件的一门科学。
6、软件工程研究的主要内容包括软件开发技术和软件开发管理技术两个方面。
在软件开发技术方面,主要研究开发方法、开发过程、开发工具。
在软件开发管理技术方面主要研究管理学、经济学、心理学。
7、作为一门交叉学科,软件工程具有很强的综合性,它涉及计算机科学、工程科学、管理科学、数学等领域。
8、软件生产周期是指一个软件从提出开发要求开始直到该软件报废为止的整个时期。
通常包括问题定义、可行性研究、需求分析、总体设计、详细设计、编码、测试、维护等活动,可以将这些活动以适当方式分配到不同阶段去完成。
9、开发软件工具的主要目的是为了提高软件生产效率和改善软件的质量。
10、描述软件开发过程中各种活动如何执行的模型称为周期模型。
11、从软件工程诞生以来,已经提出了多种软件开发方法,如结构化方法、面向数据的方法、面向对象的方法,它们对软件工程及软件产业的发展起到了不可估量的作用。
12、结构化方法由结构化分析、结构化设计和结构化程序设计构成。
它是一种面向数据流的开发方法。
13、增量模型是一种非整体开发方法的模型。
软件在该模型中是“逐渐”开发出来的,开发一部分向用户展示一部分,可让用户及早看到部分软件,及早发现问题。
或者先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。
14、喷泉模型是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。
它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。
软件工程——原理、方法与应用绪论1.什么是软件危机?为什么会产生软件危机?答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。
(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。
(2).软件生产技术进步缓慢5.什么是软件工程环境?谈谈你对环境重要性的认识。
答:方法与工具相结合,再加上配套的软、硬件支持就形成环境。
例如在批处理时代,用户开发的程序是分批送入计算机中心的计算机的,有了错误,就得下机修改。
程序员对自己写的程序只能继续地跟踪,思路经常被迫中断,效率难于提高。
分时系统的使用,使开发人员从此能在自己的终端上跟踪程序的开发,仅此一点,就明显提高了开发的效率。
6. 何谓面向对象软件工程?简述它与传统软件工程在各型软件开发中的作用。
答:以面向对象程序设计为基础。
7. 软件按规模大小可分成哪几类?简述软件工程中各型软件开发中的作用。
答:按规模分为极小、小、中、大、甚大、极大。
(1)中小型软件:软件工程对改进软件质量,提高程序员生产率和满足用户的需求,有很大的作用。
(2)大型软件:这类软件必须从头至尾坚持软件工程的方法,严格遵守标准文档格式和正规的复审制度,才能避免或减少混乱,真正开发出大型的软件。
什么是软件?软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据以及有关描述程序操作和使用的文档,简而言之“软件=程序加文档”。
什么是软件工程?软件工程师一种用科学知识和技术原理来定义开发和维护计算机的一门学科。
目标:能用较低的成本来开发软件且软件的性能。
软件生存周期与软件过程1.什么是软件生存周期?把生存周期划分为阶段的目的是什么?答:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得交易控制和管理。
2.传统的瀑布模型把生存周期分为哪些阶段?瀑布模型软件开发有哪些特点?答:瀑布模型在编码以前安排了分析阶段和设计阶段;阶段间具有顺序性和依赖性。
软件工程课后习题参考答案1.简述软件开发的本质答: 软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。
P192.简述实施软件开发的基本途径。
答: 实施软件开发的基本途径是系统建模。
所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。
P193.简述何谓模型以及软件开发中所涉及的模型。
答: 模型是一个抽象。
该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。
软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。
4.简述软件开发所涉及的两大类技术。
答: 软件开发所涉及的两大类技术为: 一是求解软件的开发逻辑,二是求解软件的开发手段。
5、简述需求与需求规约的基本性质。
答:需求的基本性质:1) 必要的,该需求是用户所要求的。
2) 无歧义的,该需求只能用一种方式解释。
3) 可测的,该需求是可进行测试的。
4) 可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。
5) 可测量的,该需求是可测量的。
需求规约的基本性质:1) 重要性和稳定性程度: 按需求的重要性和稳定性,对需求进行分级。
2) 可修改的: 在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。
3)完整的:没有被遗漏的需求。
4)一致的:不存在互斥的需求。
6、简述软件需求的分类答:软件需求可以分为两大类:一类是功能需求,一类是非公能需求,而非公能需求可分为性能需求,外部接口需求、功能需求7、举例说明功能需求和非功能需求之间的基本关系。
答:非功能需求可作用于一个或多个功能需求,例如非功能需求可作用于一个或多个功能需求其中,非功能需求1作用于功能需求1和功能需求3等;非功能需求2作用于功能需求2等。
P248、有哪几种常用的初始需求发现技术?答:有5种常用的需求发现技术:自悟、交谈、观察、小组会和提炼。
软件工程--课后答案第一章:1.1 简述软件的定义、软件的特点和软件危机的表现。
软件的定义:软件是由计算机程序、数据和文档组成的。
软件的特点:1)抽象性,2)软件生产无明显的制造过程,3)无磨损性,4)对计算机系统的依赖性,5)软件的手工开发方式,6)软件本身复杂性,7)软件的高成本软件危机的表现:1)软件开发周期大大超过规定日期,2)软件开发成本严重超标,3)软件质量难于保证。
1.2 什么是软件工程和软件工程化?软件工程:软件工程化:把软件工程理论应用到软件开发组织中,以改进软件产品开发的时间(T)、质量(Q)、成本(C)和服务(S)。
1.3简要说明软件工程三要素与质量关注点之间的关系。
软件工程的三要素:方法、工具和过程。
关系看P41.4如何构造软件过程?软件过程构造时首先应建立一个公共过程框架,其中定义了少量可用于所有项目的框架活动;再给出各个框架活动的任务集合,使得框架活动能够适合于项目的特点和项目组的需求;最后是保护性活动。
1.5什么是软件生存周期?软件生存周期分为哪几个阶段?各阶段的任务是什么?软件生存周期:是软件产品或软件系统从设计、投入使用到被淘汰的全过程。
软件生存周期:定义、开发、维护。
1)定义:包括问题定义、可行性研究和需求分析。
2)开发时期包括设计、编码和测试。
3)维护时期包括维护阶段。
1.6常用的软件工程方法和开发模型各有哪些?软件工程方法:生命周期法(又称传统方法或结构化方法)、面向对象方法和原型法。
软件开发模型:瀑布模型、快速原型模型、演化模型、面向对象模型、形式化方法模型。
1.7什么是软件工具、软件开发环境和软件工程环境?软件工具:是用来辅助软件开发、运行、维护、管理和支持等过程中活动的软件。
1.8软件工程的基本原理:1)按软件生存期分为阶段制定计划并认真实施。
2) 坚持进行阶段评审。
3)坚持严格的产品控制。
4)使用现代程序设计技术。
5)明确责任,使得工作结果能够得到清楚的审查。
软件工程-原理、方法及应用(史济民第三版)答案绪论1.什么是软件危机?为什么会产生软件危机?答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。
(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。
(2).软件生产技术进步缓慢2. 什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差别在哪里?答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。
采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。
3. 分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管理的相互关系。
答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。
当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。
新方法在推行初期,总有人不愿接受和采用。
若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。
(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。
软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。
所以对于一个理想的软件工程环境,应该同时具备技术和管理两个方面。
4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。
答:用C++开发一个软件,是校园一卡通的模块。
首先,要在编辑程序支持下在计算机中输入源程序。
然后编译程序,把源程序翻译成目标程序。
如果发现错误,就重新调入编辑程序对源程序进行修改。
编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。
编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。
离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。
《软件工程实用教程》部分习题与参考答案第3章结构化需求分析1.如何理解需求分析的任务是确定软件系统“做什么”,而不是“怎么做”?答案要点:需求分析的任务是借助当前系统的逻辑模型导出目标系统的逻辑模型。
在理解当前系统“怎么做”的基础上,抽取其“做什么”的本质,从而从当前系统的物理模型抽象出当前系统的逻辑模型。
在去掉非本质的因素后,根据用户提出的对目标系统的需求,分析当前系统与目标系统的差别,明确目标系统的范围、功能、处理步骤和数据结构,建立目标系统的逻辑模型。
需求分析阶段研究的对象是软件项目的用户要求,正确地理解需求和准确地表达需求是需求分析的关键,只有经过确切描述的软件需求才能成为软件设计的基础。
2.什么是用户需求?什么是系统需求?答案要点:用户需求是关于软件的一系列想法的集中体现,涉及软件的功能、操作方式、界面风格、用户机构的业务范围、工作流程和用户对软件应用的展望等。
因此,用户需求也就是关于软件的外界特征的规格表述。
系统需求是比用户需求更具有技术特性的需求陈述。
它是提供给开发者或用户方技术人员阅读的,并将作为软件开发人员设计系统的起点与基本依据。
系统需求需要对系统的功能、性能、数据等方面进行规格定义。
3.4.用户需求调查主要有哪些方法?答案要点:用户需求调查主要有研究资料法、问卷调查法、用户访谈和实地观察法等。
5.为什么一个系统的数据流程图一般是一套分层的数据流图?答案要点:分层的数据流图体现了分解和抽象的原则,它使人们不至于一下子陷入细节,而是有控制地逐步地了解更多的细节,这有助于理解问题。
图中顶层抽象地描述了整个系统,底层具体地画出了软件的每一个细部,中间层则是从抽象到具体的逐步过渡。
按照这样的方法,无论问题多么复杂,分析工作都可以有计划、有步骤、有条不紊地进行。
6.数据字典的作用是什么?它有哪些基本条目?答案要点:数据字典是结构化分析的另一个有力的工具。
它是为数据流程图中的每个数据流、数据存储、加工以及组成数据流或文件的数据项做出说明,没有数据字典,数据流程图就不严格。
软——应 课习题件工程原理、方法与用后答案最完整版绪论1.什么是软件危机?为什么会产生软件危机?答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。
(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。
(2).软件生产技术进步缓慢2. 什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差别在哪里?答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。
采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。
3. 分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管理的相互关系。
答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。
当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。
新方法在推行初期,总有人不愿接受和采用。
若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。
(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。
软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。
所以对于一个理想的软件工程环境,应该同时具备技术和管理两个方面。
4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。
答:用C++开发一个软件,是校园一卡通的模块。
首先,要在编辑程序支持下在计算机中输入源程序。
然后编译程序,把源程序翻译成目标程序。
如果发现错误,就重新调入编辑程序对源程序进行修改。
编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。
编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。
离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。
5.什么是软件工程环境?谈谈你对环境重要性的认识。
答:方法与工具相结合,再加上配套的软、硬件支持就形成环境。
例如在批处理时代,用户开发的程序是分批送入计算机中心的计算机的,有了错误,就得下机修改。
程序员对自己写的程序只能继续地跟踪,思路经常被迫中断,效率难于提高。
分时系统的使用,使开发人员从此能在自己的终端上跟踪程序的开发,仅此一点,就明显提高了开发的效率。
6. 何谓面向对象软件工程?简述它与传统软件工程在各型软件开发中的作用。
答:以面向对象程序设计为基础。
7. 软件按规模大小可分成哪几类?简述软件工程中各型软件开发中的作用。
答:按规模分为极小、小、中、大、甚大、极大。
(1)中小型软件:软件工程对改进软件质量,提高程序员生产率和满足用户的需求,有很大的作用。
(2)大型软件:这类软件必须从头至尾坚持软件工程的方法,严格遵守标准文档格式和正规的复审制度,才能避免或减少混乱,真正开发出大型的软件。
8. 什么是形式化软件开发方法?实现这类开发的困难和出路在哪里?答:它是一种基于数学的开发技术,主要采用数学的方法来描述系统的性质(例如程序变换和程序验证等)。
形式化的方法加上自动化的开发环境,可能是解决这一难题的出路。
软件开发模型1.什么是软件生存周期?把生存周期划分为阶段的目的是什么?答:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得交易控制和管理。
2.传统的瀑布模型把生存周期分为哪些阶段?瀑布模型软件开发有哪些特点?答:瀑布模型在编码以前安排了分析阶段和设计阶段;阶段间具有顺序性和依赖性。
3.说明文档和复审对于软件质量的控制的作用。
答:每一阶段都要完成规定的文档,没有完成文档,就认为没有完成该阶段的任务。
软件开发是许多人共同参加的计划,完整与合格的文档,不仅是开发时期软件人员之间互相通信的媒介,也是运行时期对软件进行维护的中要依据。
每一阶段都要对已完成的文档进行复审,以便尽早发现问题,消除隐患。
愈是早期潜伏下来的故障,暴露出来的时间愈晚,排除故障需付出的代价也就愈高。
及时复审是保证软件质量,降低开发成本的重要措施。
4.什么是快速原型法?其快速表现在哪里?答:首先建立一个能够反映用户主要需求的原型,让用户实际看一看未来系统的概貌,以便判断哪些功能是符合需要的,哪些方面还需要改进。
然后将原型改进,最终建立完全符合用户要求的新系统。
它的快速表现在能够缩短开发周期的语言和工具,能在短时间内提供出成品,但不包括成品中的细节,然后让客户进行对比。
5.实现快速原型法的最终系统可以有几种方法?请说明并加以比较。
答:原型系统仅包括未来系统的主要功能,以及系统的重要接口。
为了尽快向用户提供原型,开发原型系统时应尽量使用能缩短开发周期的语言和工具。
最终系统的形成可以采用原型废弃不用,另一方法是补充修改模型获得最终系统。
方法一不包括系统的细节。
后一种方法在实际工作中,由于原型系统使用的语言往往存在效率不高等原因,除了少数简单的事务系统外,大多数原型都废弃不用,仅把建立原型的过程当作帮助定义软件需求的一种手段。
6.比较增量模型和螺旋模型的特点,有什么不同和相似的地方?答:增量模型是瀑布模型的顺序特征与快速原型法的迭代特征相结合的产物。
螺旋模型是一种迭代模型,每迭代一次,螺旋线就前进一周。
增量模型每个增量具有高内聚低耦合,高度的独立性。
而螺旋模型它在结合瀑布模型与快速原型的基础上还增加了风险分析。
7.为什么利用转换模型开发软件有一定难度?什么是净室软件工程?答:从理论上说,一个正确的,满足客户需要的形式化规格说明,经过一系列正确的程序变化后,可以确保得到这样一个形式化规格说明,目前还有较高的难度,同时,软件开发者很少具有实用形式化方法所需的背景知识,况且,转换模型开发软件现在还很费时和昂贵!净室基本思想是力求在分析和设计阶段就消除错误,确保正确,然后在无缺陷或“洁净”的状态下实现软件的制作。
8.哪些开发模型适用于面向对象的软件开发?答:构件集成模型9.比较螺旋模型和构件集成模型的异同。
答:构件集成模型利用预先对封装好的软件构件来构造应用软件系统,它融合了螺旋模型的很多特征,支持软件开发的迭代方法。
软件需求分析1.需求分析的任务是什么?怎样理解分析阶段的任务是决定“做什么”,而不是“怎么做”?答:需求分析主要有两个任务:第一是通过对问题及其环境的理解、分析和综合建立分析模型;第二是在完全弄清用户对软件系统的确切要求的基础上,用“软件需求规格说明书”把用户的需求表达出来。
需求分析的任务就是为了明确要开发的是一个什么样的系统,而不是去怎么去实现这个系统。
2.需求分析要经过哪些步骤?答:需求获取、需求提炼、需求描述、需求验证。
3.有哪两种主要的分析模型,它们有什么联系?答:面向对象分析模型、结构化分析模型。
前者是采用面向对象的思想进行软件需求分析的建模过程,而后者模型的核心是DD,它是设计各种数据对象的总和。
他们的模型分别起到了描述数据模型,功能模型与行为模型的作用。
4.什么是结构化分析?它的“结构化”体现在哪里?答:是使用DFD、DD、结构化语言、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档。
5.什么是面向对象分析?其主要思想是什么?答: OOA面向对象的分析是采用面向对象的思想进行软件需求分析建模的过程.主要思想是采用面向对象的思想。
6. 需求说明(或需求规格说明书)由哪些部分组成?各部分的主要内容是什么?答:引言、信息描述、功能描述、行为描述、质量描述、接口描述、其他描述。
引言:主要叙述在文体定义阶段确定的关于软件的目标与范围,简要介绍系统背景、盖帽、软件项目约束和按考资料等。
信息描述:给出对软件所含信息的详细描述,包括信息的内容、关系、数据流向、控制流向和结构等。
功能描述:对软件功能要求的说明,包括系统功能划分、每个功能的处理说明、限制和控制描述等。
行为描述:包括对系统状态变化及事件和动作的描述,据此可以检查外部事件和软件内部的控制特征。
质量描述:阐明在软件交付使用前需要进行的共更能测试和性能测试,并且规定源程序和文档应该遵守的各种标准。
接口描述:包括系统的用户界面、硬件接口、软件接口和通信接口等的说明。
其他描述:阐述系统设计和实现上的限制,系统的假设和依赖等其他需要说明的内容。
7. 为什么DFD要分层?画分层DFD要遵循哪些原则?答:大型复杂的软件系统,其DFD可能含有数百乃至数千个加工,不能设想一次就将它们全部画齐。
正确的做法是:从系统的基本模型(把整个系统看成一个加工)开始,逐层地对系统进行分解。
原则:由顶向下,逐步细化。
8. DFD和CFD有什么区别?答:9. 什么是系统的行为模型,如何建立?答:类对象模型所表示的是面向对象分析模型中的静态部分,而对象行为模型则用于描述系统的动态行为,即系统如何对应外部事件---系统的行为模型。
建立一个对象行为模型一般要经历一些过程:评估所以的用例来理解系统中的交互序列;找出驱动交互序列的事件;为每个用例创建事件轨迹;为对象创建状态转换图。
10.选一个系统(例如工资处理系统、飞机订票系统、图书馆管理系统等),分别用SA方法和OOA方法对它进行分析,并给出分析模型。
答:软件设计概述1.传统软件工程把设计过程分成2步:概要设计与详细设计。
试述这2个阶段个字主要完成的任务。
答:概要设计,包括结构设计和接口设计,并编写设计文档。
详细设计,其任务是确定各个软件组件的数据结构和操作,产生描述个软件组件的详细设计文档。
为什么大型软件设计必须分成两步走?答:概要设计和详细设计是软件设计的两步,概要设计确定模块的划分,模块之间的调用关系,接口等;详细设计细分模块、数据结构等;大型系统中分两步走是必要的,概要设计确定模块划分后,详细设计可把各模块交给不同的人做详细设计,大型系统中这样的分工是比较合理的,能提高效率,做到合理分工。
2.解释下列名词:(1)模块;(2)模块化;(3)模块化设计。
答:模块是一个拥有明确定义的 、输出和特性的程序实体。
模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。
每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。
模块化设计是把大型软件按照规定的原则划分成一个个较小的、相对独立但又相互关联的模块。
但又相互关联的模块。
3.什么是模块独立性?用什么度量?答:模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。
模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。