软件工程概述课程作业

软件工程概述课程作业
软件工程概述课程作业

软件工程作业与解答

第一章软件工程概述

1. 简述软件的发展过程。

答:计算机软件的发展经历了三个阶段:(1)程序设计阶段,约50 至60 年代;(2)程序系统阶段,约60至70年代;(3)软件工程阶段,约70 年代以后。各个时期软件开发的特点见课本第7 页表

1.3。

2. 简述软件的定义及特点。

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

特点见课本第1 页至第3 页。

3. 简述软件的种类。

答:见课本第3 页至第6 页。

4. 什么叫软件危机?

答:在软件发展的第二阶段,随着计算机硬件技术的进步,计算机的容量、速度和可靠性有了明显的提高,生产硬件的成本降低了。计算机价格的下跌为它的广泛应用创造了极好的条件。在这一形式下,要求软件能与之相适应。然而软件技术的进步一直未能满足形式发展提出的要求。在软件开发中遇到的问题找不到解决的办法,致使问题积累起来,形成日益尖锐的矛盾。软件开发时期所面临的这种状态就是所谓的软件危机。

5. 软件危机主要有哪几种表现?

答:见课本第8 页(1)、(2)、(3)、(4)。

6. 什么叫软件工程?

答:开发、运行、维护和修复软件的系统方法。

7. 什么叫软件生存周期?

答:软件从孕育、诞生、成长、成熟到衰亡的过程叫软件生存周期。它

包括制定计划、需求分析、设计、程序编码、测试及运行维护。

8. 简单介绍软件开发的瀑布型模型和螺线型模型。

答:见课本第11页至第14 页。

第二章系统分析

1. 简述系统分析的目标

(1) 识别用户要求;

(2) 评价系统的可行性;

(3) 进行经济分析和技术分析;

(4) 把功能分配给硬件、软件、人、数据库和其它系统元素

(5) 建立成本和进度限制;

(6) 生成系统规格说明,形成所有后续工程的基础。

2. 系统分析过程的第一步就是识别用户要求。要求的识别是系统开发的起点。为此,分析员必须回答哪些问题,才能完成这一步骤?

(1) 所期望的功能和性能是什么

(2) 可靠性和质量问题是哪些

(3) 总的系统目标是什么

(4) 成本与进度限制如何

(5) 制造的需求是什么

(6) 市场与竞争情况怎样

(7) 有效的技术有哪些

(8) 将来可能有哪些扩充

3. 软件项目的可行性研究主要集中在哪个方面?(1) 经济可行性。(2)技术可行性。(3)法律可行性。(4)抉择。

4. 填空

在成本-效益分析中,有形的效益可以用( 货币的时间价值、投资回收期、纯收入) 等指标进行度量。

第三章软件需求分析课程作业

一、简述与问答

1. 简述软件需求分析的任务。

需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其他系统元素的接口细节,定义软件的其他有效性需求。分析员通过需求分析,逐步细化对软件的要求,描述软件要处理的数据域,并给软件开发提供一种可转化为数据设计、结构设计和过程设计的数据与功能表示。在软件完成后,制定的软件需求规格说明还要为评价软件质量提供依据。

2. 软件的需求分析就是解决所开发软件做什么,做到什么程度的问题。它包括诸多需求,这些需求有那些?

功能需求、性能需求、环境需求、可靠性需求、安全保密要求、用户界面需求、资源使用需求、软件成本消耗与开发进度需求、预先估计以后系统可能达到的目标。

3. 简述需求分析评审的主要内容。

a?系统定义的目标是否与用户的要求一致;b.系统需求分析阶段提供的

文档资料是否齐全;c.文档中的所有描述是否完整、清晰、准确反映用户要求;d.与所有其他系统成分的重要接口是否都已经描述;e.所开发项目的数据

流与数据结构是否足够确定;f.所有图表是否清楚,在不补充说明时能否理

解;g?主要功能是否已包括在规定的软件范围之内,是否都已充分说明;h?设计

的约束条件或限制条件是否符合实际;i.开发的技术风险是什么;j?是否考虑过

软件需求的其他方案;k.是否考虑过将来可能会提出的软件需求;l.是否详细

制定了检验标准,它们能否对系统定义是否成功进行确认;m.有没有遗漏、

重复或不一致的地方;n?用户是否审查了初步的用户手册;o.软件开发计划中

的估算是否受到了影响。

4?软件需求分析的基本原则是什么?

(1) 必须能够表达和理解问题的数据域和功能域。(2)

必须按自顶向下、

逐层分解的方式对问题进行分解和不断细化。(3)要给出系统的逻辑视图和物理视图。

5. 什么是结构化分析方法?

结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。

6. 数据词典的任务什么?

.对于数据流图中出现的所有被命名的图形元素在数据词典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。数据词典中所有的定义应是严密的、精确的,不可有半点含混,不可有二义性。

二、填空

1. 在软件开发的原型化方法中,原型是指(软件的一个早期可运行的版本,它反映最终系统的部分重要特性)。

2. 软件原型化方法是在研究分析阶段的方法和技术中产生的,由于软件项目的特点和运行原

型的目的不同,原型主要有((1)探索型(2)实验型。(3)进化型。(4)修正和改进)三种不同的作用类型。

3. 结构化分析方法主要使用了(数据流图、数据词典、结构化英语、判定表和判定树。)

几个工具。

4. 需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统

的“做什么”的问题。其实现步骤包括((1)获得当前系统的物理模型。(2)抽象出当前系统的逻辑模型。(3)建立目标系统的逻辑模型。(4)为了对目标系统做完整的描述,还需要对得到的逻辑模型做一些补充。)

5. 需求分析阶段的工作,可以分成(问题的识别、分析与综合、制定规格说明和评审)四个方面。

第四章软件设计课程作业

1. 一旦确定了软件需求之后,就进入开发阶段。开发阶段由三个互相关联的步骤组成:(.设计、实现(编码)和测试)。

2. 性能主要是指(周转时间响应时间吞吐量精度)四个指标。

3. 概要设计阶段完成时应编写的文档包括(概要设计说明书数据库设计说明书用

户手册制定初步的测试计划)。

