第一篇:软件工程导论课程报告
软件工程导论课程报告
学习软件工程导论将近一个学期了,期间学习让我认识和了解到软件工程专业的各种相关知识,为我能学习好软件工程这个专业打下了专业背景知识的基础。自己到了解什么是软件工程,软件工程学习什么,软件工程做什么,也为自己怎样设计大学四年规划做好准备。学习软件工程导论,可以培养我们学生系统理解和掌握计算机网络与软件工程的理论、相关知识和技能,能构建网络、分析和排除常见网络故障,维护网络的安全和正常运行的能力,从而使自己能在专业学习后,成为能从事计算机应用软件的测试、开发,计算机网络系统管理与维护工作的应用型专业人才。
首先是什么是软件工程。关于软件工程的概念,一直都存在多种不同的定义,目前国际上比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到的方面有:程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。在现代社会中,软件应用于多个方面,例如在电子邮件、嵌入式系统、办公套件、数据库,游戏等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。
软件工程要学习的主要课程有英语、高等数学、线性代数、高等代数、电子技术基础、离散数学、计算机引论(C语言)、数据结构、C++程序设计、c#程序设计、JAVA程序设计、Delphi程序设计、汇编语言程序设计、算法设计与分析、计算机组成原理与体系结构、数据库系统、计算机网络、软件工程、软件测试技术、软件需求与项目管理、软件设计实例分析、CMM/ISO9000、Asp等。
软件工程专业学生毕业后可以从事各级各类企事单位的业办公自动化处理、计算机安装与维护、网页制作、计算机网络和专业服务器的维护管理和开发工作、动态商务网站开发与管理、软件测试与开发及计算机相关设备的商品贸易等方面的有关工作。
学习完软件工程导论这门课后,我总结了自己这段时间的学习经验,发现了自己一开学习软件工程的错误想法,觉得之前认为只要学会写代码就可以很轻松的写出程序和软件,原来学习软件工程并不简单,它有很强的规范性和逻辑性,如果不按照这些规范来编写程序,写出来的只是些杂乱无序的代码,这样的代码很容易出错,很不方便修改,而且程序代码不是单是写给自己看的,还要方便帮助你修改的人查看。规范的编程习惯可以提高软件开发的成功率,这是做一个合格的软件工程师的基本要求,要做一个专业的软件工程师不容易,我们必须遵循软件工程的操作规范,不能个人主义,软件工程还强调团体分工合作的重要性,一个成功软件的开发,离不开整个团队的各成员的努力,现今成功的软件没有几个是只有一个人完全编写而成,每个人都有其擅长和不擅长的领域,因此配合好各成员之间的优势就能集思广益,做出更好的软件来。
因此,我仔细思考后将自己之前不合理的规划做了修改,希望在大学四年能够学好专业知识,我的大学四年能够将专业知识很好的运用,因为我的未来方向是应用软件方向,我的规划是:
大一打基础:充分利用时间将高等数学和英语学习好,锻炼自己的逻辑思维,将自己的英语能力提高到能阅读国外编程资料,这样有助于自己接触最新最前沿的IT信息。提前完成c语言的学习,打好编程知识的基础,而且严格要求自己按照规范编写代码,提前接触JAVA,多参加社团活动,锻炼自己的应变能力和口才能力
大二加强稳固基础:自学VB,尽量多学几种语言,增加自己的适应范围,在导师的安排下参加实践,英语争取过四六级,暑假期间尝试到IT公司工作,就算没工资也不怕,赚足经验。
大三锻造强项:除学习好当年专业学科外,自学C++,网页编辑、ps技术,建造自己的网站,让自己的编程技术达到可以做网页接项目的程度,到网上去做兼职,接各种项目做,也可以尝试在网上接简单的外包做做,提高自己的实践经验。组织自己的团队,与团队一起接大点的项目做,锻炼自己的组织领导能力,学会怎么团结队友,按照专业软件工程工作流程分工合作。
大四社会实训:主要是多往外面跑,留意各种招聘信息,自己主动到一些公司实训,打好人脉关系网络,特别是到自己理想的IT公司工兼职,争取表现自己。这样做的目的是因为我的未来打算是,先到大型IT企业工作,找工作经验和积累财富,为自己将来创业做准备。
第二篇:软件工程专业导论课程总结模版
黑龙江科技学院
软件工程专业导论
课
程
总
结
专业:软件工程 班级:
学号:
姓名: 软件10-3 19 邵锐
指导教师:乔付
上课日期:
2011.2.28~2011.3.4计算机与信息工程学院
2011-3-4
课程内容与体会
一、课程内容
刚开学的第一周我们并未开课,而是进行一系列的专业导论,这又让我对软件工程多了一些了解。周一,老师讲了很多对我们有用的东西。并谈到了关于上学期期末挂科的事,作为其中一个挂科的人,我深深的反省了。
周二,老师说了很多关于最近几年比较流行的职业和比较高薪的职业。还向我们提及了软件的开发过程和开发趋势。对于软件工程的学生就必须了解软件开发的热点。最近几年软件行业的热点包括游戏,动漫和物联网。其中游戏包括网页和手机上的应用程序。在一家软件公司里,有软件架构师程序员软件开发者。而高级程序员就是程序架构师。软件架构师根据需求分析,然后制作一份详细设计报告。这就是软件开发过程,而软件开发趋势也越来越来热,软件行业属于绿色行业,它只会越来越来越兴盛。现在很多东西都需要软件来控制。
周三,老师带领大家参观了哈尔滨比较有名的一家软件公司——海康软件公司。这是我们第一次跨出校门接触有关软件的事,同时也是离我们将来很近的事。在海康公司我们参观了她们的工作环境及他们获得的一些奖项。并听了他们经理得一翻讲话,这个公司规模挺大,员工工作环境也不错。他们经理跟其中的一个员工都讲到了在我们这个时期最重要的是学习,只有学习到了足够的知识,才能使我们足够强大,在这个竞争激烈的社会更具竞争力。学习是一个过程,我们应该去享受它。这个时候是我们积蓄力量的时候。在此期间,我们还看了我一段关于海康公司过去几年的发展的短片。这使我们了解了我们以后的发展方向。
周四,老师给我们讲了学习最重要的是用心。因为有心才会想把它做得更好。而且不只是学习,做任何事都应该用心,都应该努力。
周五,这是本次专业导论的最后一课,老师向我们介绍了关于软件考试并解读了软件工程专业培养方案。并告诫我们以后实习一定要寻找有主业,而培训是副业的公司实习。乔老师还跟我们说了关于软件水平考试的事,软件水平考试也就是程序员考试。软件工程师考试包含初级,中级和高级。
在这一个星期里我们学到了许多东西,而下午的时间我们也没闲着,由于即将要学习一门与C语言有关系,而且是近年来使用较多的新课程java。Java是一种简单,面向对象,分布式,能高效解释执行,健壮安全,结构中立,具有可移植性,高效率,多线程,动态的高级语言。在这些天的下午,我们都对C做了一个系统性的复习。以便于更好的学习java。
二、体会
这一周我感觉收获很大,这些课程的学习让我明白了很多道理。在上一个学期里,因为我上课不认真,还睡觉,导致我在期末考试时,这一学科没有及格,在周一的课上,乔老师说了很多关于挂科的事。他说得很有道理,而且我也深深地感触到了乔老师说的。乔老师说他想在这一节课上改变一个人的性格,我并未被改变,但是内心深处很赞同。周二,另一个老师又教了我们许多东西,这些更进一步让我了解了我们为什么学习软件工程,为了什么学习软件工程,学了软件工程可以干什么。这些以前都是我常思考的问题,在这一周,这些问题都得到了完美的诠释。让我了解了以后我们会干什么。周三,乔老师带领我们参观了海康软件公司,虽然只是短短几个小时,但却让我对未来充满期待,幻想着有一天我是不是也会跟她们一样,幻想着将来我也能够像他们一样,做自己喜欢的事。能够有一份稳定的工作。但是这一切的一切都必须基于努力的学习,在现在这个阶段,正如那位经理所说,学习才是最重要的。同时我们也多一个软件公司大体上的运作有所了解,而且也更加了解了一个公司的职位分布和将来我们可能从事的职位。所以在大学期间,我们需要,努力充实自己,让自己更具竞争力,努力磨尖自己,让自己更具特色,更特别,更独一无二。让自己在大学里面凸显出来,因为未来想要要找到一个自己满意的工作,你就必须让自己足够有知识去干好这项工作。周四,乔老师给我们讲了一个学习的“诀窍”,那就是用心。常言道:“有志者,事竟成”。只要用心,你就能够把一项工作做到近乎完美。而且,不管什么事,你都应该用心。周五,老师为我们解读了培养方案,并且跟我们讲了程序员考试的相关事宜,这些让我意识到,是大学四年转眼就过去了,而找工作的事也离我们不远了,我们不必为找工作而恐慌,而是应该把眼光转到学习上,每个人都想让自己过得更好,活得更好,所以我们需要不断努力,而不是沉迷于现在这种衣来伸手饭来张口的生活。而对于程序员考试,我们也应该给予重视,那不仅是我们找到工作的筹码,更是对我们能力的一种测试。
以上就是我在上一周里的收获,我认为这样的课程是很有意义的。
第三篇:《软件工程导论》课程教学大纲
《软件工程导论》课程教学大纲
课程编号:
课程中文名称:软件工程导论
课程英文名称:Introduction of Software Engineering 总学分:2 总学时: 36 讲课学时:36习题课学时:0 实验学时:0 上机学时:0 授课对象:软件工程专业本科 先修课程: 程序设计 课程要求:必修课 课程分类:专业基础课
一、课程教学目的
随着计算机技术的发展,软件的规模越来越大,软件的结构越来越复杂,软件开发与维护的难度也越来越高,软件的质量难以保证,软件开发与维护的进度和成本难以控制,这就要求有一种科学的方法指导软件的开发与维护工作。软件工程就是这样一种指导软件开发和维护的工程学科。
通过本课程的学习,使学生了解软件工程的概念、原理和技术,初步掌握软件开发的基本方法和常用工具,建立软件开发和维护的工程化意识,培养独立思考的能力和团队合作的精神,为后续相关课程的学习以及从事软件开发与维护的实际工作打下良好的基础。
二、教学内容及基本要求 教学内容:
1.课程内容简介(1学时)
本课内容简介,基本要求和目标,教学方法,学习方法,教材(英 1 文原版)的主要内容及使用,中文参考教材简介 2.软件工程的基本概念(4学时)
软件工程的基本概念,软件危机产生的原因,软件危机面临的问题及解决方法,什么是好的软件以及软件的质量的概念,实施软件工程的人员,软件工程的系统方法,软件工程的工程方法,软件工程的发展
3. 过程建模与生命周期(4学时)
过程的概念,软件过程模型,软件生命周期,各种常用的软件过程模型,过程建模的工具和技术 4.软件项目计划与管理(4学时)
软件项目进展跟踪,软件项目的人员,工作量的估算,风险管理,项目计划,项目管理 5.需求获取(4学时)
需求过程,需求的类型,需求的特征,需求的表示方法,原型需求法,需求文档,需求过程的参加人员,需求确认,需求度量,需求表示方法的选择,表示需求的工具。6.系统设计(4学时)
概要(总体)设计和技术(详细)设计,分解与模块化,软件体系结构的风格与策略,软件设计的有关问题及启发式规则,好的软件设计的特征,设计技术的改进,设计评价与确认,设计文档化 7.编码(4学时)
编码的的概念,程序设计语言的选择,编码风格,内部文档和外部文档,程序设计方法学 8.测试(4学时)
软件错误与失败,对待测试的态度,测试的组织,负责测试的人员,测试计划,白盒测试与黑盒测试,单元测试,集成测试,自动测试工 2 具,测试结束标准,系统测试原理,系统测试过程,软件配置管理,功能测试,性能测试,可靠性、可用性和可维护性,验收测试,安装测试,自动系统测试,测试文档 9.系统提交(2学时)
培训的种类,培训的辅助手段,培训方法,培训文档 10.系统维护(4学时)
系统的改变,维护的分类,维护活动和维护人员,维护存在的问题,维护特征的度量,维护技术与工具,软件重构 11.本课内容的回顾与总结(1学时)基本要求: 1.课程基本要求
每一章都提供一些重要的参考资料,引导学生有选择地阅读其中的部分内容。
根据课程内容的进展情况,布置相应的任务、思考题和作业,引导学生通过Internet网或其他途径查阅相关资料以拓宽知识面,培养学生独立思考的能力,注重学生的个性化发展。
为了使学生在低年级就开始建立起软件开发和维护的工程化意识,较系统地掌握按照工程化思想开发与维护软件的方法和技术,应在教学中培养学生从软件企业开发和维护实际的大型软件的角度了出发,从成本、风险、效益、进度、过程、质量等多种角度系统地全面地分析软件开发和维护过程中的问题,而不是从学生完成某一给定的作业的角度或从事某一个特定软件项目研究的角度去思考问题。2.实验要求
本课无实验,课程结束后安排两周课程设计。3.考试形式
本课成绩实行百分制,课程论文成绩30%,期末考试成绩70%。
第四篇:卷-软件工程导论
21.系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的(信息流动)情况。
[解析]系统流程图是描述物理系统的传统工具,用图形符号表示系统中的各个元素,如人工处理、数据处理、数据库、文件、设备等,表达了元素之间的信息流动的情况。22.成本效益分析的目的是从(经济)角度评价开发一个项目是否可行。[解析]成本效益分析首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较和权衡,其目的是从经济角度评价开发一个新的软件项目是否可行。
23.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和(宽度优先策略)。
[解析]渐增式测试法有自顶向下结合和自底向上结合两种组装模块的方法,其中自顶向下集成是构造程序结构的一种增量式方式,不需要编写驱动模块,只需要编写桩模块。它从主控模块开始,按照软件的控制层次结构,以深度优先或宽度优先的策略,逐步把各个模块集成在一起。
24.独立路径是指包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条(在其他独立路径中未有过)的边的路径。[解析]在基本路径测试中,以详细设计或源程序为基础,导出控制流程图的拓扑结构——程序图,在计算了程序图的环路复杂性之后,确定只包含独立路径的基本路径图,其中独立路径是包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条在其他独立路径中未有过的边的路径。
25.汇编语言是面向(机器)的,可以完成高级语言无法完成的特殊功能,如与外部设备之间的一些接口工作。
[解析]汇编语言属于低级语言,是一种面向机器的语言,它与高级语言相比有许多优越性:如操作灵活,可以直接作用到硬件的最下层,完成与外部设备的接口工作等,是能够利用计算机硬件特性直接控制硬件设备的唯一语言。
26.在JSP方法中解决结构冲突的具体办法是(中间数据结构或中间文件)。
[解析]JSP方法是面向数据结构的设计方法。它定义了一组以数据结构为指导的映射过程,根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,在JSP方法中解决结构冲突的具体办法是引入中间数据结构或中间文件,将冲突部分分隔开来,建立多个程序结构,再利用中间文件把它们联系起来,构成一个系统的整体。
27.详细设计的任务是确定每个模块的内部特性,即模块的算法、(使用的数据)。[解析]详细设计的基本任务是为每个模块进行详细的算法设计,为模块内的数据结构进行设计,确定每个模块的内部特性,包括模块的算法和使用的数据。对数据库进行物理设计等。28.所有软件维护申请报告要按规定方式提出,该报告也称(软件问题)报告。[解析]在软件维护的流程中,第一步就是制定维护申请报告,也称为软件问题报告,它是维护阶段的一种文档,由申请维护的用户填写。
29.有两类维护技术:在开发阶段使用来减少错误、提高软件可维护性的面向维护的技术;在维护阶段用来提高维护的效率和质量的(维护支援)技术。[解析]面向维护的技术涉及软件开发的所有阶段,能够减少软件错误,提高软件的可维护性。而维护支援技术则包含信息收集,错误原因分析,维护方案评价等项,是在软件维护阶段用来提高维护效率和质量的技术。
30.科学工程计算需要大量的标准库函数,以便处理复杂的数值计算,可供选择的语言有:(FORTRAN语言)、PASCAL语言、C语言和PL/1语言。
[解析]计算机语言根据不同行业的需求,使用的侧重点也不尽相同,在办公管理方面,一些数据库语言如FOXPRO、ORICAL有很多的应用,在工程行业,计算机语言的科学计算能力就显得格外重要,如MATLAB、PL/
1、FORTRAN语言都是工程计算中常用的语言。
解:投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。[解析]通常我们用投资回收期来衡量一个开发项目的价值,投资回收期越短,就越快获得利润。34.对应关系
解:即有直接因果关系在程序中可以同时处理。[解析]对应关系是指数据单元在数据内容上、数量上和顺序上有直接的因果关系,对于重复的数据单元,重复的次序和次数都相同才有对应关系。35.结构冲突
解:输入数据与输出数据结构找不到对应关系的情况,称为结构冲突。
[解析]使用JSP方法时会遇到此类结构冲突问题,对此,Jackson提出了引入中间数据结构或中间文件的办法,将冲突部分分隔开来,建立多个程序结构,再利用中间文件把它们联系起来,构成一个系统的整体。
40.请使用PAD图和PDL语言描述在数组A(1)~A(10)中找最大数的算法。解:PDL语言: N=1 WHILE N<=10 DO IF A(N)<=A(N+1)MAX =A(N+1);ELSE MAX =A(N)ENDIF;N=N+1;ENDWHILE;PAD图:
42.某电器集团公司下属的厂包括技术科、生产科等基层单位。现在想建立一个计算机辅助企业管理系统,其中: 生产科的任务是:
(1)根据销售公司转来的内部合同(产品型号、规格、数量、交获日期)制定车间月生产计划。
(2)根据车间实际生产日报表、周报表调整月生产计划
(3)以月生产计划为以及,制定产品设计(结构、工艺)及产品组装月计划。(4)将产品的组装计划传达到各科,将组装月计划分解为周计划,下达给车间 技术科的任务是:
(1)根据生产科转来的组装计划进行产品结构设计,产生产品装配图给生产科,产生外购需求计划给供应科,并产生产品自制物料清单。
(2)根据组装计划进行产品工艺设计,根据产品自制物料清单产生工艺流程图给零件厂。试写出以上系统中生产科和技术科处理的软件结构图。解
[解析]软件结构图是软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制层次体系,软件结构往往用树状或网状结构的图形来表示,其主要内容有模块及模块的控制关系,根据题意,可绘制出生产科和技术科的软件结构图,其中生产科的结构图深度和宽度均为4,技术科的结构图的深度和宽度均为3
填空题
1.在信息处理和计算机领域内,一般认为软件是 _程序、_文档____ 和_数据
2.数据流图的基本组成部分有 数据的源点与终点、数据流_、加工、数据文件。3.数据流图和数据字典共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。4.划分模块时尽量做到__高内聚、低耦合,保持模块的独立性,尽量使用公共模块。5.类的实例化是_对象_______。
6.人们常用硬件可靠性的定量度量方法来度量软件的可靠性和可用性,常用的度量软件可靠性的两个指标是_成功地运行的概率_______和_平均故障时间_______。8.将待开发的软件细化,分别估算每一个子任务所需要的开发工作量,然后将它们加起来,将得到软件的总开发量。这种成本估算方法称为_自底向上_______。
9.如果一个模块被 n 个模块调用,其中直接的上级模块的个数是 m 个(m<=n)那么该模块的扇入数是 ____N_______ 个。
10.结构化设计以 __数据流图_________ 为基础,按一定的步骤映射成软件结构。
11.软件的风险分析可包括风险识别、风险预测 和风险驾驭(或风险管理)等3项活动。12.软件著作权登记的3种主要类型:(1)著作权登记;(2)著作权延续登记;(3)权利转移备案登记。
13.软件工程管理的主要内容有:项目经费管理,软件质量管理,项目进度管理和人员管理。15.面向对象分析的目的是对客观世界的系统进行 ___建模_______________。16.软件维护工作的生产性活动包括分析评价、修改设计和 ____编写程序代码等。17.为了使应用软件适应计算机环境的变化而 ___修改软件的过程称为适应性维护。18.一个进行学生成绩统计的模块其功能是先对学生的成绩进行累加,然后求平均值,则该模块的内聚性是 __________顺序内聚________。
19.投资回收期就是使累计的经济效益等于 __最初的投资费用_所需的时间。
20.软件生存周期是指一个软件从提出开发要求开始直到 _软件废弃_为止的整个时期。21.曾被誉为“程序设计方法的革命”的 结构化 程序设计,使程序设计从主要依赖于程序员个人的自由活动变成为有章可循的一门科学。
22.从结构化程序设计到 面向对象程序设计,是程序设计方法的又一次飞跃。23.在单元测试时,需要为被测模块设计___测试用例_______。
三、应用题
1.商店业务处理系统的业务描述及数据流图如下:
顾客到商店购物时,在经过挑选之后填写了一张订单,详细列出了想要购买的物品名称、规格和数量等。商店接到订单后首先查商品库存,看是否有足够的存货。若有,则出库且修改商品库存文件,然后给顾客开发货票,让顾客交款、给顾客开收据并取货,最后登记销售历史。若存货不足,则暂存顾客订单并向采购部门发出订货通知。采购部门根据商品库存和暂存订单信息向供应商订货。待接到供应商发来的相应商品时,通知财务部门向供应商付款,并向销售部门发出到货通知,同时,采购部门要修改商品库存和暂存订单信息。当销售部门接到到货通知时,应通知顾客来付款取货。财务部门依据供应商送来的收据记账。
试求解下列问题: 1).针对处理1,给出该处理的一级细化的DFD(要求给出合适的数据流与数据存储说明); 2).针对处理2,给出该处理的一级细化的DFD(要求给出合适的数据流与数据存储说明); 3).给出“发货单”的DD定义; 4).给出“订货单”的DD定义; 5).根据你对问题的理解,给出“商品库存”这个数据存储的数据结构描述。6).根据你对问题的理解,给出“销售历史”这个数据存储的数据结构描述。
第一章:软件工程学概述 一.填空题
1.计算机科学中的研究成果均可用于软件工程,但计算机科学更侧重于_____________、而 软件工程侧重于_____________。
2.计算机程序及其说明程序的各种文档称为_____________。计算任务的处理图像对象和处 理规则的描述称为_____________。有关计算机程序功能、设计、编制、使用的文字或图形资
料称为_____________。
3.软件开发环境是相关一组_____________的集合,它支持一定的软件开发方法或按照一定 的软件开发模型组织而成的。
4.CASE这一术语的英文是_____________。
5._____________是指工具运行在相同的硬件/操作系统平台上。_____________是指工具使 用共享数据模型来操作。_____________是指工具提供相同的用户界面。
6.根据支持的范围,CASE工具可分为_____________、_____________和_____________工具。
7.软件危机的主要原因有_____________和_____________。8._____________模型是一种非整体开发的模型。软件在该模型中是“逐渐”开发处理的,开发出一部分,向用户展示一部分,可让用户及早看到部分软件,及早发现问题。或者先开 发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获 得满意的软件产品。
9.结构化方法总得指导思想是_____________。它的基本原则是功能的_____________与___ __________。它是软件工程中最早出现的开发方法,特别适用于数据处理领域的问题。10.面向对象开发方法包括_____________、_____________、_____________、三部分。11.瀑布模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型。它包括_____________、项目开发计划、_____________、_____________、_____________、_ ____________、_____________、_____________,它规定了由前至后、相互衔接的固定次序,如同瀑布流水,逐级下落。12.瀑布模型本质上是一种_____________顺序模型。
13.构造原型时,必须注意_____________取舍,忽略一切暂时不关心的部分。
14.属性指的是类中对象所具有的_____________。不同对象的同一属性可以具有相同或不同 的_____________。
15.结构化方法和原型化方法是软件开发中常使用的两种方法,在实际的应用中,它们之间 的关系表现为_____________。解答: 1.原理和理论、如何建造一个软件系统 2.文件、程序、文档; 3.软件工具; 4.Computer Aided Software Engineering;5.平台集成、数据集成、表示集成; 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.软件系统可行性分析应考虑_____________、_____________、_____________和________ _____等方面因素。解答: 1.数据流、数据存储、数据项、加工2.软件可行性研究 3.值得去开发且其中的问题能否解决; 4.需求分析、设计 5.技术、经济、社会 6.开发成本、比较和权衡 7.纯收入 8.无形效益、有形效益 9.经济角度 10.技术 11.技术可行性 12.规划与调度 13.加工、数据流、数据存储、外部实体 14.数据分解、算法分解 15.经济、技术、社会环境和人。第三章: 需求分析 一.填空题
1.软件需求分析过程应该建立_____________、_____________和_____________ 三种模型。2.需求分析的基本任务是要准确地定义_____________,为了满足用户需要,回答系统必须 做什么的问题。
3.数据流图有4个基本成分:_____________、_____________、_____________和_________ ____。
4.流向数据存储的数据流可理解为_____________文件或_____________文件,从数据存储 流出的数据可理解为从文件_____________数据或得到_____________结果。
5.需求分析的困难主要体现在4个方面:问题的复杂性、_____________、_____________需
求易变性。
6.由于数据流是流动中的数据,所以必须有_____________。除了与_____________之间的 数据流不用命名外,数据流应该用名词或名词短语命名。
7.结构化分析方法是面向_____________进行需求分析的方法。8.经过需求分析,开发人员已经基本上理解了用户的要求,确定了目标系统的功能,定义 了系统数据,描述了处理这些数据的基本策略。将这些共同的理解进行了整理,最后形成文 档_____________。
9.在数据流图中,有名字及方向的成分是_____________。
10.在软件需求分析中,开发人员要从用户那里解决的最重要的问题是_____________。11.需求分析的最终结果是产生_____________。12.SA方法用DFD描述_____________。13.SA方法的基本思想是_____________。
14.常用的需求分析方法有面向数据流的结构化分析方法,_____________,面向数据结构 的
分析方法等。
15.通过_____________可以完成数据流图的细化。解答: 1.数据模型、功能模型、行为模型 2.新系统的目标 3.数据流、加工(又称数据处理)、数据存储、数据源点和终点 4.写入、查询、读、查询 5.交流障碍、不完备性和不一致性 6.流向、数据存储 7.数据流 8.需求说明书 9.数据流 10.要让软件做什么 11.需求规格说明书 12.系统的功能 13.自顶向下逐步分解 14.面向对象的分析方法 15.功能分解 第五章: 总体设计 一.填空题
1.过程设计语言的重复结构有_____________结构、_____________结构_____________、结 构三种。
2.结构化程序设计方法的基本要点是:(1)采用_____________、_____________、的程序 设计方法;(2)使用_____________构造程序;(3)主程序员组的组织形式。
3.在详细设计阶段,为了提高数据的输入、存储、检索等操作的效率并节约存储空间,对 某些数据项的值要进行_____________设计。
4.任何程序都可由_____________、_____________和_____________三种基本控制结构构造。这三种基本结构的共同点是_____________、_____________。
5.在详细设计阶段,除了对模块内的算法进行设计,还应对模块内的_____________进行设 计。
6.在详细设计阶段,经常采用的工具有_____________、PDL、PAD等。7.在单元测试中,测试一个模块时,需要设计_____________。
8.软件产品在交付使用之前一般要经过以下4步测试_____________、_____________、____ _________、_____________。
9.软件测试用例由_____________和_____________组成。10.用黑盒技术设计测试用例的方法有_____________、_____________、_____________和__ ___________。
11.源程序中加注释是帮助理解程序的重要手段,注释分为_____________、_____________ 两类。
12.近年来,推出了许多面向对象的语言,如_____________、_____________等。
13.汇编语言是面向_____________的,可以完成_____________语言无法满足要求的特殊功 能,如与外部设备之间的一些接口操作。
14.语句构造的原则是简单直接,不能为了追求效率而使代码_____________ 15._____________是指程序从一个计算机环境移植到另一个计算机环境的容易程度 解答: 1.for、while、until 2.自顶向下、逐步求精、三种基本控制结构 3.代码 4.顺序、选择、重复、单入口、单出口 5.数据结构 6.程序流程图 7.驱动模块和桩模块 8.单元测试、集成测试、确认测试、系统测试 9.测试输入数据和对应的预期输出 10.等价类划分、边界值分析、错误推断、因果图 11.序言行注释、功能性注释 12.C++、JAVA 13.机器、高级 14.复杂化; 15.可移植性。
第五篇:软件工程导论试题
软件工程导论试题 一.选择
1、瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和(C)。A、详细计划 B、可行性分析
C、运行阶段 D、测试与排错
2、从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大(C)。A、详细设计阶段 B、概要设计阶段 C、需求分析阶段 D、测试和运行阶段
3、在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试中的系统测试阶段的目标(A)。
A、需求分析阶段 B、详细设计阶段 C、概要设计阶段 D、可行性研究阶段
4、软件工程的出现主要是由于(C)。
A.程序设计方法学的影响 B.其它工程科学的影响 C.软件危机的出现 D.计算机的发展
5、软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是(C)A、硬件环境 B、软件开发的环境 C、软件开发工具和软件开发的环境 D、开发人员的素质
6、软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为(B)A、相互排斥 B、相互补充
C、独立使用 D、交替使用
7、UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C)A、基于瀑布模型的结构化方法 B、基于需求动态定义的原型化方法 C、基于对象的面向对象的方法 D、基于数据的数据流开发方法
8、在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(B)A、结构化方法 B、原型化方法 C、面向对象的方法 D、控制流方法
9、结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的(B)A、控制流 B、数据流 C、程序流 D、指令流
10、软件开发的结构化生命周期方法将软件生命周期划分成(A)A、计划阶段、开发阶段、运行阶段 B、计划阶段、编程阶段、测试阶段 C、总体设计、详细设计、编程调试 D、需求分析、功能定义、系统设计
11、软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(A)A、瀑布模型 B、对象模型 C、螺旋模型 D、层次模型
12、软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是(C)A、分析阶段 B、设计阶段 C、编码阶段 D、测试阶段 二.填空
21.系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的(信息流动)情况。
[解析]系统流程图是描述物理系统的传统工具,用图形符号表示系统中的各个元素,如人工处理、数据处理、数据库、文件、设备等,表达了元素之间的信息流动的情况。
22.成本效益分析的目的是从(经济)角度评价开发一个项目是否可行。
[解析]成本效益分析首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较和权衡,其目的是从经济角度评价开发一个新的软件项目是否可行。23.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和(宽度优先策略)。
[解析]渐增式测试法有自顶向下结合和自底向上结合两种组装模块的方法,其中自顶向下集成是构造程序结构的一种增量式方式,不需要编写驱动模块,只需要编写桩模块。它从主控模块开始,按照软件的控制层次结构,以深度优先或宽度优先的策略,逐步把各个模块集成在一起。
24.独立路径是指包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条(在其他独立路径中未有过)的边的路径。
[解析]在基本路径测试中,以详细设计或源程序为基础,导出控制流程图的拓扑结构——程序图,在计算了程序图的环路复杂性之后,确定只包含独立路径的基本路径图,其中独立路径是包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条在其他独立路径中未有过的边的路径。
25.汇编语言是面向(机器)的,可以完成高级语言无法完成的特殊功能,如与外部设备之间的一些接口工作。
[解析]汇编语言属于低级语言,是一种面向机器的语言,它与高级语言相比有许多优越性:如操作灵活,可以直接作用到硬件的最下层,完成与外部设备的接口工作等,是能够利用计算机硬件特性直接控制硬件设备的唯一语言。
26.在JSP方法中解决结构冲突的具体办法是(中间数据结构或中间文件)。
[解析]JSP方法是面向数据结构的设计方法。它定义了一组以数据结构为指导的映射过程,根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,在JSP方法中解决结构冲突的具体办法是引入中间数据结构或中间文件,将冲突部分分隔开来,建立多个程序结构,再利用中间文件把它们联系起来,构成一个系统的整体。
27.详细设计的任务是确定每个模块的内部特性,即模块的算法、(使用的数据)。
[解析]详细设计的基本任务是为每个模块进行详细的算法设计,为模块内的数据结构进行设计,确定每个模块的内部特性,包括模块的算法和使用的数据。对数据库进行物理设计等。
28.所有软件维护申请报告要按规定方式提出,该报告也称(软件问题)报告。
[解析]在软件维护的流程中,第一步就是制定维护申请报告,也称为软件问题报告,它是维护阶段的一种文档,由申请维护的用户填写。
29.有两类维护技术:在开发阶段使用来减少错误、提高软件可维护性的面向维护的技术;在维护阶段用来提高维护的效率和质量的(维护支援)技术。
[解析]面向维护的技术涉及软件开发的所有阶段,能够减少软件错误,提高软件的可维护性。而维护支援技术则包含信息收集,错误原因分析,维护方案评价等项,是在软件维护阶段用来提高维护效率和质量的技术。
30.科学工程计算需要大量的标准库函数,以便处理复杂的数值计算,可供选择的语言有:(FORTRAN语言)、PASCAL语言、C语言和PL/1语言。
[解析]计算机语言根据不同行业的需求,使用的侧重点也不尽相同,在办公管理方面,一些数据库语言如FOXPRO、ORICAL有很多的应用,在工程行业,计算机语言的科学计算能力就显得格外重要,如MATLAB、PL/
1、FORTRAN语言都是工程计算中常用的语言。三.判断
1.软件的开发与运行经常受到硬件的限制和制约。(√)
2.模块内的高内聚往往意味着模块间的松耦合。(√)
3.Jackson图只能表达程序结构,不能表达数据结构。(X)
上述数据流图表示数据A和B同时输入变换成C。(X)
5.软件的质量好坏主要由验收人员负责,其他开发人员不必关心。(X)
6.判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。(√)
7.应该尽量使用机器语言编写代码,提高程序运行效率,而减少高级语言的使用。(X)
8.UML只能应用于软件系统模型的建立。(X)
9.容错就是每个程序采用两种不同的算法编写。(X)
10.软件测试的目的是为了无一遗漏的找出所有的错误。(X)
四、名词解释题(本大题共5小题,每小题3分,共15分)
31.软件开发环境
32.错误推测法
33.黑盒测试法
34.软件质量保证
35.瀑布模型 31.经济可行性
解:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。
[解析]对于一个系统所必须要衡量的是经济上是否合算,经济可行性的范围很广,包括效益分析、潜在市场前景等。
32.社会可行性
解:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。
[解析]社会可行性包括合同、责任、侵权等技术人员不甚了解的诸多问题。
33.投资回收期
解:投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。
[解析]通常我们用投资回收期来衡量一个开发项目的价值,投资回收期越短,就越快获得利润。
34.对应关系
解:即有直接因果关系在程序中可以同时处理。
[解析]对应关系是指数据单元在数据内容上、数量上和顺序上有直接的因果关系,对于重复的数据单元,重复的次序和次数都相同才有对应关系。
35.结构冲突
解:输入数据与输出数据结构找不到对应关系的情况,称为结构冲突。
[解析]使用JSP方法时会遇到此类结构冲突问题,对此,Jackson提出了引入中间数据结构或中间文件的办法,将冲突部分分隔开来,建立多个程序结构,再利用中间文件把它们联系起来,构成一个系统的整体。
五、图 a 中,模块 G 为判定,判断涉及到模块 B、F、G,请指出设计中的错误,再根据 改进模 块图的基本原则,画出 1~2 个改进方案(不改变模块 G 的判断关系),并说明是按照
哪条基本 原则进行改进的。
解:图 b 为一个改进方案,将模块 G 的位置提高,使其作用范围为控制范围的子集,减 少模块 之间的联系。
40.请使用PAD图和PDL语言描述在数组A(1)~A(10)中找最大数的算法。
解:PDL语言:
N=1
WHILE N<=10 DO
IF A(N)<=A(N+1)MAX =A(N+1);
ELSE MAX =A(N)ENDIF;
N=N+1;
ENDWHILE;
PAD图:
[解析]人工查找时,是从第一个元素开始查找,用当前元素与下一个元素比较,将较大者作为当前元素又与下一元素比较,如此循环,直到数组末尾。
41.根据下列条件使用等价类划分法设计测试用例。
某一8位微机,其八进制常数定义为:以零开头的数是八进制整数,其值的范围是-177~177,如05,0127,-065
解:(1)划分等价类并编号,如下表示:(4分)
(2)为合理等价类设计测试用例,表中有两个合理等价类,设计两个例子(2分)
(3)为不合理等价类测试用例,至少设计一个测试用例(2分)
[解析]等价类划分属于黑盒测试的一种,它将输入数据域按有效的或无效的划分成若干个等价类,测试每个等价类的代表值就等于对该类其他值的测试,这样用少量有代表性的例子代替大量测试目的相同的例子,可以有效提高测试效率。本题划分了3个合理等价类,9个不合理等价类进行测试,取到了预期的效果。
42.某电器集团公司下属的厂包括技术科、生产科等基层单位。现在想建立一个计算机辅助企业管理系统,其中:
生产科的任务是:
(1)根据销售公司转来的内部合同(产品型号、规格、数量、交获日期)制定车间月生产计划。
(2)根据车间实际生产日报表、周报表调整月生产计划
(3)以月生产计划为以及,制定产品设计(结构、工艺)及产品组装月计划。
(4)将产品的组装计划传达到各科,将组装月计划分解为周计划,下达给车间
技术科的任务是:
(1)根据生产科转来的组装计划进行产品结构设计,产生产品装配图给生产科,产生外购需求计划给供应科,并产生产品自制物料清单。
(2)根据组装计划进行产品工艺设计,根据产品自制物料清单产生工艺流程图给零件厂。试写出以上系统中生产科和技术科处理的软件结构图。
解:
画出生产科图的给6分,画出技术科的给4分。
[解析]软件结构图是软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制层次体系,软件结构往往用树状或网状结构的图形来表示,其主要内容有模块及模块的控制关系,根据题意,可绘制出生产科和技术科的软件结构图,其中生产科的结构图深度和宽度均为4,技术科的结构图的深度和宽度均为3。
一、判断题(每题2分,共30分)
1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。(对)
2.数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。(错)
3.JAVA语言编译器是一个CASE工具。(对)。
4.软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是
编写程序代码。(错)
5.软件模块之间的耦合性越弱越发。(对)6.数据库设计说明书是一个软件配置项(对)
7.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模
板。(错)
8.过程描述语言可以用于描述软件的系统结构。(错)
9.如果通过软件测试没有发现错误,则说明软件是正确的。(错)
10.快速原型模型可以有效地适应用户需求的动态变化。(对)
11.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。
(对)
12.集成测试主要由用户来完成。(错)
13.确认测试计划应该在可行性研究阶段制定(错)
14.白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。(错)
15.软件概要设计包括软件系统结构设计以及数据结构和数据库设计。(对)
二。单选题(每题2分,共20分)1.瀑布模型的关键不足在于(2)
(1)过于简单(2)不能适应需求的动态变更(3)过于灵活(4)各个阶段需要进行评审
2.在面向对象软件开发方法中,类与类之间主要有以下结构关系(1)
(1)继承和聚集(2)继承和一般(3)聚集和消息传递(4)继承和方法调用
3.以下哪一项不是软件危机的表现形式(3)
(1)成本高(2)生产率低(3)技术发展快(4)质量得不到保证
4.以下哪一项不是面向对象的特征(4)
(1)多态性(2)继承性(3)封装性(4)过程调用
5.面向对象模型主要由以下哪些模型组成(1)
(1)对象模型、动态模型、功能模型(2)对象模型、数据模型、功能模型(3)数据模型、动态模型、功能模型(4)对象模型、动态模型、数据模型
6.软件可行性研究一般不考虑(4)
(1)是否有足够的人员和相关的技术来支持系统开发(2)是否有足够的工具和相关的技术来支持系统开发(3)待开发软件是否有市场、经济上是否合算(4)待开发的软件是否会有质量问题
7.软件维护的副作用主要有以下哪几种(3)
(1)编码副作用、数据副作用、测试副作用(2)编码副作用、数据副作用、调试副作用(3)编码副作用、数据副作用、文档副作用(4)编码副作用、文档副作用、测试副作用
8.软件项目计划一般不包括以下哪项内容(4)
(1)培训计划(2)人员安排(3)进度安排(4)软件开发标准的选择和制定
9.以下哪一项不属于面向对象的软件开发方法(3)
(1)coad方法(2)booch方法(3)jackson方法(4)omt方法
10.以下哪种测试方法不属于白盒测试技术(2)
(1)基本路径测试(2)边界值分析测试(3)循环覆盖测试(4)逻辑覆盖测试