软件工程学第一次作业答案

合集下载

软件工程学第一次作业答案

软件工程学第一次作业答案

一、简答题1、需求分析的任务答:需求分析的任务主要包括以下几项:确定目标系统的综合要求,其中包括(目标系统的功能、性能、运行的环境及扩展性要求);分析目标系统的数据要求,其中包括(系统平台需要哪些数据?数据间有什么关系?数据及数据结构?对数据的处理逻辑关系等);导出目标系统的逻辑模型;修正系统流程图;修正系统开发计划、开发原型系统2、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题,具体表现在哪些方面?答:1、无法开发复杂程度高的软件2、成本和进度估计不准3、无统一科学的规范,软件不可维护4、无质量保证,可靠性差5、软件常不能满足用户的需求6、无适当的文档资料7、软件生产率太低二、选择题1、从下列关于结构化程序设计的叙述中选出5条正确的叙述。

①程序设计比较方便,但比较难以维护。

②便于由多个人分工编制大型程序。

③软件的功能便于扩充。

④程序易于理解,也便于排错。

⑤在主存储器能够容纳得下的前提下,应使模块尽可能大,以便减少模块的个数。

⑥模块之间的接口叫做数据文件。

⑦只要模块之间的接口关系不变,各模块内部实现细节的修改将不会影响别的模块。

⑧模块间的单向调用关系叫做模块的层次结构。

⑨模块越小,模块化的优点越明显。

一般来说,模块的大小都在10行以下。

答:正确的叙述有②、③、④、⑦、⑧。

如果程序结构的模块化满足评价的标准(高内聚、低耦合),这样的结构是容易维护的,程序的功能也容易测试,容易理解、容易修改、容易维护的,程序的功能也容易扩充。

特别适合于大型程序编制时,多人分工全中作,协同完成任务的情形。

因为是采用自顶向下、逐层分解来划分解模块结构的,所以模块之间的调用关系是分层次的模块结构,就叫做模块的层次结构。

模块之间的信息传递叫做模块的接口,模块之间传递信息可以通过参数表、全局变量或全局数据结构、数据文件、专门模块太大,控制路径数目多、涉及的范围广、变量的数目多、总体复杂性高,可理解性、可修改性、可靠性就会变差。

2022年中央电大《软件工程》平时作业1、2、3、4次及答案

2022年中央电大《软件工程》平时作业1、2、3、4次及答案

软件工程第1次作业一、填空题(每空2分,共20分)二、单项选取题(将一种对的答案代码填入括号中,每小题3分,共15分) 1.( )是顾客和设计互换最频繁办法。

A. 原型化办法B.瀑布模型办法C. 螺旋模型办法D. 构件组装模型办法2.下列哪个阶段不是软件生存期三个阶段中内容( )。

A. 筹划阶段B.开发阶段C. 编码阶段D. 维护阶段3.下列( )操作产生副作用属于数据副作用。

A. 修改子程序B.局部变量再定义C. 删除标记符D.修改对编辑条件测试4.软件测试目( )。

A. 避免软件开发中浮现错误B.发现软件开发中浮现错误C.尽量发现并排除软件中潜藏错误,提高软件可靠性D.修改软件中浮现错误5.完毕详细设计工具不涉及( )。

A.PAD图B.数据流图C.HlP()图D.程序流程图三、多项选取题(将一种以上对的答案代码填入括号中,每小题3 分,共15分) 1.应从( )等方面研究可行性。

A. 经济可行性B.技术可行性C. 运营可行性D.法律可行性2.对于下列数据流图局部,关于描述中对的是( )。

A. 该图为第一层数据流图3.需求分析阶段结束后,交出文档中应当涉及( )。

A. 数据流图B.数据字典C. 简要算法描述D.项目经费预算4.软件管理工作涉及到直接对象涉及( )。

A. 软件开发人员B.硬件设备C. 项目经费D.软件项目5.在软件设计中,( )耦合应尽量避免。

A. 控制B.数据C.内容 D. 标记四、判断题(对的在括号内打上“√”,错误打上“X”。

每小题2分,共10分)1。

软件危机是指在软件开发和维护过程中遇到一系列严重问题。

( )2,构造化分析办法就是用抽象模型概念,按照软件内部数据传递、变换关系,自顶向下逐级分解,直到找到满足功能规定所有可实现软件为止。

( )3.UML只能应用于软件系统模型建立。

( )4.程序设计语言中应绝对禁止使用GOTO语句。

( ) 5.模块越小,模块长处越大。

( )五、问答题(每小题10分,共20分)1.什么是软件?什么是软件工程?2.什么是编码风格?为什么要强调编码风格?六、分析题(共20分)依照下列N—S图,写出其相应伪码。

中国石油大学(北京)软件工程第一次在线作业满分答案

中国石油大学(北京)软件工程第一次在线作业满分答案

