当前位置:文档之家› 第3章软件工程基础

第3章软件工程基础

第3章软件工程基础
第3章软件工程基础

计算机公共基础(第三章)

第3章软件工程基础 经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是软件生命周期、软件设计的基本原理,软件测试的目的、软件调试的基本概念,读者应对此部分进行重点学习。 详细重点学习知识点: 1.软件的概念、软件生命周期的概念及各阶段所包含的活动 2.概要设计与详细设计的概念、模块独立性及其度量的标准、详细设计常用的工具3.软件测试的目的、软件测试的4个步骤、 4.软件调试的任务 3.1软件工程基本概念 考点1 软件定义与软件特点 考试链接: 考点1在笔试考试中,是一个经常考查的内容,考核的几率为70%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件的定义,特点及其分类。 软件指的是计算机系统中与硬件相互依存的另一部分,包括程序、数据和相关文档的完整集合。程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令序列。数据是使程序能正常操纵信息的数据结构。文档是与程序的开发、维护和使用有关的图文资料。可见,软件由两部分组成: (1)机器可执行的程序和数据; (2)机器不可执行的,与软件开发、运行、维护、使用等有关的文档。 软件的特点: (1)软件是逻辑实体,而不是物理实体,具有抽象性; (2)没有明显的制作过程,可进行大量的复制; (3)使用期间不存在磨损、老化问题; (4)软件的开发、运行对计算机系统具有依赖性; (5)软件复杂性高,成本昂贵; (6)软件开发涉及诸多社会因素。 根据应用目标的不同,软件可分应用软件、系统软件和支撑软件(或工具软件)。 小提示:应用软件是为解决特定领域的应用而开发的软件;系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件;支撑软件是介于两者之间,协助用户开发软件的工具性软件。 考点2 软件工程过程与软件生命周期 考试链接: 考点2在笔试考试中,在笔试考试中出现的几率为30%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件生命周期的定义,主要活动阶段及其任务。 软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。一般包括

经典题目: 第3章 软件工程基础

第3章软件工程基础经典题(8%-10%) 一、选择题 1、下列叙述中正确的是______。(2005,9) A)程序设计就是编制程序 B)程序的测试必须由程序员自己去完成 C)程序经调试改错后还应进行再测试 D)程序经调试改错后不必进行再测试 2、下列叙述中正确的是______。(2005,9) A)软件工程只是解决软件项目的管理问题 B)软件工程主要解决软件产品的生产率问题 C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 D)软件工程只是解决软件开发中的技术问题 3、在软件设计中,不属于过程设计工具的是___。(2005,9)A)PDL(过程设计语言)B)PAD图 C)N-S图D)DFD图 4、下列叙述中正确的是______。(2005,9) A)软件交付使用后需要进行维护 B)软件一旦交付使用就不需要再进行维护 C)软件交付使用后其生命周期就结束 D)软件维护是指修复程序中被破坏的指令 5、两个或两个以上模块之间关联的紧密程度称为___。(2006,4)A)耦合度B)内聚度C)复杂度D)数据传输特性 6、下列叙述中正确的是______。(2006,4) A)软件测试应该由程序开发者来完成 B)程序经调试后一般不需要再测试 C)软件维护只包括对程序代码的维护 D)以上3种说法都不对 7、从工程管理角度,软件设计一般分为两步完成,分别是______。(2006,9) A)概要设计和详细设计 B)数据设计与接口设计 ----------专业最好文档,专业为你服务,急你所急,供你所需-------------

C)软件结构设计与数据设计 D)过程设计与数据设计 8、下列选项中不属于软件生命周期开发阶段任务的是______。(2006,9) A)软件测试B)概要设计 C)软件维护D)详细设计 9、下列叙述中正确的是______。 A)软件测试的主要目的是发现程序中的错误 B)软件测试的主要目的是确定程序中错误的位置 C)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作 D)软件测试是证明软件没有错 10、软件是指______。 A)程序B)程序和文档 C)算法加数据结构D)程序、数据与相关文档 11、软件调试的目的是______。 A)发现错误B)更正错误 C)改善软件性能D)验证软件的正确性 12、下列描述中正确的是______。(2005,4) A)程序就是软件 B)软件开发不受计算机系统的限制 C)软件既是逻辑实体,又是物理实体 D)软件是程序、数据与相关文档的集合 13、软件生命周期是指______。 A)软件系统投入运行到软件系统被淘汰 B)软件系统开始研制到软件系统投入试运行 C)软件系统投入试运行到软件系统被淘汰 D)软件系统开始研制到软件系统被淘汰 14、软件工程与计算机科学性质不同,软件工程着重于______。A)理论研究B)建造软件系统 C)原理和理论D)原理探寻 15、软件系统生命周期的第一个阶段是______。 A)软件分析阶段B)软件设计阶段 C)软件运行阶段D)软件维护阶段 ----------专业最好文档,专业为你服务,急你所急,供你所需-------------

软件工程实验第三次

软件工程学院 软件工程实验报告 专业: 班级: 学号: 姓名: 指导老师:

实验一:软件开发的过程计划 实验课时:2课时 一、实验目的 项目计划的目的是为项目的研发和管理工作制定合理的行动纲领,以便所有相关人员按照计划有条不紊地开展工作。 ⑴估计项目的总体规模、工作量和成本。 ⑵制定项目计划,重点放在产品生命周期中的主要关键任务。 ⑶制定项目时间表和预算。 二、实验环境 1.硬件环境 P4以上的个人计算机环境,要求内存不少于512MB,硬盘不小于20G.。 2.软件环境 操作系统:Windows XP 数据库:Sql Server 2000以上或Access 2003以上 3.通用工具软件 通用绘图工具:MicroSoft Visio 2003以上 文本编辑工具:MicroSoft Word 2003以上 4.CASE工具 UML建模工具:Rational Rose 2000 三、实验要求、实验内容 1、实验要求: 在进行实验之前,必须掌握软件开发过程的一些基础知识,准备参考资料和阅读相关的过程模型的文档。 2、实验内容 熟悉RUP(Rational Unified Process)软件开发统一过程的思想,RUP(Rational Unified Process)是由Rational公司(现已是IBM公司的一部分)提出的过程模型,它软件工程史上最完整、最成熟、最优秀的过程模型之一。 学习软件开发的组织和管理,将项目开发各阶段的任务明确,掌握各阶段的里程碑,并熟悉相应的工具。

四、思考题 1、项目开发首先要做的事是什么? 答:进行需求分析和定义,了解客户或用户的需求,然后再进行后续。 2、你认为该软件应具备的最重要的特性是什么。 答:安全性、实用性、灵活性。 3、你认为怎样分工是最合理的? 答:该项目已经采取项目经理制,但是在具体开发过程中,情况也许会比预计的复杂,因此,在了解了各组员的工作风格的情况下,根据性格类型进行工作分配,比如:外向而且善于交流的,可以给他安排和客户交流沟通,让客户随时了解我们 的工作情况,并且反应客户的需求改变;为了让项目更好的组织和管理,可以采取 主程序员负责制;这样,在项目经理的带领下,内部安排主程序员和副程序员,工 作员有问题的话,内部自己解决,只要按时汇报工作就可以了。 五、实验内容: 项目背景 项目名称:银行计算机储蓄系统 随着社会经济的发展,XX银行的业务不断增长,传统的依靠手工的存取款业务办理方式已经不能满足不断增长的业务需求。其一,业务需求的增加需要消耗大量人力物力资源;其二,业务复杂化导致人工处理方式出错率增加,从而引起储户不满。一方面可以减轻银行业务员的工作量,另一方面可以减少工作的出错率,从而提高工作效率。现在计算机网络的告诉发现使越来越多的人更喜欢在网购物、在家存款取款。在这样的背景下,很明显现在的银行储蓄系统已经不能满足人们越益增长的需求,急切需要建立一个新的、高效的、方便的、互联的计算机储蓄系统。为解决此问题,拟为其开发计算机储蓄系统。 项目进度: 项目在项目经理的制度下,在整个开发过程中,树立“里程碑”,而且严格按照计划进行,各阶段任务必须完成,现把任务进度历程绘制如下:

《软件工程基础》习题集

《软件工程基础》习题集 第一章概述 1.什么是软件危机,它有哪些典型表现? 2.简述产生软件危机的原因和解决的思路。 3.什么是软件工程?它有哪些本质特性? 4.软件工程是如何用来消除软件危机的? 5.假设你是某软件开发企业的CEO,当你把教材P.4的图1.1给手下的软件工程师们看,同时告诉他们应及早发现并改正错误的重要性时,有人不以为然,认为要求在错误进入软件前就发现并清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么又如何能够在设计阶段就发现并清除呢?”那你应该如何说服? 6.简述软件的定义。 7.软件工程的目的是什么? 8.什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大要素?分为哪三个分支? 9.简述软件工程的基本原理。 10.软件工程的基本开发原则有哪些? 11.构成软件工程的基本元素有哪些? 12.什么是软件过程?它与软件工程方法学有何关系? 13.什么是软件生命周期?什么是软件生命周期模型? 14.简述软件生命周期方法学的途径,以及划分阶段步骤的目的和实质。15.试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明它们各自的适用围。

第二章可行性研究 1.在软件开发的早期阶段,为什么要进行可行性研究?其目的和任务各是什么?2.应该从哪些方面研究目标系统的可行性? 3.可行性研究有哪些工作步骤? 4.简述系统流程图在可行性研究中的作用。 5.简述数据流图在可行性研究中的作用和用途。 6.简单描述数据字典但容和定义数据的方法。 7.说明软件计划的容和目标。 8.什么是软件围?定义软件围需要哪些信息? 9.简述软件开发环境资源的三个层次。 10.软件环境资源的特征有哪些?它们对制定软件计划都有哪些意义? 11.软件计划中,安排软件开发进度主要可以用哪些工具?都有哪些优缺点?12.主要的成本估计技术有哪些?其依据的主要是什么? 13.为什么说成本估计是不可能精准的? 14.进行成本/效益分析的方法主要有哪些? 15.软件计划的主要容有哪些? 16.如何对制定完成的软件计划进行复审?为什么要复审? 17.为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统。如果是存款,系统记录存款人的、地址、存款类型、存款日期、存款数量和利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。 请写出问题定义并分析此系统的可行性。

软件工程实验报告