4. 概要设计评审的内容主要包括(可追溯性接口风险实用性技术清晰度可维护性质量各种选

择方案限制)。

5. 软件的结构包括两部分。其一为(程序模块的层次结

构),其二为(数据的结构)。

6. 在软件系统的分层模块结构图中,上级模块调用(下级模块)。它们之间存在主从关

系,即自上而下“主宰” ,自下而上“从属” 。而同一层的模块之间没有这种主从关系。

7. 多扇出意味着需要控制和协调许多(下属模块)。而多扇入的模块通常是(公用模块)。

8. 数据结构设计应确定数据的(组织、存取方式、相关程度、以及信息的不同处理方法)。

9. 软件过程着重描述(各个模块的处理细节)。软件过程必须提供精确的处理说明,包括事件的顺序、正确的判定点、重复的操作直至数据的组织和结构等等。

10. 如果模块是相互独立的,当模块变得越小,每个模块的内部结构就变得越(简单),花费的工作量也越低。

11. 模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的。一般采用两个准则度量模块独立性。即(模块间的耦合)和(模块的内聚)。

12. 在过程设计阶段,要决定各个模块的实现算法,并精确地表达这些算法。表达过程规格说明的工具可以分为以下三类:(.图形工具)、(表格工具)、(语言工具)。

二、简答题

1. 为什么软件设计在开发阶段中的具有重要意义?除了维护阶段以外,开发阶段占软件工程总成本的75%以上。开发阶段的决策将最终影响软件实现的成败,影响软件维护的难易程度。软件设计是软件开发阶段最重要的步骤。它是软件开发中质量得以保证的关键步骤。设计提供了软件的表示,使得软件的质量评价成为可能。软件设计又是将用户要求准确地转化成为最终的软件产品的唯一途径。

2. 在概要设计过程中需要完成的工作具体有哪些?

(1)制定规范:在进入软件开发阶段之初,首先应为软件开发组制定在设计时应该共同遵守的标准,以便协调组内各成员的工作。(2)软件系统结构的总体设计:在需求分析阶段,

已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,使每一部分完成简单的功能且各个部分之间又保持一定的联系,这就是功能设计。在设计阶段,基于这个功能的层次结构把各个部分组合起来成为系统。(3)处理方式设计:确定为实现软件系统的功能需求所

必需的算法,评估算法的性能。确定为满足软件系统的性能需求所必需的算法和模块间的控制方式(性能设计)。确定外部信号的接收发送形式。

3. 简述数据结构设计的内容

确定软件涉及的文件系统的结构以及数据库的模式、子模式,进行数据完整性和安全性的设计。它包括:1)确定输入、输出文件的详细的数据结构。2)结合算法设计,确定算法所必需的逻辑数据结构及其操作。3)确定对逻辑数据结构所必需的那些操作的程序模块(软件

包)。

限制和确定各个数据设计决策的影响范围。4)若需要与操作系统或调度程序接口所必须的控制表等数据时,确定其详细的数据结构和使用规则。5)数据的保护性设计

4. 在详细设计过程中需要完成的工作有哪些?

(1) 确定软件各个组成部分内的算法以及各部分的内部数据组织。(2)选定某种过程的表

达形式来描述各种算法。(3)进行详细设计的评审

5. 软件设计的最终目标是要取得最佳方案。“最佳”的含义是指什么?

是指在所有候选方案中,就节省开发费用,降低资源消耗,缩短开发时间的条件,选择能够赢得较高

的生产率、较高的可靠性和可维护性的方案。在整个设计的过程中,各个时期的设计结果需要经过一系列的设计质量的评审,以便及时发现和及时解决在软件设计中出现的问题,防止把问题遗留到开发的后期阶段,造成后患。在评审以后,必须针对评审中发现的问题,对设计的结果进行必要的修改。

6. 模块具有哪些基本属性?

(1) 功能:即指该模块实现什么功能。(2)逻辑:即描述模块内部怎么做。(3)状态:即该模块

使用时的环境和条件。

7. 简述数据设计的原则。

(1)用于软件的系统化方法也适用于数据。(2)要确定所有的数据结构和在每种数据结构

上施加的操作。(3) 应当建立一个数据词典并用它来定义数据和软件的设计。(4) 低层数据设

计的决策应推迟到设计过程的后期进行。(5) 数据结构的表示只限于那些必须直接使用该数据结构内数据的模块才能知道。(6)应当建立一个存放有效数据结构及相关操作的库。(7) 软

件设计和程序设计语言应当支持抽象数据类型的定义和实现。

8. 程序流程图有哪几种基本控制结构?

(1)顺序型(2)选择型(3)先判定(while)型循环⑷后判定(until)型循环⑸多情况(case) 型选择。

三、名词解释

1. 结构图的深度

在多层次的结构图中,其模块结构的层次数称为结构图的深度。结构图的深度在一定意义上反映了程序结构的规模和复杂程度。

2. 结构图的宽度

结构图中同一层模块的最大模块数称为结构图的宽度

3. 模块的扇入和扇出

扇出表示一个模块直接调用(或控制)的其他模块数目。扇入则定义为调用(或控制)一个

给定模块的模块个数。

4?模块

软件系统的层次结构是模块化的具体体现。将整个软件划分成若干单独命名和可编址的

部分,称之为模块。可以将这些模块组装起来以满足整个问题的需求。

5?信息隐蔽

信息隐蔽是指,每个模块的实现细节对于其他模块来说是隐蔽的。即模块中所包含的信

息(包括数据和过程)不允许其他不需要这些信息的模块使用。

四、选择一种将三个数从小到大排序的算法,分别用( 1 )流程图,(2)N-S图,(3)PAD图描述其详细过程。

设数为a,b,c,其详细过程如下:

(1)流程图

(2) N-S 图

(3) PAD 图

软件工程专业课程

