软件工程李爱萍作业参考答案最终版修改Word文件下载.docx

上传人:b****5 文档编号:20833208 上传时间:2023-01-25 格式:DOCX 页数:60 大小:514.01KB
下载 相关 举报
软件工程李爱萍作业参考答案最终版修改Word文件下载.docx_第1页
第1页 / 共60页
软件工程李爱萍作业参考答案最终版修改Word文件下载.docx_第2页
第2页 / 共60页
软件工程李爱萍作业参考答案最终版修改Word文件下载.docx_第3页
第3页 / 共60页
软件工程李爱萍作业参考答案最终版修改Word文件下载.docx_第4页
第4页 / 共60页
软件工程李爱萍作业参考答案最终版修改Word文件下载.docx_第5页
第5页 / 共60页
点击查看更多>>
下载资源
资源描述

软件工程李爱萍作业参考答案最终版修改Word文件下载.docx

《软件工程李爱萍作业参考答案最终版修改Word文件下载.docx》由会员分享,可在线阅读,更多相关《软件工程李爱萍作业参考答案最终版修改Word文件下载.docx(60页珍藏版)》请在冰豆网上搜索。

软件工程李爱萍作业参考答案最终版修改Word文件下载.docx

1.5何谓面向对象软件工程?

简述它和传统软件工程的区别与联系?

(1)以面向对象程序设计为基础的软件工程。

(2)传统软件工程是以结构化程序设计为基础,而面向对象软件工程是以面向对象程序

设计为基础。

与面向过程的软件工程的开发思想相比,面向对象开发方法不再是以功能划分为导向,而是以对象作为整个问题分析的中心,围绕对象展开系统的分析与设计工作。

在开发过程方面,面向对象软件工程和传统软件工程一样也是把软件开发划分为分析、设计、编码和测试等几个阶段,但各个阶段的具体工作不同,除了在编码阶段使用的语言不同外,面向对象软件工程为待开发软件确定“类与对象”一般在需求分析阶段进行,设计阶段则主要完成对象内部的详细设计;

而在传统软件工程中,将软件设计划分为“总体设计”和“详细设计”,分别完成软件的总体结构图的设计和各个模块内部算法的详细设计。

即:

传统软件工程开发过程包括需求分析、总体设计、详细设计、面向过程的编码和测试;

面向对象软件工程开发过程包括需求分析与对象抽取、对象详细设计、面向对象的编码和测试。

1.6什么是软件生存周期模型?

试比较本章介绍的四种模型的优缺点,说明每种模型的使用

范围

(1)软件生存周期模型即为软件开发模型,是描述软件开发过程中各种活动如何执行

的模型,是软件过程、活动、任务的结构框架。

优点

缺点

适用范围

瀑布模型

能清晰直观地表达软件开发全过程,明确规定要完成的主要活动和任务,用来作为软件项目工作的基础。

只有当分析员能够做出准确的需求分析时,才能得到预期的正确结果。

它是一种理想的线性开发模式,缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。

适合于需求很明确的软件项目开发的模型,对于经常变化的项目而言,瀑布模型毫无价值。

快速原型模

通过实践让用户了解未来目标系统的概貌,以便判断哪些功能是符合需要的,哪些方面需要改进。

反复改进,最终建立完全符合用户需求的新系统。

克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。

这种模型适合预先不能确切定义需求的软件系统的开发。

在实际中开发原型系统使用的语言效率有时会很低,所选用的开发技术和工具不一定符合主流的发展;

快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。

适合于一些需求可变、模糊不定的软件系统的开发

增量模型

有较大的灵活性。

能够在较短的时间内向用户提交一些有用的工作产品。

开发出一部分,向用户展示一部分,可让用户及早看到部分软件,及早发现问题。

整个系统是由一个个构件集成在一起的,当需求变更时只变更部分部件,而不必影响整个系统。

各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,冒所有构件集成不到一起的风险。

适合于软件要求不明确,设计方案有一定风险的软件项目。

螺旋模型

加入了瀑布模型与增量模型都忽略了的风险分析,使用原型及其他方法来尽量降低风险