软件工程实验报告 姓名:冯巧 学号 实验题目:实验室设备管理系统 1、系统简介: 每天对实验室设备使用情况进行统计,对于已彻底损坏的作报废处理,同时详细记录有关信息。对于有严重问题(故障)的要即时修理,并记录修理日期、设备名、修理厂家、修理费用、责任人等。对于急需但又缺少的设备需以“申请表”的形式送交上级领导请求批准购买。新设备购入后立即对新设备登记(包括类别、设备名、型号、规格、单价、数量、购置日期、生产厂家、购买人等),同时更新申请表的内容。 2、技术要求及限定条件: 采用C#语言设计桌面应用程序,同时与数据库MySql进行交互。系统对硬件的要求低,不需要网络支持,在单机环境下也能运行,在局域网环境下也能使用。方案实施相对容易,成本低,工期短。 一:可行性分析 1、技术可行性分析 计算机硬件设备,数据库,实验室设备管理软件与实验室设备管理系统的操作人员组成,能够实现实验室设备管理的信息化,提高工作效率,实现现代化的实验室设备管理。系统需要满足实验室设备管理(包括对实验设备的报废、维修和新设备的购买)、实验室设备信息查询(包括按类别进行查询和按时间进行查询)、实验室设备信息统计报表(包括对已报废设备的统计、申请新设备购买的统计和现有设备的统计)。这些功能框图如下图所示: 2、经济可行性分析 依据用户的现实需求、技术现状、经济条件、工期以及其他局限性因素等等因素,考虑到工期的长短、技术的成熟可靠、操作方便等因素,本方案具备经济可行性。

3、系统可选择的开发方案 ①方案A用C#开发系统的特点是:开发工具与数据库集成一体,可视化,开发速度较快,但数据库能够管理的数据规模相对较小。系统对硬件的要求低,不需要网络支持,在单机环境下也能运行,在局域网环境下也能使用。方案的实施相对容易,成本低,工期短。 ②方案B:以小型数据库管理系统为后台数据库,该前台操作与数据库分离,也能够实现多层应用系统。系统对硬件的要求居中,特别适合在网络环境下使用,操作方便。但系统得实现最复杂,成本最高,工期也较长。 二:软件需求分析 1.软件系统需求基本描述: 实验室设备管理系统是现代企业资源管理中的一个重要内容,也是资源开发利用的基础性工作。实验室设备在信息化之前,在用户系统管理、设备维修管理、设备的增删改查管理等方面存在诸多不利于管理的地方,不适应现代的企业管理形势和资源的开发利用。 2.软件系统数据流图(由加工、数据流、文件、源点和终点四种元素组成): 1)顶层数据流图 2)二层流程图 3)总数据流图

2016年全国计算机二级考试——第三章 软件工程基础

1.软件是指() A.程序 B.程序和文档 C.算法加数据结构 D.程序、数据与相关文档的完整集合[解析]软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。其中,程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文资料。本题为D 2.下列描述中正确的是 A.程序就是软件 B.软件开发不受计算机系统的限制 C.软件既是逻辑实体,又是物理实体 D.软件是程序、数据和相关文档的集合 [解析]软件是与计算机操作相关的计算机程序、规程、规则,以及可能有的文件、文档及数据;软件开发要受到计算机系统的限制;软件是一个逻辑实体,不是物理实体,软件具有抽象性。因此本题为D 3.按软件的功能划分,需求分析工具软件属于 A.应用软件 B.系统软件 C.支撑软件 D.专用软件 [解析]p65 软件设计基本原理:模块化、模块独立性、抽象、信息隐蔽。所以本题为C 4.由于软件危机的出现,20实际70年代人们提出了“______”的思想和方法。 [解析]p44 结构化程序设计 5.______是应用于计算机定义、开发和维护的一整套方法、工具、文档、实践标准和工序。[解析]软件工程 6.下面软件工程要素中哪一项提供软件工程项目的软件开发的各个环节的控制、管理的支持? A.方法 B.工具 C.过程 D.技术 [解析]软件工程包含3个要素:方法、工具、过程。方法是完成软件开发各项任务的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发的哥哥环节的控制、管理。本题选C 7.下面不属于软件工程的三个要素的是() A.工具 B.过程 C.方法 D.环境 [解析]本题选D 8.软件工程研究的主要内容包括:______和软件工程管理。 [解析]软件开发技术 9.下列哪一项不是软件设计的基本原理? A.抽象 B.完备性 C.模块化 D.信息隐蔽 [解析] p65 软件设计基本原理:模块化、模块独立性、抽象、信息隐蔽。所以本题为C 10.下面哪一项不符合软件工程的原则? A.把程序分解成独立的模块 B.采用封装技术把程序模块的实现细节隐藏起来 C.采用全局变量传递的方式,以简化模块之间的通信接口和通信量 D.程序的内外部接口保持一致,系统规格说明与系统行为保持一致 [解析]本题选C 11.软件工程的核心思想是把软件产品当作一个______产品来处理。 [解析]工程 12.把输入转化为输出的一组相关的资源和活动是______。 [解析]软件工程过程 13.在软件开发中,需求分析阶段产生的主要文档是() A.可行性分析报告 B.软件需求规格说明书 C.概要设计说明书 D.集成测试计划

软件工程实验三-概要设计

软件工程实验三-概要设计 人事工资管理系统概要设计