软件工程专业的课程体系设计
骆 斌 张大良 邵 栋1 210093)
(南京大学软件学院 1、引言
南京市汉口路 22 号
软件工程是指开发、操作和维护软件系统的系统、规范、可度量的方法。从历史上看, 软件工程学科曾是计算机科学的一个分支,但随着软件产业不断发展的需求,传统的计算 机学科逐步上升到计算学科, 2001 年 IEEE 发布的计算学科教学规划把计算学科划分为计算 机科学、计算机工程、软件工程、信息系统、信息技术和其他有待发展的学科等子学科, 标志了软件工程这个名词作为与计算机理论相对应的各种软件实践技术的总称已经得到世 界范围内的公认。 我国在 2001 年底推出了示范性软件学院计划,把我国软件工程专业定位在面向软件产 业培养高素质的工程型软件实用人才。围绕这一定位,软件工程教育应该围绕大型软件开 发过程中的工程方法、关键技术和相关工具展开,在专业教学过程力图使得学生具备科学 世界观,掌握科学方法,具有扎实软件基础,受到良好软件工程训练,熟悉软件应用和工 具,参与过实际项目,拥有较好职业素质。 本文研究软件工程专业的课程体系设计,在研究过程中引入了科学的方法,参照 IEEE CC2001 的成熟做法, 首先明确专业的学科定位和人才培养定位, 然后建立相关的知识体系, 再后确定课程体系,最后确定课程设置和教学计划。 2、软件工程专业的相关知识领域简介 课程体系必须建立在对本专业知识体系的全面研究之上。作为软件工程专业人才培养 的基本依据,我校编写的《复合型软件实用人才的知识体系》定义了基本素质 BAS,计算 机软件基础 CSE,软件工程与软件管理 SEM,数学、工程和职业基础 MEP,软件系统与应 用 SSA,软件工具与产品 STP 等 6 个知识体系子类,并在各子类之下细分为知识领域、知 识单元和知识点三级。为方便讨论课程体系设计,现将与专业相关的 5 个子类的知识领域 简单列举如下: 1)CSE 定义了从事软件工作所应具备的软件专业基础知识,包括离散数学基础 CSE.DS,程序设计与算法基础 CSE.PF,计算机硬件基础 CSE.CH,系统软件基础 CSE.SS, 数据库应用基础 CSE.DB,网络通信基础 CSE.NC 和软件构造技术 CSE.CT 等知识领域。 2)SEM 定义了软件工程与软件管理知识,包括软件模型与分析 SEM.MA,软件设计 SEM.DE,软件检验和有效性验证 SEM.VV,软件演化 SEM.EV,软件过程 SEM.PR,软件 质量 SEM.QA 和软件管理 SEM.MG 等知识领域。 3)MEP 定义从事软件工作所应具备的数学、工程和职业知识,包括软件的数学基础 MEP.MF,软件的工程基础 MEP.EF,软件行业的职业素质 MEP.PP,软件业的外国语能力 MEP.FL 等知识领域。 4)SSA 定义从事某一方面软件工作应具备的专业或领域应用知识,包括网络工程与网 络应用 https://www.360docs.net/doc/f47243416.html,(计算机网络进阶 AN,分布式计算 DC,多媒体技术 MM) ,嵌入式与实时
1
骆斌,教授,副院长,博士;张大良,教授,副校长,软件学院教学委员会主任;邵栋,讲师。联系邮件, luobin@https://www.360docs.net/doc/f47243416.html,。

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

软件危机与软件工程 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 . 质量保证 ② A . 需求分析 B . 可行性研究 C 总体设计 D 模块化设计 ③ A . 文档编制 B . 运行维护 C . 测试 D . 验收 &软件开发中常采用的生命周期方法,由于其特征而一般称其为() A .层次模型 B .瀑布模型 C .螺旋模型 D .对象模型 9.描述软件生存周期的瀑布模型包括计划、 (A ) 、设计、编码、测试、维护等阶段。其中,设计阶段又可 以分成(B )和(C )两个步骤。 A :①需求分析 ②可行性研究 ③需求调查 ④问题定义 B, C :①方案设计 ②代码设计 ③概要(总体)设计 ④数据设计 ⑤详细设计 10.什么是软件危机?软件危机产生的原因? ".生命周期阶段的划分?每个阶段的任务? 可行性研究 软件工程 1软件危机是指在开发和( A .运行 B .设计 2 ?造成软件危机的原因是: A. 用户使用不当 C .硬件不可靠 )过程中所遇到的一系列严重问题。 B .对软件的错误认识 D ?缺乏好的开发方法和手段

软件工程课程介绍

课程介绍 课程特点: -既是一门技术学课程,也是一门管理学课程; 一既具有理论性,也具有较强的实操性。 课程目的: 一基本: 掌握软件工程的基本概念和基本原理; 掌握分析、设计、测试与维护软件系统的理论与方法; 实践软件系统 开发的全过程,构建一个软件系统。 一进一步: 转变对软件的认识:程序---------- 系统; 转变思维定式:程序员---------- 系统分析员/系统设计员; 工程化训练:规范、准则、项目管理。 课程的主要内容: 软件工程人才分布示意图

-软件工程的产生、软件的生命周期、生命周期模型; -软件开发各阶段的目标、任务、特点、步骤和文档; -传统软件工程的基本思想,开发过程和步骤,应遵循的原则和准则; -面向对象软件工程的基本思想、基本过程和基本模型; -软件工程的管理技术。 课程重点: -掌握结构化方法开发软件系统的过程、步骤、应遵循的原则以及工_ 具。 Chp.7编码与测试(实现) 教学安排: -48学时讲授; -课后作业和课后实验。 考核: —期末考试:70%;

一作业+分组实验:30%。 教材: -软件工程导论(5th),张海藩,清华大学出版社 参考文献 -软件工程(第二版),齐治昌,高等教育出版社 -软件工程实践教程,谭庆平等,高等教育出版社 先修课程: -程序设计语言 -数据结构 -数据库原理与设计 课程实验: —实验题目: 题目1:课程注册系统 为高校教务管理部门开发一个选修课程注册管理系统。在每学期开学前,教务管理人员可利用该系统输入课程信息、设定课表(每门课的任课教师、上课地点、上课时间)。开学后,学生可以利用该系统查询课程和课表信息,在第一周内注册课程和取消对课程的注册。软件系统负责将学生所选课的列表通知计费系统以确定学生应缴纳的选课费用。在学期内,任课教师可随时查询选修其所授课程的学生的信息,学生可以随时查询课程信息、课表、本人已选课程列表,教务管理人员可以随时查询所有信息。学期结束, 教师可登记学生考试成绩。 题目2:航空定票系统

