现代软件工程作业

现代软件工程作业
现代软件工程作业

(一)名词解释

1.软件:

软件是计算机程序、数据以及相关的各种文档的集合。

2.软件危机

软件危机是在软件发展第二阶段末期的规模较大的项目开发中,出现了与当初的计划推迟交工、费用比预算大幅度上升、不能满足用户要求、可靠性低、维护困难等问题,导致了软件危机。

3.数据流图

数据流图是以图形的方式描述数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能,是一种功能模型。

4.数据字典、

数据字典是用来定义数据流图中的各个成分的具体含义的。它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。

5.变换流

变换流指数据流图(简称DFD)具有明显的输入、变换和输出界面。

6.事务流

事务流指数据流图中输入流被分离成许多数据流,形成许多加工路径,并根据输入值选择其中一条路径来执行。

7.耦合性

耦合性也称块间关系,指软件系统结构中各模块间相互联系紧密程度的一种度量。

8.内聚性

内聚性又称块内联系,指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。

9.程序设计语言(PDL)

程序设计语言(简称PDL),又称伪码,它是一种用于描述模块算法设计和处理细节的语言。

(二)填空题

1. 在信息处理和计算机领域内,一般认为软件是_程序____、__文档___ 和__数据___ 。

2. 数据流图的基本组成部分有_数据流__、_加工_、_数据存储_、_数据源点或终点_。

3. 数据流图和数据字典共同构成了系统的__逻辑_模型,是需求规格说明书的主要组成部分。

4. 数据流图一般可分为_变换型_和_事务型_两类。

5. 结构化设计方法中,要把数据流图转换成软件结构,若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行,这种特征的DFD称为_事务型_数据流图。

6. PDL是描述处理过程“_怎么做_ ”的细节,结构化语言是描述加工“_做什么_ ”的。

(三)选择题

1. 软件工程的概念是哪年提出的(B )。

A. 1988

B. 1968

C. 1948

D. 1928

2. 影响输入输出风格的因素不包括(A )。

A. 数据状态

B. 通信环境

C. 用户经验

D. 输入/输出设备

3. 符合数据说明顺序规范的是(D )。

A. 全程量说明、局部量说明、类型说明、常量说明

B. 全程量说明、局部量说明、常量说明、类型说明

C. 类型说明、常量说明、全程量说明、局部量说明

D. 常量说明、类型说明、全程量说明、局部量说明

4. 瀑布模型的关键不足在于(D )。

A. 过于简单

B. 各个阶段需要进行评审

C. 过于灵活

D. 不能适应需求的动态变更

5. 以下哪一项不是软件危机的表现形式(C )。

A. 开发的软件不满足用户需要

B. 开发的软件可维护性差

C. 开发的软件价格便宜

D. 开发的软件可靠性差

6. 软件可行性研究实质上是要进行一次( A)需求分析、设计过程。

A. 简化、压缩的

B. 详细的

C. 彻底的

D. 深入的

7. 结构化设计是一种面向(A )的设计方法。

A. 数据流

B. 模块

C. 数据结构

D. 程序

8. 与确认测试阶段有关的文档是(A )。

A. 需求规格说明书

B. 概要设计说明书

C. 详细设计说明书

D. 源程序

9. 软件开发的需求活动,其主要任务是(D)。

A. 给出软件解决方案

B. 给出系统模块结构

C. 定义模块算法

D. 定义需求并建立系统模型

10. 需求分析阶段的研究对象是(A)。

A. 用户要求

B. 分析员要求

C. 系统要求

D. 软硬件要求

11. 可自动生成程序的详细设计方法是(D )。

A. 流程图

B. IPO图

C. 盒图

D. PAD图

12. 可行性研究采用(B)概括说明软件系统的物理模型。

A. 数据字典

B. 系统流程图

C. 数据流图

D. 成本-效益分析

(四)简答题

1. 简述瀑布模型的阶段划分和各阶段的主要任务以及瀑布模型存在的问题。

1. 瀑布模型的阶段划分和各阶段的任务为:

(1) 需求分析和定义

根据系统的使用者(需方)需求进行具体分析,制定系统应完成的功能、目标、各项服

务和限制,确定工作范围和所花费的代价。并且以用户和软件开发人员都能理解的形式加以定义和明确。

(2) 系统和软件设计

先把用户的需求分成硬件需求和软件需求,在此基础上确定整个系统的结构。在软件设计中,进一步把用户的要求和系统的目标在软件系统的各项功能中表现出来,并分别使之达到能够进行程序设计的程度。

(3) 编程和单元测试

在这个阶段中,软件的设计已经以程序集合或单元程序的形式完成,并包含了验证各个单元程序是否满足式样要求的单元测试。

(4) 综合测试和系统测试

把各个单元程序和程序组结合起来,作为一个完整的系统进行测试。在这种测试中,一方面要发现和排除系统或程序中的错误,更重要的是要确认已完成的系统是否满足用户和设计者的要求。测试后,把这个软件提供给用户。

(5) 运行和维护

运行和维护是软件生存期中需要时间较长的一个阶段,在这一阶段,系统被实际装入并实际应用,那些在软件开发初期没有被发现的错误,或者是用户提出新的要求,都需要在这一阶段加以解决。

瀑布模型的问题之一是对软件工程中的反复性质认识不足,另外还有一个缺点是在开发工程的初期,就必须把规格式样确定下来,而在有些情况下,由于用户的需求不明确,某些规格式样开始是不太好确定的。软件工程是复杂的、多变的工程,用单纯的线性模型很难完全表示出来。

2. 简述SA方法的优缺点。

SA方法是软件需求分析中公认的、有成效的、技术成熟、使用广泛的一种分析方法。较适用于开发数据处理类型软件的需求分析。利用图形等半形式化工具表达需求,简明、易读,也易于使用。但也存在一些弱点,表现如下:

SA方法仅是一个静态模型,没有反映处理的顺序,即控制流程,因此,不适合描述实时控制系统。

SA方法使用DFD在分析与描述“数据要求”方面是有局限的,只有与数据库技术中

的实体联系图(ER图)结合起来,才能较完整地描述用户对系统的需求。

DFD不适合描述人机界面系统的要求、如一些人机交互较频繁的软件系统。

SA方法要与形式化方法结合起来,才能更精确地描述软件需求。

要借助需求分析工具,提高需求分析的质量及效率。

3. 变换分析设计与事务分析设计有什么区别?简述其设计步骤。

变换分析设计是一个顺序结构,由输入、变换和输出三部分组成,其工作过程有3步:取得数据、变换数据和给出数据。事务分析设计是将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行。二者区别:变换分析设计适用于具有明显变换特征的数据流图,事务分析设计适用于具有明显事务特征的数据流图。

变换分析设计步骤:

①确定DFD中的变换中心、逻辑输入和逻辑输出:

从物理输入端开始,沿着数据流方向向系统中心寻找,直到有这样的数据流,它不能再被看做是系统的输入,则它的前一个数据流是系统的逻辑输入。

从物理输出端开始,逆数据流方向向中间移动,可以确定系统的逻辑输出。

介于逻辑输入和逻辑输出之间的加工就是变换中心,即主加工。

②设计软件结构的顶层和第一层——变换结构:

顶层即主模块,主要完成所有模块的控制。