该模型需要有相当丰富的风险评估经验和这方面的专门技术,这使该模型的应用受到一定限制。

将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。

第——早

2.1在软件开发早期阶段为什么要进行可行性研究?

可行性研究的任务是什么?

应该从哪

几个方面研究目标系统的可行性?

(1)避免或者减轻项目开发后期可能出现的困境。

(2)其主要任务是,首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制,必须分析几种可能解法的利弊,从而判定原定系统的目标和规模是否现实,系统完成后带来的效益是否大到值得投资开发这个系统的程度。

(3)经济可行性、技术可行性、操作可行性、法律可行性。

2.2成本一效益分析可用哪些指标进行度量?

成本方面包括开发成本和运行维护成本;

效益方面包括经济效益和社会效益,经济效益可以用货币的时间价值、投资回收期、纯收入来度量。

2.3有人认为,只懂技术的分析员不一定能圆满完成可行性研究的任务。

你同意这种看

法吗?

为什么?

同意。

因为可行性研究的任务包括三个方面,除了技术可行性之外,还需要进行经济可行性、操作可行性、社会和法律方面的可行性研究,而只懂技术的分析员对其他方面的研究有可能不满足用户的要求,所以只懂技术的分析员不一定能圆满完成可行性研究的任务。

2.4在【例2.2】中,把投资改为6000元,每年节约金额改为2000元,年利率为6%,

试计算投资回收期和纯收入

解:

如下表

将来值(元)

(1+n*1)

现在值(元)

累计的现在值

(元)

1

2000

1.06

1886.79

2

1.12

1785.71

3672.50

3

1.18

1694.92

5367.42

4

1.24

1612.90

6980.32

5

1.30

1538.46

8518.78

投资回收期为(6000-5367.42)/1612.90+3=3.39(年)纯收入为

8518.78-6000=2518.78(元)

2.5为方便旅客,某航空公司拟开发一个飞机票预定系统。

旅游公司把预定机票的旅客

信息(姓名、年龄、工作单位、身份证号码、旅游时间、旅游目的地等)输入进该

3天之

系统,系统为旅客安排航班,打印出取票通知和账单,旅客在飞机起飞前的

内凭取票通知和账单交款取机票,系统校对无误即打印出飞机票给旅客。

请写出开

发此系统的问题定义,并通过可行性研究分析此系统的可行性。

问题定义:

飞机票预定系统

主要实现以下功能:

查询功能:

把旅游时间、旅游目的地等输入进该系统,系统显示符合要求的

航班。

预定机票:

把预定机票的旅客信息(姓名、年龄、工作单位、身份证号码、旅游时间、

旅游目的地等)输入进该系统,系统为旅客安排航班,打印出取票通知和账单,并更新记录。

校对并打印机票:

旅客在飞机起飞前的3天之内凭取票通知和账单交款取机票,系统校

对无误即打印出飞机票给旅客。

可行性研究应从经济可行性、技术可行性、操作和社会、法律的角度阐述其可行性,这部分

省略……

2.6试为习题2.5写可行性研究报告的主要内容。

(本题略)

第三章

3.1为什么要进行需求分析?

需求分析要经过哪些步骤?

(1)可行性研究阶段粗略了解了用户的需求,甚至还提出了一些可行的方案,但是可行性研究的基本目的是最小的代价在尽可能短的时间内确定问题是否存在可行的解法,因此许多细节都被忽略了,可行性研究并不能代替需求分析,

它实际上并没有准确地回答“系统必须做什么”这个关键问题。

(2)步骤:

1.需求获取:

调查研究。

从分析当前系统包含的数据开始,分析当前信息处理的方法与存储的不足,用户希望改进的主要问题及其迫切性等。

2.需求提炼:

分析建模。

需求提炼的主要任务是建立分析模型。

把来自用户的信息加以分析,通过抽象建立起目标系统的分析模型。

3•需求描述:

编写SRS。

为了使需求描述具有统一的风格,可以采用已有的且可满足项目需要的模板,也可以根据项目特点和软件开发小组的特点,对标准进行适当的改动,形成自己的SRS模板。

4.需求验证。