软件工程专业介绍范文

软件工程专业介绍范文 软件工程学的定义 软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义: Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。IEEE:软件工程是开发、运行、维护和修复软件的系统方法。FritzBauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。 编辑本段软件工程学的内容 软件工程学的主要内容是软件开发技术和软件工程管理。软件开发技术包含软件工程方法学、软件工具和软件开发环境;软件工程管理学包含软件工程经济学和软件管理学。 专业简介 是计算机领域发展最快的学科分支之一,国家非常重视软件行业的发展,对软件人才的培养给予了非常优惠的政策。本专业培养掌握计算机软件基本理论知识,熟悉软件开发和管理技术、能够在计算机软件领域中从事软件设计、开发和管理的高级人才。

主修课程 该专业除了学习公共基础课外,还将系统学习离散数学、数据结构、算法分析、面向对象程序设计、现代操作系统、数据库原理与实现技术、编译原理、软件工程、软件项目管理、计算机安全等课程,根据学生的兴趣还可以选修一些其它选修课。 毕业去向 除考取国内外名牌大学研究生外,主要毕业去向是计算机软件专业公司﹑信息咨询公司﹑以及金融等其它独资、合资企业。 培养目标 本专业培养适应社会发展需求,德、智、体、美全面发展,具有扎实的计算机应用理论和知识基础,掌握软件工程领域的前沿技术和软件开发方法,具有较强的实践能力和创新精神,具备较强的软件项目的系统分析、设计、开发和测试能力,能够按照工程化的原则和方法从事软件项目开发和管理的应用型人才。 就业方向

软件工程试题及答案

4. 面向对象的分析方法主要是建立三类模型,即( D )。 A) 系统模型、ER模型、应用模型 B) 对象模型、动态模型、应用模型 C) E-R模型、对象模型、功能模型D) 对象模型、动态模型、功能模型 5. 在E-R模型中,包含以下基本成分( )。 A) 数据、对象、实体B) 控制、联系、对象C) 实体、联系、属性 D) 实体、属性、操作 9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[, ],现从输入的角度考虑一组测试用例:, , , . 设计这组测试用例的方法是( c ) A.条件覆盖法 B.等价分类法C.边界值分析法 D.错误推测法 10、详细设计的基本任务是确定每个模块的( d )A.功能B.调用关系C.输入输出数据 D.算法 11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:( a ) A.模块化的根据 B.逐步求精的根据 C.抽象的根据 D.信息隐藏和局部化的根据13.面向数据流的设计方法把( D )映射成软件结构。 A.数据流 B.系统结构 C.控制结构 D.信息流 14.内聚程度最低的是( A.偶然 )内聚A.偶然 B.过程 C.顺序 D.时间 15.确定测试计划是在( D )阶段制定的.A.总体设计 B.详细设计 C.编码 D.测试 16.需求分析的产品是( D ) A.数据流程图案 B.数据字典 C.判定表D.需求规格说明书 17.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( C ) A.数据库设计 B.数据通信 C.数据定义 D.数据维护 18.( D )引入了“风险驱动”的思想,适用于大规模的内部开发项目。 A.增量模型 B.喷泉模型 C.原型模型D.螺旋模型 (×)2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。 (×)4、软件需求分析的任务是建立软件模块结构图。 (√)5、尽可能使用高级语言编写程序(×)6、以结构化分析方法建立的系统模型就是数据流图。 (×)7、进行总体设计时加强模块间的联系。(×)8、编码时尽量多用全局变量. (√)9、用CASE环境或程序自动生成工具来自动生成一部分程序.(×)10、软件测试是要发现软件中的所有错误。 1. 软件生命期各阶段的任务是什么答:软件生命期分为7个阶段:1、问题定义:要解决的问题是什么 2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性 3、需求分析:系统必须做什么 4、总体设计:系统如何实现,包括系统设计和结构设计 5、详细设计:具体实现设计的系统 6、实现:编码和测试 7、运行维护:保证软件正常运行。 2、软件重用的效益是什么?

软件工程在线作业及答案

1.第1题 在软件可行性研究中,可以从不同的角度对软件进行研究,其中是从软件的成本/效益分析的是()。 A.经济可性性 B.技术可行性 C.操作可行性 D.法律可行性 您的答案:A 题目分数:2.5 此题得分:2.5 2.第2题 为了提高模块的独立性,模块内部最好是()。 A.逻辑内聚 B.时间内聚 C.功能内聚 D.通信内聚 您的答案:C 题目分数:2.5 此题得分:2.5 3.第3题 Jackson方法是一种面向()的方法。 A.对象 B.数据结构 C.数据流 D.控制流 您的答案:B 题目分数:2.5 此题得分:2.5 4.第4题 需求分析阶段研究的对象是软件项目的()。 A.用户需求 B.合理要求 C.模糊要求 D.工程要求 您的答案:A 题目分数:2.5 此题得分:2.5

5.第5题 面向数据结构的设计方法(Jackson方法)是进行()的形式化的方法。 A.系统设计 B.详细设计 C.软件设计 D.编码 您的答案:B 题目分数:2.5 此题得分:2.5 6.第6题 程序控制的三种基本结构中,()结构可提供多条路径选择。 A.反序 B.顺序 C.循环 D.分支 您的答案:D 题目分数:2.5 此题得分:2.5 7.第7题 下列属于黑盒测试的是()。 A.基本路径测试 B.条件测试 C.循环测试 D.等价划分 您的答案:D 题目分数:2.5 此题得分:2.5 8.第8题 软件设计一般分为总体设计和详细设计,它们之间的关系是()。 A.全局和局部 B.抽象和具体 C.总体和层次 D.功能和结构 您的答案:A 题目分数:2.5 此题得分:2.5