第一层至少有3个功能模块:输入、输出和变换模块,即为逻辑输入设计一个输入模块,其功能是为顶层模块提供相应数据,为逻辑输出设计一个输出模块,其功能是输出顶层模块的信息,为变换中心设计一个变换模块,其功能是将逻辑输入进行变换加工,然后逻辑输出。

③设计中、下层模块。对第一层的输入、变换、输出模块自顶向下逐层分解。

输入模块下属模块的设计:可设计两个下属模块,一个接收,一个转换。

输出模块下属模块的设计:可设计两个下属模块,一个转换,一个发送。

变换模块下属模块的设计:按照模块独立性原则来组织其结构,一般对每个基本加工建立一个功能模块。

④设计的优化:

输入部分求精:为每个物理输入设置专门模块,其他输入模块与转换数据模块可适当合并。

输出部分求精:为每个物理输出设置专门模块,其他输出模块与转换数据模块可适当合

并。

变换部分求精:根据设计准则,对模块进行合并或调整。

事务分析设计步骤:

①确定DFD的事务中心和加工路径:当数据流图中每个加工将一个输入数据分解成多个发散的输出数据流时,该加工就是事务中心,从事务中心辐射出去的数据流为各个加工路径。

②设计软件结构的顶层和第一层——事务结构。

顶层是一个全控模块,有两个部分:接收分支(与变换型DFD的输入部分设计方法相同)和发送分支(即调度模块,它控制管理所有下层的事务处理模块)。

③设计中、下层模块、优化等工作,与变换分析设计相同。

(五)应用题

某单位住房分配方案如下:所有住户50平方米以内每平方米1000元,超过50平方米后:在本人住房标准面积以内每平方米1500元,其中住房标准为:教授105平方米,副教授90平方米,讲师75平方米;标准面积以外每平方米4000元。请用判定表和判定树表示各条件组合与费用之间的关系。

S表示住房面积,M表示住房费用。

条件取值表

判定表

1234567891

01

1

1 2

住房面积L L B B L L B B L L B B 职务P P P P F F F F J J J J 超标与否C W C W C W C W C W W C 费用=1000*S√√√√√√

费用=1000*50+(S-50)*1500√√

费用

=1000*50+(105-50)*1500+(S-105)

*4000

费用

=1000*50+(90-50)*1500+(S-90)

*4000

费用

=1000*50+(75-50)*1500+(S-75)

*4000

判定树

参考答案:

(一)名词解释

1. 软件是计算机程序、数据以及相关的各种文档的集合。

2. 软件危机是在软件发展第二阶段末期的规模较大的项目开发中,出现了与当初的计划推迟交工、费用比预算大幅度上升、不能满足用户要求、可靠性低、维护困难等问题,导致了软件危机。

3. 数据流图是以图形的方式描述数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能,是一种功能模型。

4. 数据字典是用来定义数据流图中的各个成分的具体含义的。它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。

5. 变换流指数据流图(简称DFD)具有明显的输入、变换和输出界面。

6. 事务流指数据流图中输入流被分离成许多数据流,形成许多加工路径,并根据输入值选择其中一条路径来执行。

7. 耦合性也称块间关系,指软件系统结构中各模块间相互联系紧密程度的一种度量。

8. 内聚性又称块内联系,指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。

9. 程序设计语言(简称PDL),又称伪码,它是一种用于描述模块算法设计和处理细节的语言。

(二)填空题

1. 程序文档数据

2. 数据流加工数据存储数据源点或终点

3. 逻辑

4. 变换型事务型

5. 事务型

6. 怎么做做什么

(三)选择题

1.B

2.A

3.D

4.D

5.C

6.A

7.A

8.A

9. D 10. A 11.D 12. B

(四)简答题

1. 瀑布模型的阶段划分和各阶段的任务为:

(1) 需求分析和定义

根据系统的使用者(需方)需求进行具体分析,制定系统应完成的功能、目标、各项服务和限制,确定工作范围和所花费的代价。并且以用户和软件开发人员都能理解的形式加以定义和明确。

(2) 系统和软件设计

先把用户的需求分成硬件需求和软件需求,在此基础上确定整个系统的结构。在软件设计中,进一步把用户的要求和系统的目标在软件系统的各项功能中表现出来,并分别使之达到能够进行程序设计的程度。

(3) 编程和单元测试

在这个阶段中,软件的设计已经以程序集合或单元程序的形式完成,并包含了验证各个单元程序是否满足式样要求的单元测试。

(4) 综合测试和系统测试

把各个单元程序和程序组结合起来,作为一个完整的系统进行测试。在这种测试中,一方面要发现和排除系统或程序中的错误,更重要的是要确认已完成的系统是否满足用户和设计者的要求。测试后,把这个软件提供给用户。

(5) 运行和维护

运行和维护是软件生存期中需要时间较长的一个阶段,在这一阶段,系统被实际装入并实际应用,那些在软件开发初期没有被发现的错误,或者是用户提出新的要求,都需要在这一阶段加以解决。

瀑布模型的问题之一是对软件工程中的反复性质认识不足,另外还有一个缺点是在开发工程的初期,就必须把规格式样确定下来,而在有些情况下,由于用户的需求不明确,某些规格式样开始是不太好确定的。软件工程是复杂的、多变的工程,用单纯的线性模型很难完全表示出来。

2. SA方法是软件需求分析中公认的、有成效的、技术成熟、使用广泛的一种分析方法。较适用于开发数据处理类型软件的需求分析。利用图形等半形式化工具表达需求,简明、易读,也易于使用。但也存在一些弱点,表现如下:

SA方法仅是一个静态模型,没有反映处理的顺序,即控制流程,因此,不适合描述实时控制系统。

SA方法使用DFD在分析与描述“数据要求”方面是有局限的,只有与数据库技术中的实体联系图(ER图)结合起来,才能较完整地描述用户对系统的需求。

DFD不适合描述人机界面系统的要求、如一些人机交互较频繁的软件系统。

SA方法要与形式化方法结合起来,才能更精确地描述软件需求。

要借助需求分析工具,提高需求分析的质量及效率。

3. 变换分析设计是一个顺序结构,由输入、变换和输出三部分组成,其工作过程有3步:取得数据、变换数据和给出数据。事务分析设计是将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行。二者区别:变换分析设计适用于具有明显变换特征的数据流图,事务分析设计适用于具有明显事务特征的数据流图。

变换分析设计步骤:

①确定DFD中的变换中心、逻辑输入和逻辑输出:

从物理输入端开始,沿着数据流方向向系统中心寻找,直到有这样的数据流,它不能再被看做是系统的输入,则它的前一个数据流是系统的逻辑输入。

从物理输出端开始,逆数据流方向向中间移动,可以确定系统的逻辑输出。

介于逻辑输入和逻辑输出之间的加工就是变换中心,即主加工。

②设计软件结构的顶层和第一层——变换结构:

顶层即主模块,主要完成所有模块的控制。

第一层至少有3个功能模块:输入、输出和变换模块,即为逻辑输入设计一个输入模块,其功能是为顶层模块提供相应数据,为逻辑输出设计一个输出模块,其功能是输出顶层模块的信息,为变换中心设计一个变换模块,其功能是将逻辑输入进行变换加工,然后逻辑输出。

③设计中、下层模块。对第一层的输入、变换、输出模块自顶向下逐层分解。

输入模块下属模块的设计:可设计两个下属模块,一个接收,一个转换。