中国石油大学(北京)软件工程第一次在线作业满分答案
第一次在线作业
单选题 (共25道题)
展开
收起
1.(
2.5分)结构化分析建立功能模型的工具是()
A、DFD
B、判定树/判定表
C、SC
D、结构化语言
我的答案:A 此题得分:2.5分
2.(2.5分)检查软件产品是否符合需求定义的过程称为()
A、确认测试
B、集成测试
C、系统测试
D、单元测试
我的答案:A 此题得分:2.5分
3.(2.5分)软件测试方法中,黑盒测试方法和白盒测试方法是常用的方法,其中黑盒测试方法主要用于测试()
A、结构合理性
B、软件外部功能
C、程序正确性
D、程序内部逻辑
我的答案:B 此题得分:2.5分
4.(2.5分)软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为()
A、瀑布模型
B、对象模型
C、螺旋模型
D、层次模型
我的答案:A 此题得分:2.5分
5.(2.5分)建立原型的目的不同,实现原型的途径也有所不同,下列不正确的类型是()
A、用于验证软件需求的原型
B、垂直原型
C、用于验证设计方案的原型
D、用于演化出目标系统的原型
我的答案:B 此题得分:2.5分
6.(2.5分)面向对象的开发方法中,()将是面向对象技术领域内占主导地位的标准建模语言。

A、Booch方法。

《软件工程》作业及参考答案1,4

《软件工程》作业及参考答案1,4

《软件工程》作业及参考答案——第一、二章中央电大理工部史红星(2004年09月15日)浏览人次4582一、填空题1. 软件工程学的内容可包括(理论)、结构、(方法)、(工具)、环境、管理、规范等。

2. 软件生存周期一般可分为问题定义、(可行性研究)、(需求分析)、设计、(编码)、测试、运行与维护阶段。

3. 可行性研究的目的是(用最小的代价在尽可能短的时间内确定问题是否能够解决)。

4. 系统流程图是(描绘物理系统)的传统工具。

5. 在可行性研究中,(技术可行性)是系统开发过程中难度最大,最重要的一个环节。

二、判断题1. 软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。

(√ )2. 螺旋模型是利用笛卡尔坐标的四个象限上分别代表四个方面的活动来表示。

(√ )3. 原型模型适用于嵌入式软件。

(╳ )4. 面向对象技术是构件组装模型的基础。

(√ )5. 在可行性研究中最难决断和最关键的问题是经济可行性。

(╳ )6. 系统流程图表达的是部件的信息流程,还表示对信息进行加工处理的控制过程。

(╳ )7. 自底向上成本估计不是从整体开始,而是从任务单元开始。

(√ )三、单项选择题1. 下列哪个阶段不是软件生存期三个阶段中的内容( C )。

A.计划阶段B.开发阶段C.编码阶段D.维护阶段2. 下列关于瀑布模型的描述正确的是( C )。

A. 瀑布模型的核心是按照软件开发的时间顺序将问题简化。

B. 瀑布模型具有良好的灵活性。

C. 瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开。

D. 利用瀑布模型,如果发现问题修改的代价很低。

四、简答题1. 软件的定义与特点。

参考答案:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据结构及其相关文档的完整集合。

它包括三个方面的内容:⑴程序:在运行时,能提供所希望的功能和性能的指令集。

⑵数据结构:使程序能够正确运行的数据结构。

《软件工程》作业及答案.doc

《软件工程》作业及答案.doc

《软件工程》作业第一章1.什么是软件危机,它有哪些典型表现?答: 软件危机是指在计算机软件的开发和保护过程中所碰到的一系列严重问题。

归纳地说,软件危机包含下述双方面的问题:如何开发软件,以知足对软件日趋增添的需求;如何保护数目不停膨胀的已有软件。

软件危机典型表现:对软件开发成本和进度的预计常常很不正确。

用户对“已达成的” 软件系统不满意的现象常常发生。

软件产品的质量常常靠不住。

软件常常是不行保护的。

软件往常没有合适的文档资料。

软件成本在计算机系统总成本中所占的比率逐年上涨。

软件开发生产率提升的速度,远远跟不上计算机应用快速普及深入的趋向。

产生软件危机的原由:一方面与软件自己的特色有关,另一方面也和软件开发与保护的方法不正确有关。

软件不一样于硬件,它是计算机系统中的逻辑零件而不是物理零件。

管理和控制软件开发过程相当困难。

软件是规模宏大,并且程序复杂性将跟着程序规模的增添而呈指数上涨。

目前相当多的软件专业人员对软件开发和保护还有不省糊涂看法,在实践过程中或多或少地采纳了错误的方法和技术,这是使软件问题发展成软件危机的主要原由。

2.简述产生软件危机的原由和解决的思路。

答:软件危机产生的原由一方面与软件自己的特色有关,另一方面,是与已有软件开发、保护的方法不正确有亲密关系。

解决软件危机,既要有技术举措 (方法和工具 ),又要有必需的组织管理举措。

即采纳工程化的原则和方法组织软件开发是挣脱软件危机的一个主要出路。

3.什么是软件工程?它有哪些本质特征?答: 软件工程是指导计算机软件开发和保护的一门工程学科。

采纳工程的看法、原理、技术和方法来开发与保护软件,把经过时间考验而证明正确的管理技术和目前能够获取的最好的技术方法联合起来,以经济地开发出高质量的软件并有效地保护它。