9.第9题 好的软件结构应该是()。 A.高耦合,高内聚 B.低耦合,高内聚 C.高耦合,低内聚 D.低耦合,低内聚 您的答案:B 题目分数:2.5 此题得分:2.5 10.第15题 面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组织成一个层次结构的系统,一个类的上层可以有父类,下层可以有子类,这种层次结构系统的一个重要性质是(),一个类获得其父类的全部描述(数据和操作)。 A.传递性 B.继承性 C.复用性 D.并行性 您的答案:B 题目分数:2.5 此题得分:2.5 11.第16题 软件项目管理是()一切活动的管理。 A.需求分析 B.软件设计过程 C.模块控制 D.软件生命周期 您的答案:D 题目分数:2.5 此题得分:2.5 12.第17题 一个模块把开关量作为参数传递给另一模型,这两个模块之间的耦合是()。 A.外部耦合 B.数据耦合 C.控制耦合 D.内容耦合 您的答案:C

软件工程课程教学大纲

《软件工程》课程教学大纲 (Soft Engineering) 课程编号: 学分:3 学时:48 (其中:讲课学时:42 实验学时:上机学时:6 )先修课程:C语言程序设计、数据结构与算法、计算机网络、数据库原理与应用、操作系统 后续课程:面向对象程序设计、信息工程监理、信息系统测评技术、软件工程实训 适用专业:计算机相关专业 开课部门:专业数学教研室 一、课程教学目的和课程性质 《软件工程》是信息与计算机科学专业本科学生的专业选修课,是一门综合性和实践性很强的课程。本课程主要介绍如何把工程化的思想和技术应用于软件系统的开发过程,以及在软件开发过程中必须遵循的基本原理、方法和工程标准。通过教学,使学生对软件生产工程化的具体思想、要求和方法均有较全面的了解, 为今后独立从事软件系统的开发打下相应的工程基础。 二、课程的主要内容及基本要求 第1单元软件工程学概述(3学时) [知识点] 软件的发展过程、软件危机、软件工程及开发方法。 [重点] 软件工程的基本概念、软件工程学的基本内容和软件生命周期中各阶段的基本任务。 [难点] 软件过程模型 [基本要求] 1、识记:软件、软件危机、软件工程、软件工程方法学; 2、领会:软件工程过程模型的定义及其特点; 3、简单应用:软件危机的产生原因; 4、综合应用:解释软件工程产生的原因,结合不同的软件特点对其开发应

当采用的软件过程模型。 [考核要求] 1、软件工程的定义; 2、软件生命周期的定义及其各个开发阶段的任务; 3、软件工程方法学定义及经典软件过程模型。 第2单元可行性研究(5学时) [知识点] 可行性研究的主要内容、任务及研究过程,系统流程图、数据流图、数据字典。 [重点] 系统流程图、数据流图的画法。 [难点] 可行性研究中的上层数据流图的构成方法。 [基本要求] 1、识记:可行性研究的主要内容、任务; 2、领会:如何画出所需的系统流程图; 3、简单应用:分析所需的数据字典并根据数据字典定义方法定义相关词条; 4、综合应用:在可行性研究过程中分析系统流程图,总结其数据字典,画出上层的数据流图。 [考核要求] 1、可行性研究的主要内容、任务; 2、数据流图的定义及画法,能够分析并画出可行性研究中的上层数据流图; 3、数据字典的组成及其符号定义方法。 第3单元需求分析(5学时) [知识点] 需求分析的任务、与用户沟通获取需求的方法、分析建模与规格说明、实体—联系图、状态转换图、其他图形工具、数据规范化。 [重点] 实体-联系图的概念及画法、状态转换图的定义及画法和常用图形工具的使用方法。 [难点]

《软件工程》试题及参考答案(第6套)

第一部分选择题 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1、()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。 A 软件过程 B 软件工具 C 质量保证 D 软件工程 2、在各种不同的软件需求中,功能需求描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明,()是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。 A 业务需求 B 功能要求 C 非功能需求 D 用户需求 3、软件测试计划开始于需求分析阶段,完成于()阶段。 A 需求分析 B 软件设计 C 软件实现 D 软件测试 4.下面关于面向对象方法中消息的叙述,不正确的是( )。 A. 键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息 B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息 C. 应用程序之间可以相互发送消息 D.发送与接收消息的通信机制与传统的子程序调用机制不同 5.美国卡内基—梅隆大学SEI提出的CMM模型将软件过程的成熟度分为5个等级,以下选项中,属于可管理级的特征是( )。 A.工作无序,项目进行过程中经常放弃当初的计划 B.建立了项目级的管理制度 C.建立了企业级的管理制度 D.软件过程中活动的生产率和质量是可度量的 6.在McCall软件质量度量模型中,()属于面向软件产品修改。 A.可靠性B.可重用性C.适应性 D.可移植性 7.软件生命周期中所花费用最多的阶段是() A.详细设计 B.软件编码 C.软件测 试 D.软件维护 8.需求分析阶段的任务是确定() A.软件开发方法 B.软件开发工具 C.软件开发费 D.软件系统的功能

软件工程课程安排

大一是网页制作,经典算法,c语言,军事理论,写作,高数1和高数2,离散1,中国近代史,思想道德,电子电路,英语1和2。大二是数据库原理,编译原理,离散2,数字电路,汇编语言,c++语言,mfc,计算机组成原理,英语3和4,日语1和2,马克思原理,毛邓。大三时jsp课程设计,sql server数据库,计算机体系结构,计算机网络,操作系统,计算机图形学,算法,日语3和4,人工智能,软件工程。大四我就不知道了。我刚读到大三。