由分析员和用户一起对需求分析结果进行严格的审查、验证。

确保需求说明可作为软件设计和最终系统验收的依据。

3.2需求分析阶段的基本任务是什么?

怎样理解分析阶段的任务是决定“做什么”,而不是

“怎样做”?

(1)1•确定对系统的综合需求。

分析员和用户双方确定对软件系统的综合要求,具体有功能需求、性能需求、环境需求、接口要求、用户界面需求,另外还有可靠性、安全性、保密性、约束、可移植性和可维护性等方面的需求,这些需求通常可以通过双方交流、调查研究来获取,并达到共同的理解。

2•分析系统的数据需求。

因为绝大多数软件系统本质上都是信息处理系统,系统必须处理的信息和系统应该产生的信息在很大程度上决定了系统的面貌。

3.建立软件的逻辑模型。

4.编写软件需求规格说明书。

目的是使用户和开发者能对未来软件有共同的理解,明确定义未来软件的需求、系统的构成及有关的接口。

需求说明相当于用户和开发者之间的一份技术合同,是测试验收阶段对软件进行确认和验收的基准,是软件开发的基础。

5.需求分析评审

(2)需求分析实际上是调查、评价以至肯定用户对软件需求的过程,其目的在于精化软件的作用范围,也是分析和确认软件系统构成的过程,以确定未来系统的主要成分及它们之间的接口细节。

因此需求分析实际上是一个对用户意图不断进行揭示和判断的过程,它并不考虑系统的具体实现,而是完整地、严密地描述应当“做什么”的一种过程

3.3什么是结构化分析方法?

该方法使用什么描述工具?

(1)结构化分析方法是一种从问题空间到某种表示的映射方法,软件功能由数据流图表示,是结构化方法中重要的,被普遍采用的方法,它由数据流图和数据字典构成系统的逻辑模型。

(2)数据流图、数据字典、结构化语言、判定树和判定表。

3.4什么是数据流图?

其作用是什么?

其中的基本符号各表示什么含义?

(1)数据流图是SA方法中用于表示系统逻辑模型的一种工具。

(2)它描述系统由哪几部分组成,各部分之间的联系等,以直观的图形清晰地描述了系统数据的流动和处理过程。

(3)f箭头,表示数据流;

O圆或椭圆,表示变换数据的处理;

□方框,表示数据的三原点或终点;

=双杠或单杠,表示数据存储(文件)。

除上述4种基本符号之外,有时也使用几种附加符号,星号(*)表示数据之间的关系(同时存在);

加号(+)表示“或”关系,㊉号表示只能从中选一个(互斥的关系)。

3.5画数据流图的步骤是什么?

应该注意什么事项?

(1)第一步,先找外部实体(可以是人、物或其他软件系统),找到了外部实体,则系统与外部世界的界面就得以确定,系统的源点和终点也就找到了;

第二步,找出外部

实体的输入和输出数据流;

第三步,在图的边上画出系统的外部实体;

第四步,从外部实体的输出流(源点)出发,按照系统的逻辑需要,逐

步画出一系列变换数据的加工,直到找到外部实体处所需的输入流(终点),形

成数据流的封闭;

第五步,按照上述原则进行检查和修改。

最后按照上述步骤画出所有子图。