输出模块下属模块的设计:可设计两个下属模块,一个转换,一个发送。

变换模块下属模块的设计:按照模块独立性原则来组织其结构,一般对每个基本加工建立一个功能模块。

④设计的优化:

输入部分求精:为每个物理输入设置专门模块,其他输入模块与转换数据模块可适当合并。

输出部分求精:为每个物理输出设置专门模块,其他输出模块与转换数据模块可适当合并。

变换部分求精:根据设计准则,对模块进行合并或调整。

事务分析设计步骤:

①确定DFD的事务中心和加工路径:当数据流图中每个加工将一个输入数据分解成多

个发散的输出数据流时,该加工就是事务中心,从事务中心辐射出去的数据流为各个加工路径。

②设计软件结构的顶层和第一层——事务结构。

顶层是一个全控模块,有两个部分:接收分支(与变换型DFD的输入部分设计方法相同)和发送分支(即调度模块,它控制管理所有下层的事务处理模块)。

③设计中、下层模块、优化等工作,与变换分析设计相同。

(五)应用题

S表示住房面积,M表示住房费用。

条件取值表

判定表

1

B

J

C

费用=1000*50+(S-50)*1500√√

费用

=1000*50+(105-50)*1500+(S-105)

*4000

费用

=1000*50+(90-50)*1500+(S-90)

*4000

费用

√=1000*50+(75-50)*1500+(S-75)

*4000

判定树

研究生现代软件工程期末考试试题

2013年研究生现代软件工程期末考试 2014年6月20日 某软件企业已经具有5年以上的开发经历,为了进一步拓展市场和提升市场竞争能力,在三个项目组以及SQA小组选拔了一些技术骨干作为SEPG小组成员,期望在公司内部推广CMM,争取3年之内能够通过CMM3的评级认证。 公司管理层要求一年内通过CMM2评级,第三年申请CMM3的资质认证并争取通过评审。为此,三个项目组的项目经理与SEPG和SQA小组成员共同商讨如何能够满足近期和远期目标。经了解,发现三个项目组的管理方式各不相同,开发方法也不统一:项目组A:采用传统的演化模型并使用基于数据流图的结构化方法进行系统开发; 项目组B:采用基于面向对象方法的UP模型进行系统开发; 项目组C:采用极限编程方法进行开发; 问题一:SEPG要求各项目组的项目经理给出各自项目组的基于里程碑的软件开发过程及相应的文档编制计划。 问题二:为了CMM3的目标SEPG根据各小组的软件开发过程决定采用通用的面向对象方法定义一个公司级的统一软件工程过程并给出基于KPA组织过程定义必须执行的活动(Key Practices)。 问题三:SQA小组基于SPEG定义的公司级的软件工程过程,参考ISO的质量模型开始着手制定CMM3需要的针对软件需求分析阶段的质量评估模型及其必须的尺度度量准则。 除此之外,项目组A各人员组成的工资待遇如下:1、项目经理:12000;2、工程师_X:5000;3、工程师_Y:6500;4、工程师_Z:3000;公司规定项目经理有权掌握项目40%经费进行管理,其中包括项目组的人员成本和平时加班补贴(平时加班按工资的2倍支付,国家法定假日3倍支付)。此时,公司交付给项目组A一个必须在2个月完成的项目,要求项目必须按照客户的具体需求完成分析、设计和开发任务,并能实现20%的利润,同时项目经理自己也打算给自己保留5%经费作为自己奖励。具体需求如下: 有一个医院期望开发一个《医院取药告知管理系统》。该系统要求实现病人在交费处使用自己的就医卡交费完毕后,系统会根据当前的取药人数分配取药窗口和相应的药剂师。每个窗口的药剂师按顺序使用系统,并接收系统分配的菜单。药剂师配药完成后使用系统功能显示并通知病人取药。 每个取药窗口有一个大屏幕显示取药的病人名称,每个人取药时间为2分钟并反复显示并广播病人的姓名;超过两分钟没来取药的病人信息会转到屏幕下方的滚动条滚动显示,可以显示多人姓名。取过药的病人信息随即被清除。取药大厅设置多台自动查询机,病人使用就医卡扫描后,查询机会显示病人姓名、取药窗口号以及在本病人之前未取药的人数或者是否处于超时等待取药。 作为项目经理,请根据上述功能需求回答以下问题: 问题四:给出该系统的功能列表(以用例表示)开发和后期维护的报价。 问题五:给出系统开发的进度安排,并确定关键任务路径上的人员安排使得项目进度效率最高且成本最低。 问题六:请根据自己熟悉的编程语言估算该系统的KLOC、C K(技术状态常数),并由此根据“软件工程”计算该系统开发的工作量。 问题七:给出开发周期内TOP5的风险因素。

现代软件工程课程报告

现代软件工程与实践 课程考核报告 题目铁路售票系统 专业班级 姓名 指导教师 2020年月日

目录 1 需求分析 (1) 1.1 需求概述 (1) 1.2 需求分析 (1) 1.3 需求模型(用例图) (4) 2 静态模型 (9) 2.1 类图 (9) 2.2 对象图 (10) 2.3 包图 (11) 3 动态模型 (12) 3.1 时序图 (12) 3.2 状态图 (13) 3.3 协助图 (14) 3.4 活动图 (15) 4 总结 (15) 5 参考资料 (16)

1 需求分析 1.1需求概述 网络火车票售票系统是一款功能强大、操作简便、易维护的、具有良好人机交互界面的线上订票系统,它包括系统设置模块、票务信息模块、订票管理模块、实时信息模块、数据管理模块。实现火车票线上预定的自动化的计算机系统,能够为旅客提供准确、精细、迅速的火车票销售信息和方便、简单的订票功能。 网络火车票售票系统主要是对于订票信息的统一管理,满足了中小型线上订票网站对于用户的管理订票信息的收集和处理方面的要求。用现代化的方式取代以前的传统模式更有利于信息的流通资源的宏观管理。具有体积小、代码简洁、易维护、易修改的优点。 系统模块图 1.2需求分析 网上订票系统主要提供的服务有:站点信息管理服务、车次信息管理服务、网民订票服务和网民取票服务,具体如下: (1)站点信息管理----铁路工作人员根据实时站点路况实时反馈站点信息; (2)车次信息管理----铁路工作人员发布实时车次信息; (3)订票服务----网民在订票系统预定自己所需的车票; (4)取票服务----订票成功的网民,凭借订票号码到售票处,售票员输入订票码后,提取处网民的预定信息,然后收款付款,发票。 1.2.1 系统设置模块

软件工程(习题与参考答案)