《算法分析与设计》打下基础。 参考教材:《C++语言程序设计教程》谭浩强等编,高等教育出版社。 考核方式:考试。 3、04261050离散数学 《离散数学》是计算机科学与技术专业的必修课,主要学习集合论,图论,数理逻辑,形式语言等内容。本课程为学习计算机科学专业理论作好必要的准备知识,并为提高专业理论水平打下扎实的基础。 参考教材:《离散数学》朱一清编,电子工业出版社。 考核方式:考试。 4、04261060汇编语言程序设计 《汇编语言程序设计》是计算机科学与技术专业的必修课程,本课程的教学目的是:使学生掌握用汇编语言编写程序及上机运行的基本方法和技能,能用汇编语言设计实用程序,并了解与软、硬件有关课程的一些概念。 参考教材:《IBM PC汇编语言程序设计》沈美明、温科婵编,清华大学出版社。 考核方式:考试。 5、04261070数字逻辑 《数字逻辑》是计算机科学与技术专业的必修课。本课程是学习数字电路逻辑设计的理论和方法的一门课程。通过本课程的学习,使学生在深入理解理论的基础上,掌握数字电路组合网络和时序网络的分析与设计方法。前导课为《电路与电子技术》,后续课为《计算机组成原理》、《微机接口技术》、《计算机通信与网络》等课程。 参考教材:《数字逻辑与数字系统》王永军等编,电子工业出版社。 考核方式:考试。 6、04261080计算机组成原理 《计算机组成原理》是计算机科学与技术专业的必修主干课。本课程以《数字逻辑设计基础》及《汇编语言程序设计》为基础,主要讲授运算基础,运算器与运算方法;控制器与微程序设计;存储系统与辅助存储器;输入输出系统;计算机系统概述。通过本课程的学习,使学生能够较深入地理解与掌握计算机各功能部件的逻辑设计与实现,以及计算机整机各部件间的逻辑关系与连接。为后续课《微机接口技术》等奠定了理论与实验基础。

中国石油大学 软件工程 第一次在线作业