目录 1.导言 (3) 1.1目的 (3) 2.系统分析 (4) 3.界面设计 (5) 图2-5人事管理0层编号1的数据流图 (9) 图2-6 人事管理0层编号2的1层数据流图 (9) 图2-7 工资管理0层数据流图 (9) 4.体系结构 (10) 4.1体系结构 (10) 4.1.1STRUCT体系结构 (10) 4.1.2系统体系结构 (12) 4.2系统运行环境 (13) 4.2.1 网络结构图............................. 错误!未定义书签。 4.2.2 硬件环境 (13) 4.2.3软件环境 (14) 5.数据模型 (15) 5.1数据库的概念结构模型设计 (15) 5.2数据库的逻辑结构模型设计 (15) 5.3数据库管理物理结构模型设计 (15)

6.模块设计 (16) 6.1.1表示层设计 (16) 6.1.2控制层 (16) 6.1.3模型层 (16) 6.2登录管理模块设计 (16) 6.2.1表示层设计 (17) 6.2.2控制层设计 (18) 6.2.3模型层设计 (18) 1.导言 1.1目的 该文档的目的是描述人事工资管理系统项目的概要设计,其主要内容包括: ●系统功能简介 ●系统结构设计 ●系统接口设计 ●数据设计 ●模块设计 ●界面设计

本文档的预期的读者是: ●开发人员 ●项目管理人员 ●测试人员 1.2范围 该文档定义了系统的结构和单元接口,但未确定单元的实现方法,这部分内容将在详细设计/实现中确定。 1.3缩写说明 UML Unified Modeling Language(统一建模语言)的缩写,是一个标准的建模语言。 HR Human resources management(人事工资管理管理)的缩写。 1.4引用标准 [1] 《企业文档格式标准》 北京长江软件有限公司 [2] 《软件概要设计报告格式标准》 北京长江软件有限公司软件工程过程化组织 1.5参考资料 [1] 《实战struct》〔美〕TedHusted 机械工业出版社 [2] 《软件重构》 清华大学出版社 2.系统分析 本系统可以实现人事工资管理,人事管理者通过该系统进行人事工资管理。系统包括管理端子系统和客户端子系统。

软件工程基础习题集答案-2

软件工程基础习题集答案-2

《软件工程基础》习题集答案 第一章概述 1.什么是软件危机,它有哪些典型表现? 所谓“软件危机”就是,在计算机软件的开发和维护过程中所遇到的一系列严重的问题,概括起来归纳为:如何开发软件,以满足日益增长、日趋复杂的需要;如何维护数量不断膨胀的已有软件。 软件危机的典型表现主要有: a. 开发成本和进度不能准确估计 b. 开发出来的软件不能满足用户的要求 c. 软件的可维护性差 d. 软件质量不可靠 e. 软件成本在系统中的比重逐年上升 f. 软件开发生产率的提高速度不够 2.简述产生软件危机的原因和解决的思路。 软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开发、维护的方法不正确有密切关系。 解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要出路。 3.什么是软件工程?它有哪些本质特性? 软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法进行软件开发和维护的学科。 其实质就是用工程的概念、原理、技术和方法,结合有效的管理方法和先进的开发技术,开发与维护软件,以解决软件危机。 4.软件工程是如何用来消除软件危机的? 软件工程是从技术和管理两个方面来研究如何更好地开发和维护计算机软件,从源头上消除软件危机。 6.简述软件的定义。 软件=程序 + 数据 + 文档 7.软件工程的目的是什么? 为高质量的软件开发提供一个科学的体系框架。 8.什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大要素?分为哪三个分支? 软件工程方法学就是指在软件生命周期全过程中使用的一整套管理和开发技术方法的集合。目前,使用最广泛的软件工程方法学分别是传统方法学和面向对象方法学。 软件工程作为一种层次化的技术,有方法、工具和过程三大要素,并由于其涉及学科内容的极为广泛,而分为三个分支:软件开发技术、软件项目管理技术、软件质量管理技术。 9.简述软件工程的基本原理。 软件工程有7条基本原理: 1.严格按照软件生命周期计划进行管理 2.坚持进行阶段评审 3.实行严格的产品控制 4.采用先进的程序设计技术 5.结果应能清楚的审查 6.开发小组成员应少而精 7.承认不断改进软件工程实践的必要性 10.软件工程的基本开发原则有哪些? 软件工程的基本开发原则有:

软件工程实验报告(总)

信息工程学院软件工程实验报告 专业: 班级: 学号: 姓名: 指导老师:

实验一:软件开发的过程计划 实验课时:2课时 一、实验目的 项目计划的目的是为项目的研发和管理工作制定合理的行动纲领,以便所有相关人员按照计划有条不紊地开展工作。 ⑴估计项目的总体规模、工作量和成本。 ⑵制定项目计划,重点放在产品生命周期中的主要关键任务。 ⑶制定项目时间表和预算。 二、实验环境 1.硬件环境 P4以上的个人计算机环境,要求内存不少于512MB,硬盘不小于20G.。 2.软件环境 操作系统:Windows XP 数据库:Sql Server 2000以上或Access 2003以上 3.通用工具软件 通用绘图工具:MicroSoft Visio 2003以上 文本编辑工具:MicroSoft Word 2003以上 4.CASE工具 UML建模工具:Rational Rose 2000 三、实验要求、实验内容 1、实验要求: 在进行实验之前,必须掌握软件开发过程的一些基础知识,准备参考资料和阅读相关的过程模型的文档。 2、实验内容 熟悉RUP(Rational Unified Process)软件开发统一过程的思想,RUP(Rational Unified Process)是由Rational公司(现已是IBM公司的一部分)提出的过程模型,它软件工程史上最完整、最成熟、最优秀的过程模型之一。 学习软件开发的组织和管理,将项目开发各阶段的任务明确,掌握各阶段的里程碑,并熟悉相应的工具。