软件工程本质特征: 1、软件工程关注于大型程序的结构; 2、软件工程的中心课题是控制复杂性; 3、软件常常变化; 4、开发软件的效率特别重要; 5、和睦地合作是开发软件的要点; 6、软件一定有效地支持它的用户; 7、在软件工程领域中是由拥有一种文化背景的人替拥有另一种文化背景的人创立产品。

软件工程作业(答案参考)

软件工程作业(答案参考)

软件工程作业(答案参考)软件工程第一次作业1)软件工程适用范围?答:软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。

它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。

在现代社会中,软件应用于多个方面。

典型的软件比如有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。

同时,各个行业几乎都有计算机软件的应用,比如工业、农业、银行、航空、政府部门等。

这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。

2)软件工程如何控制系统开发的复杂性的?答:可理解性(understandability)。

系统具有清晰的结构,能直接反映问题的需求。

可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植或重用。

带来不必要的投入,软件是以人为本,方便用户工作,达到提高工作效率的目的。

若然日后此用户需要更多功能的时候,我们还是可以向其软件公司提供升级功能解决用户需求。

3)协同工作有什么重要性?答:日常工作中,80%的事项,都需要与同事协作完成、与其他部门协调资源、或者向领导进行请示汇报;80%的工作都处于开放的环境,如特殊请求、突发事件、临时汇报、项目协作、活动组织、意见征集、沟通协调等等,因此,通过柔性协作流程的使用,员工可以很便捷的实现与其他同事的头脑风暴、分工协作、资源整合,并且可以通过自建模板和自建流程的使用,使得很多处于随机和发散状态的工作实现有序化、可跟踪化、可追溯化,实现工作的敏捷性与有效性的统一,简单来说,就是实现员工的工作产生1+1>2的效果。

6 )只要是编程高手,即使是不懂软件工程,也能编出很好的软件。

答:不一定。

软件的开发是由需求调研分析、概要设计、详细设计、编码、测试及用户体验反馈等组成的。

所以只是懂得编码编程其中一部分不一定能编出很好的软件。

7 )只要拥有一套讲述如何开发软件的书籍,并了解了书中的标准与示例,就可以解决软件开发中遇到的任何问题。

软件工程学第一次作业—答案中山大学

软件工程学第一次作业—答案中山大学

软件工程学第一次作业一、简答题1、需求分析的任务答:需求分析的任务主要包括以下几项:确定目标系统的综合要求,其中包括(目标系统的功能、性能、运行的环境及扩展性要求);分析目标系统的数据要求,其中包括(系统平台需要哪些数据?数据间有什么关系?数据及数据结构?对数据的处理逻辑关系等);导出目标系统的逻辑模型;修正系统流程图;修正系统开发计划、开发原型系统2、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题,具体表现在哪些方面?答:1、无法开发复杂程度高的软件2、成本和进度估计不准3、无统一科学的规范,软件不可维护4、无质量保证,可靠性差5、软件常不能满足用户的需求6、无适当的文档资料7、软件生产率太低二、选择题1、从下列关于结构化程序设计的叙述中选出5条正确的叙述。

①程序设计比较方便,但比较难以维护。

②便于由多个人分工编制大型程序。

③软件的功能便于扩充。

④程序易于理解,也便于排错。

⑤在主存储器能够容纳得下的前提下,应使模块尽可能大,以便减少模块的个数。

⑥模块之间的接口叫做数据文件。

⑦只要模块之间的接口关系不变,各模块内部实现细节的修改将不会影响别的模块。

⑧模块间的单向调用关系叫做模块的层次结构。

⑨模块越小,模块化的优点越明显。

一般来说,模块的大小都在10行以下。

答:正确的叙述有②、③、④、⑦、⑧。

如果程序结构的模块化满足评价的标准(高内聚、低耦合),这样的结构是容易维护的,程序的功能也容易测试,容易理解、容易修改、容易维护的,程序的功能也容易扩充。

特别适合于大型程序编制时,多人分工全中作,协同完成任务的情形。

因为是采用自顶向下、逐层分解来划分解模块结构的,所以模块之间的调用关系是分层次的模块结构,就叫做模块的层次结构。

模块之间的信息传递叫做模块的接口,模块之间传递信息可以通过参数表、全局变量或全局数据结构、数据文件、专门模块太大,控制路径数目多、涉及的范围广、变量的数目多、总体复杂性高,可理解性、可修改性、可靠性就会变差。

软件工程第一次作业答案

软件工程第一次作业答案