中国石油大学软件工程第一次在线作业 (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方法 ? B、Coad方法 ? C、UML语言

? D、OMT方法 我的答案:C 此题得分:2.5分 7.(2.5分)黑盒技术设计测试用例的方法之一为() ? A、因果图 ? B、逻辑覆盖 ? C、循环覆盖 ? D、基本路径测试 我的答案:A 此题得分:2.5分 8.(2.5分)软件测试方法中的静态测试方法之一为() ? A、计算机辅助静态分析 ? B、黑盒法 ? C、路径覆盖 ? D、边界值分析 我的答案:A 此题得分:2.5分 9.(2.5分)技术可行性是可行性研究的关键,其主要内容一般不包括() ? A、风险分析 ? B、资源分析 ? C、人员分析 ? D、技术分析

软件工程试题及答案

综合练习一答案 一.选择题: 1.软件危机出现于____,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。 A.50年代末 B.60年代初C.60年代末 D.70年代初 A.运筹学B.工程学 C.软件学 D.软件学 E.数字 2.开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。 A.软件投机B.软件危机C.软件工程D.软件产生 3.产生软件危机的原因有如下几点,除了______。 A、软件开发过程未经审查 B、软件开发不分阶段,开发人员没有明确的分工 C、所开发的软件,除了程序清单外,没有其他文档 D、采用工程设计的方法开发软件,不符合软件本身的特点 4.软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是____。 A.引入新技术提高空间利用率B.用较少的投资获得高质量的软件 C.缩短研制周期扩大软件功能D.硬软件结合使系统面向应用 5.请按顺序写出软件生命期的几个阶段____,____ ,____,____,____,____。 A.维护 B.测试 C.详细设计 D.概要设计 E.编码 F.需求分析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.分解和综合C.归纳与推导D.试探与回溯12.结构化系统分析主要是通过____进行分析的。 A.算法分解B.控制结构分解 C.数据结构分解D.处理功能分解13.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描述了系统的____。 总貌B.细节C.抽象D.软件的作者 13.变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于____。 A.变换型 B 事务型 14.需求分析说明书不能作为______。

中国石油大学《软件工程》复习题及答案

《软件工程》期末复习题及答案 一、单项选择题(本大题共60小题,在每小题的四个备选答案中,选出一个正确答案,并将 正确答案填涂在答题卡上) 1. 软件危机产生的主要原因是。 A.软件日益庞大 B.不能与用户良好地沟通 C.开发人员编写程序能力差 D.没有适应的开发模型 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. 结构化分析建立功能模型的工具是。 A.DFD B.判定树/判定表 C.SC D.结构化语言 9. 数据词典是对数据定义信息的集合,它所定义的对象都包含于。 A.数据流图 B.程序框图 C.软件结构 D.方框图 10.用于描述结构化分析中数据流加工逻辑的是。 A.判定树B.ER图 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.数据结构 D.程序 17.若一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输 出就是下一功能元素的输入,则该模块的内聚性类型是。 A.时间内聚 B.偶然内聚 C.顺序内聚 D.功能内聚 18.模块的内聚性最高的是。 A、逻辑内聚 B、时间内聚 C、偶然内聚 D、功能内聚 19.在软件结构设计完成后,对于下列说法,正确的是。 A.非单一功能模块的扇入数大比较好,说明本模块重用率高 B.单一功能的模块扇入高时应重新分解,以消除控制耦合的情况 C.一个模块的扇出太多,说明该模块过分复杂,缺少中间层 D.一个模块的扇入太多,说明该模块过分复杂,缺少中间层 20.变换流的DFD由三部分组成,不属于其中一部分的是。 A.事务中心 B.变换中心 C.输入流 D.输出流 21.在详细设计阶段,经常采用的工具有。P96 A. PDL B. SA C. SC D. DFD

软件工程专业的课程体系设计

中国大学教学2005年第1期 32 软件工程专业的课程体系设计 ●南京大学骆斌张大良邵栋 件工程是指开发、操作和维护软件系统的系统、规 范、可度量的方法。从历史上看,软件工程学科曾 是计算机科学的一个分支,但随着软件产业不断发展的需求,传统的计算机学科逐步上升到计算学科,2001年IEEE 发布的计算学科教学规划把计算学科划分为计算机科学、计算机工程、软件工程、信息系统、信息技术和其他有待发展的学科等子学科,标志了软件工程这个名词作为与计算机理论相对应的各种软件实践技术的总称已经得到世界范围的公认。 我国在2001年底推出了示范性软件学院计划,把我国软件工程专业定位在面向软件产业培养高素质的工程型软件实用人才。围绕这一定位,软件工程教育应该围绕大型软件开发过程中的工程方法、关键技术和相关工具展开,在专业教学过程力图使得学生具备科学世界观,掌握科学方法,具有扎实的软件基础,受到良好的软件工程训练,熟悉软件应用和工具,参与实际项目,拥有较好的职业素质。 本文研究软件工程专业的课程体系设计,在研究过程中引入了科学的方法,参照IEEE CC2001的成熟做法,首先明确专业的学科定位和人才培养定位,然后建立相关的知识体系,确定课程体系,最后确定课程设置和教学计划。 1. 软件工程专业的相关知识领域简介 课程体系必须建立在对本专业知识体系的全面研究之上。作为软件工程专业人才培养的基本依据,我校编写的《复合型软件实用人才的知识体系》定义了基本素质BAS,计算机软件基础CSE,软件工程与软件管理SEM,数学、工程和职业基础MEP,软件系统与应用SSA,软件工具与产品STP6个知识体系子类,并在各子类之下细分为知识领域、知识单元和知识点三级。为方便讨论课程体系设计,现将与专业相关的5个子类的知识领域简单列举如下: (1)CSE定义了从事软件工作所应具备的软件专业基础知识,包括离散数学基础CSE.DS,程序设计与算法基础CSE.PF,计算机硬件基础CSE.CH,系统软件基础CSE.SS,数据库应用基础CSE.DB,网络通信基础CSE.NC 和软件构造技术CSE.CT等知识领域。 (2)SEM定义了软件工程与软件管理知识,包括软件模型与分析SEM.MA,软件设计SEM.DE,软件检验和有效性验证SEM.VV,软件演化SEM.EV,软件过程SEM.PR,软件质量SEM.QA和软件管理SEM.MG等知识领域。 (3)MEP定义了从事软件工作所应具备的数学、工程和职业知识,包括软件的数学基础MEP.MF,软件的工程基础MEP.EF,软件行业的职业素质MEP.PP,软件业的外国语能力MEP.FL等知识领域。 (4)SSA定义了从事某一方面软件工作应具备的专业或领域应用知识,包括网络工程与网络应用https://www.360docs.net/doc/f47243416.html,(计算机网络进阶AN,分布式计算DC,多媒体技术MM),嵌入式与实时系统SSA.EM,图形软件系统SSA.GH,信息系统SSA.IS(组织和管理GM,系统开发理论SD,智能信息处理IP,ERP系统EP,电子商务系统EC)等领域。毕业生应该深入理解其中至少一个软件应用领域。 (5)STP定义了从事软件工作所应掌握的当前主流软件工具与软件产品,包括硬件,网络设备,PL,OS,DBMS,CASE工具等。 2.软件工程专业的课程体系设计策略 在确定软件工程专业的知识体系之后,紧接着应研究课程体系的设计策略。课程体系设计策略包括课程启动策略、课程组织策略和特色课程设置策略。 课程启动策略主要有:(1)围绕算法设计展开的算法优先策略。(2)自底向上展开的硬件优先策略。(3)从计算机导论展开的广度优先策略。(4)强调编程能力的程序设计优先策略。(5)强调系统使用的命令优先策略。(6)从面向对象展开的对象优先策略。课程组织策略包括:(1)基于主题的组织模式,把知识体系中的每个知识领域组织成一门或几门课程。(2)基于系统的组织模式,把每类计算机软硬件系统设置一门或几门课程。(3)混合模式,在课程设计时不区分前两种方法。特色课程设置策略依据本校的办学特色和研究专长确定。 软件工程专业的课程规划一方面应强调工程性、技术性、实用性、系统性、综合性和复合型,另一方面也要充分认识到强化基础在更快、更好、更有效地解决复杂软件的构造和应用方面起到的关键性作用。因此,对于课程启动策略,传统计算机科学专业的课程启动方式并不适合于本专业,但工程优先策略也不适合于那些没有任何计算机基础的本科生;对于课程组织策略,基于主题的组织模式更多地具有科学研究属性,而基于系统的组织模式又不利于强化基础知识;对于特色课程设置策略,也应避免缺乏全面综合考虑,因人设课,从而造成特色课程系统性差,教学内容重复和遗漏并存。 我院在课程体系设计时认真考虑了上述因素,采用了 软

(完整版)《软件工程》作业及答案

t h e i 《软件工程》作业及答案 1-1 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?答: 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。软件危机典型表现:对软件开发成本和进度的估计常常很不准确。用户对“已完成的”软件系统不满意的现象经常发生。软件产品的质量往往靠不住。软件常常是不可维护的。软件通常没有适当的文档资料。软件成本在计算机系统总成本中所占的比例逐年上升。软件开发生产 率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。软件不同于硬件,它是计算机系 统中的逻辑部件而不是物理部件。管理和控制软件开发过程相当困难。 软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上 升。目前相当多的软件专业人员对软件开发和维护还有不省糊涂观念, 在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。1-2 假设你是一家软件公司的总工程师,当你把图1.1给手下的软件 工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意你的观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能 在设计阶段清除它呢?”你怎么反驳他? 1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机? 答: 软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。 软件工程本质特性:1、软件工程关注于大型程序的构造;2、软件工程的中心课题是控制复杂性;3、软件经常变化;4、开发软件的效率非常重要;5、和谐地合作是开发软件的关键;6、软件必须有效地支持它的用户;7、在软件工程领域中是由具有一种文化背景的人替具 有另一种文化背景的人创造产品。 消除软件危机的途径:为了消除软件危机,首先应该对计算机软件有一个正确的认识。必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。应该推广使用在实践中总结出来的开发软件的成功 的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在 计算机系统早期发展阶段形成的一些错误概念和做法。应该开发和使用更好的软件工具。为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。1-6 什么是软件过程?它与软件工程方法学有何关系? 答: 软件过程是为了获得高质量软件所需要完成的一系列任务的框架, 它规定了完成各项任务的工作步骤。软件工程方法学包含软件过程。1-7 什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增 量模型和螺旋模型的优缺点,说明每种模型的适用范围。 答: 生命周期模型简洁地描述软件过程,规定了把生命周期划分成哪些阶段及各个阶段执行顺序。 瀑布模型历史悠久、广为人知,它的优势在于它是规范的、文档驱动的方法;这种模型的问题是,最终开发出的软件产品可能并不是用户 真正需要的。 快速原型模型正是为了克服瀑布模型的缺点而提出来的。它通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用 户反馈意见的办法,获取用户的真实需求。 增量模型具有可在软件开发的早期阶段使投资获得明显回报和较易维护的优点,但是,要求软件具有开放的结构是使用这种模型时固有的困难。 风险驱动的螺旋模型适用于内部开发的大型软件项目,但是,只有在开发人员具有风 险分析和排除风险的经验及专门知识时,使用这种模型才会获得成功。 快速原型模型:适合小型软件; 螺旋模型:适合内部开发的大规模软件项目。2-1 在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面 研究目标系统的可行性? 答: 可行性研究的目的,就是用最小的代价在尽可能短的时间内确定 问题是否能够解决。至少应该从下述三方面研究每种解法的可行性:(1)技术可行性;(2)经济可行性;(3)操作可行性。 2-5 北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。请用2.5.2小节讲述的定义数据的方法,定义上述的电话号码。答: 电话号码=[校内电话|本市电话|外地电话] 非零数字字符=[1|2|3|4|5|6|7|8|9] 校内电话=非零数字字符+3{数字}3本市电话=0+非零数字字符+7{数字}7外地电话=0+区码+非零数字字符+7{数字}73-1 为什么要进行需求分析?通常对软件系统有哪些需求?答: 为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,不论我们把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望,给开发者带来烦恼。确定对系统的综合要求:1、功能需求;2、性能需求;3、可靠性和可用性需求;4、出错处理需求;5、接口需求;6、约束;7、逆向需求;8、将来可以提出的要求,分析系统的数据要求。3-2 怎样与用户有效地沟通以获取用户的真实需求? 答: 与用户沟通获取需求的方法:访谈;面向数据流自顶向下求精;简易的应用规格说明技术;快速建立软件原型 4-2 在什么情况下应该使用形式化说明技术?使用形式化说明技术时应 遵守哪些准则? 答: 在开发大型软件系统的过程中应该使用形式化说明技术。应用形式化方法的准则:(1)应该选用适当的表示方法。(2)应该形 式化,但不要过分形式化。 (3)应该估算成本。(4)应该有形式化方法顾问随时提供咨询。 (5)不应该放弃传统的开发方法。(6)应该建立详尽的文档。(7)不应该放弃质量标准。(8)不应该盲目依赖形式化方法。(9)应该测试、测试再测试。(10)应该重用 7-8 对一个包含10000条机器指令的程序进行一个月集成测试后,总 共改正了15个错误,此时MTTF=10h;经过两个月测试后,总共改正了 25个错误(第二个月改正了10个错误),MTTF=15h 。要求:(1) 根据上述数据确定MTTF 与测试时间之间的函数关系,画出 MTTF 与测试时间τ的关系曲线。在画这条曲线时做了什么假设?(2) 为做到MTTF=100h ,必须进行多长时间的集成测试?当集成测试结束时总共改正了多少个错误,还有多少个错误潜伏在程序中? 答: (1)所做假设:1)单位长度里的错误数近似为常数;2)失效率正比于软件中剩余的错误数,而平均无故障时间与剩余的错误数成反比. 3)发现的每一个错误都立即正确地改正了.(2)由Shooman 公式:MTTF=I T /(K*(E T -E C (T))) 其中,I T =104,MTTF 1=10,n 1=15,MTTF 2=15,n 2=25。得:MTTF 1=I T /(K*(E T -E C (T 1)))10=10000/(K*(E T -15))MTTF 2=I T /(K*(E T -E C (T 2)))15=10000/(K*(E T -25)) (1)解得程序中固有的错误总数E T =45,此外K=100/3。(2)设MTTF=100,有 100=10000/((100/3)*(45-x))