第1章概述(习题与参考答案) [判断题] 1. 由于今天个人计算机不断发展壮大,人们不再采用软件团队的开发方式。(×) 2. 由于软件是产品,因此可以应用其他工程制品所用的技术进行生产。(×) 3. 购买大多数计算机系统所需的硬件比软件更昂贵。(×) 4. 大多数软件产品在其生命周期中不需要增强功能。(×) 5. 大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。(√) 6. 一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。(×) [选择题] 1. ()因素促使计算机系统越来越复杂。(D) A. 计算机内存和存储容量上的巨大增长 B. 外部输入/输出选项的更加多样性 C. 计算机体系结构方面的深刻变化 D. 以上所有选项 2. 下面的()不再是现代软件工程师关注的问题。(A) A. 为什么计算机硬件的成本这么高? B. 为什么软件需要很长时间才能完成? C. 为什么开发一个软件的成本这么高? D. 为什么不能在产品发布前去除软件错误? 3. 软件会逐渐退化而不会磨损,其原因在于()。(C) A. 软件通常暴露在恶劣的环境下 B. 软件错误通常发生在使用之后 C. 不断的变更使组件接口之间引起错误 D. 软件备件很难订购 4. 大多数软件仍然是定制开发的,其原因在于()。(C) A. 软件组件重用是十分普遍的 B. 可重用的组件太昂贵而无法使用 C. 软件在不使用其他组件的情况下很容易构造出来 D. 商业组件在很多应用领域中可以得到 5. 下面的()说法是正确的。(C) A. 软件危机在20世纪70年代末期全面爆发

B. 当前先进的软件工程方法已经解决了软件危机的问题 C. 软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题 D. 软件危机是指在软件产品中存在一系列的质量问题 6. 软件工程的基本目标是()。(B) A. 消除软件固有的复杂性 B. 开发高质量的软件 C. 努力发挥开发人员的创造性潜能 D. 更好地维护正在使用的软件产品 7. ()是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方 法、工具和过程三个要素。(D) A. 软件产品 B. 软件过程 C. 软件测试 D. 软件工程 8. 软件工程的基本要素包括方法、工具和()。(C) A. 软件系统 B. 硬件环境 C. 过程 D. 人员 9. 软件工程师在从事软件工作时应使用下面的()准则。(E) A. 从来不为个人获利而窃取数据 B. 从来不散布或出售项目中自己工作的信息 C. 从来不故意毁坏或修改别人的程序、文件或数据 D. 从来不侵犯个人、小组或组织的隐私 E. 以上所有选项 第2章软件过程(习题与参考答案) [选择题] 1. ()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、 软件确认、软件改进等活动组成。(A) A. 软件过程 B. 软件工具 C. 软件产品 D. 软件工程 2. 软件过程的基本活动是()。(A) A. 分析、设计、实现、测试、演化 B. 沟通、计划、建模、构造、部署 C. 计划、分析、设计、实现、调试 D. 沟通、风险管理、度量、产品化、评审 3. ()软件需求规格说明书在软件开发过程中具有重要的作用,它是软件可行性分析的依据。(B) A. 真 B. 假

现代软件工程(复习1)

软件的定义:(1)指令的集合,通过执行这些指令可以满足预期的特征、功能和性能需求;(2)数据结构,它使得程序可以充分利用信息;(3)描述程序操作和使用的文档 遗留软件的定义:年代久远的过时的软件。 软件如其他工程原则制造的制品的区别:软件传递了我们这个时代最重要的产品——信息。 软件特征和硬件特征的区别:(1)软件是设计开发的,而不是传统意义上生产制造的。(2)软件不会“磨损”。 (3)虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是根据实际的顾客需求定制的。 为什么说软件不会随着时间而演化的说法是错误的:不管其应用领域、软件规模或者复杂性如何不同,计算机软件都将随着时间的推移不断演化。软件维护推动了软件演化,它通常是由以下情况引发的:程序纠错,调整软件以适应新的环境,满足用户新特性和功能的需求,以及对软件实施再工程以便在现代应用中发挥作用。 软件生命周期:软件的产生知道报废的生命周期,包括问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级和废弃。 软件工程的四个层次及之间的关系:工具、方法、过程和质量关注点。软件工程的根基在于质量关注点;软件工程的基础是过程层;软件工程方法为构造软件提供技术上的解决方法;软件工程工具为过程和方法提供自动或半自动化的支持。 软件工程的主要目标是什么?基本目标是什么? 软件工程的目标:从管理和技术两个方面开发和维护计算机软件,用低成本,开发出达标、高性能、易于移植、可靠性高的软件。 软件工程的基本目标是:优质、高产。 软件构建与软件部署的区别:软件构建是程序员对软件进行编码和测试,是基于程序员的;软件部署是用户对软件成品的使用和反馈,是基于客户的。 软件过程的定义:(1)将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。(2)在(1)所述方法的研究。 软件开发的原型模型的各个阶段:沟通、快速策划、建模快速设计、构建原型和部署交付品及反馈;循环执行以上步骤。 随着时间的推移,为什么软件需要不断演化? (1)环境运行环境的变化(2)用户需求的变化(3)用户业务需求的变化 软件工程中基于构件的软件过程模型的主要优势:基于构件开发模型能够使软件复用,软件复用为软件工程师带来极大收益。 在目前环境下,为什么说增量过程模型被认为是最佳的软件开发方法:早期的增量可以有少量的人员实现;增量可以规避技术风险。 ------------------------------------------------------------------------------------------------------------------------------------------------------------ 软件工程的通用框架以及框架活动:沟通、策划、建模、构建和部署;其中建模包括创建模型和设计,构建包括编码和测试。 惯例模型:规定了一套过程元素(框架活动、软件工程动作、任务、工作产品、质量保证以及每个项目的变更控制机制) ①瀑布模型 定义:传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述。 瀑布模型的特点:1.阶段间具有顺序性和依赖性;2.推迟实现的观点;3.质量保证的观点。瀑布模型的成功在很大程序上是由于它基本上是一种文档驱动的模型。 瀑布模型的主要优点:a.可强迫开发人员采用规范的技术方法; b.严格地规定了每个阶段必须提交的文档; c.每个阶段结束前必须正式进行严格的技术审查和管理复审。 瀑布模型的主要缺点:在可运行的软件产品交付给用户之前,用户只能通过文档来了解未来的产品是什么样的。 开发人员和用户之间缺乏有效的沟通,很可能导致最终开发出的软件产品不能真正满足用户的需求。 ②快速原型模型 定义:所谓“快速原型”,是快速建立起来的、可在计算机上运行的程序,它所能完成的功能往往是最终的软件

《现代软件工程》作业.

《现代软件工程》作业 作业一: (一)名词解释 1.软件危机 2.数据流图 3.数据字典 4.变换流 5.事务流 6.耦合性 7.内聚性 8.程序设计语言(PDL) (二)填空题 1. 在信息处理和计算机领域内,一般认为软件是_____、_____ 和_____ 。 2. 数据流图的基本组成部分有_____、_____、_____、_____。 3. 数据流图和数据字典共同构成了系统的_____模型,是需求规格说明书的主要组成部分。 4. 数据流图一般可分为_____和_____两类。 5. 结构化设计方法中,要把数据流图转换成软件结构,若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行,这种特征的DFD称为_____数据流图。 6. PDL是描述处理过程“_____ ”的细节,结构化语言是描述加工“_____ ”的。 (三)选择题 1. 软件工程的概念是哪年提出的( )。 A. 1988 B. 1968 C. 1948 D. 1928 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. 结构化设计是一种面向( )的设计方法。 A. 数据流 B. 模块

现代软件工程平时作业及答案