1.How do software characteristics differ from hardware characteristics?Answer (Section 1.2):Software is developed, not manufactured. Software does not wear out, but it can deteriorate when changes are made. Most software is custom built, not assembled out of components.2. What is the difference between software that is determinate and software that is indeterminate?Answer (Section 1.3):Software is determinate is the order and timing of its inputs, processing, and outputs is predictable and it is indeterminate if the order and timing of its input, processing, and outputs is not predictable in advance.3.Explain what is wrong with the notion that computer software does not need to evolveover time.Answer (Section1.4):Computer software must be revised as errors are discovered and corrected. Software must be updated to accommodate changes in the computing environment. Many times a customer will request changes to add new functions to an existing product or to accommodate changes in the business environment. Sometimes an older system will need to be reengineered to provide benefits to the user in a modern context. The bottom line is that software that does not evolve will eventually become unusable.4.Many modern applications change frequently before they are presented to the end userand then after the first versions have been used. Think about few ways to build software to stop deterioration due to change.Answer:•Make sure that software is designed so that changes in one part of a program do not create side-effects in another part of the program.•Make sure that software is designed so that it does not depend on external devices or systems that are likely to change with time.•Make sure test cases and results are archived and available so that the software can be retested when changes are made.•Make sure you spend time understanding what the customer wants.5,For the waterfall model, describe situations where this model can and cannot be used and why.Answer:•The waterfall model is appropriate for projects with the following characteristics: (1) the problem is well understood (requirements are well-defined); (2) the delivery date is realistic; (3) it's unlikely that major changes in requirements will be requested as theproject proceeds.6. Incremental process models tend to be among the most widely used in the industry. Describe the conditions under which such models should be used and what an “increment” means in terms of project work and deliveryAnswer:Incremental models are useful when staffing is unavailable for a complete implementation by the business deadline. In addition, increments can be planned to manage technical risks. The “increment” is often a core product, i.e., basic requirements are addressed but many supplementary features remain undelivered. The process is repeated following the delivery of each increment, until the complete product is produced.,7.Discuss the pros and cons of prototyping model and how it differs from the spiral modelAnswer:The pros and cons of prototyping model are: Pro: evaluated by user and used to refine requirements; Con: the first system built is barely usable; unrealistic expectations from the customer; the performance issue。

中国石油大学(北京)软件工程 第一次在线作业满分答案

中国石油大学(北京)软件工程 第一次在线作业满分答案

A、纠错性维护
B、适应性维护
C、改善性维护
D、预防性维护
我的答案:A 此题得分:2.5分14.(2.5分) 以下不属于白盒测试技术的是( )
A、逻辑覆盖
B、基本路径测试
C、循环覆盖测试
D、等价类划分
我的答案:D 此题得分:2.5分15.(2.5分) 盒图也称为( )或Chapin图。这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。
A、逻辑内聚
B、时间内聚
C、偶然内聚
D、功能内聚
我的答案:D 此题得分:2.5分25.(2.5分) 结构设计是一种应用最广泛的系统设计方法,是以( )为基础、自顶向下、逐步求精和模块化的过程。
A、数据流
B、数据流图
C、数据库
D、数据结构
正确
错误
我的答案:正确此题得分:2.5分28.(2.5分) 面向数据设计方法一般都包括下列任务: 确定数据结构特征;用顺序、选择和重复三种基本形式表示数据等步骤。
正确
错误
我的答案:正确此题得分:2.5分29.(2.5分) 耦合度是对软件结构中模块间关联程度的一种度量。在设计软件时应追求尽可能紧密的耦合的系统。。
A、判定表和判定树
B、盒图
C、流程图
D、关系图
我的答案:A 此题得分:2.5分12.(2.5分) 需求分析的任务不包括( )
A、问题分析
B、系统设计
C、需求描述
D、需求评审
我的答案:B 此题得分:2.5分13.(2.5分) 为改正软件系统中潜藏的错误而进行的维护活动称为( )
A、瀑布模型
B、对象模型

软件工程课本习题答案

软件工程课本习题答案
2.3形式化方法的特点是什么?
形式化方法的主要特点是:
(1)软件需求规格说明被细化为用数学记号表达的详细的形式化规格说明;
(2)设计、实现和单元测试等开辟过程由一个变换开辟过程代替。通过一系列变换将形式的规格说明细化成为程序。
2.5安装RationalRose2000/2002/2003,并练习基本操作。
缺点:RUP只是一个开辟过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开辟结构,这在一定程度上降低了在开辟组织内大范围实现重用的可能性。
合用范围:合用于基于构件的软件开辟。
2软件工程方法与工具
2.1软件工程的三种基本要素是什么,各自的作用是什么?
术问题,更重要的是必须有科学严格的管理。
(5)缺少有效的软件评测手段,提交给用户的软件的质量不能彻底保证。
1.5什么是软件工程?
第1章 作业参考答案
软件工程是指导计算机软件开辟和维护的工程学科。采用工程的概念、原理、技术和方法来开辟和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开辟出高质量的软件并有效地维护它,这就是软件工程。
产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面:
(1)缺乏软件开辟的经验和有关软件开辟数据的积累,使得开辟工作计划很难制定。
(2)软件人员与用户的交流存在障碍,使得获取的需求不充分或者存在错误。
(3)软件开辟过程不规范。如,没有真正了解用户的需求就开始编程序。
(4)随着软件规模的增大,其复杂性往往会呈指数级升高。需要不少人分工协作,不仅涉及技
必须做什么”这个问题。
(3)软件设计:本阶段要回答的关键问题是“目标系统如何做?”为此,必须在设计阶段中制

软件工程作业含答案解析

软件工程作业含答案解析

软件工程第一章作业 (1)1.1什么是计算机软件?软件的特点是什么? (1)1.2 简述软件的分类,并举例说明。