软件工程概述课程作业

软件工程作业与解答 第一章软件工程概述 1.简述软件的发展过程。 答:计算机软件的发展经历了三个阶段:(1)程序设计阶段,约50至 60 年代;(2)程序系统阶段,约60至70年代;(3)软件工程阶段, 约70年代以后。各个时期软件开发的特点见课本第7页表1.3。 2.简述软件的定义及特点。 答:软件是计算机系统中与硬件相互依存的另一部份,它是包括程序、数据及其相关文档的完整集合。 特点见课本第1页至第3页。 3.简述软件的种类。 答:见课本第3页至第6页。 4.什么叫软件危机? 答:在软件发展的第二阶段,随着计算机硬件技术的进步,计算机的容量、速度和可靠性有了明显的提高,生产硬件的成本降低了。计算机价格的下跌为它的广泛应用创造了极好的条件。在这一形式下,要求软件能与之相适应。然而软件技术的进步一直未能满足形式发展提出的要求。 在软件开发中遇到的问题找不到解决的办法,致使问题积累起来,形成日益尖锐的矛盾。软件开发时期所面临的这种状态就是所谓的软件危机。 5.软件危机主要有哪几种表现? 答:见课本第8页(1)、(2)、(3)、(4)。

6.什么叫软件工程? 答:开发、运行、维护和修复软件的系统方法。 7.什么叫软件生存周期? 答:软件从孕育、诞生、成长、成熟到衰亡的过程叫软件生存周期。它 包括制定计划、需求分析、设计、程序编码、测试及运行维护。 8.简单介绍软件开发的瀑布型模型和螺线型模型。 答:见课本第11页至第14页。 第二章系统分析 1.简述系统分析的目标 (1) (2) (3) (4) (5) (6)识别用户要求; 评价系统的可行性; 进行经济分析和技术分析; 把功能分配给硬件、软件、人、数据库和其它系统元素; 建立成本和进度限制; 生成系统规格说明,形成所有后续工程的基础。 2.系统分析过程的第一步就是识别用户要求。要求的识别是系统开发的起点。为此,分析员必须回答哪些问题,才能完成这一步骤? (1) (2) (3) (4) (5) (6) (7) (8)所期望的功能和性能是什么可靠性和质量问题是哪些总的系统目标是什么成本与进度限制如何制造的需求是什么 市场与竞争情况怎样 有效的技术有哪些 将来可能有哪些扩充 3.软件项目的可行性研究主要集中在哪个方面? (1)经济可行性。(2)技术可行性。(3)法律可行性。(4)抉择。

相关文档
最新文档