四、思考题 1、项目开发首先要做的事是什么? 答:进行需求分析和定义,了解客户或用户的需求,然后再进行后续。 2、你认为该软件应具备的最重要的特性是什么。 答:安全性、实用性、灵活性。 3、你认为怎样分工是最合理的? 答:该项目已经采取项目经理制,但是在具体开发过程中,情况也许会比预计的复杂,因此,在了解了各组员的工作风格的情况下,根据性格类型进行工作分配,比如:外向而且善于交流的,可以给他安排和客户交流沟通,让客户随时了解我们 的工作情况,并且反应客户的需求改变;为了让项目更好的组织和管理,可以采取 主程序员负责制;这样,在项目经理的带领下,内部安排主程序员和副程序员,工 作员有问题的话,内部自己解决,只要按时汇报工作就可以了。 五、实验内容: 项目背景 项目名称:银行计算机储蓄系统 随着社会经济的发展,XX银行的业务不断增长,传统的依靠手工的存取款业务办理方式已经不能满足不断增长的业务需求。其一,业务需求的增加需要消耗大量人力物力资源;其二,业务复杂化导致人工处理方式出错率增加,从而引起储户不满。一方面可以减轻银行业务员的工作量,另一方面可以减少工作的出错率,从而提高工作效率。现在计算机网络的告诉发现使越来越多的人更喜欢在网购物、在家存款取款。在这样的背景下,很明显现在的银行储蓄系统已经不能满足人们越益增长的需求,急切需要建立一个新的、高效的、方便的、互联的计算机储蓄系统。为解决此问题,拟为其开发计算机储蓄系统。 项目进度: 项目在项目经理的制度下,在整个开发过程中,树立“里程碑”,而且严格按照计划进行,各阶段任务必须完成,现把任务进度历程绘制如下:

第3章 软件工程基础(习题答案)

第3章习题答案 3.1 什么是软件危机?为什么会出现软件危机? 解答: 软件危机是指落后的软件生产方式无法满足开发复杂软件的需求,从而导致软件开发与维护过程中出现一系列严重的问题,主要表现在:(1)软件开发费用和进度估计不准。(2)软件的正确性和可靠性难以保证。(3)文档不全,导致软件维护难度加大。 总之,可将软件危机归结为:成本、质量和生产率等问题。 到了20世纪50年代末和60年代初,随着计算机应用的普及,软件的规模和复杂度提高了,“家庭作坊”式的方法已经无法适应软件的开发。软件开发的周期变长、费用上涨,导致软件的生产效率下降、目标软件的正确性难于保证,即出现了“软件危机”。 3.2 软件工程的概念是什么?软件工程的目标和原则是什么? 解答: 软件工程是指导计算机软件开发和维护的一门学科。软件工程从管理和技术两个方面,研究如何更好地开发和维护计算机软件,内容主要包括:软件开发技术和软件工程管理。 软件工程的目标是在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。 软件工程的原则,在软件开发各阶段,应遵循一些基本原则,包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。 3.3 什么是软件的生命周期?瀑布模型把软件生命周期划分成几个时期、几个阶段?每一个阶段的任务是什么?每个阶段产生的文档是什么? 解答: 软件从提出、开发、使用到退役的整个过程称为软件生命周期,软件生命周期可划分为

3.4 什么是结构化方法?结构化分析、结构化设计、结构化程序设计分别用在软件生命周期的哪一个阶段? 解答: 结构化开发方法是现有软件开发方法中最成熟、应用最广泛的方法。结构化方法最早起源于结构化程序设计。目前由结构化分析方法(SA)、结构化设计方法(SD)及结构化程序设计方法(SP)组成。 结构化分析方法主要应用于需求分析阶段,结构化设计方法主要应用于软件概要设计阶段,结构化程序设计方法主要应用于详细设计和编码阶段。 3.5软件需求分析阶段要解决的问题是什么?采用什么分析技术?需求分析常用工具有哪些?这些工具用于表述什么? 解答: 需求分析的任务是通过与用户广泛的交流,准确定义未来系统的目标,确定为了满足用户的需求系统必须做什么,用需求规格说明书规范地、准确地表达用户的需求。 需求分析要应得到如下内容:功能需求、性能需求、环境需求、界面需求、用户或人的因素、文档要求、数据需求、资源需求、安全保密要求、软件成本消耗与开发进度需求、质量保证。 需求分析的方法很多,如功能分析法、结构化分析法、信息建模法以及面向对象分析法等。最常用的是基于功能分析的结构化分析法。 结构化分析法常用工具有数据流图、数据字典、结构化英语、判定表和判定树等工具。 数据流图从数据传递和加工的角度,描述系统的数据从输入到输出的移动变换过程。数据字典用于对数据流图中包含的全体数据元素进行定义和说明。结构化语言用于描述数据流图中“加工”的处理步骤。判定表也称决策表,可用于处理结构化语言不易表述的复杂组合条件,是描述多条件、多条目动作的形式化工具。判定树是也称决策树,它的意义与判定表一样,表述比判定表更加直观。 3.6 数据流图有哪两类?分别表示什么意义? 解答: 根据“加工”的特征,可以将局部数据流图划分成两种类型,即变换型和事务型。 变换型数据流的特点是:“加工”是按照时间顺序对数据流进行处理的。事务型数据流的特点是:接受一项事务,根据事务处理的特点和性质,选择一个适当的处理单元,然后分别处理分别给出结果。 3.7 如何从数据流图导出软件结构图? 解答: 首先区分局部数据流图的类型,然后按照变换型和事务型数据流图的特点分别转换成对应的软件结构图,最后合成一个整体。