(1)1.4 什么是软件工程? (1)1.5 简述软件工程的基本原则。

(1)1.6 软件生存周期分哪几个阶段?分别简述各个阶段的任务。

(1)1.9 简述各类软件过程模型的特点。

(2)1.10 敏捷软件开发的特点是什么? (2)1.12 简述敏捷软件开发的原则。

(2)第2、3章 (3)2.1简述系统工程的任务。

(3)2.2基于计算机的系统由哪些元素组成? (3)2.3简述可行性分析的任务。

(3)3.1需求工程的重要性是什么?举出身边由于需求分析失败而造成整个项目失败的例子。

(3)3.2需求工程具体包括哪些步骤?每个步骤的具体任务是什么? (3)3.3一个系统分析员应该具备哪些思想素质和基础知识?请说明理由。

(4)3.4列出在制定需求获取策略时的3种主要考虑因素。

(5)3.6举例说明一个系统的3个不同类型的非功能需求 (5)3.8软件需求分析的操作性原则和需求工程的指导性原则是什么? (5)3.9软件需求规约主要包括哪些内容?自己寻找一个实例,亲自写一个需求规约。

. 53.10需求验证应该有哪些人参加?画出一个过程模型,说明需求评审应该如何组织。

5 第4章 (5)4.1 简述软件设计阶段的基本任务 (5)4.2 软件设计与质量的关系是怎么样的? (6)4.4 简述模块、模块化及模块化设计的概念。

(6)4.6 耦合和软件可移植性的概念有何关系?举例说明自己的结论。

(6)4.7用自己的话描述信息隐蔽概念,并讨论信息隐藏与模块独立两概念之间的关系。

64.8什么是模块独立性?设计中为什么模块要独立?如何度量独立性?模块功能独立有何优点? (6)4.9软件设计规约主要包括哪些内容? (7)第5章结构化分析与设计 (7)5.1 简述数据流图的主要思想,概述使用数据流图进行需求分析的过程。

软件工程作业及答案

软件工程作业及答案

《软件工程》作业及答案1-1 什么是软件危机?它有哪些经典体现?为何会出现软件危机?答: 软件危机是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。

概括地说, 软件危机包括下述两方面旳问题: 怎样开发软件, 以满足对软件日益增长旳需求;怎样维护数量不停膨胀旳已经有软件。

软件危机经典体现:对软件开发成本和进度旳估计常常很不精确。

顾客对“已完毕旳”软件系统不满意旳现象常常发生。

软件产品旳质量往往靠不住。

软件常常是不可维护旳。

软件一般没有合适旳文档资料。

软件成本在计算机系统总成本中所占旳比例逐年上升。

软件开发生产率提高旳速度, 远远跟不上计算机应用迅速普及深入旳趋势。

产生软件危机旳原因: 首先与软件自身旳特点有关, 另首先也和软件开发与维护旳措施不对旳有关。

软件不一样于硬件, 它是计算机系统中旳逻辑部件而不是物理部件。

管理和控制软件开发过程相称困难。

软件是规模庞大, 并且程序复杂性将伴随程序规模旳增长而呈指数上升。

目前相称多旳软件专业人员对软件开发和维护尚有不省糊涂观念, 在实践过程中或多或少地采用了错误旳措施和技术, 这是使软件问题发展成软件危机旳重要原因。

1-2 假设你是一家软件企业旳总工程师, 当你把图1.1给手下旳软件工程师们观看, 告诉他们及早发现并改正错误旳重要性时, 有人不一样意你旳观点, 认为规定在错误进入软件之前就清除它们是不现实旳, 并举例说:“假如一种故障是编码错误导致旳, 那么, 一种人怎么能在设计阶段清除它呢?”你怎么反驳他?1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?答: 软件工程是指导计算机软件开发和维护旳一门工程学科。

采用工程旳概念、原理、技术和措施来开发与维护软件, 把通过时间考验而证明对旳旳管理技术和目前可以得到旳最佳旳技术措施结合起来, 以经济地开发出高质量旳软件并有效地维护它。

软件工程本质特性: 1、软件工程关注于大型程序旳构造;2、软件工程旳中心课题是控制复杂性;3、软件常常变化;4、开发软件旳效率非常重要;5、友好地合作是开发软件旳关键;6、软件必须有效地支持它旳顾客;7、在软件工程领域中是由具有一种文化背景旳人替具有另一种文化背景旳人发明产品。

电大计算机本科软件工程 平时作业1答案

电大计算机本科软件工程 平时作业1答案

名词解释1.信息隐蔽信息隐蔽是指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。

2.集成测试集成测试也称组装测试或联合测试。

是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试。

组装模块的方式有两种:渐增式测试和非渐增式测试。

3.多态性多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。

不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。

4.CASECASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发。

CASE把软件开发技术、软件工具和软件开发方法集成到一个统一而一致的框架中,并且吸收了CAD(计算机辅助设计)、软件工程、操作系统、数据库、网络和许多其他计算机领域的原理和技术。

因而,CASE领域是一个应用、继承和综合的领域。

