软件工程课程作业.doc
《软件工程课程作业.doc》由会员分享,可在线阅读,更多相关《软件工程课程作业.doc(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程作业及解答第一章 软件工程概述1.简述软件发展过程。 答:计算机软件发展经历了三个阶段:(1)程序设计阶段,约50至60年代;(2)程序系统阶段,约60至70年代;(3)软件工程阶段,约70年代以后。各个时期软件开发特点见课本第7页表1.3。2.简述软件定义及特点。 答:软件是计算机系统中及硬件相互依存另一部份,它是包括程序、数据及其相关文档完整集合。 特点见课本第1页至第3页。3.简述软件种类。 答:见课本第3页至第6页。4.什么叫软件危机? 答:在软件发展第二阶段,随着计算机硬件技术进步,计算机容量、速度与可靠性有了明显提高,生产硬件成本降低了。计算机价格下跌为它广泛应用创造了极好
2、条件。在这一形式下,要求软件能及之相适应。然而软件技术进步一直未能满足形式发展提出要求。在软件开发中遇到问题找不到解决办法,致使问题积累起来,形成日益尖锐矛盾。软件开发时期所面临这种状态就是所谓软件危机。5.软件危机主要有哪几种表现? 答:见课本第8页(1)、(2)、(3)、(4)。6.什么叫软件工程? 答:开发、运行、维护与修复软件系统方法。7.什么叫软件生存周期? 答:软件从孕育、诞生、成长、成熟到衰亡过程叫软件生存周期。它包括制定计划、需求分析、设计、程序编码、测试及运行维护。8.简单介绍软件开发瀑布型模型与螺线型模型。 答:见课本第11页至第14页。第二章 系统分析1.简述系统分析目标
3、(1) 识别用户要求;(2) 评价系统可行性;(3) 进行经济分析与技术分析;(4) 把功能分配给硬件、软件、人、数据库与其它系统元素;(5) 建立成本与进度限制;(6) 生成系统规格说明,形成所有后续工程基础。2.系统分析过程第一步就是识别用户要求。要求识别是系统开发起点。为此,分析员必须回答哪些问题,才能完成这一步骤?(1) 所期望功能与性能是什么(2) 可靠性与质量问题是哪些(3) 总系统目标是什么(4) 成本及进度限制如何(5) 制造需求是什么(6) 市场及竞争情况怎样(7) 有效技术有哪些(8) 将来可能有哪些扩充3.软件项目可行性研究主要集中在哪个方面?(1)经济可行性。(2)技术
4、可行性。(3)法律可行性。(4)抉择。4.填空 在成本-效益分析中,有形效益可以用(货币时间价值、投资回收期、纯收入 )等指标进行度量。第三章 软件需求分析课程作业 一、简述及问答1.简述软件需求分析任务。需求分析所要做工作是深入描述软件功能与性能,确定软件设计限制与软件同其他系统元素接口细节,定义软件其他有效性需求。分析员通过需求分析,逐步细化对软件要求,描述软件要处理数据域,并给软件开发提供一种可转化为数据设计、结构设计与过程设计数据及功能表示。在软件完成后,制定软件需求规格说明还要为评价软件质量提供依据。2.软件需求分析就是解决所开发软件做什么,做到什么程度问题。它包括诸多需求,这些需求
5、有那些?功能需求、性能需求、环境需求、可靠性需求、安全保密要求、用户界面需求、资源使用需求、软件成本消耗及开发进度需求、预先估计以后系统可能达到目标。3.简述需求分析评审主要内容。a.系统定义目标是否及用户要求一致;b.系统需求分析阶段提供文档资料是否齐全;c.文档中所有描述是否完整、清晰、准确反映用户要求;d.及所有其他系统成分重要接口是否都已经描述;e.所开发项目数据流及数据结构是否足够确定;f.所有图表是否清楚,在不补充说明时能否理解;g.主要功能是否已包括在规定软件范围之内,是否都已充分说明;h.设计约束条件或限制条件是否符合实际;i.开发技术风险是什么;j.是否考虑过软件需求其他方案
6、;k.是否考虑过将来可能会提出软件需求;l.是否详细制定了检验标准,它们能否对系统定义是否成功进行确认;m.有没有遗漏、重复或不一致地方;n.用户是否审查了初步用户手册;o.软件开发计划中估算是否受到了影响。4.软件需求分析基本原则是什么?(1)必须能够表达与理解问题数据域与功能域。(2)必须按自顶向下、逐层分解方式对问题进行分解与不断细化。(3)要给出系统逻辑视图与物理视图。5.什么是结构化分析方法?结构化分析方法就是用抽象模型概念,按照软件内部数据传递、变换关系,自顶向下逐层分解,直到找到满足功能要求所有可实现软件为止。6.数据词典任务什么?.对于数据流图中出现所有被命名图形元素在数据词典
7、中作为一个词条加以定义,使得每一个图形元素名字都有一个确切解释。数据词典中所有定义应是严密、精确,不可有半点含混,不可有二义性。二、填空1.在软件开发原型化方法中,原型是指(软件一个早期可运行版本,它反映最终系统部分重要特性)。2.软件原型化方法是在研究分析阶段方法与技术中产生,由于软件项目特点与运行原型目不同,原型主要有((1)探索型(2)实验型。(3)进化型。 (4)修正与改进)三种不同作用类型。3.结构化分析方法主要使用了(数据流图、数据词典、结构化英语、判定表与判定树。 )几个工具。4.需求分析任务就是借助于当前系统逻辑模型导出目标系统逻辑模型,解决目标系统“做什么”问题。其实现步骤包
8、括((1)获得当前系统物理模型。(2)抽象出当前系统逻辑模型。(3)建立目标系统逻辑模型。(4)为了对目标系统做完整描述,还需要对得到逻辑模型做一些补充。)5.需求分析阶段工作,可以分成(问题识别、分析及综合、制定规格说明与评审)四个方面。第四章 软件设计课程作业 1.一旦确定了软件需求之后,就进入开发阶段。开发阶段由三个互相关联步骤组成:(.设计、实现(编码)与测试)。2.性能主要是指(周转时间 响应时间 吞吐量 精度)四个指标。3.概要设计阶段完成时应编写文档包括(概要设计说明书 数据库设计说明书 用户手册 制定初步测试计划)。4.概要设计评审内容主要包括(可追溯性 接口 风险 实用性 技
9、术清晰度 可维护性 质量 各种选择方案 限制)。5.软件结构包括两部分。其一为(程序模块层次结构),其二为(数据结构 )。6.在软件系统分层模块结构图中,上级模块调用(下级模块)。它们之间存在主从关系,即自上而下“主宰”,自下而上“从属”。而同一层模块之间没有这种主从关系。7.多扇出意味着需要控制与协调许多(下属模块)。而多扇入模块通常是(公用模块)。8.数据结构设计应确定数据(组织、存取方式、相关程度、以及信息不同处理方法)。9.软件过程着重描述(各个模块处理细节 )。软件过程必须提供精确处理说明,包括事件顺序、正确判定点、重复操作直至数据组织与结构等等。10.如果模块是相互独立,当模块变得
10、越小,每个模块内部结构就变得越(简单 ),花费工作量也越低。11.模块独立性是指软件系统中每个模块只涉及软件要求具体子功能,而与软件系统中其他模块接口是简单。一般采用两个准则度量模块独立性。即(模块间耦合)与(模块内聚)。12.在过程设计阶段,要决定各个模块实现算法,并精确地表达这些算法。表达过程规格说明工具可以分为以下三类:(.图形工具)、(表格工具)、(语言工具 )。二、简答题1.为什么软件设计在开发阶段中具有重要意义?除了维护阶段以外,开发阶段占软件工程总成本75%以上。开发阶段决策将最终影响软件实现成败,影响软件维护难易程度。软件设计是软件开发阶段最重要步骤。它是软件开发中质量得以保证
11、关键步骤。设计提供了软件表示,使得软件质量评价成为可能。软件设计又是将用户要求准确地转化成为最终软件产品唯一途径。2.在概要设计过程中需要完成工作具体有哪些?(1)制定规范:在进入软件开发阶段之初,首先应为软件开发组制定在设计时应该共同遵守标准,以便协调组内各成员工作。(2)软件系统结构总体设计:在需求分析阶段,已经从系统开发角度出发,把系统按功能逐次分割成层次结构,使每一部分完成简单功能且各个部分之间又保持一定联系,这就是功能设计。在设计阶段,基于这个功能层次结构把各个部分组合起来成为系统。(3)处理方式设计:确定为实现软件系统功能需求所必需算法,评估算法性能。确定为满足软件系统性能需求所必
12、需算法与模块间控制方式(性能设计)。确定外部信号接收发送形式。3.简述数据结构设计内容确定软件涉及文件系统结构以及数据库模式、子模式,进行数据完整性与安全性设计。它包括:1)确定输入、输出文件详细数据结构。2)结合算法设计,确定算法所必需逻辑数据结构及其操作。3)确定对逻辑数据结构所必需那些操作程序模块(软件包)。限制与确定各个数据设计决策影响范围。4)若需要及操作系统或调度程序接口所必须控制表等数据时,确定其详细数据结构与使用规则。5)数据保护性设计4.在详细设计过程中需要完成工作有哪些?(1)确定软件各个组成部分内算法以及各部分内部数据组织。(2)选定某种过程表达形式来描述各种算法。(3)
13、进行详细设计评审5.软件设计最终目标是要取得最佳方案。“最佳”含义是指什么?是指在所有候选方案中,就节省开发费用,降低资源消耗,缩短开发时间条件,选择能够赢得较高生产率、较高可靠性与可维护性方案。在整个设计过程中,各个时期设计结果需要经过一系列设计质量评审,以便及时发现与及时解决在软件设计中出现问题,防止把问题遗留到开发后期阶段,造成后患。在评审以后,必须针对评审中发现问题,对设计结果进行必要修改。6.模块具有哪些基本属性?(1)功能:即指该模块实现什么功能。(2)逻辑:即描述模块内部怎么做。(3)状态:即该模块使用时环境与条件。7.简述数据设计原则。(1)用于软件系统化方法也适用于数据。(2
14、)要确定所有数据结构与在每种数据结构上施加操作。(3)应当建立一个数据词典并用它来定义数据与软件设计。(4)低层数据设计决策应推迟到设计过程后期进行。(5)数据结构表示只限于那些必须直接使用该数据结构内数据模块才能知道。(6)应当建立一个存放有效数据结构及相关操作库。(7)软件设计与程序设计语言应当支持抽象数据类型定义与实现。8.程序流程图有哪几种基本控制结构?(1)顺序型 (2)选择型 (3)先判定(while)型循环 (4)后判定(until)型循环 (5)多情况(case)型选择。三、名词解释1.结构图深度在多层次结构图中,其模块结构层次数称为结构图深度。结构图深度在一定意义上反映了程序
15、结构规模与复杂程度。2.结构图宽度结构图中同一层模块最大模块数称为结构图宽度3.模块扇入与扇出扇出表示一个模块直接调用(或控制)其他模块数目。扇入则定义为调用(或控制)一个给定模块模块个数。4.模块软件系统层次结构是模块化具体表达。将整个软件划分成若干单独命名与可编址部分,称之为模块。可以将这些模块组装起来以满足整个问题需求。5.信息隐蔽信息隐蔽是指,每个模块实现细节对于其他模块来说是隐蔽。即模块中所包含信息(包括数据与过程)不允许其他不需要这些信息模块使用。四、选择一种将三个数从小到大排序算法,分别用(1)流程图,(2)N-S图,(3)PAD图描述其详细过程。设数为a,b,c,其详细过程如下
16、:(1)流程图 (2)N-S图 (3)PAD图第五章 Jackson系统开发方法 一、问答1.JSD系统模型是互相通信一组进程集合。进程间通信可采用哪几种方式?(1)进程活动同步发生。(2)通过数据流通道发送/接收活动发生。(3)访问公用存储信息。2.JSD方法是支持软件分析及设计一组连续技术步骤,它们包括哪些方面?(1) 实体动作分析:从问题描述中,提取软件系统要产生与运用实体(人、物或组织),以及现实世界作用于实体上动作(事件)。(2) 实体结构分析:把作用于实体动作或由实体执行动作,按时间发生先后次序排序,构成进程,并用一个层状Jackson结构图表示。(3) 定义初始模型:把实体与动作
17、表示成一个进程模型,定义模型及现实世界联系。(4) 功能描述:说明及已定义动作相对应功能,为已定义动作加入功能函数。(5) 决定系统时间特性:对进程加入时间因素,对进程调度特性进行评价与说明。(6) 实现:设计组成系统硬件与软件,实现系统原型。3.在Jackson系统开发方法中定义了哪几种功能?(1) 嵌入功能:把操作分配(或写入)到模型进程结构正文内。(2) 强制功能:检查模型进程状态向量,并给出输出结果。(3) 交互功能:检查模型进程状态向量,写入一个施加于模型进程活动数据流,或引入一个写出结果操作。二、填空1.JSD方法前三步属于(需求分析)阶段,后三步属于(设计)阶段。2.分析实体动作
18、,需要从一段用简单自然语言给出问题描述(通常是一个段落)入手。当选定了实体与动作时候,实际上已经把要开发系统(范围)划定了。第六章 用户界面设计课程作业 一、填空1.用户界面作为软件重要组成部分,应当具备(可使用性 灵活性 复杂性与可靠性 )三方面特性。2.用户类型通常可以分为(外行型 初学型 熟练型 专家型)种类型。3.按照显示形象或样式来分类菜单可分为(正文菜单 图标菜单 正文与图标混合菜单 )。4.按屏幕位置与操作风格来分类菜单可分为(固定位置菜单 浮动位置菜单 下拉式菜单 嵌入式菜单)。5.常用二维图形显示包括(直方图 饼图 折线图 散布图)等几种。 二、问答题1.用户界面可使用性是用
19、户界面设计最重要也是最基本目标。它包括哪些内容?(1)使用简单性(2)用户界面中所用术语标准化与一致性(3)拥有HELP帮助功能(4)快速系统响应与低系统成本(5)用户界面应具有容错能力2.怎样理解用户界面复杂性?用户界面规模与组织复杂程度就是界面复杂性。在完成预定功能前提下,应当使得用户界面越简单越好。但也不是把所有功能与界面安排成线性序列就一定简单。3.用户界面设计任务分析应及软件系统需求分析同步进行。它包括用那几个步骤?用户特性分析、用户工作分析、记录用户有关系统概念与术语、确定界面类型等4个步骤。4.用户特性度量主要衡量标准是什么?1)用户使用频度2)用户需要自由选用界面情况3)用户对
20、计算机熟悉程度4)用户知识5)用户思维能力6)用户生理能力与技能5.如果从用户及计算机交互角度来看,用户界面设计类型主要有哪些?问题描述语言、数据表格、图形及图标、菜单、对话、以及窗口等等。每一种类型都有不同特点与性能。6.对话框有哪几种对话形式?(1)必须回答式(2)无需回答式(3)警告式。7.问题描述语言是一种结构化语言,它可以分为哪几层?(1)任务层(2)语义层(3)语法层(4)交互层。8.数据输入对话设计一般规则是什么?(1)确认输入(2)交互动作(3)明确取消(4)确认删除(5)提供反馈(6)允许编辑(7)提供复原(Undo)(8)自动格式化(9)提示输入范围第七章 程序编码 一、填
21、空1.(程序编码)阶段工作是把软件详细设计变换成用某一种程序设计语言编写可实现源程序。 2.结构化程序设计中,应注意数据结构合理化问题,即数据结构访问规范化,标准化问题。对于数据结构中常使用数组、指针等数据类型,一般可用(栈 )与(队列)去代替。3.源程序文档化包括(选择标识符名字)、(安排注释 )以及程序(视觉组织 )等。二、问答1.结构化程序设计主要原则有哪些?(1)使用语言中顺序、选择、重复等有限基本控制结构表示程序逻辑。(2)选用控制结构只准许有一个入口与一个出口。(3)程序语句组成容易识别块(Block),每块只有一个入口与一个出口。(4)复杂结构应该用基本控制结构进行组合嵌套来实现
22、。(5)语言中没有控制结构,可用一段等价程序段模拟,但要求该程序段在整个系统中应前后一致。(6)严格控制GOTO语句,仅在下列情形才可使用:a.用一个非结构化程序设计语言去实现一个结构化构造。b.在某种可以改善而不是损害程序可读性情况下。2.自顶向下逐步求精方法优点是什么?(1)自顶向下,逐步求精方法符合人们解决复杂问题普遍规律。可提高软件开发成功率与生产率;(2)用先全局后局部,先整体后细节,先抽象后具体逐步求精过程开发出来程序具有清晰层次结构,因此程序容易阅读与理解;(3)程序自顶向下,逐步细化,分解成一个树形结构,在同一层节点上做细化工作,相互之间没有关系,因此它们之间细化工作相互独立;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 课程 作业
限制150内