(一)名词解释 1.软件 2.软件危机 3.数据流图 4.数据字典 5.变换流 6.事务流 7.耦合性 8.内聚性 9.程序设计语言(PDL) (二)填空题 1. 在信息处理和计算机领域内,一般认为软件是_____、_____ 和_____ 。 2. 数据流图的基本组成部分有_____、_____、_____、_____。 3. 数据流图和数据字典共同构成了系统的_____模型,是需求规格说明书的主要组成部分。 4. 数据流图一般可分为_____和_____两类。 5. 结构化设计方法中,要把数据流图转换成软件结构,若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行,这种特征的DFD称为_____数据流图。 6. PDL是描述处理过程“_____ ”的细节,结构化语言是描述加工“_____ ”的。 (三)选择题 1. 软件工程的概念是哪年提出的( )。 A. 1988 B. 1968 C. 1948 D. 1928 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. 结构化设计是一种面向( )的设计方法。 A. 数据流 B. 模块 C. 数据结构 D. 程序 8. 与确认测试阶段有关的文档是( )。

现代软件工程作业

(一)名词解释 1.软件: 软件是计算机程序、数据以及相关的各种文档的集合。 2.软件危机 软件危机是在软件发展第二阶段末期的规模较大的项目开发中,出现了与当初的计划推迟交工、费用比预算大幅度上升、不能满足用户要求、可靠性低、维护困难等问题,导致了软件危机。 3.数据流图 数据流图是以图形的方式描述数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能,是一种功能模型。 4.数据字典、 数据字典是用来定义数据流图中的各个成分的具体含义的。它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。 5.变换流 变换流指数据流图(简称DFD)具有明显的输入、变换和输出界面。 6.事务流 事务流指数据流图中输入流被分离成许多数据流,形成许多加工路径,并根据输入值选择其中一条路径来执行。 7.耦合性 耦合性也称块间关系,指软件系统结构中各模块间相互联系紧密程度的一种度量。 8.内聚性 内聚性又称块内联系,指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。 9.程序设计语言(PDL) 程序设计语言(简称PDL),又称伪码,它是一种用于描述模块算法设计和处理细节的语言。 (二)填空题 1. 在信息处理和计算机领域内,一般认为软件是_程序____、__文档___ 和__数据___ 。 2. 数据流图的基本组成部分有_数据流__、_加工_、_数据存储_、_数据源点或终点_。 3. 数据流图和数据字典共同构成了系统的__逻辑_模型,是需求规格说明书的主要组成部分。 4. 数据流图一般可分为_变换型_和_事务型_两类。 5. 结构化设计方法中,要把数据流图转换成软件结构,若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行,这种特征的DFD称为_事务型_数据流图。

现代软件工程在软件开发中的应用论文

现代软件工程在软件开发中的应用论文 随着近年来社会主义市场经济的迅猛发展越来越多的科技产品逐渐为人们所了解和关注正如我们所知科技产品的运行离不开相应软件软件的结构和特性决定了其能否在开发软件的过程中得以更好的运用因此软件工程的合理选择对于现代软件的开发就有了十分重要的意义本文旨在对软件开发过程中现代软件工程的应用进行解读希望能起到抛砖引玉的作用 科学技术的进步推动着软件工程向新的层次迈进现代软件工程方法也渐渐取代了过去传统软件工程方法在软件开发过程中的作用成为越来越多软件开发团队的选择而过去传统软件工程方法所具备的优势也愈发不明显在这一背景下许多人开始使用新的软件开发技术但同时却常常忽视了磨合期的必要性导致所开发出的软件存在各种问题接下来笔者将就这一问题谈谈自己的认识 1过去传统软件工程方法分析 一般来说传统软件工程方法大多采用结构化样式由若干程序构件组成在使用时需要进行问题的定义与概括此后还需对解决该问题的工程实施进行可能性与必要性的整体分析得出采用该工程方法所必须满足的各项要求随后进行应用方法的系统构建在完成整体建构之后还需分层次地对内容进行详细建构最后再在完成软件代码的编写之后对软件性能进行检测在必要情况下还需对其中的弊端和漏洞进行维护和修整确保其能够满足相应要求

需求分析可谓是这一系列复杂环节之中最为关键的步骤只有对需求有充分的了解并在软件之中进行回应才能确保所开发的产品能够迎合大众需求进而取得成功另外系统建构的重要性也是毋庸置疑的从层次到整体内容的建构都应将需求作为设计标准并参照相关的软件数据做到具体问题具体分析一般而言建构方法主要有状态图、数据关系图、数据流动图像等几种结构图在建构程序中的应用比较普遍也是常见的系统建构方法而层次结构中所用的则更多以程序图标编码方式为主 2现代软件工程方法分析 与传统软件工程方法相比现代软件工程方法的优势在于所针对的对象更加具体处理的弊端与问题也都是具体存在的这彻底解决了传统软件工程方法中最大的不足和缺陷 现代软件工程方法主要由五部分构成: (1)分析; (2)设计; (3)编码; (4)测试; (5)维护 尽管这与传统软件工程方法基本类似但现代软件工程方法的长处与优点也正是体现在各个细节之中例如传统的软件工程方法在分析时更加笼统不具有存在的问题和对象而现代软件工程方法则是对

现代软件工程第四章答案

习题四参考答案 1. 交互设计具体采用什么方法进行?有哪些设计手段和过程? 交互设计使用目标导向的设计方法,包括角色设计、目标设计、任务设计和人性化设计等几种方法。其中角色设计是虚构软件的潜在用户并进行精确的定义和设计,目标设计是提炼角色的目标,任务设计是角色为达到某个目标而必须执行的任务进行简洁的描述,也就是进行行为设计,最后进入界面设计阶段。 交互设计的手段 首先考虑什么人会使用产品?用在什么地方?接下来要了解用户会有些什么样的行为?交互设计的关键在于如何优化用户与产品之间的交互,从而使产品满足用户的期望。在做选择的时候你应当有所依据,而这个依据就是对用户的理解。这就涉及到: 考虑人们擅长什么、不擅长什么。 考虑什么可能对用户的当前做法有所帮助。 考虑如何提供高质量的用户体验。 听取人们想要些什么,并让他们参与设计。 在设计过程中,让用户来尝试和验证。 交互设计的过程 一般来说,交互设计涉及以下4项基本活动: (1)理解用户需要,建立用户需求 开发人员必须了解谁是目标用户、他们需要哪些支持,才可能设计出能支持这些用户的产品。首先找到真正的用户,然后从他们那里找到需求。用户和他们的需求是所有设计、开发工作的基础。在“以用户为中心”的方法中,这个活动是“万物之源”。简而言之,在这个阶段开发人员需要知道:用户想要什么,开发人员要做什么。 (2)开发一些候选设计方案 这是设计的核心活动,也就是提出满足用户需求的构思。它可以划分为两个子活动:概念设计和物理设计。所谓概念设计就是用一种用户能够理解的方式去描述产品应该做些什么、如何运作、外观如何;而物理设计考虑的则是产品的细节,包括要使用的色彩、声音和图像,还有菜单设计和图标设计。这些设计构思都需要提出各种候选方案,从而制作出原型以供评估。这个阶段其实就是:试试该如何来做。 (3)制作设计方案的原型 评价一个交互设计的最佳方法,就是让用户与产品进行交互,让用户去感受。这就要求开发人员要把设计方案转化为可以交互的版本,或者说产品的原型。 这些原型并不一定必须是能够运行的真正软件版本,可以采用很多技术来实现所谓的“交互”。比如说,制作纸张原型(把步骤画在纸片上并口头为用户演示)就又快捷又便宜,而且能在设计的早期阶段就发现问题。这个阶段概括来说就是:先简单地做个样子出来。 (4)用户测试和评估 开发者需要让用户来检验产品或软件。用一句简单的话来概括这个阶段也就是:让用户看看这个设计行不行。测试也需要重复进行。这个相互联系并且重复进行的特征被称为“迭代”,是交互设计过程的关键特征之一。测试的目的是要保证产品是可用的。因为不同的用户有不同的需要,开发人员需要相应地设计不同类型的产品。 为用户“度身订造”产品或服务,这一点通常可以采用“以用户为中心”的设计方法来实现。UCD方法要一切以用户的最终感受为出发点,让用户参与整个设计过程。同时,为 了验证产品确实能够满足用户,你也需要通过测试和评估来进行判断。