5.SA结构化分析方法是需求分析中使用最多的方法之一,适用于数据处理类型软件的需求分析。

基本思想是采用自顶向下,逐步分解的方法分析整个系统,有效地控制系统开发的复杂性。

简答题1.简述软件工程目标和面临的主要问题。

软件工程是一门工程性的学科,其目标主要是成功地建造一个大型软件系统。

包括:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。

面临的主要问题是:软件费用软件可靠性软件维护软件生产率软件重用。

2.简述结构化程序设计方法的基本要点。

(1)采用自顶向下,逐步求精的程序设计方法。

(2)使用三种基本控制结构构造程序,分别是顺序,选择和循环(3)采用主程序员组的组织形式。

3.简述文档在软件工程中的作用。

(1)提高软件开发过程的能见度(2)提高开发效率(3)作为开发人员阶段工作成果和结束标志(4)记录开发过程的有关信息便于使用与维护;(5)提供软件运行、维护和培训有关资料;(6)便于用户了解软件功能、性能。

软件工程 第一次作业 测验答案 慕课答案 作业一 UOOC优课 课后练习 深圳大学

软件工程 第一次作业 测验答案 慕课答案 作业一 UOOC优课 课后练习 深圳大学

软件工程第一次作业一、单选题(共50.00分)1. 需求分析阶段的任务是确定()。

A. 软件开发方法B. 软件开发工具C. 软件开发费用D. 软件系统的功能正确答案:D2. 应用增量模型进行开发需要软件具备()的软件结构。

A. 封闭式B. 开放式C. 分层D. 集中式正确答案:B3. 瀑布模型各阶段之间具有顺序性和()。

A. 反馈性B. 依赖性C. 同构性D. 统一性正确答案:B4. 清楚区分逻辑设计和(),是按瀑布模型开发软件的一条重要指导思想。

A. 抽象设计B. 物理实现C. 测试验证D. 需求分析正确答案:B5. 瀑布模型是由()驱动的。

A. 文档B. 交互C. 风险D. 测试正确答案:A6. 采用增量模型开发软件时,每次提交一个满足用户需求子集的()的产品。

A. 不包含用户界面B. 模拟C. 文档化D. 可运行正确答案:D7. 螺旋模型使用原型及其他方法来尽量()。

A. 减少代码量B. 降低风险C. 优化设计D. 以上都不正确正确答案:B8. ()描述了用户使用产品必须要完成的任务A. 功能需求B. 非功能需求C. 用户界面设计D. 以上都不正确正确答案:A9. DFD可用于描述()模型。

A. 数据B. 功能C. 行为D. 层次正确答案:B10. ()是复审需求分析成果时的焦点。

A. 代码B. 需求规格说明C. 模型D. 计划正确答案:C二、多选题(共25.00分)1. 软件是()的完整集合。

A. 程序B. 数据C. 相关文档D. 开发工具正确答案:A B C2. 1968年的()会议上提出了“软件工程”的概念。

A. NATOB. NASAC. CECD. ISO正确答案:A3. 采用快速原型模型开发软件时,原型系统可用于()。

A. 捕获和理解用户需求B. 帮助进行用户界面设计C. 支持软件结构设计D. 测试目标系统性能正确答案:A B4. DFD中的一个处理框可以表示()。

A. 单个程序B. 一系列程序C. 一个程序模块D. 人工处理过程正确答案:A B C D5. DFD的基本符号包括()。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

、简答题1、需求分析的任务答:需求分析的任务主要包括以下几项:确定目标系统的综合要求,其中包括(目标系统的功能、性能、运行的环境及扩展性要求);分析目标系统的数据要求,其中包括(系统平台需要哪些数据?数据间有什么关系?数据及数据结构?对数据的处理逻辑关系等);导出目标系统的逻辑模型;修正系统流程图;修正系统开发计划、开发原型系统2 、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题,具体表现在哪些方面?答:1、无法开发复杂程度高的软件2、成本和进度估计不准3、无统一科学的规范,软件不可维护4、无质量保证,可靠性差5、软件常不能满足用户的需求6、无适当的文档资料7、软件生产率太低选择题1 、从下列关于结构化程序设计的叙述中选出5 条正确的叙述。

①程序设计比较方便,但比较难以维护。

②便于由多个人分工编制大型程序。

③软件的功能便于扩充。

④程序易于理解,也便于排错。

⑤在主存储器能够容纳得下的前提下,应使模块尽可能大,以便减少模块的个数。

⑥模块之间的接口叫做数据文件。

⑦只要模块之间的接口关系不变,各模块内部实现细节的修改将不会影响别的模块。

⑧模块间的单向调用关系叫做模块的层次结构。

⑨模块越小,模块化的优点越明显。

一般来说,模块的大小都在10 行以下答:正确的叙述有②、③、④、⑦、⑧。

如果程序结构的模块化满足评价的标准(高内聚、低耦合),这样的结构是容易维护的,程序的功能也容易测试,容易理解、容易修改、容易维护的,程序的功能也容易扩充。

特别适合于大型程序编制时,多人分工全中作,协同完成任务的情形。