第一章 软件工程概述习题及答案

第一章软件工程概述 一. 填空题 1. 软件的发展过程 , , , . 2. 基于软件的工作方式,软件可以划分为 , , , . 3. 在软件发展的第四阶段计算机体系结构迅速地从环境转变为环境 . 4. 在计算机系统中,软件是 , 而硬件是 . 5. 软件危机是在软件发展第阶段末期,随着第代计算机和诞而产生。 6. 文档一般可分为面向的文档,面向的文档,面向的文档和面向的文档。 7. 软件生存期若分为三个大的阶段,, . 8. 它是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。 9. 在软件的生存周期开发阶段要经三个步骤 , , 。 10. 瀑布模型是以文档为驱动、适合于的软件项目的模型。 11. 螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内为,, 和四个步骤。 12. 软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了____。采用螺旋模型时,软件开发沿着螺线自内向外旋转,每转一圈都要对____ 进行识别和分析,并采取相应的对策。螺旋线第一圈的开始点可能是一个____ 。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。 13. 软件开发模型 , , , , , . 14. 软件工程面临的问题有 , , , . 15. 面向对象方法学把客观世界的事物或实体都看成对象,把对象作为分析设计的元素,把所有对象都划分成对象类,类可以派生和 . 16.基于软件的功能划分可以把软件划分为 , ,和。 17.计算机系统发展的早期所形成的一系列错误概念和做法,已经严重地阻碍了计算机软件的开发,甚至有的根本无法维护,只能提前报废,造成大量人力、物力的浪费,从而导致软件危机。为了研究解决的方法,计算机科学技术领域中的一门新兴的学科逐步形成了,这就是。18.软件工程是指导的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。 19.为了开发出低成本高质量的软件产品,软件工程学应遵守以下基本原则: , ,和 , 。 20.原型模型是从需求分析开始。软件开发者和用户在一起定义,说明需求,并规划出定义的区域。然后快速设计软件中对用户/客户可见部分的表示。快速设计导致了原形的建造,原形由用户/客户评估,并进一步求精。

软件工程实验报告

1.1 实验一结构化需求分析 一.实验类型 图书馆管理系统 假定校图书馆需要你设计一个图书馆管理系统,要求包括以下功能: ●图书管理员可以管理馆藏图书,包括每本图书的藏书编号、书名、编著者、 ISBN号、出版社、出版时间、入馆时间、馆藏数量(如果馆藏数量为1,则标明为孤本图书)、在馆数量、学科类别等(或其它你认为有用的信息); ●管理员可以查询、统计所有图书、每一类图书或每一本书的借阅记录; ●图书管理员可以管理所有读者的信息,包括读者类型(学生、教师、社会人 士)、姓名、图书证编号、办证时间、证件状态(正常、挂失、冻结)等信息; ●图书管理员可以查询和统计所有读者、每一类读者或每一个读者的借阅记录; ●读者可以通过本系统查询馆藏图书; ●读者可以通过本系统借阅读书。但对于孤本图书或在馆数量为1的图书则不 准外借; ●管理员可以对超期未归还图书的读者发送电子邮件进行提醒,对于超期一年 不归还图书的读者冻结其图书证; ●读者可以通地本系统归还图书。如果图书超期,则自动计算罚款金额。二.实验目的 1.掌握数据流的分析技术 2.掌握软件需求分析的过程和方法。 3.熟悉项目开发计划和需求规格说明书的制定方法。 三.实验内容和要求 1.用结构化数据流分析技术进行软件系统需求分析,得出系统的数据流图和数据字典。 2.正确运用图表工具进行表示。 3.按规范正确编写软件文档。