(2[①画数据流图时,只考虑数据流的静态关系,不考虑其动态关系(如启动、停止等与时间有关的问题),也不考虑出错处理问题。

2画数据流图时,只考虑常规状态,不考虑异常状态,这两点一般留在设计阶段解决。

3画数据流图不是画程序流程图,二者有本质的区别。

数据流图只描述“做什么”,不描述

“怎么做”和做的顺序,而程序流程图表示对数据进行加工的控制和细节。

4不能期望数据流图一次画成,而是要经过各项反复才能完成。

5描绘复杂系统的数据流图通常很大,对于画在几张纸上的图很难阅读和理解。

一个比较好的方法是分层的描绘这个系统。

在分层细画时,必须保持信息的连续性,父图和子图要平衡,每次只细画一个加工。

3.6什么是数据字典?

它有哪些条目?

(1)数据字典是对数据流图中所包含元素的定义集合。

(2)数据字典的作用正是在软件分析和设计的过程中,给人提供数据描述,即对数据存储(文件)和加工(处理)等名字进行定义。

(3)数据流、数据流分量(数据基本项)、数据存储(文件)和加工(处理)。

3.7描述加工逻辑有几种工具?

各是什么?

写出其优缺点。

(1)描述加工逻辑一般用结构化语言、判定表和判定树

结构化语言

既有结构化程序的清晰易读的优点,又有自然语言简单易懂的优点,又避免了自然语言不精确可能产生二义性的缺点。

只有顺序、循环、条件三种控制结构。

判定表

能清晰地表示复杂的条件组合与应做动作之间的关系。

不能描述循环的处理特征。

判定树

它比判定表更观,且易于理解和使用。

(同判定表)

3.8某高校计算机教材购销系统有以下功能。

学生购买书时,要先填写购书单,

系统根据各班学生用表及售书登记表审查有效性,如果有效,系统根据教材库存量表进一步判断书库是否有书,如果有书,系统把领书单返回给学生,学生凭书单到书库领书,对短缺的教材,系统用缺书单的形式通知书库,新书购进书库后,

也由书库将进书通知返回给系统

请采用SA方法画出该系统的分层数据流图,

并建立相应的数据字典

答:

学生

领书

图书管理系

书库

进书通知

缺书单

a)

 

(1)数据流条目:

b)

数据

字典

购书单=学院+专业+班级+购书种类+购书数量+价格

进书通知=书名+进书数量+书类型+作者名称+出版社+价格

领书单:

书名+作者名称+出版社+数量+学院+专业+班级+价格缺书单=书名+

作者名称+出版社+剩余数量+再购进数量

(2)数据存储条目:

文件名:

库存清单

组成:

书名+书籍编号+价格+作者名称+出版社+类型+现有数量

组成方式:

索引文件,以书籍编号为关键文件名:

售书登记表

书名+书籍编号+售出数量+价格组成方

式:

索引文件,以书籍编号为关键文件名:

各班学生

用表组成:

班级+人数+领书量

索引文件,以班级为关键

(3)数据项

(4)加工条目

加工名:

图书管理系统

编号:

输入:

购书单、进书通知、库存清单、售书登记表、各班学生用表

输出:

领书单、缺书单加工名:

录入存储处理编号:

加工逻辑:

IF没有所输入的书籍记录

THEN建立新的书籍记录,存入该书

籍的基本记录ELSE输入书籍记录

ENDIF加工名:

询处理编号:

购书单

领书单、缺书单加工逻辑:

根据购书单、售书登记表、各班学生

记表及各班学生用表

有效

THENIF有库存

THEN输出领书单

ELSE输出缺书单加工名:

审查、

分类

1.1输入:

进书通知输出:

书籍信息加工逻辑:

根据进书通知将书审查、

分类加工名:

审查有效性

2.1输入:

购书单输出:

根据购书单、售书登记表、各班学生用

IF审查售书登记表及各班学生用表

THEN输出有效

判断书库是否有书

2.2输入:

效输出:

领书单、缺书单

IF有库存

ELSE输出缺书单

ENDIF

3.9某计算机公司为本科以上学历的人重新分配工作的政策是:

年龄在25岁以下者,学历是本科男性要求报考研究生,女性则担任行政工作;

年龄在25岁至45岁之间

者,学历本科,不分男女,任中层领导职务,学历是硕士,不分男女,任课题组组长;

年龄在45岁以上者,学历本科,男性任研究人员,女性则担任资料员,学历是硕士,不分男女,任课题组组长。

请用结构化语言、判定表和判定树描述上述问题的加工逻辑。

结构化语言:

if年龄<

25thenif学历=本科thenif性

别=男then报考研究生endifif性别=女

then担任行政工作endif

endifendifif25<

=年

龄=<

45then

if学历=本科then担任中层领导职务endifif学

历=硕士then任课题组组长endif

endifif45<

年龄thenif学历=本科then

if性别=男then任研究人员endifif性

别=女then任资料员endifendif

if学历=硕士then任课题组组长endif

endif