因为是采用自顶向下、逐层分解来划分解模块结构的,所以模块之间的调用关系是分层次的模块结构,就叫做模块的层次结构。

模块之间的信息传递叫做模块的接口,模块之间传递信息可以通过参数表、全局变量或全局数据结构、数据文件、专门模块太大,控制路径数目多、涉及的范围广、变量的数目多、总体复杂性高,可理解性、可修改性、可靠性就会变差。

模块太小,模块个数增多,调用的系统开销就会增大。

所以要有一个权衡2、供选择的答案中选出正确的答案填入下列叙述中的()内。

模块内聚性用于衡量模块内部各成分之间彼此结合的紧密程度。

(1)一组语句在程序中多处出现,为了节省内存空间把这些语句放在一个模块中,该模块的内聚性是(A)的。

(2)将几个逻辑上相似的成分放在同一个模块中,通过模块入口处的一个判断决定执行哪一个功能,该模块的内聚性是(B)的。

(3)模块中所有成分引用共同的数据,该模块的内聚性是(C)。

(4)模块内的某成分的输出是另一些成分的输入,该模块的内聚性是(D)的。

(5)模块中所有成分结合起来完成一项任务,该模块的内聚性是(E)的。

它具有简明的外部界面,由它构成的软件易于理解、测试和维护。

供选择的答案:A? E :①功能内聚②信息内聚③通信内聚④过程内聚⑤偶然内聚⑥时间内聚⑦逻辑内聚答:A.⑤偶然内聚;B.⑦逻辑内聚;C.③通信内聚;D.④过程内聚;E.①功能内聚;3、从下列叙述中选出5 条符合程序设计风格指导原则的叙述①嵌套的重数应加以限制。

②尽量多使用临时变量。

③不滥用语言特色。

④不用可以省略的括号。

⑤使用有意义的变量名。

⑥应尽可能把程序编得短些。

⑦把常见的局部优化工作留给编译程序去做。

⑧注解越少越好。

⑨程序的格式应有助于读者理解程序。

⑩应尽可能多用GOT (语句。

答:①、③、⑤、⑦、⑨是正确的。

①条件语句和循环语句嵌套得过多会增加程序的复杂性,从而增加程序的出错率。

③虽然国际上以至国内已经发表了编程语言的标准,但各个计算机厂商在推出自己的计算机系统的同时,也推出了针对自己机器特色的程序设计语言的非标准版本,如果利用这些语言的非标准特性编写程序,就会给将来程序的移植带来困难。

为了提高程序的可移植性,应当只使用语言的标准版本,不要滥用语言的非标准特色。

⑤给在程序中使用的变量赋予与实际含义相符的名字,可以提高程序的可读性,从而提高程序的可维护性。

⑦程序优化的工作最好交给编译程序来做,程序员应把主要注意力放在提高程序的可读性、清晰性、简洁性、正确性、一致性等方面,从而保证软件的可靠性和可维护性。

⑨程序的可读性是至关重要的,所以程序的格式应有助于读者理解程序4、由Rumbaugh 等人提出的一种面向对象方法叫做对象模型化技术(OMT ),即三视点技术,它要求把分析时收集的信息建立在下述3个模型中:第一个模型是(A )----它的作用是描述系统的静态结构,包括构成系统的对象和类、它们的属性和操作,以及它们这间的联系。

第二个模型是(B )----它描述系统的控制逻辑,主要涉及系统中各个对象和类的时序及变化状况。

(B )包括两种图,即(0和(D )。

( C )描 述每一类对象的行为, (D )描述发生于系统执行过程中的某一特定场景。

第三个模型是(巳----它着重于描述系统内部的数据的传送与处理,它由多个数据 流组成 供你选择的答案如下:1A ,B , E :①数据模型②功能模型 ③行为模型④信息模型 ⑤原型 ⑥动态模型 ⑩仿真模型⑦对象模型⑧逻辑模型⑨控制模型C ,D :①对象图 ②概念模型图 ③状态迁移图④数据流程图 ⑤时序图 ⑥事件追踪图 ⑩行为图⑦控制流程图⑧逻辑模拟图⑨仿真图A.⑦,B.⑥,C.③,D.⑥,E.②。

在OMT 中,把分析时收集的信息建立在是描述系统的静态结构,包括构成系统的对象和类、它们的属性和操作, 以及它们之间的联系。

第二个模型是动态模型,它描述系统的控制逻辑,主要涉及系统中各个对象和 类的时序及变化状况。

动态模型包括两种图,即状态迁移图和事件追踪图。

状态迁移图 描述每一类对象的行为,事个模型是功能模型,它着重于描述系统内部数据的传送与处理,5、从下列叙述中选出5条与提高软件的可移植性有关的叙述。

① 把程序中与计算机硬件特性有关的部分集成在一起。

② 选择时间效率和空间效率高的算法。

③ 使用结构化的程序设计方法。

④ 尽量用高级语言编写程序中对效率要求不高的部分。

⑤ 尽可能减少注释。

⑥ 米用表格控制方式。

3个模型中。

第一个模型是对象模型,它的作用件追踪图描述发生于系统执行过程中的某一特定场景第三它由多个数据流图组成。

⑦文档资料详尽、正确。

⑧在有虚拟存储器的计算机系统上开发软件。

⑨减少程序中对文件的读写次数。

⑩充分利用宿主计算机的硬件特性。

答:正确的叙述有①、③、④、⑥、⑦为了提高软件的可移植性,应当尽可能用高级语言编写源程序代码。

对于与硬件或操作系统有关的部分,或对效率要求很高的部分,应当为它们建立专门的模块,将用汇编语言写的程序封装在这些模块中,与程序中其他部分以事先约定的标准方式接口。

这样,一旦硬件环境或操作系统环境发生变化,只需修改这个别模块即可。

采用表格控制方式,将所有的外部设备接口或与其他系统的接口,包括信息传补递、驱动程序入口等都用表格控制,即使将来硬件、相关软件发生的变化,只需修改表格中的登记项,原来的程序一律可以不改。

为了将来修改方便,不致于引入新的错误,相关文档一定要齐全、正确,程序必须有必要的注释,并使用如结构化程序设计方法这样的良好程序设计方法来编写程序。

至于算法选择,与效率有关,与可移植性无关。

其他叙述,如⑧、⑨、⑩,都不利于可移植性。

三、论述题1.论述瀑布模型软件开发方法的基本过程。

答:瀑布模型软件开发方法将软件开发分成四个时期八个阶段:分析时期:1) 问题定义---问题性质、工程目标及规模2) 可行性研究--- 技术上、经济上、社会上是否有可行解?3) 需求分析---确定目标系统必须具备的功能?设计时期:4) 总体设计---1).几种求解方案;2).设计软件的结构5) 祥细设计---设计出程序的祥细规格说明编码与测试时期:6) 编码与单元测试--- 程序编码实现与模块测试7) 综合测试---集成测试和验收测试运行与维护时期:8) 维护---改正性维护、适应性维护、完善性维护、预防性维护特点:下导式开发、追溯式确认、适合能事先确切定义需求的软件开发2.为什么软件需要维护?维护有哪几种类型?简述它们的维护过程答:在软件开发成这交付用户使用后,为了保证软件在一个相当长的是时期有够正常运软件进行维行,不需要对护。

