《现代软件工程》作业.
现代软件工程作业一
{
temp1 = temp0 + col_j;
grad_x =
grayImg.data[temp1 - width + 1]
+ 2 * grayImg.data[temp1 + 1]
}
}
for (int row_i = 1; row_i < height - 1; row_i += 1)
{
for (int col_j = 1; col_j < width - 1; col_j += 1)
{
int grad_y =
-grayImg.data[(row_i - 1) * width + col_j - 1]
{
if (NULL == grayImg.data)
{
cout << "image is NULL." << endl;
return SUB_IMAGE_MATCH_FAIL;
}
int width = grayImg.cols;
int height = grayImg.rows;
{
cout << "image is NULL." << endl;
return SUB_IMAGE_MATCH_FAIL;
}
int width = gradImg_x.cols;
int height = gradImg_x.rows;
for (int row_i = 1; row_i < height - 1; row_i++)
现代软件工程第二章答案
习题二参考答案一. 填空题1.值得去开发, 其中的问题能否解决,需求分析, 设计2. 技术, 经济, 社会3. 研究正在运行的系统, 建立新系统的高层逻辑模型4. 所建议系统的技术可行性分析, 所建议系统的经济可行性分析, 社会因素可行性分析5. 经济角度开发成本比较和权衡二、选择题1. A2. B【解析】:经济可行性是从开发费用和软件回报的角度来分析开发该软件系统是否可行。
技术可行性是从软件实现的功能、用户要求的软件性能、是否有技术难题等方面等考虑开发该软件的可行性问题。
操作可行性判断系统的操作方式在该用户组织内是否可行,法律可行性对方在考虑开发的软件系统可能会涉及的任何侵犯、妨碍、责任等问题做出决定。
所以答案为B。
3. B4. D5. D【解析】:在软件开发中,开发人员的交流似乎非常主要的,而一个开发人员进入一个新的软件系统做开发,需要相当长的一个阶段以适应该软件的开发,这主要是由于新的人员需要一定时间的培训以熟悉该软件系统的开发状况及该软件的需求分析、定义和相关已经生成的文档,以便在软件开发中与老开发人员的交流和通信,一推动软件开发前进。
所以答案为D。
6. D【解析】:软件的计划主要是根据软件开发的要求、软件系统的规模等,对软件开发的各种资源(包括软硬见资源及开发人员)进行合理的规划,以便在开发过程中得到合理的调度,从而使软件开发最充分地利用资源,以在最短的时间内取得最大的经济效益;软件工程经济学的任务是对软件开发的成本、效益等进行分析和估算;软件工程管理学的任务是有效组织和管理软件开发,软件工程开发技术的任务之一是设计和测试软件系统。
所以答案是D。
7. A 8. A 9. C 10. D三、简答题1.可行性研究首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制。
把它们清楚地列举出来。
然后,分析员进行简要的需求分析,经过压缩的设计,探索出若干种可供选择的主要解决方法。
《现代软件工程技术》完整版(加精)
1.3 软件工程方法 1. 结构化方法 所谓结构化方法是一种使用功能作为其 构造块的软件开发方法。这种被称为结构 化分析与设计的方法以功能组织软件。20 世纪70年代开始,这种方法成为主流。 结构化方法非常适合科学计算,因为在 大多数科学应用中,功能是十分稳定的, 因为自然法则很少变化。
但是,在企业应用中,在范围十分广阔 的信息管理应用中,功能是人定义的。不 同时间、不同地点、不同的人都会有不同 的定义。 把结构化方法应用到这些领域中,便产 生了不适应性。尤其是对大型软件,这种 不适应性尤为突出。软件设计师按照预先 约定的需求去开发软件,但是还没等到软 件发布,需求已经发生了变化。而且软件 只能定制,无法复用。
本表来源于Butler Bloor。下面的饼图是从各种渠 道得出的平均数:
软件生命周期各阶段的近似花费比例
软件开发阶段的错误率 开发阶段 费用% 引入错误% 发现错误% 纠错费用 需求分析 5 55 18 1.0 设计 25 30 10 1.0~1.5 代码及单 元测试 10 集成测试 50 10 50 1.0~5.0 确认及编 写文档 10 运行维护 5 22 10~100
但是很快就发现,数据建模方法与结构化 方法各占一半优点和缺点。结构化方法实际 上帮助开发者处理数据(尽管它不适应功能 变化),数据建模方法却不能帮助开发者管 理功能(尽管它适应稳定的数据)。 这两种方法的共同缺点是只使用一种系统 的视觉组织系统。 能否有一种支持系统所有视觉的范型的方 法来组织系统呢?有,这就是面向对象的方法.
能提交的功能 提交功能 <25% 25~49% 50~74% 75~99% 100% 所占百分比 4.6% 27.2% 21.8% 39.1% 7.3%
数据来自Standish集团对MIS组织的研究报告
软件工程三、四、五次作业(精选五篇)
软件工程三、四、五次作业(精选五篇)第一篇:软件工程三、四、五次作业第三次作业:1、已知某定货系统的需求分析阶段得到的DFD图如下,请按SD 方法的设计步骤画出其程序结构图。
2、某校的课酬计算方案如下:(l)基本课酬为每节课10元;(2)如果班级人数超过40人,课酬增加:基本课酬×0.1;(3)如果班级人数超过60人,课酬增加:基本课酬×0.2;(4)如果教师是副教授,课酬增加:基本课酬×0.1;(5)如果教师是教授,课酬增加:基本课酬×0.2;(6)讲师,课酬不增加;(7)助教,课酬减少:基本课酬×0.1。
请用判定表表达上述计算方案。
第四次作业:1、右图给出的程序流程图代表一个非结构化的程序,请问:(1)为什么说它是非结构化的?(2)设计一个等价的结构化程序。
(3)在(2)题的设计中你使用附加的标志变量flag了吗?若没用,请再设计一个使用flag的程序;若用了,再设计一个不用flag的程序2、一个正文文件由若干个记录组成,每条记录是一个字符串。
要求统计每条记录中大写字母、小写字符以及非字母字符的个数,要求输出数据格式是:每复制一行输入字符串后,输出这个字符串中的大写字母个数、小写字母个数、非字母字符个数。
用Jackson方法,按照步骤,导出该系统的程序结构图。
开始FTgqTpF停止第五次作业1、设计下列伪码程序的语句覆盖和路径覆盖测试用例:START INPUT(A, B, C)IF A>5THEN//判定表达式1X=10ELSEX=1 END IF IFB>10 THEN//判定表达式2Y=20 ELSEY=2 END IF IF C>15THEN//判定表达式3Z=30 ELSEZ=3 END IF PRINT(X, Y, Z)STOP3.假设你的任务是对一个已有的软件做重大修改,而且只允许你从下述文档中选取两份:(a)程序的规格说明;(b)程序的详细设计结果(自然语言描述加上某种设计工具表示);(c)源程序清单(其中有适当数量的注解)。
软件工程6-1
(1)由于程序流程图的特点,它本身并不是逐步求精的好工具. 因为它使程序员容易过早地考虑程序的具体控制流程,而忽略了程序的 全局结构; (2)程序流程图中用箭头代表控制流,这样使得程序员不受任何 约束,可以完全不顾结构程序设计的精神,随意转移控制;
(3)程序流程图在表示数据结构方面存在不足.
2, 盒图(N-S图) , 盒图( 图
6.4.3 程序设计风格
1,程序内部的文档 2,数据说明 3,语句构造 4,输入/输出 输入/ 5,效率
1, 程序内部的文档 ,
程序内部的文档包括:
(1)恰当的标识符(变量和标号)的名字; 恰当的标识符(变量和标号)的名字; 恰当的标识符 (2)适当的注释; 适当的注释; 适当的注释 (3)程序的视觉组织. 程序的视觉组织
2) (2)面向对象语言 对象+消息 对象 消息 例:Delphi,Visual Basic, JAVA,C++.
6.4.2 程序设计语言的选择 一般情况下,我们采用高级语言来编程. 选择具体高级语言类型的原则: 选择具体高级语言类型的原则: (1)系统的应用领域 ) (2)用户的要求 ) (3)软件的执行环境 ) (4)目标系统的性能要求 ) (5)程序员的知识水平 ) (6)软件的可移植性要求 )
4, 输入/输出 , 输入/
在设计和程序编码时,应考虑输入和输出风格原则: (1)对所有输入数据都进行校验,以保证每个数据的有 效性; 检查重要的输入项组合的合法性; 使得输入的步骤和操作尽可能简单,并保持简单的输 入格式; 输入一批数据时,使用输入结束指示符,不要要求用 户说明输入项数; (2)在以交互式输入/输出方式进行输入时,要指明可 以使用的选择值或界限值; 应允许缺省值; (3)当程序设计语言对输入/输出格式有严格要求时, 应保持输入格式与输入语句的要求一致; 给所有的输出加注释,并设计输出报表格式.
软件工程1-1
1.2 软件与软件危机
面对焦油坑,很多常用的办法就是人海战术。在《人月神话》 的第2章里,Brooks提出了著名的人月神话法则:向进度落后 的项目中增加人手,只会使进度更加落后。 Brooks的著名观点:人月神话是不存在的。(这就是人月神化 的出处) 反过来,软件开始是精英们的游戏?年轻的软件经理特别喜 欢由头等人才组成的小型、精干的队伍,而不是那些几百人的 大型团队,这里的“人”当然暗指平庸的程序员。Brooks认为, 寻求精英团队的想法是幼稚的。与其回避困难,还不如现实地 来讨论,如何在有意义的时间进度内创建大型的系统。 Brooks借助法国城市兰斯(Reims)在建筑风格上的一致性 的例子,说明,风格的一致和完整性来自8代拥有自我约束和 牺牲精神的建筑师们,他们每一个人牺牲了自己的一些创意, 以获得纯粹的设计。同样,这不仅显示了上帝的荣耀,同时也 体现了他拯救那些沉醉在自我骄傲中的人们的力量。
软件是开发出来的,不是制造出来的 软件可能被“废弃”,但不会“用坏” 软件大部分是定制的,而不是装配的
软件的复杂度
一个比较中等的项目 - 5-10 人 - 10-15 个月的开发 周期 - 3-5 个外部界面 - 一些不可知的事情 & 风险
更高的技术复杂性 - 嵌入式,实时的,分布式的,不可出错的 嵌入式,实时的,分布式的, - 定制的 空前的,可复用的 定制的, 空前的, - 高性能的
1.2 软件与软件危机
现实不容乐观
60年代(软件史前)的软件危机:
(1)对软件开发的进度和成本无法估计 (2)用户对已经开发完成的软件的满意度非常低 (3)软件质量无法保证 (4)软件开发后的维护工作很难进行 (5)软件通常没有合适的文档资料 (6)软件成本在系统总成本中所占的比例越来越高 (7)软件开发的生产率跟不上需求 1962年美国水手Ⅰ号因导航软件一个语句的语义错误,导致偏 离航线,任务失败。 阿波罗8号因计算机软件错误,造成存储器信息丢失。 阿波罗14号在飞行的10天中,出现了18个软件错误。 美国IBM公司的OS/360系统,花了几千人很多年的努力而失败
软件工程大作业题目讲解
软件工程大作业题目1.英汉小词典基本要求:实现类似“金山词霸”的英汉双向词典。
输入英文,显示词性、解释、音标和衍生词等。
输入中文,显示拼音和英文。
同时显示单词的索引,无需输入,只需点击就可查询。
高级要求:屏幕拾词2.围棋围棋是一种古老的运动,现在计算机大面积普及,围棋电子化也是一种大势所趋。
“围棋对弈”就是希望开发一个模拟现实中围棋对弈的软件平台,供人使用。
基本要求:实现围棋下子、提子、胜负判定功能,规则参照围棋界通用规则。
3.人机对弈(五子棋)基本要求:开发五子棋对弈的软件平台,进行人机对弈,实现下子和胜负判定功能,规则参照实际五子棋的通用规则。
4.游戏(挖地雷)Windows系统提供一个“挖地雷”的游戏,并具有高、中、低三个级别供用户选择。
用户按“开始”,系统进行计时,用户开始“挖”地雷,当把全部地雷都挖出,则获胜;只要碰到一个地雷就失败,只能从头开始。
地雷数目、分布位置随机产生,本游戏保存所有获胜盘的日期、开始和结束时间、地雷数。
游戏规则遵循Windows系统所提供的“挖地雷”游戏的规则。
5.计算器基本要求:Windows操作系统提供一个计算器,现要求开发一个能够完成Windows系统提供的计算器的所有功能。
高级要求:增强输入框的功能:用户可以在输入功能框中输入任何合法、非法的运算四则运算表达式,如果是合法表达式,计算器自动计算并显示结果,如果非法显示出错信息。
说明:1 合法的表达式:36.789*((23+68*45)-27/3747);2 非法的表达式:36.789*((23+68*45)-27/3747));67#67(3-2);6.源代码行数计数器基本要求:用户选择多个C或C++的程序文件,本软件能计算这些文件的源代码行数、空行行数和注解行数,计算结果显示并可保存在文件中。
高级要求:对C或C++程序进行美化,即按规则缩进,输出美化后的源程序文件。
7.画图板基本要求:实现MS Windows中“画图”软件的简单功能,包括用彩笔画直线、画矩形、画圆、用颜色填充一个区域、橡皮擦、颜色盒。
现代软件工程第9章作业
1.填空题(1)软件产品在交付使用之前一般要经过4步测试: 、、、。
(2)在单元测试中,测试一个模块是,需要设计。
(3)动态测试指通过发现错误。
对软件产品进行动态测试时,使用法。
静态测试是指不在机器上运行,而是采用和的手段对程序进行检测。
(4)白盒测试是测试,黑盒测试是测试。
(5)用白盒技术设计测试用例时,追求程序逻辑覆盖程度的几种常用覆盖技术为、、、、和。
(6)黑盒法把测试对象看成一个测试人员完全不考虑程序的和。
只在软件的处进行测试。
(7)采用黑盒技术设计测试用例的方法一般有、、、等四种。
(8)使用边界值分析方法设计测试用例时一般与结合起来。
但它不是从一个等价类中任选一个例子作为代表,而是将测试边界情况作为重点目标,选取、或边界值的测试数据。
(9)用等价类划分法设计测试用例时,如果被测试程序的某个输入条件规定了取值范围,则可确定一个合理的等价类和。
(10)软件测试的目的是,调试的目的是并,因此调试也成为。
2.选择题(1)软件测试的主要特点是()A.软件测试的开销大B.软件测试要依靠工具C.软件不能进行“穷举”测试D.软件测试要依靠人工(2)整体测试又称为组装测试,其主要内容包括()A.对整体的性能进行测试B.用白盒法设计测试用例进行测试C.确定组装策略和次序D.对组装过程进行测试(3)渐增式是将模块一个一个地连入系统,每连入一个模块()。
A.只需要对新连入的模块进行测试B.都不需要再进行测试C.要对新子系统进行测试D.都要进行回归测试(4)静态测试是以人工的、非形式化的方法对程序进行分析和测试。
常用的方法有()A.运行程序并分析运行结果B.桌前检查与代码会审C.数据流分析图D.调用图(5)集成过程的()A.按照模块的大小集成B.尽早测试包含I/O的模块C.尽早测试关键模块D.按照“输入-处理-输出”的次序进行集成(6)关于白盒法覆盖程度的论述中正确的是()A.语句覆盖:选择测试用例使程序中每条语句至少被执行一次B.判定覆盖: 选择测试用例使程序中每个判定至少获得一次“真”值和一次“假”值C.条件覆盖:选择测试用例使每个条件都满足D.条件组合覆盖:将所有的判定条件都组合起来执行(7)软件测试的基本原则是()A.关键是注重选择高效的测试用例B.选择尽可能多的测试用例C.尽量不由程序设计者进行测试D.充分注意测试中的群集现象(8)等价分类法的关键是()A.确定等价类的边界条件B.按照用例来确定等价类C.划分等价类D.确定系统中相同和不同的部分(9)调试的目的是为了()A.证明软件符合设计要求B.发现软件中的错误和缺陷C.改善软件的功能和性能D.发掘软件的潜在能力(10)①实现阶段进行,它所依据的功能模块描述和内部细节及测试方案就在②阶段完成,目的是发现编程错误。
现代软件工程第3章作业.
1.填空题(1在进行可行性研究和计划以后,如果确认开发一个新的软件系统是必要的而且是可能的,那么就进入阶段。
(2需求分析的基本任务是要准确地定义,为了满足用户的需要,回答系统必须的问题。
(3在需求分析阶段,首先进行问题识别,即双方确定对问题的综合需求,这些需求包括、、、。
另外还有可靠性、安全性、保密性、可维护性等方面的需求。
(4需求分析的困难主要表现在4个方面:问题的复杂性、、、需求易变性。
(5数据流图有4个基本成分:、、、。
(6数据词典中的加工逻辑主要描述该加工的,即实现加工的策略,而不是实现加工的细节,它描述如何把输入数据流变量变换为输出数据流的。
(7SA方法利用图形等半形式化的描述方式表达需求,简明易懂,用它们形成需求说明书的主要部分。
这些描述工具是、、、、。
(8数据词典就是用来定义数据流图中的的。
它和数据流图共同构成了系统的,是的主要组成部分。
(9加工逻辑也称“小说明”,常用的加工逻辑的描述工具有:、、。
三种描述加工逻辑的工具各有优缺点,对于顺序执行和循环执行的动作,用描述。
对于存在多个条件复杂的判断问题,用和。
(10传统的SA方法主要用于的问题,主要工具DFD图体现了系统的功能,但它仅是一个,没有处理的顺序,即。
2.选择题(1需求分析是(A.要回答“软件必须做什么”B.可概括为“理解、分解、表达”六个字C.要求编写需求规格说明书D.以上都对(2进行需求分析可使用多种工具,但(是不适用的。
A.数据流图B.判定表C.PAD图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.设计说明书(8SA方法用DFD图描述(A.系统的控制流图B.系统的数据结构C.系统的基本加工D.系统的功能(9需求分析阶段不适于描述加工逻辑的工具是(A.结构化语言B.判定表C.判定树D. 流程图(10SA方法的基本思想是(A.自底向上逐步抽象B.自底向上逐步分解C.自顶向下逐步分解D.自顶向下逐步抽象3.简答题(1需求分析阶段的基本任务是什么?需求分析的难点主要表现在哪几个方面?(2画数据流图的步骤是什么?画数据流图应该注意什么事项?(3描述加工逻辑有哪些工具?(4什么是结构化分析方法?该方法使用什么描述工具?具有什么样的优缺点?(5传统的软件开发模型的缺陷是什么?原型化方法的类型有哪些?原型化开发模型的主要优点是什么?。
现代软件工程(第一讲) 现代软件工程概述
现代软件工程(第一讲) 现代软件工程概述现代软件工程(第一讲) 现代软件工程概述1. 现代软件工程的定义现代软件工程是指应用工程原理和方法来开发和维护高质量软件的一门学科。
通过采用系统性的、规范化的和可量化的方法,现代软件工程致力于理解软件开发的原则和过程,以便提高软件的开发质量、效率和维护性。
2. 现代软件工程的特点现代软件工程具有以下几个特点:软件生命周期管理:以系统性的方式管理软件从需求分析到维护的全过程。
高质量标准:通过严格的开发和流程,保证软件的高质量。
团队协作:软件开发需要多个人员协作完成,需要良好的团队合作能力。
不断学习改进:软件工程在不断发展,软件开发人员需要不断学习新的方法和工具,以提升开发效率和质量。
3. 现代软件工程的重要性现代软件工程在当代社会中有着重要的地位和作用:软件应用广泛:软件已经渗透到我们生活的方方面面,如方式应用、电商平台、社交媒体等。
保证软件质量:软件质量关乎用户的体验和数据的安全,现代软件工程能够提供一套规范的方法来保证软件的质量。
提高开发效率:现代软件工程提供了丰富的开发工具和方法,能够提高开发效率,减少开发时间和成本。
实现创新和竞争力:现代软件工程的方法和工具能够帮助企业实现创新,提升竞争力。
4. 现代软件工程的挑战现代软件工程也面临一些挑战:技术更新快:软件技术不断更新,开发人员需要不断学习新的技术和工具。
复杂性增加:软件系统越来越复杂,开发人员需要能够处理和管理复杂系统。
资源管理困难:软件开发需要投入大量的人力、物力和时间,如何有效管理和利用资源是一个挑战。
,现代软件工程是一门关注软件开发全过程的学科,通过规范化的方法和工具,提高软件开发质量和效率,并应对技术更新和复杂性增加等挑战,以保证软件的质量和可靠性。
现代软件工程作业
(一)名词解释1.软件:软件就是计算机程序、数据以及相关得各种文档得集合。
2.软件危机软件危机就是在软件发展第二阶段末期得规模较大得项目开发中,出现了与当初得计划推迟交工、费用比预算大幅度上升、不能满足用户要求、可靠性低、维护困难等问题,导致了软件危机。
3.数据流图数据流图就是以图形得方式描述数据在系统中流动与处理得过程,只反映系统必须完成得逻辑功能,就是一种功能模型。
4.数据字典、数据字典就是用来定义数据流图中得各个成分得具体含义得。
它以一种准确得、无二义性得说明方式为系统得分析、设计及维护提供了有关元素得一致得定义与详细得描述。
5.变换流变换流指数据流图(简称DFD)具有明显得输入、变换与输出界面。
6.事务流事务流指数据流图中输入流被分离成许多数据流,形成许多加工路径,并根据输入值选择其中一条路径来执行。
7.耦合性耦合性也称块间关系,指软件系统结构中各模块间相互联系紧密程度得一种度量。
8.内聚性内聚性又称块内联系,指模块得功能强度得度量,即一个模块内部各个元素彼此结合得紧密程度得度量。
9.程序设计语言(PDL)程序设计语言(简称PDL),又称伪码,它就是一种用于描述模块算法设计与处理细节得语言。
(二)填空题1、在信息处理与计算机领域内,一般认为软件就是_程序____、__文档___ 与__数据___ 。
2、数据流图得基本组成部分有_数据流__、_加工_、_数据存储_、_数据源点或终点_。
3、数据流图与数据字典共同构成了系统得__逻辑_模型,就是需求规格说明书得主要组成部分。
4、数据流图一般可分为_变换型_与_事务型_两类。
5、结构化设计方法中,要把数据流图转换成软件结构,若某个加工将它得输入流分离成许多发散得数据流,形成许多加工路径,并根据输入得值选择其中一个路径来执行,这种特征得DFD称为_事务型_数据流图。
6、PDL就是描述处理过程“_怎么做_ ”得细节,结构化语言就是描述加工“_做什么_ ”得。
软件工程作业含答案解析
软件工程第一章作业 (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 简述数据流图的主要思想,概述使用数据流图进行需求分析的过程。
四川大学软件工程考试试题08-09B
四川大学期末考试试题A(闭卷)
参考答案与评分标标准
(2008 —2009 学年第二学期)
课程号:30487530 课序号:课程名称:现代软件工程任课教师:成绩:适用专业年级:学生人数:印题份数:学号:姓名:
2 题间不留空,一般应题卷分开教务处试题编号:
3务必用A4纸打印
2 题间不留空,一般应题卷分开教务处试题编号:3务必用A4纸打印
2 题间不留空,一般应题卷分开教务处试题编号:3务必用A4纸打印
其一级分解如下图:
试进行二级分解,给出该数据流图对应的体系结构图。
2 题间不留空,一般应题卷分开教务处试题编号:
3务必用A4纸打印。
软件工程作业4-5
软件工程作业4-5软件工程作业4-51. 简介2. 软件工程的核心概念和原则软件工程是一门涉及软件开发与维护的学科,其核心概念包括需求分析、设计、编码、和维护等。
以下是软件工程的核心原则:2.1 可靠性软件工程要求开发出高可靠性的软件系统,以确保软件在各种情况下的稳定性和可靠性。
其中的技术包括错误处理和异常处理机制的设计,以及系统的容错能力。
2.2 可维护性一旦软件系统运行在实际环境中,还需要能够方便地对其进行维护和升级。
可维护性是一个软件系统长期生存和发展的基础。
为了提高软件的可维护性,可以采取合理的软件设计和编码规范。
2.3 可扩展性随着需求的不断变化,软件系统需要能够支持新的功能和特性的添加,而不会对现有功能和特性产生不良影响。
可扩展性的设计可以提高软件系统的灵活性和适应性。
3. 软件开发过程中的重要任务在软件开发过程中,有一些重要的任务需要完成,以确保项目的成功交付。
以下是其中的一些任务:3.1 需求分析需求分析是整个软件工程过程中的第一步,它包括对项目需求的调研和分析。
需求分析的目标是明确项目的功能和要求,为后续的设计和开发工作提供基础。
3.2 设计在需求分析阶段后,需要进行软件系统的设计。
设计包括系统架构设计、模块设计、数据库设计等。
良好的设计能够提高软件系统的可维护性和可扩展性。
3.3 编码在设计完成后,进入编码阶段。
在此阶段,开发人员需要根据设计文档进行编码工作,实现项目需求。
编码过程中,需遵循编码规范,注意代码的可读性和可维护性。
3.4编码完成后,需要进行工作,以验证软件系统的正确性和稳定性。
包括单元、集成和系统等。
通过充分的,可以发现和排除潜在的问题,提高软件的质量。
3.5 维护软件系统交付后,还需要进行维护工作,包括故障修复、功能升级和性能优化等。
维护的目标是确保系统正常运行,并不断满足用户的需求。
4.。
注平时成绩由作业成绩(20⒊銮诔杉10屯
注:平时成绩由作业成绩(20%)、出勤成绩(10%)和网页点击率成绩(10%)三部份组成。
所有的作业(除非特殊说明),学员必须在当地教学站点规定的期限内,以书面的形式交给当地的专业课辅导教师批阅、打分,过期不交则作业成绩以“0分”处理。
《操作系统》作业第一章习题教材的学后自测一的:1;3;4;5;8;9第二章习题教材的学后自测二的:1;3;5;7;8第三章习题教材的学后自测三的:2;3;4;8;9;10;14;16;19;20;21;23;25;26;27;28;29;30第四章习题教材的学后自测四的:1;5;6;7;8;9;10;第五章习题教材的学后自测五的:2;3;6;7;10;11;15;16;21;23第六章习题教材的学后自测六的:1;2;3;4;5;6;7;8;12;15;17第七章习题教材的学后自测七的:1;2;3;5;7;9;11第八章习题教材的学后自测八的:1;2;3;6;8;10;11第句九章习题教材的学后自测九的:1;3;4;7;8第十章习题教材的学后自测十的:1;3;4;5《多媒体技术及应用》作业一上海学员提交时间:11月16日之前目的1.通过第三章的学习,熟悉和掌握数字图像的基本概念和技术指标,掌握色彩空间、图像分辨率、图像深度、图像文件格式与图像的显示效果、文件容量的关系。
2.了解和掌握数字图像压缩的概念,观察不同的压缩比对图像的影响。
3.课后自学了解和掌握图像处理软件P h o t o s h o p的基本功能和基本使用方法,熟练掌握图层与选择区的基本使用方法。
4.了解和掌握图像中色彩的确定及选取方法,掌握前景色与背景色的概念及调整方法,掌握色彩填充的基本概念及应用。
5.在掌握图像处理基本概念和P h o t o s h o p基本使用方法的基础上,对已有的数字图像作一些基本的创意设计和编辑处理。
内容(建议10个学时完成)图像的基本变换练习A、自选一幅不小于400×400点阵的彩色数字图像。
《现代软件工程》作业.
《现代软件工程》作业作业一:(一)名词解释1.软件危机2.数据流图3.数据字典4.变换流5.事务流6.耦合性7.内聚性8.程序设计语言(PDL)(二)填空题1. 在信息处理和计算机领域内,一般认为软件是_____、_____ 和_____ 。
2. 数据流图的基本组成部分有_____、_____、_____、_____。
3. 数据流图和数据字典共同构成了系统的_____模型,是需求规格说明书的主要组成部分。
4. 数据流图一般可分为_____和_____两类。
5. 结构化设计方法中,要把数据流图转换成软件结构,若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行,这种特征的DFD称为_____数据流图。
6。
PDL是描述处理过程“_____ ”的细节,结构化语言是描述加工“_____ ”的。
(三)选择题1。
软件工程的概念是哪年提出的( )。
A. 1988 B。
1968C。
1948 D。
19282. 影响输入输出风格的因素不包括().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、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《现代软件工程》作业作业一:(一)名词解释1.软件危机2.数据流图3.数据字典4.变换流5.事务流6.耦合性7.内聚性8.程序设计语言(PDL)(二)填空题1. 在信息处理和计算机领域内,一般认为软件是_____、_____ 和_____ 。
2. 数据流图的基本组成部分有_____、_____、_____、_____。
3. 数据流图和数据字典共同构成了系统的_____模型,是需求规格说明书的主要组成部分。
4. 数据流图一般可分为_____和_____两类。
5. 结构化设计方法中,要把数据流图转换成软件结构,若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行,这种特征的DFD称为_____数据流图。
6. PDL是描述处理过程“_____ ”的细节,结构化语言是描述加工“_____ ”的。
(三)选择题1. 软件工程的概念是哪年提出的( )。
A. 1988B. 1968C. 1948D. 19282. 影响输入输出风格的因素不包括( )。
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. 与确认测试阶段有关的文档是( )。
A. 需求规格说明书B. 概要设计说明书C. 详细设计说明书D. 源程序9. 软件开发的需求活动,其主要任务是()。
A. 给出软件解决方案B. 给出系统模块结构C. 定义模块算法D. 定义需求并建立系统模型10. 需求分析阶段的研究对象是()。
A. 用户要求B. 分析员要求C. 系统要求D. 软硬件要求11. 可自动生成程序的详细设计方法是( )。
A. 流程图B. IPO图C. 盒图D. PAD图(四)简答题1. 简述瀑布模型的阶段划分和各阶段的主要任务以及瀑布模型存在的问题。
2. 简述SA方法的优缺点。
3. 变换分析设计与事务分析设计有什么区别?简述其设计步骤。
(五)应用题某单位住房分配方案如下:所有住户50平方米以内每平方米1000元,超过50平方米后:在本人住房标准面积以内每平方米1500元,其中住房标准为:教授105平方米,副教授90平方米,讲师75平方米;标准面积以外每平方米4000元。
请用判定表和判定树表示各条件组合与费用之间的关系。
作业二:(一)名词解释1. 软件测试2. 语句覆盖3. 结构化维护4. 软件可维护性5. COCOMO估算模型6. 动态模型7. 功能模型8. 数据流图9. 事件跟踪图10.状态图(二)填空题1. 渐增式测试有三种不同的组装模块的方法:_____、_____和_____。
2. 自顶向下渐增式测试不需要编写_____模块,只需要编写_____模块,其步骤是从_____模块开始,沿着被测程序的_____的控制路径逐步向下测试,它有两种组合策略:_____和_____。
3. 自底向上渐增式测试不需要编写_____模块,只需要编写_____模块。
4. 软件配置审查的任务是检查软件的所有文档资料的_____和_____。
5. 调试也称_____,是在成功的测试之后才开始进行,其目的是确定错误的_____和_____,并改正错误。
6. 调试技术包括_____、_____、_____和_____。
7. 回溯法调试是从_____出发,而归纳法调试是从_____入手。
8. 预防性维护指为了提高软件_____和_____而对软件做出的修改。
9. 为了有效地进行软件维护,应事先开始_____,建立维护机构,这种维护机构通常以_____形式出现。
10. 软件工程管理中,控制包括_____、_____、_____和_____。
11. 在类的层次结构中,通常上层类称为______或______,下层类称为______。
12. 对象之间进行通信的构造叫做______。
在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。
接收消息的对象经过______,然后给予______,这种通信机制称为______。
13. 类中操作的______叫做方法,一个方法有______、______、______。
当一个对象接收一条消息后,它所包含的方法决定对象______。
14. 面向对象的特征是______、______、______、______。
15. 抽象是指强调实体的______、______,忽略一些无关紧要的属性。
类实现了对象的______和______的抽象,它是对象的共性的抽象。
16. 封装性是指所有软件部件内部都有明确的______以及清楚的______。
每个软件部件都有友好的______,软件部件的______与______分离。
17. 注释说明了_____的功能,它分为_____和_____。
(三)选择题1. 就软件产品的特点,以下说法错误的是( )。
A. 软件具有高度抽象性,软件及软件生产过程具有不可见性B. 同一功能软件的多样性,软件生产过程中的易错性C. 软件在开发和维护过程中的不变性D. 不同开发者之间思维碰撞的易发性2. 不属于软件项目进度安排的主要方法是( )。
A. 工程网络图B. Gantt图C. 任务资源表D. IFD图3. 以下说法错误的是( )。
A. 文档仅仅描述和规定了软件的使用范围及相关的操作命令B. 文档也是软件产品的一部分,没有文档的软件就不成软件C. 软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量D. 高质量文档对于发挥软件产品的效益有着重要的意义4. 在软件项目管理过程中作为软件开发工作的第一步的一个关键活动是( )。
A. 编写规格说明书B. 制定测试计划C. 编写需求说明书D. 制定项目计划5. 一个项目是否开发,从经济上来说是否可行,归根结底是取决于( )。
A. 成本估算B. 项目计划C. 工程管理D. 工程网络图6. 以下说法错误的是( )。
A. 软件配置管理简称SCIB. 软件配置项是配置管理的基本单位C. 软件配置实际上是一动态的概念D. 软件工程过程中某一阶段的变更均要引起软件配置的变更7. 软件工程比其他工程管理更为( )。
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. 在考察系统的一些涉及时序和改变的状况时,要用动态模型来表示。
动态模型着重于系统的控制逻辑,它包括两个图:一个是事件追踪图,另一个是( )。
A. 数据流图B. 状态图C. 系统结构图D. 时序图14. 面说法正确的是( )。
A. 经过测试没有发现错误说明程序正确B. 测试的目标是为了证明程序没有错误C. 成功的测试是发现了迄今尚未发现的错误的测试D. 成功的测试是没有发现错误的测试15. ( )能够有效地检测输入条件的各种组合可能会引起的错误。
A. 等价类划分B. 边界值分析C. 错误推测D. 因果图16火车是一种陆上交通工具。
火车和陆上交通工具之间的关系是( )关系。
A. 组装B. 整体部分C. has aD. 一般具体17. 对象模型的描述工具是( )。
A. 状态图B. 数据流图C. 对象图D. 结构图18. 面向对象的主要特征除对象惟一性、封装、继承外,还有( )。
A. 多态性B. 完整性C. 可移植性D. 兼容性19. 对白盒测试和黑盒测试补充的一种有效方法是加强阶段( )。
A. 调试B. 评审C. 维护D. 自测试20. 如果编写系统软件,可选用( )语言。
A. FoxProB. CC. COBOLD. FORTRAN21. 如果采用快速原型开发软件适宜选用( )语言。
A. 4GLB. 汇编C. AdaD. Java(四)简答题1. 简述软件测试与软件调试的区别。
2. 简述软件维护的流程。
3. 什么是软件配置管理?什么是基线?4. 面向对象设计的启发规则是什么?5. 什么是程序设计风格?为了具有良好的设计风格,应注意哪些方面的问题?(五)应用题1.某商场在“五一”期间,顾客购物时收费有4种情况:普通顾客一次购物累计少于100元,按A类标准收费(不打折),一次购物累计多于或等于100元,按B类标准收费(打9折);会员顾客一次购物累计少于1000元,按C类标准收费(打8折),一次购物累计等于或多于1000元,按D类标准收费(打7折)。
测试对象是按以上要求计算顾客收费模块,按照路径覆盖法设计测试用例。
2. 交通工具分为空中、陆上、水上交通工具,空中交通工具分为客机、货机、专用轻型机;陆上交通工具分为火车、汽车,火车和汽车又分客车、货车,水上交通工具有轮船,轮船分为客轮、货轮、客货混合轮。
建立交通工具的对象模型。