判定表:

年龄

<

25

25<

=年龄<

=45

45<

性别

男/女

学历

本科

硕士

报考研究生

V

担任行政工作

任中层领导职务

任课题组组长

担任研究人员

担任资料员

男性:

要求报考研究生

年龄=<

45

硕士:

45年龄女性:

3.10数据库内容的需求分析工作主要从哪几方面进行?

(1)信息需求信息需求指用户需要从数据库中获得的信息的内容和性质,信息需求是软件数据需求中最基本的需求,主要是确定系统需要存储和使用哪些数据,用户需要从数据库中获得信息的内容和性质。

(2)处理需求

处理需求是用户要求软件系统完成的功能,以及对系统功能的处理时间、方式等方面的要求,如是要求批处理还是联机处理等。

(3)使用需求

使用需求包括:

使用数据库时在安全性、完整性和一致性等方面的限制;

查询方式、输入/

输出格式和多用户等方面的要求;

响应速度、故障恢复等性能要求。

3.11建立全局E-R模型时,各分E-R模型之间可能出现的冲突有哪些?

应如何处理?

(1)各局部E-R模型之间的冲突主要有3类:

属性冲突、命名冲突和结构冲突。

(2)属性冲突:

突理论上好解决,但实际上需要各部门讨论协商,解决起来也并非易事。

命名冲突:

处理方法与属性冲突的解决方法一样,也是通过讨论、协商等手段解决。

结构冲突:

使集成后的该实体取各局部E-R模型中属性的并集,再适当调整属性的次序;

实体间的联系在各局部E-R模型中具有不同的类型,解决办法是根据应用的语义对实体之间联系的类型进行综合或调整。

第四章

4.1总体设计阶段的主要目的和任务是什么?

总体设计阶段的基本目标就是回答“概括地说,系统应该如何实现?

”这个问题,因此总体设计又称为概要设计或初步设计。

通过这个阶段的工作,开发人员将划分出组成系统的

物理元素,如程序、文件、数据库等。

但是这些物理元素还处于黑盒子的形式,具体的内部细节在详细设计阶段考虑。

总体设计的另一项任务是设计软件的总体结构,即确定系统中的每个程序是由哪些模块组成的,每个模块的功能及模块和模块之间的接口、调用关系等,但所有这些都不要求涉及模块内部过程的细节。

4.2为每种类型的模块耦合和模块内聚各举一个具体例子。

无直接耦合

模块B和C模块D

和E模块B和D

模块

B和E

数据耦合

标记耦合

函数调用时的值传递

模块A:

完成两个数的输入。

模块B:

完成两个数的比较,求出最大

并返回。

比较输入的两个数的大小。

模块A

'

控制信息

数据结构

模块B

模块C

控制耦合

公共环境耦合

模块A:

学生信息查询模块B:

选课查询模块C:

成绩查询数

据结构:

学号+院系+课程

内容耦合

c)

』参数信息

A模块

模块B(公共数据)

歹ENTRY

予one:

偶然内聚

moveatob;

readdiskfile;

movectod;

逻辑内聚

时间内聚

模块完成各种初始化工作,同时打开若干个文件,同时关闭若干个文件等。

通信内聚

模块A|模块A:

学生信息查询数据结构模块B:

选课

查询及成绩查询数据结构:

学号+院系+课程模块

元二次方程的根

顺序内聚、功能内聚

输入系数

~r~

求解

打印方程解

4.3模块的耦合性和软件的可移植性有什么关系?

说明理由。

模块的耦合性越低软件的可移植性越高。

模块的耦合性是指模块之间相互独立的度量,耦合强弱取决于借口的复杂程度,在软件的设计中尽可能设计弱的耦合的系统,这样程序容易测试、修改和维护,也便于移植到其他计算机上。

4.4如何区分数据流图的类型?

试述“变换型数据流图”和“事务型数据流图”的设计

步骤。

(1)按照数据流图的性质可以将数据流图分成两种基本类型:

变换型和事务型。

变换型数据流图基本呈线性形状的结构,由输入、变换、输出3部分组成;

当一个数据项到达处理某个模块时,将有多

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1