软件维护的为类型有4 种:改正性维护、适应性维护、完善性维护和预防性维护。

其中,改正性维护是要改正正在特定的使用条件下暴露出来的一些潜在程序错误或设计缺陷;适应性维护是要在软件使用过程中数据环境发生变化或处理环境发生变化时修改软件以适应这种变化;完善性维护是用户和数据处理人员使用软件过程中提出改进现有功能、增加新的功能,以及改善总体性能的要求后,修改软件以把这些要求纳入到软件之中。

由这些原因引起折维护活动可以归为以下几类: 预防性维护是为了提高软件的可维护性、可靠性等,事先采用先进的软件工程方法对面要维护的软件或软件中的某一部分 (重新)进行设计、编制和测试,为以后进一步改进软件打下良好的基础。

软件维护的过程如图7.19所示。

第一步是先确认维护要求。

这需要维护人员与用 户反复协商,弄清错误概况及对业务的影响大小,以及用户希望做什么样的修改,并把这些情况存入故障数据库。

然后,由维护组织管理员确认维护类型用户謹护人團对于改正维护申请,从评价错误的严重性开始工作。

如果存在严重的错误,则必须安排人员,在系统监督员的指导下,进行问题分析,寻找错误发生的原因,进行“救火”性的紧急维护;对于不严重的错误,可根据任务、 机时情况,视轻重缓急,进行 排队,统一安排时间。

对于适应性维护和完善性维护申请, 需要先确定每项申请的优先次序。

若某项早请的优先级非常高,就可立即开始维工作,否则,维护申请和其他的开发工作一样,进行排队, 统一安排时间。

并不能所有的完善性维护申请都必须承担,因 为进行完善性维护等于是做二次开发,工作量大,所以需要根据商业需要、可利用资源的情况、目前和将来软件的发展向以及其他考虑,决定是否承担。

定改求明护型改正性7爆护幵ttH廿析K\安丨耀解穫序?借析廉设计维护 安擅计划实薦修改建序9适 应 性祀错谋改1E 列人计划A员丿?安忧先战序高?开妬低把安帶好肘幵发 工作*列入计划分析攜试程序修改[过的 软件MW通过井査荷、 使用的戟杵安排ffILW 牧件錐护的过程尽管维护申请的类型不同,但都要进行同样的技术工作。

这此工作有修改软件的需求说明,修改软件设计、设计评审、对源程做必要的修改、单元测试、集成测试(回归测试)、确认测试、软件配置评审等。

在每次软件维护任务完成后,最好进行一次情况评审,对以下问题做一总结:(1)在目前情况下,设计、编码、测试中的哪一方面可以改进?( 2) 哪些维护资源应该有但没有? (3) 工作中主要的或次要的障碍是什么?( 4) 从维护申请的类型来看是否应当有预防性维护? 情况评审对将来的维护工作如何进行会产生重要的影响, 重要的反馈信息。

相关文档
最新文档