四.实验步骤 1.理解所承担项目的业务流程和业务内容。 本软件项目是面向中小型学校、单位机构对于图书管理的基于服务的一款便捷式软件。能满足一系列常用图书管理的功能模块,提供简介、准确的操作性,可以很大程度减少人为因素带来的数据错误,统计错误,系统逻辑错误。并且规模小,很容易进行推广。 ●本项目的参与对象有图书管理员及读者。 ●对于读者,能通过该软件浏览馆藏的所有图书。读者在图书馆找到自己喜欢 的书后,能自行通过该软件操作完成借阅操作。若读者是第一次借书,必须通过图书管理员进行添加读者记录,登记读者信息。读者在登陆后方能完成借阅操作,对于孤本图书(即图书馆中馆藏只有一本的图书)则拒绝进行借阅操作。在规定期限内,读者可以通过该软件完成还书操作,对于超期的图书,应将扣除一定罚款金额,对于超期一年不归还图书的读者冻结其图书证。 并且读者能修改个人信息。 ●对于图书管理员,能管理自己和比自己低一级管理权限的管理员。一级管理 员能完成维护管理员的基本信息和二级管理员的一切操作。二级管理员则能维护自己的信息和添加读者、添加图书的功能。管理员可以对超期未归还图书的读者发送电子邮件进行提醒,对于超期一年不归还图书的读者冻结其图书证; 2.按照系统的功能及性能要求,系统的作业范围等,确定软件系统的开发环境(操作系统、开发工具、程序设计语言等)。 根据软件编程经验,本系统将采用面向对象的设计方法,使用Eclipse开发工具,java窗体应用程序,操作系统使用Win8。 3.绘制数据流图、功能分析图等。

软件工程实验答案

实验一 实验内容: 1.上网了解查询软件工程网站和相关软件工程知识 2.了解软件工程环境概念、层次、组成和开发要求。 3.查询现有主流的软件工程工具及其功能、用途、特点及适用范围。 4.浏览CASE工具。通过互联网了解现有软件工程主流工具,完成表的内容。 表1-2软件工程工具分类

Firefly 开源奇葩: CVS 5、 1:自动化测试工具,其中有Web的,应用软件的,还有单兀测试的?以上具有代表]性常用的软件是: Sele nium, Watir, Winrunner, Loadr unner, Junit 等等 2:软件测试管理工具。代表性常用软件 有:Testdirector , ClearQuest 和bugzilla 等 6、版本控制工具;文档 分析工具;开发信 息库工具;逆向工 程工具;再工程工 具。 7、DbgView 调试信息查 看器 8、SFRE 9、gprof 上的存储目录以供客户端访问,这将带来 F /V 虫 定安全隐忠 Firefly服务器上的存储目录不用共享,对客户端不透明,客户端不可直接访问存储目录,使 系统更安全可靠 CVS采用C/S模式,不需要共享服务器上的存储目录,安全性较好 PVCS基于文件系统共享,而且需要以"可 写"的权限共享存储目录,存在较大的安全隐患VSS基于文件系统共享实现对服务器的访问,需要共享存储目录,这将带来一定安全隐患 5、提高测试人员的工作效率和质量 6、 7、bgView调试信息查看器不仅仅能作为调试信息输出,而且可以作为一个信息输出软件,监视您的软件运行,目前支持mfc和windows 下dos信息输出. &从整体上支持该分析阶段的再工程自动化工具 9、用gprof对程序进行分析主要分以下三个步 骤: l 用编译器对程序进行编译,加上-pg 参数。 l 运行编译后的程序。 l 用gprof命令查看程序的运行时信 息 1-3

武汉理工大学软件工程基础实验第五次实验报告

实验五UML系统分析与设计 ----UML建模案例 实验5-1 用例图设计 实验5-2 类和对象图设计 实验5-3 交互图设计 实验5-4 状态图设计 实验5-5 活动图设计 成绩评定表:

实验5-1 用例图设计 一、实验目的 掌握在EA中用例图的基本用法和使用技巧。 二、实验内容与要求 本实验给予某学校的网上选课系统的用例图的设计和实现。 需求描述如下: 某学校的网上选课系统主要包括如下功能:管理员通过系统管理界面进入,建立本学期要开设的各种课程、将课程信息保存在数据库中并可以对课程进行改动和删除。学生通过客户机浏览器根据学号和密码进入选课界面,在这里学生可以进行三种操作:查询已选课程、选课以及付费。同样,通过业务层,这些操作结果存入数据库中。 分析: 本系统拟用三层模型实现:数据核心层、业务逻辑层和接入层。其中,数据核心层包括对于数据库的操作;业务逻辑层作为中间层对用户输入进行逻辑处理,再映射到相应的数据层操作;而接入层包括用户界面,包括系统登陆界面、管理界面、用户选择界面等。 本系统涉及的用户包括管理员和学生,他们是用例图中的活动者,他们的主要特征相似,都具有姓名和学号等信息,所以可以抽象出“基”活动者people,而管理员和学生从people统一派生。数据库管理系统是另外一个活动者。 系统事件: 添加课程事件: (1)管理员选择进入管理界面,用例开始。 (2)系统提示输入管理员密码。 (3)管理员输入密码。 (4)系统验证密码。 (5)A1密码错误 (6)进入管理界面,系统显示目前所建立的全部课程信息。 (7)管理员许恩泽添加课程。 (8)系统提示输入新课程信息。 (9)管理员输入信息。 (10)系统验证是否和已有课程冲突。 (11)A2 有冲突。 (12)用例结束。 其他事件:

中南大学软件工程基础实验报告

中南大学软件工程基础实验报告

————————————————————————————————作者:————————————————————————————————日期:

软件工程基础实验报告 软件工程基础实验报告 指导老师:王春生 姓名: 学号: 专业班级: 完成日期: 2015.6.11 学院:信息科学与工程

目录 实验一熟悉Visio的工作环境-------------------------------------------3 实验二运用Visio建模工具进行功能分析和建模-----------------8实验三完成用例图、uml类图、数据流图(DFD)------------13