软件工程在软件开发中的运用.docx

软件工程在软件开发中的运用 随着科学技术的进步,各种新型软件开发方法逐步兴起,传统软件开发方法受到了强有力的冲击「我们都知道,软件开发过程决定了需求的变化和需求变化决定了软件的开发过程,这是软件开发的两个大的类别。传统软件开发方法中最主要的是结构化的开发方法,是一种以使用功能作为其构造块的软件开发方法。它非常适合于科学计算领域的方法,因此,目前件开发的大部分还是会采用这一传统的开发方法,特别是在科学应用中。但是一旦涉及到要处理庞大信息的信息管理领^时,传统软件开发方法就不再适合,因为传统软件开发方法的开发过程是属于前者,它要求的项目变化不大,甚至是很小的情况下才可以,但是这并不能满足信息管理领域的开发过程要求。由此可知,传统软件开发方法并不灵活,不太适用于现代的其他领域,对大多数领域来说,我们还是需要一个与之不同的开发方法来弥补其不足从这一点上分析,以面向对象的开发方法的存在就非常有必要,甚至是不可或缺。一、软件工程的发展软;牛工程常常被用于计算机科学等原理中,是一种用来求得解决方法软件的工程,把传统软件工程的一部分作为基础,得到新的软件。通过这样的方式来达到高质量和低成本的目的。^十九世纪6()年代末到8()年代初,软件系统的规°模在飞速的扩大中,整个软件工程也在进一步的复杂化,不仅如此,它还不断的加深在关键领域中的应用,促进了软件开发过程中采纳工程化的方法进行管理,产生了瀑布模型和结构化语言、结构化方法、各种管理方法等成果。在之前一段时间以研究系统实现为主,后一段时丨^]以管理和软件的质量为主。而从8()年代初到现在,提出了软件工厂的概念生了被广泛应用的面向对象的方法和相关的编程语言,在工业实践中建立起一种特有的量化评估程序,用以判定软件的成熟程度。目前,软件工程的研究从过程管理逐步转向产品开发,更加注重新程序开发和软件生产,随之软件的应用范围也将继续扩大,成为信息社会的必要基础设施。金融、电信、航空航天等将会成为软件的集中营随着社、会的&步,更多的领域也将应用到软件工程,我们的生活中将会随处可见软件工程的身影。二、现代软件工程开发方法社会每时每刻都是在向前发展,通过众多专家的不懈努力,我们在原有软件开发方法上,又进一步发展了新的软件开发方法。总的来说,软件工程的开发方法主要有:Parnas方法、方法、面向数据结构的软件开发方法、WarnierH法、问题分析法、面向对象的软件开发方法、可视化的软件开发方法等Parnas方法是最早期的k件开发:方法,它±要成果就是信息隐蔽性原则,这个原则在之后的面向对象的软件开发方法中也同样的存在。JaekSari方法在考虑输入数据结构的同时还考虑输出数据结构,在商业应用中的文件表格处理中非常有效;Warniei>方法与Jackson方;去纪IE另ijS于,使用MIS工具和伪代码,但是最重要的是Warniei>方法只考虑输入数据结构,而不考虑输入结构。问题分析法中的PAM方法是专注于输入、输出和系统,但是由于其固有的局限性,仍然只适^于中小型问题,并且也只对其有中小问题有效而纵观当代的各个不同的领域,我们采用最主要的软件开发方法是面向对象的软件开发方法。它具有独到的优势,其不仅提供支持系统的所有视觉的范型,而且以纵横的方式管理软件的复杂性。总之,所谓的现代软件工程就是以对象为主,对对象问题所进行的一系列的操作,具有强烈的类似人处理问题的色彩,这是它的闪光之处,是它的优势,也是与传统软件开发最不同的地方。 三、面向对象的软件开发方法随着需求一再提高和各种软件开发方法的逐步发展,甚至是完善,面向对象开发方法越来越成为现代各个领域关注的重点

现代软件工程简史报告

现代软件工程简史报告 姓名:郑富洋 学号:1004196113 提交时间:2020年4月14

无“软件”概念阶段 1946-1955 软件危机阶段1956-1970 软件工程阶段1970-今 面向对象阶段1990-今 软件是由计算机程序和程序设计的概念发展演化而来的,是在程序和程序设计发展到一定规模并且逐步商品化的过程中形成的。软件开发经历了程序设计阶段、软件设计阶段和软件工程阶段的演变过程。 (一)程序设计阶段(无“软件概念”阶段) 程序设计阶段出现在1946年~1955年。此阶段的特点是:尚无软件的概念,程序设计主要围绕硬件进行开发,规模很小,工具简单,无明确分工(开发者和用户),程序设计追求节省空间和编程技巧,无文档资料(除程序清单外),主要用于科学计算。 (二)软件设计阶段(软件危机阶段) 软件设计阶段出现在1956年~1970年。此阶段的特点是:硬件环境相对稳定,出现了“软件作坊”的开发组织形式。开始广泛使用产品软件(可购买),从而建立了软件的概念。随着计算机技术的发展和计算机应用的日益普及,软件系统的规模越来越庞大,高级编程语言层出不穷,应用领域不断拓宽,开发者和用户有了明确的分工,社会对软件的需求量剧增。但软件开发技术没有重大突破,软件产品的质量不高,生产效率低下,从而导致了“软件危机”的产生。 (三)软件工程阶段 自1970年起,软件开发进入了软件工程阶段。由于“软件危机”的产生,迫使人们不得不研究、改变软件开发的技术手段和管理方法。从此软件产生进入了软件工程时代。此阶段的特点是:硬件已向巨型化、微型化、网络化和智能化四个方向发展,数据库技术已成熟并广泛应用,第三代、第四代语言出现;第一代软件技术:结构化程序设计在数值计算领域取得优异成绩;第二代软件技术:软件测试技术、方法、原理用于软件生产过程;第三代软件技术:处理需求定义技术用于软件需求分析和描述。 (四)面向对象阶段 面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应

2014年 研究生 现代软件工程期末考试

2014年研究生现代软件工程期末考试 2014年6月20日 某软件企业已经具有5年以上的开发经历,为了进一步拓展市场和提升市场竞争能力,在三个项目组以及SQA小组选拔了一些技术骨干作为SEPG小组成员,期望在公司内部推广CMM,争取在3年之内能够通过CMM3 的评级认证。 公司管理层要求一年内通过CMM2评级,第三年申请CMM3的资质认证并争取通过评审。为此,三个项目组的项目经理与SEPG和SQA小组成员共同商讨如何能够满足近期和远期目标。经了解,发现三个项目组的管理方式各不相同,开发方法也不统一:项目组A:采用传统的演化模型并使用基于数据流图的结构化方法进行系统开发; 项目组B:采用基于面向对象方法的UP模型进行系统开发; 项目组C:采用极限编程方法进行开发; 问题一:SEPG要求各项目组的项目经理给出各自项目组的基于里程碑的软件开发过程及相应的文档编制计划。(15分) 问题二:为了CMM3的目标SEPG根据各小组的软件开发过程决定采用通用的面向对象方法定义一个公司级的统一软件工程过程并给出基于KPA组织过程定义必须执行的活动(Key Practices)。(15分) 问题三:SQA小组基于SPEG定义的公司级的软件工程过程,参考ISO的质量模型开始着手制定CMM3需要的针对软件需求分析阶段的质量评估模型及其必须的尺度度量准则。(20分) 除此之外,项目组A各人员组成的工资待遇如下:1、项目经理:12000;2、工程师_X:5000;3、工程师_Y:6500;3、工程师_Z:3000;公司规定项目经理有权掌握项目40%经费进行管理,其中包括项目组的人员成本和平时加班补贴(平时加班按工资的2倍支付,国家法定假日3倍支付)。此时,公司交付给项目组A一个必须在2个月完成的项目,要求项目必须按照客户的具体需求完成分析、设计和开发任务,并能实现20%的利润,同时项目经理自己也打算给自己保留5%经费作为自己奖励。具体需求如下: 有一个医院期望开发一个《医院取药告知管理系统》。该系统要求实现病人在交费处使用自己的就医卡交费完毕后,系统会根据当前的取药人数分配取药窗口和相应的药剂师。每个窗口的药剂师按顺序使用系统,并接收系统分配的药单。药剂师配药完成后使用系统功能显示并通知病人取药。 每个取药窗口有一个大屏幕显示取药的病人名称,每个人取药时间为2分钟并反复显示并广播病人的姓名;超过两分钟没来取药的病人信息会转到屏幕下方的滚动条滚动显示,可以显示多人姓名。取过药的病人信息随即被清除。取药大厅设置多台自动查询机,病人使用就医卡扫描后,查询机会显示病人姓名、取药窗口号以及在本病人之前未取药的人数或者是否处于超时等待取药。 作为项目经理,请根据上述功能需求回答以下问题: 问题四:给出该系统的功能列表(以用例表示)开发和后期维护的报价。(15) 问题五:给出系统开发的进度安排,并确定关键任务路径上的人员安排使得项目进度效率最高且成本最低。(15分) 问题六:请根据自己熟悉的编程语言估算该系统的KLOC、C K(技术状态常数),并由此根据“软件方程”计算该系统开发的工作量。(10分) 问题七:给出开发周期内TOP5的风险因素。(10分)

现代软件工程课后习题答案

现代软件工程 学校:玉溪师范学院 姓名:周应光 第一章 选择题: 1.ABC 2.CD 3.A 4.C 5.ABCD 6.BD 7.ABC 8.ABC 9.ABD 判断题: ×××√×√×××√ 简答题: 1.软件产品的特性是什么? a.软件产品是一种逻辑产品,具有无形性。 b.软件产品的生产主是研制, c.软件不存在磨损和老化问题,但存在退化问题 d.软件产品的生产主要是脑力劳动, e.软件费用不断增加,成本相当昂贵。 f.软件具有“复杂性”,其开发和运行常受到计算机系统的限制 3.什么是软件危机?其产生的原因是什么?

1》软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。一些复杂的、大型的软件开发项目提出来了,但,软件开发技术的进步一直未能满足发展的要求。 2》软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的: a.软件的规模越来越大,结构越来越复杂。 b.软件开发管理困难而复杂。 c.软件开发费用不断增加。 d.软件开发技术落后。 e.生产方式落后。 f.开发工具落后,生产率提高缓慢。 4.什么是软件生存周期模型?有哪些主要模型? 1》软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。(模型:是为了理解事物而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。)2》软件生存周期主要模型:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等 5.什么是软件开发的方法?有哪些主要方法? 软件开发的方法:是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。 主要方法:结构方法、Jackson方法、维也纳开发方法(VDM)、面向对象的开发方法。 6.软件生命期个阶段的任务是什么? 答:软件生命期瀑布模型分为六个阶段: 。可行性研究与计划 。需求分析与规格说明 。设计 。编程 。测试 。运行维护 第二章可行性研究 填空题 1.值得去开发,其中的问题能否解决,设计 2.技术,经济,社会 3.研究正在运行的系统,建立新系统的高层逻辑模型 4,。所建议系统的技术可行性分析,所建议系统的经济可行性分析,社会因素可行性分析 5.经济角度,开发成本,比较和权衡 选择题 1. A 2.B 3.B 4.D 5.D 6.D 7.A 8.A 9.C 10.D 简答题 1.可行性研究的任务是什么? a.技术可行性:

现代软件工程在软件开发中的应用

现代软件工程在软件开发中的应用 随着我国国民经济的发展,社会各界对于我国计算机系统软件设计研发,特别是软件工程技术在其中的应用,关注程度不断提升。因此,采用合理的方式将现代软件工程应用在软件开发中是至关重要的。本文对现代软件工程在软件开发中的应用进行研究分析。 标签:软件工程;计算机;软件开发;应用 引言 随着现代技术的发展,计算机俨然成为人们日常生活中的一部分,人类对计算机的依赖性越来越大。计算机进入了人类生活的各个领域,小到一个人的生活起居,大到国家的安全工作,都会应用到计算机,正是由于计算机的重要性,人们越来越重视计算机系统的开发。软件是计算机的重要组成部分,软件工程在现代化的发展中也起到了至关重要的作用。现代化的计算机发展离不开软件工程的发展,提高软件工程的质量才能使计算机能够适应现代化的需求。提高软件工程技术的效能,进而提高计算机的效能,使其能够更好为人们服务。笔者就软件工程在计算机的中的具体应用进行了分析。 1现代软件工程的概况 随着社会科技的不断进步,软件的应用范围也正在不断的扩大,比如,商务领域、交通领域以及家电领域等,软件可以说是无处不在。而对于软件工程来说,软件工程是一类求解软件的工程,其用于构造模型和算法,用于计划、资源、质量和成本等的管理,用于指定规范、设计范型、评估成本、权衡结果,所以软件工程能够应用于计算机科学、数学和管理学等原理,通过借鉴传统工程的方法,创建软件以达到提高质量并且降低成本的目的。现如今,一些传统软件工程方逐渐被淘汰,现代软件工程的方法能够适应社会科学水平迅速提高的背景,所以现代软件工程受到大力推广以及广泛应用。但是由于科技和计算机技术的发展过快,导致了我国现代软件工程存在着较多的不足,所以需要对现代软件工程现存的问题进行研究分析,指定相应的现代软件工程在软件开发中合理应用的策略,进而促进我国科学技术水平的发展。 2现代软件工程的应用原则 2.1实用性原则 在计算机系统软件开发工作中,实用性原则在一定程度上,决定了软件开发的价值。实用性原则可以促使计算机系统软件开发工作人员,在实际设计和研发工作中,更加重视高效便捷的服务性质,提高工作效率和服务质量。同时,计算机系统软件的研发设计工作中,还会需要大量的资金投入,将实用性作为基本的出发点,可以有效地降低系统开发的成本,提高资金利用效率,扩大计算机系统