实验一熟悉Visio的工作环境 一、实验目的 1.了解visio 工具软件的功能特色、工作环境和基本操作等各方面知识 2.掌握应用Visio工具绘制软件开发图形的基本操作,了解系统开发模板和建模 方法 二、实验内容 1、了解Visio的工作环境 2、了解Visio软件的菜单、工具、绘图等操作 3、按照实验步骤绘制图形,完成用例图、ER图、数据流图 4、了解类图和状态图在visio下的基本绘图操作 5、(选做)绘制状态图* 三、实验步骤 1.绘制用例图 用例图是指由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的动态视图。用例图(User Case)是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。 2.绘制ER图(实体关系图) E-R方法是“实体-联系方法”(Entity-Relationship Approach)的简称。它是描述现实世界概念结构模型的有效方法。是表示概念模型的一种方式,用矩形表示实体型,矩形框内写明实体名;用椭圆表示实体的属性,并用无向边将其与相应的实体型连接起来;用菱形表示实体型之间的联系,在菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:n 或m:n)。 由于Visio 默认的绘图模板并没有E-R图这一项,但是画E-R图必须的基本图形Visio还是有的,所以我们就得先把必要的图形添加到“我的模板”。以添加椭圆和矩形为例,打开Visio,在主界面的选择绘图类型下选择“框图”,然后选择“基本框图”。 完成下面ER图:

第三章 软件工程基础

第三章软件工程基础 3.1软件工程基本概念 软件指的是计算机系统中与硬件相互依存的另一部分,包括程序、数据和相关文档的完整集合。 软件由两部分组成: (1)机器可执行的程序和数据; (2)机器不可执行的,与软件开发、运行、维护、使用等有关的文档。 软件的特点: (1)软件是逻辑实体,而不是物理实体,具有抽象性; (2)没有明显的制作过程,可进行大量的复制; (3)使用期间不存在磨损、老化问题; (4)软件的开发、运行对计算机系统具有依赖性; (5)软件复杂性高,成本昂贵; (6)软件开发涉及诸多社会因素。 根据应用目标的不同,软件可分应用软件、系统软件和支撑软件(或工具软件)。 应用软件是为解决特定领域的应用而开发的软件; 系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件; 支撑软件是介于两者之间,协助用户开发软件的工具性软件。 软件危机主要表现在成本、质量、生产率等问题。 软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。 软件工程包括3个要素:方法、工具和过程。 方法是完成软件公曾项目的技术手段 工具支持软件的开发、管理、文档生成 过程支撑捐建开发的各个环节的控制、管理 软件工程过程是把软件转化为输出的一组彼此相关的资源和活动,包含4种基本活动: (1)P——软件规格说明; (2)D——软件开发; (3)C——软件确认; (4)A——软件演进。 软件工程过程与软件生命周期 软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。一般包括可行性分析研究与需求分析、设计、实现、测试、交付使用以及维护等活动, 还可以将软件生命周期分为软件定义、软件开发和软件运行维护3个阶段。 生命周期的主要活动阶段是:可行性研究与计划制定、需求分析、软件设计、软件实施、软件测试及运行与维护。3.2结构化设计方法 在程序结构中,各模块的内聚性越强,则耦合性越弱。软件设计应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。 软件设计的基本原理 (1)抽象:软件设计中考虑模块化解决方案时,可以定出多个抽象级别。抽象的层次从概要设计到详细设计逐步降低。 (2)模块化:模块是指把一个待开发的软件分解成若干小的简单的部分。模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。 (3)信息隐蔽:信息隐蔽是指在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。 (4)模块独立性:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。模块的独立程度是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。内聚性是信息隐蔽和局部化概念的自然扩展。一个模块的内聚性越强则该模块的模块独立性越强。一个模块与其他模块的耦合性越强则该模块的模块独立性越弱。

软件工程基础(复习题及答案)

复习题 一、判断题(每题2分,共30分) 1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析 活动。(对) 2.数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。(错) 3.JAVA语言编译器是一个CASE工具。(对)。 4.软件是指用程序设计语言(如PASCAL,C,VISUALBASIC等)编写的程序,软件开发实际上就是编写程序代码。(错) 5.软件模块之间的耦合性越弱越好。(对) 6.数据库设计说明书是一个软件配置项(对) 7.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。(错) 8.过程描述语言可以用于描述软件的系统结构。(错) 9.如果通过软件测试没有发现错误,则说明软件是正确的。(错) 10.快速原型模型可以有效地适应用户需求的动态变化。(对) 11.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。(对) 12.集成测试主要由用户来完成。(错) 13.确认测试计划应该在可行性研究阶段制定(错) 14.白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。(错) 15.软件概要设计包括软件系统结构设计以及数据结构和数据库设计。(对) 16.在可行性研究中最难决断和最关键的问题是经济可行性。(╳) 17.耦合是指一个模块内各个元素彼此结合的紧密程度。(╳) 18.一笔交易、一个动作、甚至操作人员按一个按钮都可以看做是一次事物。(√) 19.概要设计阶段完成的主要文档是概要设计说明书。(√) 20.过大的模块可能是由于分解不充分造成的,即使降低模块独立性也必须继续分解。(╳)

相关主题
文本预览
相关文档 最新文档