现代软件工程第1章作业

1.选择题 (1)软件的主要特性是()。 A)无形B)高成本C)包括程序和文档D)川一独立构成计算机系统(2)软件工程三要素是()。 A)技术、方法和工具B)方法、工具和过程 C)方法、对象和类D)过程、模型和方法 (3)包含风险分折的软件工程模型是()。 A)螺旋模型B)瀑布模型C)增量模型D)喷泉模型 (4)软件工程的主要目标是()。 A)软件需求B)软件设计C)风险分析D)软件实现 (5)下列属于面向对象开发方法的是()。 A)Booch B)UML C)Coad D)OMT (6)软件危机的主要表现是()。 A)软件成本太高B)软件产品的质量低劣 C)软件开发人员明显不足D)软件生产率低下 (7)软件开发方法的卞要工作模型有() A)螺旋模型B)循环模型C)瀑布模型D)专家摸型 (8)软件工程的目标有()。 A)易于维护B)低的开发成本C)高性能D)短的开发期 (9)软件工程学的目的和意义是()。 A)应用科学的方法和工程化的规范管理来指导软件开发 B)克服软件危机 C)做好软件开发的培训工作 D)以较低的成本开发出高质量的软件 2.判断题 (1)软件就是程序,编写软件就是编写程序。() (2)瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。()(3)结构化方法的工作模型是使用螺旋模型进行开发。() (4)结构化方法和JSP方法都不适合于大型软件的开发。() (5)原型化开发方法包括生成原型和实现原型两个步骤。() (6)面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。 (7)软件危机的主要表现是软件的需求量迅速增加,软件价格上升。()3.简答题 (1)软件产品的特性是什么? (2)软件发展有几个阶段?各有何特征? (3)什么是软件危机?其产生的原因是什么? (4)什么是软件生存周期模型?它有哪些主要模型? (5)有哪些主要的软件开发方法? (6)软件生命期各阶段的任务是什么?

现代软件工程第一章答案

习题一参考答案 一、选择题 1. 软件的主要特性是(A B C)。 A) 无形 B) 高成本 C) 包括程序和文档D) 可独立构成计算机系统 2. 软件工程三要素是(C D)。 A) 技术、方法和工具B) 方法、工具和过程 C) 方法、对象和类D) 过程、模型、方法 3. 包含风险分析的软件工程模型是(A)。 A) 螺旋模型 B) 瀑布模型C) 增量模型 D) 喷泉模型 4. 软件工程的主要目标是(C)。 A) 软件需求B) 软件设计C) 风险分析D) 软件实现 5. 下列属于面向对象开发方法的是(A B C D)。 A) Booch B) UML C) Coad D) OMT 6. 软件危机的主要表现是(B D)。 A) 软件成本太高B) 软件产品的质量低劣 C) 软件开发人员明显不足D) 软件生产率低下 7. 软件开发方法的主要工作模型有(A B C) A) 螺旋模型B) 循环模型C) 瀑布模型D) 专家模型 8. 软件工程的目标有(A B C)。 A) 易于维护B) 低的开发成本 C) 高性能D) 短的开发期 9. 软件工程学的目的和意义是(ABD )。 A) 应用科学的方法和工程化的规范管理来指导软件开发 B) 克服软件危机 C) 作好软件开发的培训工作 D) 以较低的成本开发出高质量的软件 二、判断题 1. 软件就是程序,编写软件就是编写程序。(×) 2. 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。(×) 3. 结构化方法的工作模型是使用螺旋模型进行开发。(×) 4. 结构化方法和JSP方法都不适合于大型软件的开发。(√) 5. 原型化开发方法包括生成原型和实现原型两个步骤。(×) 6. 面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。( √) 7. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。(×) 8. 软件工具的作用是为了延长软件产品的寿命。(×) 9. 软件工程过程应该以软件设计为中心,关键是编写程序。(×) 10. RCP法与RSP法的主要区别是前者采用循环渐进的开发方式,原型将成为最终的产品,而后者将被废弃。(√) 三、简答题 1. 软件产品的特性是什么?

浅析现代软件工程的运用创新和发展趋势

浅析现代软件工程的运用创新和发展趋势 摘要:研发最顶尖的软件工程技术,让现代软件工程在现代软件开发中得到更加合理的应用,朝着更有利于人们生活的方向发展。本文主要对现代软件工程在现代软件开发中的运用创新,结合我国各行各业的发展方向对现代软件工程的发展趋势进行了详细分析。 关键词:现代软件工程;运用创新;发展趋势 1 引言 软件是一种生产较难且知识密度较强的产品。由于上世纪计算机刚刚兴起,基于成本较大,所以只有少部分人能使用计算机编写程序。进入新时期以来,一些传统的软件工程的方法逐渐被舍弃。现代软件工程的方法开始逐渐进入人们的生活并得到全面应用。因而对计算机软件的需求量也随之增加。同时对软件设计也就相应的有了一定的技术要求。所以在社会生活中,软件工程技术就需要不断创新。然而在实际的应用过程中,由于认识较为局限,出现了各种各样的问题。因此,对现代软件工程在现代开发中的运用创新以及未来的发展趋势进行研究是十分必要的。 2 现代软件工程方法的特征 现代软件工程方法大致可以分为分析、设计、编码、测试、维护五大阶段。虽然取代了传统软件工程的方法,但两者仍然存在着许多相似之处。例如,在分析阶段,现代软件工程方法面对的对象是现实生活中存在的事件。从另一方面就是说,其面对对象并不是虚拟性的,是真实存在的。因此表明,其对象的性质特征能够对事件进行反映。而分析阶段与设计阶段又存在着很大差异,在设计阶段中,现代软件工程方法更注重某一反映系中的具体事物和时间。总之,现代软件工程方法以传统软件工程方法为基础,借助现代先进的信息技术与计算机技术对系统进行优化。使现代软件工程更加规范化与系统化,能够符合不同层次不同水平的用户需求。并且现代软件工程的一个突出优点是可以进行修改,而且可靠安全。 3 对现代软件工程的运用创新 3.1 创新途径 目前形式来看,我国在现代软件开发中所使用的数据库管理系统还是一种传统的数据库管理形式,信息更新缓慢,管理系统未得到广泛应用。软件的分层结构是软件体结构的重点,其中的数据多数源自数据库。目前还未确立一个明确的概念。除此之外,传统数据库管理的功能与作用未充分发挥出来。虽然能对一些简单的数据进行存储,保证数据的安全。但对于一些高技术含量的应用来说,它不能灵活的运用。因此,要将传统软件工程方法的优势充分发挥在现代软件开发中,进而要不断将面对的对象进行扩展,以至于其可以面对整个系统。这样可以对数据的存储进行优化升级,对操作步骤进行规范处理,对现代软件工程的运用创新起着重要作用。 3.2 创新领域 在现代社会中,现代软件开发不只是应用到计算机领域,在教育行业,消费服务行业等社会的各行各业都离不开现代软件开发。如今,使用软件已经不仅仅是为了提高工作效率,而且在激发工作人的各方面潜能方面也起着重大作用。同时各行各业根据自己的发展需要,对它进行合理运用,打破传统的束缚和限制。让现代软件开发技术为自己产生最大化效益。在教育行业,软件的管理系统发挥

相关文档
最新文档