软件工程专业导论课作业

软件工程专业导论课作业
软件工程专业导论课作业

软件工程专业导论课作业

一、什么是软件工程以及我对软件工程的认识

软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。

软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义。例如:

BarryBoehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。

IEEE:在软件工程术语汇编中的定义:软件工程是:1.将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;2.在1中所述方法的研究。

FritzBauer:在NA TO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。

国际上,各国科学家比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。

在现代社会中,软件应用于多个方面,在日常生活中我们随

处都可以看到软件的应用。在人们的日常基本生活中的典型软件就有如电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等这些工作、学习、娱乐发面不可缺少的工具。同时,各个行业几乎都有计算机软件的应用,比如工业、农业、银行、航空、政府部门等。我认为,这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。

二、软件工程的诞生、分类、以及今后的发展趋势

随着信息技术的发展,软件作为一种信息技术的主要载体日益渗透到社会政

治,军事,经济,文化乃至生活的各个方面和各个层次.软件无所不在,其需求

愈来愈多,复杂度愈来愈高,可用性要求愈来愈强.如何高效地开发和生产可靠,

可信的软件,是软件领域一直必须面对的问题.

20世纪60年代,随着第三代计算机的产生,计算机的硬件性能发生了翻天

覆地的变化,运行大型的复杂软件系统已经成为可能.然而,相应的软件开发技

术却难以满足大型软件系统的开发需要,因而造成:

1. 大多数大型的软件开发项目的成本都超过预算,开发进度

一再拖延;

2. 软件产品质量不可靠,大型软件系统存在bug几乎成为不可避免的问题;

3. 软件产品难以维护;

4. 软件产品的开发成本过高;

5. 软件产品开发的效率跟不上计算机硬件发展以及用户需求的增长;

软件技术跟不上硬件技术发展而造成的诸多问题被称作"软件危机"

(Software Crisis).为了解决软件危机,1968年北大西洋公约组织(NA TO)的

计算机科学家在德国召开的国际学术会议上第一次提出了"软件工程"的概念,

希望通过系统化,规范化,数量化等工程原则和方法来实现复杂软件系统的开发和维护。

软件则是由计算机程序和程序设计的概念发展演化而来的,是在程序和程序设计发展到一定规模并且逐步商品化的过程中形成的。软件开发经历了程序设计阶段、软件设计阶段和软件工程阶段的演变过程。

当年中国这片广袤大地上缺少计算机方面刚毕业就能很好与企业接轨的人,因为高校供给企业的生源往往只知道理论知识,却不能又快又好地上手工作,企业又往往不愿意花费太多精力去培养这样的

人,所以为了解决这种尴尬的状况,中国的软件工程专业诞生了,更重视计算机实践方面的教学。

软件工程大致可分为三类,软件工程、数字媒体以及信息安全。据我了解,例如中南大学的软件工程专业还未开设信息安全这一课程,说明我北京理工大学在软件这一方面还是相当强悍的。

软件工程包括技术和管理两方面。由方法.工具.和过程三部分。软件开发方法就是完成软件开发的各项任务的技术方法,软件开发工具是为了方法运用提供支撑。

软件工程的过程包括定义.开发.运行维护。定义包括可行性研究.需求分析两个步骤。可行性研究就是根据已有的技术手段结合要开发软所可能运用的技术来判断开发的可行度。需求分析就是要通过客户了解软件所应具备的功能。这一阶段是软件开发前的准备阶段,是很重要的一个阶段。

开发包括概要设计.详细设计.实现.组装测试.确认测试五个阶段。概要设计包括总体设计与初步设计。详细设计包括模块设计.物理设计。而实现就是编码和单元测试,就是用代码来实现功能。组装测试就是对整个软件的测试。最后还有确认测试来确保软件的可行性。

运行维护包括软件的使用.维护及退役。软件交付客户使用之后,可能在运行过程中发现错误,这是维护人员就要根据漏洞进行修补软件以保证软件能正常工作。当一款软件可而被新产品替代,且替代后维护成本降低时,它就会退役。

对于软件:软件分为不同的种类,包括系统.实时.嵌入.科学和工

程计算.事务处理. 一定阶段内的工作成果和结束标志,可记录开发过程中有关技术信息,还能提供但对软件运行.维护.培训的信息。文档包括十四项:可行性研究报告.项目开发计划.软件需求说明书.数据要求说明书.测试计划说明书.概要设计说明书.详细设计说明书.数据库设计说明书.模块开发卷宗.用户手册.操作手册.测试分析报告.开发进度日报及项目开发总结。这些文档不仅能让用户更好的使用软件,也能为及维护人员提供足够的信息来修补软件的漏洞,还可以为开发人员提供开发经验。

就软件工程发展现状来看,目前软件工程的理论落后于软件实际发展。因此,在未来软件工程的发展中,软件四六七零零四零二二号码论文写作工程的理论建设将会进一步加强,以更好的适应软件工程的实践发展。在理论不断发展的同时,软件工程的自动化、智能化发展趋势将会进一步明晰。进入新世纪以后,自动化和智能化已经成为现代计算机和信息产业发展的一个重要趋势。要实现这个目标,软件工程也必须实现自动化和智能化,因此在未来软件工程的发展中,这一个趋势将会进一步明显。此外,软件工程参与社会生活的深度将会加深。事实上,现在智能家庭等软件工程在技术上已经成形,但是四六七零零四零二二号码论文写作由于成本的原因,目前这类技术还没有得到推广,但是随着成本的不断降低,未来软件工程对生活的影响将会进一步加深,届时我们普通民众也可以享受到现代的生活模式。

除了以上几点趋势外,我还认为随着软件技术的不断普及,软件

工程以及相关技术在未来会为更多的人所了解和掌握,而且软件工程的模块化建设将会得到进一步实现,届时普通民众都可以参与一体的软件设计和制作。

三、我的兴趣发展方向

北理软件共分为三大类,软件工程,数字媒体,信息安全。而对于我来说,最感兴趣的便是数字媒体这一块。

数字媒体是指以二进制数的形式记录、处理、传播、获取过程的信息载体,这些载体包括数字化的文字、图形、图像、声音、视频影像和动画等感觉媒体,和表示这些感觉媒体的表示媒体(编码)等,通称为逻辑媒体,以及存储、传输、显示逻辑媒体的实物媒体。但通常意义下所称的数字媒体常常指感觉媒体。

如果按时间属性分,数字媒体可分成静止媒体(Still media)和连续媒体(Continues media)。静止媒体是指内容不会随着时间而变化的数字媒体,比如文本和图片。而连续媒体是指内容随着时间而变化的数字媒体,比如音频、视频、虚拟图像等。

按来源属性分,则可分成自然媒体(Natural media)和合成媒体(Synthetic media)。其中自然媒体是指客观世界存在的景物,声音等,经过专门的设备进行数字化和编码处理之后得到的数字媒体,比如数码相机拍的照片,数字摄像机拍的影像,MP3数字音乐、数字电影电视等。合成媒体则是指的是以计算机为工具,采用特定符号,语言或算法表示的,由计算机生成(合成)的文本,音乐,语音,图象和

动画等,比如用3D制作软件制作出来的动画角色。

如果按组成元素来分,则又可以分成单一媒体(Single media)和多媒体(Multi media)。顾名思义,单一媒体就是指单一信息载体组成的载体;而多媒体(Multimedia)则是指多种信息载体的表现形式和传递方式。

简单来讲,“数字媒体”一般就是指“多媒体”,是由数字技术支持的信息传输载体,其表现形式更复杂,更具视觉冲击力,更具有互动特性。

图形图像数字出版是新媒体技术的一部分,以计算机技术、通讯技术、网络技术、流媒体技术、存储技术、显示技术等高新技术为基础,通过设计规划和运用计算机进行艺术设计,融合并超越了传统出版内容而发展起来的新业态。如数字视听、数字动漫、网络学习、手机娱乐等都属于图形图像数字出版范畴。

数字媒体包括用数字化技术生成、制作、管理、传播、运营和消费的文化内容产品及服务,具有高增值、强辐射、低消耗、广就业、软渗透的属性。“文化为体,科技为酶”是数字媒体的精髓。由于数字媒体产业的发展在某种程度上体现了一个国家在信息服务、传统产业升级换代及前沿信息技术研究和集成创新方面的实力和产业水平,因此数字媒体在世界各地得到了政府的高度重视,各主要国家和地区纷纷制订了支持数字媒体发展的相关政策和发展规划。美、日等国都把大力推进数字媒体技术和产业作为经济持续发展的重要战略。

在我国,数字媒体技术及产业同样得到了各级领导部门的高度关

注和支持,并成为目前市场投资和开发的热点方向。“十五”期间,国家863计划率先支持了网络游戏引擎、协同式动画制作、三维运动捕捉、人机交互等关键技术研发以及动漫网游公共服务平台的建设,并分别在北京、上海、湖南长沙和四川成都建设了四个国家级数字媒体技术产业化基地,对数字媒体产业积聚效应的形成和数字媒体技术的发展起到了重要的示范和引领作用。数字媒体产业链漫长,数字媒体所涉及的技术包罗万象。未来五年将是我国数字媒体技术和产业发展的关键时期。为在“十一五”期间进一步推进高附加值、低消耗的数字媒体产业发展,攻克数字媒体产业化发展中的技术瓶颈,在国家科技部高新司的指导下,国家863计划软硬件技术主题专家组组织相关力量,深入研究了数字媒体技术和产业化发展的概念、内涵、体系架构,广泛调研了数字媒体国内外技术产业发展现状与趋势,仔细分析了我国数字媒体技术产业化发展的瓶颈问题,提出了我国数字媒体技术未来五年发展的战略、目标和方向。

数字媒体的发展不再是互联网和IT行业的事情,而将成为全产业未来发展的驱动力和不可或缺的能量。数字媒体的发展通过影响消费者行为深刻地影响着各个领域的发展,消费业、制造业等都受到来自数字媒体的强烈冲击。各种数字媒体形态正在迅速发展同时也各自面对种种发展瓶颈,中国这个拥有最大的互联网用户群体的市场也成为国际数字媒体巨头的必争之地。目前3亿多中国网民常常观看在线视频的现状,预示着在线视频即将成为产生数字媒体广告预算

的主力引擎之一。中国社交网站(SNS)用户已经超过1.5亿,约1/3的网民都在使用SNS;各大主流互联网媒体纷纷向社交化转型,众多SNS新平台和产品竞相登场。视频网站和社交媒体成为数字媒体发展的新方向。将数字媒体的产品服务和创新技术融入品牌的市场推广体系,最大化数字媒体的营销效果;现有广告主、代理商、媒体主以及其他各方角色如何在新媒体市场中迅速找准定位,利用现有业务的优势拓展新市场,成为当前数字媒体行业持续发展亟需回答的问题。

四、身为北理软件人,我的四年计划

大一:打牢地基。脚踏实地学好专业基础课程和英语数学。在大规划下要做小计划,牢固的掌握专业基础课内容,如C语言程序设计基础,要学细学精,熟练掌握。坚持每天记英语单词、练习口语,要从大一开始就坚定不移地学下去,要知道英语对于软件这个专业的重要性,要时时牢记。还要考英语四级证书。数学的学习不能忽视,数学能力和今后的编程能力息息相关,认真学习数学,多做题。努力提高数学知识,为以后的专业课程打基础。大一的学习任务相对轻松,可适当参加社团活动,提高自己的组织能力和交流技巧,为毕业求职面试练好兵。熟练的掌握一些软件的应用,如PS,会声会影等。我要改变自己以往的学习和生活上的一些习惯。我要积极参加学校的活动增强交流技巧,和老师同学以及比自己早步入大学的师哥师姐们进行交流,询问学习以及将来的就业情况,同时也能提高我的人际沟通

能力。

大二:承前启后。在这在大二一年里,要稳抓基础,做好由基础课向专业课过渡的准备,并要把一些重要的高年级课程逐一浏览,以便向大三平稳过渡。进一步提高自己编程能力,掌握一些基本技能,数据结构等专业课程一定要学好。并开始有选择地辅修其他专业的知识充实自己,不能只局限于本专业,要开阔视野。并开始有计划地广泛阅读,扩大自己的知识面。并学习摄影,培养自己的爱好。让大学生活在快乐的学习中度过,也不能一味的埋头苦学而不问世事。做一个有理想有抱负的积极青年。

大三:明确目标。首要问题就是要明白自己面临的是继续深造还是就业。根据自己那时的具体情况作出合理决定。打算考研,应该加大力度的学习专业知识,扩大英语词汇量,着手做好考研前的一切准备。就业,就要求把目标锁定在提高求职技能、搜集公司信息。同时锻炼自己独立解决问题的能力。多参加和自己专业有关的的活动,与同学交流求职工作的心得体会,了解搜集工作信息的渠道。在暑假的实习过程中积累经验,进一步了解社会对人才需求的方向及具体要求。

大四:用最短的时间完成自己大学的学业任务。为将来的就业或是考研争取时间。此时最主要的就是对前三年做一个总结,对自己要有一个清楚的认识。在公司实习阶段应认真对待,了解基本的公司工作流程,认真完成毕业设计。根据自己的情况,做出果断的决定,为下一步做好充分的准备。不能犹豫徘徊,也不能盲目跟从他人,根据

自己的实际情况来为未来作出规划。

软件工程专业需要一定的专业技能,只有有能力的人才能在社会上立足,所以,我不能放松,要按照学习计划按部就班的学习,不能盲从也不能懈怠。每个阶段都要有明确的目标,并把目标细化,付诸实践,要立长志不能常立志。这样才能提高自己的学习效率,解决时间。在这个竞争激烈的年代,生存和生活的压力明显增大。只有付出了,才能得到自己想要的东西。大学的丰富教学资源就摆在我的面前,我今后的生活要好好的利用这些资源,努力的去付出。成长为一个真正的北理软件人。

软件工程导论论文(精)

软件工程一.关于软件工程软件是计算机系统中程序.数据和相关文档的集合,一种逻辑产品。软件工程是一门研究工程化方法构建和维护有效的.实用的和高质量的软件的学科。软件工程是一门比较年轻的学科,追溯其出现的时期我们可以回到二十世纪中期。那个时候出现了软件危机。上个世纪五十年代计算机刚从军用转到民用,编写程序的工作被视为艺术家的创作。由于当时计算机受价格因素的限制未能普及,人们对这一新生的披着神秘面纱的产品并不了解。再加上编程人员追求的是如何在有限的处理器能力和储存空间约束下编写出执行速度快.体积小的程序,使程序中充满了各种各样让人迷惑的技巧,这时的软件的开发生产就非常依赖开发人员的聪明才智。但是得到了六十年代,由于计算机生产硬件的突破使计算机的应用范围得到较大的扩展对软件系统的需求和软件自身复杂性急剧上升,传统开发方法不能满足对软件的需要,出现了软件危机。为解决这个问题,1986年“软件工程”在NATO会议上被首次提出,就是把软件开发从“艺术”和“个体行为”向“工程”和“群体协同工作”转化。从此一门新的学科便诞生了。软件的发展又分为几个阶段:先是程序设计再到程序系统,再是软件工程,到现在是面向对象软件工程。因为一种软件往往比较庞大,需要一个或多个团体才能完成,所以以一种工程化的方法不仅能够提高软件的质量也能提高开发效率。软件工程是研究和应用如何以系统性的.规范化的.可定量的过程化方法去开发维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。其目标是在给定成本.给定进度的前提下开发软件。开发出的软件应具有可修改性.有效性.可靠性.可维护性.可适应性.可移植性.可追踪性.可重用性.可理解性.可互操作性。其中可修改性事实容许对系统进行修改而不增加原系统的复杂性。有效性是软件系统能最有效的利用计算机的时间资源和空间资源。软件工程包括技术和管理两方面。由方法.工具.和过程三部分。软件开发方法就是完成软件开发的各项任务的技术方法,软件开发工具是为了方法运用提供支撑。软件工程的过程包括定义.开发.运行维护。定义包括可行性研究.需求分析两个步骤。可行性研究就是根据已有的技术手段结合要开发软所可能运用的技术来判断开发的可行度。需求分析就是要通过客户了解软件所应具备的功能。这一阶段是软件开发前的准备阶段,是很重要的一个阶段。

软件工程导论(第5版)课后习题答案

1-5 根据历史数据可以做出如下的假设: 对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M=4080e0.28(Y-1960) 存储器的价格按下面公式描述的趋势逐年下降:P1=0.3×0.72Y-1974(美分/位) 如果计算机字长为16位,则存储器价格下降的趋势为:P2=0.048×0.72Y-1974(美元/字) 在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。 基于上述假设可以比较计算机硬件和软件成本的变化趋势。要求计算: (1) 在1985年对计算机存储容量的需求估计是多少?如果字长为16位,这个存储器的价格是多少? (2) 假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元。如果一条指令为一个字长,计算使存储器装满程序所需用的成本。 (3) 假设在1995年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复(1)、(2)题。 ●(1)在1985年对计算机存储容量的需求,估计是 M=4080e0.28(1985-1960)=4474263(字) ●如果字长为16位,则这个存储器的价格是 ●P=0.048*0.72 1985-1974*4474263=$5789 ●(2)如果一条指令的长度为一个字,则使存储器装满程序共需4474263条指令。 ●在1985年一名程序员每天可开发出10条指令,如果每月有20个工作日,则每人 每月可开发出10×20条指令。 ●为了开发出4474263条指令以装满存储器,需要的工作量是: 4474263/200=22371(人月) ●程序员的月平均工资是4000美元,开发出4474263条指令的成本是 22371*4000=¥89484000 ●(3)在1995年对存储容量的需求估计为: M=4080E0。28(1995-1960)=73577679(字)=4080E9.8 ●如果字长为32位,则这个存储器的价格是: P=0.003*32*0.72(1995-1974)*73577679=$7127 ●如果一条指令为一个字长,则为使存储器装满程序共需73,577,679条指令。 ●在1995年一名程序员每天可开发出30条指令,每月可开发出600条指令,为了开 发出可装满整个存储器的程序,需要的工作量为 73577679/600=122629(人月) ●开发上述程序的成本为: 122629*6000=$735776790 1-6 什么是软件过程?它与软件工程方法学有何关系?

软件工程导论期末考试试题和答案

1.软件生存周期一般可分为__问题定义__、可行性研究、_需求分析_____、设计编码、__ 测试________、运行与维护阶段。 2.按软件的功能进行划分,软件可以划分为系统软件、支撑软件 和应用软件。 3.可行性研究主要集中在以下四个方面经济可行性、技术可行 性、法律可行性和抉择。 4.用户界面的可使用性是用户界面设计最重要的也是最基本的目标。 5.常见的软件概要设计方法有3大类:以数据流图为基础构造模块结构的___结构化设计 方法_________,以数据结构为基础构造模块的__jackson方法__________,以对象、类、继承和通信为基础的__面向对象设计方法__________。 6.__数据流图________和__数据字典___共同构成系统的逻辑模型。 7.软件测试的方法有__分析方法________和___非分析方法_______(即黑盒法)。 8.单元测试一般以___白盒_____________测试为主,___黑盒______测试为辅。 9.成本估计方法主要有__自底向上估计________、_自顶向下估计_________和算法模型估 计三种类型。 1.下列哪个阶段不属于软件生存周期的三大阶段( C )。 A、计划阶段 B、开发阶段 C、编码阶段 D、维护阶段 2.需求分析是(A )。 3.A、软件开发工作的基础B、软件生存周期的开始 4.C、由系统分析员单独完成的D、由用户自己单独完成的 5.原型化方法是软件开发中一类常用的方法,它与结构化方法相比较,更需要(B )。 6.A、明确的需求定义B、完整的生命周期 7.C、较长的开发时间D、熟练的开发人员 8.软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归 测试过程称为( A )。 9.A、改正性维护B、适应性维护 10.C、完善性维护D、预防性维护 11.一般说来,投入运行的软件系统中有错误(A )。

软件需求工程大作业

课 程 设 计 2011——2012学年 第1学期 课程名称 《软件需求工程》 论文题目 《某公司人事管理系统》需求分析报告 学 院 计算机科学与技术学院 专 业 软件工程专业 班 级 0904班 姓 名 朱 鹏 指导教师 岑 丽

目录 1 论文要求............................................................................................................... - 2 - 2 可行性研究报告 .................................................................................................. - 3 - 2.1引言 (3) 2.2可行性研究的前提 (3) 2.3对现有系统的分析 (5) 2.4对所建议系统的分析 (5) 2.5可选择的其他系统方案 (7) 2.6技术可行性分析 (7) 2.7投资及效益分析 (7) 2.8社会可行性 (7) 2.9可行性分析结论意见 (8) 3 项目开发计划....................................................................................................... - 9 - 3.1引言 (9) 3.2项目概述 (9) 3.3实施计划 (10) 3.4支持条件 (12) 3.5专题计划要点 (12) 3.6交付期限 (12) 4 需求规格说明书 ................................................................................................ - 13 - 4.1引言. (13) 4.2综合描述 (14) 4.3外部接口需求 (15) 4.4功能需求 (15) 4.5其他非功能要求 (19) 4.6其他需求 (21) 5 附录..................................................................................................................... - 22 - 6 体会与感想......................................................................................................... - 23 - 本科课程论文评分标准..............................................................错误!未定义书签。

软件工程专业导论结业论文

软件工程专业导论结业论文 专业导论课结束了,现在我来谈谈我对软件工程的认识与理解。软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量,成本等管理。软件工程从一个学科,或是某一个研究方向来说,人员仅仅是过程,方法的执行者,所以人员的素质往往被忽略。软件工程是一门实践性很强的学科,所以在实际的软件研制过程中,人员的素质占据着非常重要的地位。在具体的软件工程项目中,人员的角色定位,任务分配,以及团队内成员之间的协调配合是非常重要的。人员的角色定位以及任务分配,是属于技术层面的资源配置,软件过程的各个环节,都必须有最合适的人选,该环节才能得到最有效的技术资源,而整个团队内成员之间的配合协调,则是属于管理层面的资源整合,通过充分调度软件生产的各个环节,精细安排,整个软件工程项目才能有条不紊地展开,软件生产的理论才能更好地应用于实际。 理论来源于实践,同样也高于实践,现有的软件工程理论也是经过了众多的科研工作者,业界人士和用户的创造,修改和更新所得出的经验总结。可以预想,软件工程的理论仍会随着软件产业的发展壮大而不断被推进完善。没有坚实的理论支持,实践就没有明确的方向,作为软件工程的学习者,既要夯实理论基础,制定解决方案,又要创新实践模式,完善产品功能。 软件工程强调模块化,随着全球化的发展趋势和全球化市场竞争压力的增加,一方面企业需要更多的业务灵活性和创新能力;另一方面企业面临的IT环境复杂度的增加和历史遗留系统的增加,对企业的IT提出了新的挑战。模块化的思想恰恰能够帮助企业从根本上解决了这一问题,它一方面通过抽象、封装、分解、层次化等基本的科学方法,对各种软件构件和软件应用进行打包,提高对企业现资产的重用水平和能力;另一方面,基于模块化思想,业界提出了SOA技术,它提供一组基于标准的方法和技术,通过有效整合和重用现有应用系统和各种资源,对各种服务进行服务组件化,并基于服务组件实现各种新的业务应用的快速组装,帮助企业很好应对业务的灵活性要求。它通过有效平衡业务的灵活性和IT的灵活性、平衡业务的灵活性和IT的复杂度,为IT人提供了一个业务视角,让IT人学会用业务的睛看世界,有效的拉近了IT和业务的距离。

软件工程导论课后习题答案95829882

《软件工程导论》课后习题答案 第一章软件工程概论 1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机? “软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。 “软件危机”包含两方面的问题: (1)如何开发软件,以满足对软件日益增长的需求; (2)如何维护数量不断膨胀的已有软件。 它们有以下表现: (1)对软件开发成本和进度的估计常常很不准确; (2)用户对“已完成的”软件系统不满意的现象经常发生; (3)软件产品的质量往往靠不住; (4)软件常常是不可维护的; (5)软件通常没有适当的文档资料; (6)软件成本在计算机系统总成本中所占的比例逐年上升; (7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。 出现软件危机的原因 (1)开发人员与客户认识之间的矛盾 (2)开发人员能力与开发目标之间的矛盾 (3)预估与实际工作量之间的矛盾 (4)客户认识的提高与软件维护之间的矛盾 (5)遗产系统与实施软件之间的矛盾 2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改, 不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成” 是在引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是 整体构架的错误。 3.什么是软件工程?它有哪些本质特征?怎么用软件工程消除软件危机? 软件工程是知道计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够

2019最新软件工程导论期末考试题库及答案

2019最新软件工程导论期末考试题库及答案 1.填空题 1.一般来说,可以从__一致性__、_完整性___、_现实性____和_有效性___四个方面验证软件需求的正确性。 2.IPO图是_输入、处理和输出图_的简称,它是美国IBM 公司发展完善起来的一种图形工具。 3.系统流程图是描述__物理模型__的传统工具,用图形符 号表达了系统中各种元素之间的_____信息流动_____情况。4.数据流图中的箭头表示数据流,椭圆或圆形表示数据处理,矩形表示数据的源点/终点。5.软件测试的步骤按顺序分别是:___单元测试_____、子系统测试、系统测试(子系统和系统测试通常称为集 成测试)、__确认测试__和_____系统测试(集成测试)____ 6.软件生命周期一般可分为_问题定义_、可行性研究、_需求分析_、设计编码、_测试_、运行与维护阶段。 7.可行性研究主要集中在以下四个方面_经济可行性_、__技术可行性____、__法律可行性___和抉择。 8.在结构化设计中,HIPO图应用在总体设计阶段,由IPO图和_层次图_两部分组成。 9.复杂问题的对象模型通常由下述五个层次组成:主题层、___类与对象_层、__结构___层、_属性_层和__服务_层。 10.实施精化设计的目标是基于模块的“高内聚低耦合” 的原则,提高模块的_独立性。 11.软件生命周期一般可分为___问题定义_、可行性研究、__需求分析__、概要设计__、详细设计、编码、__软件测试_、运行与维护阶段。 12.面向对象的数据存储管理模式分为__文件__、_关系数据库__和__面向对象数据库___三种。 13.单元测试一般以_白盒_测试为主,__黑盒__测试为辅。

《软件工程导论》课程大作业-题目及要求

《软件工程专业导论与职业生涯规划》具体要求 一、大作业题目(注:每个小组完成一个题目) 1、计算机系统软件是什么?具体的系统软件有哪些?它们的特点、作用、地位是什么?就其中的2~3个具体的系统软件进行较为详细的阐述。 2、计算机应用软件是什么?具体的应用软件有哪些?它们的特点、作用、地位是什么?就其中的2~3个具体的应用软件进行较为详细的阐述。 3、阐述计算机软件的发展历程,对比分析各阶段的特征、理论体系、优势与不足。 4、软件危机是什么?列举2~3个具体的软件危机案例。导致软件危机爆发的原因有哪些?简单阐述现阶段软件危机的具体表现。 5、陈述“软件工程”概念提出的历史背景,包括发生的时间、地点、人物、事件等。“软件工程”的定义自提出以来,有多种说法。请尽可能罗列各种说法,并对其中的2~3个说法进行评述。软件工程的七条基本原理是哪些?分别对每条原理进行较为详细的阐述。 6、软件工程的目标是什么?十个性能是哪些?分别对每个性能进行较为详细的阐述。 7、软件工程研究的主要内容包括哪两个方面?分别对每个方面进行较为详细的阐述。 8、软件开发过程必须遵循的软件工程原则有哪些?分别对每个原则进行较为详细的阐述。 9、软件工程的过程包括哪些?分别对每个过程进行较为详细的阐述。 10、软件生命周期的概念是什么?软件生命周期的划分有哪些阶段?分别对每个阶段进行较为详细的阐述。 11、软件生命周期模型的概念是什么?有哪些比较流行的模型?对其中的瀑布模型和原型模型进行较为详细的阐述及对比分析,并各举例说明。 12、软件生命周期模型的概念是什么?有哪些比较流行的模型?对其中的演化模型和喷泉进行较为详细的阐述及对比分析,并各举例说明。 13、软件生命周期模型的概念是什么?有哪些比较流行的模型?对其中的基于知识的模型和基于构件的模型进行较为详细的阐述及对比分析,并各举例说明。 14、软件生命周期模型的概念是什么?有哪些比较流行的模型?对其中的变换模型和双赢螺旋模型进行较为详细的阐述及对比分析,并各举例说明。 15、软件工程的四要素是哪些?分别对每个要素进行较为详细的阐述。中国制定

专业导论

专业导论(论文) 学 院 计算机学院 专 业 软件工程 班 级 姓 名 学 号 2012年11月28日 广东工业大学计算机学院制

论文题目:谈谈你对所学专业的认识及你大学四年的规划与设想 论文提纲: ?对计算机及计算机学科体系的理解 ?计算机系统(硬件+软件) ?计算机软件知识的相关课程 ?计算机专业要学习和掌握那些知识点,应具有那些能力 ?对网络、数据库、信息安全的了解 ?计算机研究、开发、发展的方向和前沿 ?计算机的传统应用和新的应用领域 ?你准备在哪些方向发展,有何设想,你应做那些努力? 谈谈你对所学专业的认识及你大学四年的规划与设想 一、计算机及计算机学科体系 计算机是20世纪的伟大发明之一,它的发明可以说具有划时代的意义,不愧被人们赋予“电脑”的称谓,因为其性能的确能与人脑媲美。计算机在诞生初期主要是用来进行科学计算的,因此被称谓“计算机”。然而,现在的计算机的功能已经远远超过了“计算”这个范围,它可以对数字、文字、图形、图像以及声音等各种形式的数据进行处理。它能够按照事先存储的程序,自动高速地对数据进行输入、处理、输出和存储的系统。一个计算机系统包括硬件和软件两大部分。由于计算机科学与技术的迅猛发展,计算机已经成为一个庞大的家族,种类各式各样,从不同的角度可有不同的分类。按处理对象可分为数字计算机、模拟计算机和数字模拟计算机三类;按用途可分为通用计算机和专用计算机两类;从规模可以分为巨型计算机、大/中型计算机、小型计算机、微型计算机、工作站、服务器和网络计算机七大类。各种类型的计算机虽然在规模、用途、性能、结构等方面有所不同,但它们都具备运算速度快、运算精度高、具有记忆能力、具有逻辑判断能力和存储程序等特点。因为计算机具有以上特点,所以它对人类科学技术的发展产生了深远的影响,极大的增强了人类认识世界、改造世界的能力,在国民经济和社会生活的各个领域有着非常广泛的应用。计算机的用途主要有科学计算、数据处理、实时控制、人工智能、计算机辅助工程和辅助教育、娱乐和游戏这几个方面。对人类的工作、学习、日常生活有着非常巨大的影响。 计算机产业的高速发展,当然离不开计算机学科教育,现在的大学计算机设有计算机科学与技术、软件工程、网络工程三大专业。其专业的主要课程有C

软件工程导论部分课后习题答案

第一章 1-1 什么是软件危机? 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 1-3 什么是软件工程? 是指导计算机软件开发和维护的一门工程学科。 1-4 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。 目前使用得最广泛的软件工程方法学(2 种): 1. 传统方法学:也称为生命周期方法学或结构化范型。优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。 2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。 1-6 什么是软件过程?它与软件工程方法学有何关系? z 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤z 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型 1-7 什么是软件生命周期模型,试比较瀑布模型,快速原型模型,增量模型,和螺旋模型的优缺点,说明每种模型的适用范围。 软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。 瀑布模型的优点:1.可强迫开发人员采用规范的方法;2.严格规定了每个阶段必须提交的文档;3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。 瀑布模型的缺点:1.在软件开发初期,指明用户全部需求是困难的;2.需求确定后,经过一段时间才得到软件最初版本;3.完全依赖规格说明,导致不能满足用户需求。适用中小型项目。 快速原型模型的优点:1满足用户需求程度高;2用户的参与面广;3返工现象少快速原型模型的优点:不适用大型软件的开发适用于小型项目。 增量模型的优点:1短期内可以交付满足部分用户需求的功能产品;2逐步增加功能可以让用户去适应新产品;3开放式的软件可维护性比较好;4开始第一构件前,已经完成需求说明。 增量模型的缺点:1对现有产品功能造成破坏;2意义上的矛盾适用于中型软件的开发 螺旋模型的优点:1集成了瀑布模型、快速原型模型、增量模型的优点;2支持用户需求动态变化;3需求分析与软件实现紧密联系相互依赖;4原型作为刑式的可执行的需求规格说明,即利用用户和开发人员共同理解,又可作为后续开发的基础;5为用户参与决策提供方便;6提高目标软件的适应能力;7降低风险;8在大型软件开发过程中充分发挥优势。螺旋模型的缺点:1迭代次数影响开发成本,延迟提价时间;2找不到关键改进点,人才、物力、财力时间引起无谓消耗;3成于风险分析,败于风险分析。适用于内部开发的大规模软件项目。 1-8:为什么说喷泉模型叫好的体现了面向对象软件开发过程无缝和迭代的特性?

《软件工程导论》第五版-张海藩-编著-总结

《软件工程导论》第五版张海藩编著总结 分类:Computer System2011-01-04 10:14 6417人阅读评论(10) 收藏举报 测试数据结构工具任务文档软件测试 总结重点: ?Unit1 ?软件危机包含两方面の问题:一是如何开发软件,怎样满足人们对软件日益增长の需求?二是如何维护软件,使它们持久地满足人们の要求。 ?软件工程学定义:把软件当作一种工业产品,采用工程学の原理来管理和组织软件の开发和维护,称为软件工程。 ?软件是指程序、数据和文档三者共同构成の配置。 ?包含与数据处理系统操作有关の程序、规程、规则以及相关文档の智力创作称为软件。文档是描述程序开发过程の,是智力创作の真实记录,是创作活动の历史档案和结晶。 ?软件の描述性定义:软件由计算机程序,数据结构和文档组成。 ?软件质量定义为“与软件产品满足规定の和隐含の需求能力有关の特征和特性の全体” 具体来说: 1)软件产品中能满足给定需求の性质和特性の总体; 2)软件具有所期望の各种属性の组合程度。 ?将软件质量属性划分为六个特性(功能性、可靠性、易用性、效率、维护性和可移植性),这六个属性是面向用户の观点——面向管理の观点,且是定性描述の。 ?软件质量度量体系:内部度量可用于开发阶段の非执行软件产品,外部度量只能在生存周期过程中の测试阶段和任何运行阶段使用。 ?软件工程项目の基本目标:(1)低成本;(2)满足功能要求;(3)高性能;(4)易移植;(5)易维护。 ?软件工程方法学就是要从技术和管理上提供如何去设计和维护软件。 ?软件开发方法:面向数据流(约旦)方法、面向数据结构方法、面向对象方法。 ?结构程序设计是进行以模块功能和处理过程设计为主の详细设计の基本原则。它の主要观点是采用自顶向下、逐步求精の程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、循环三种基本控制结构构造。 ?用来辅助软件开发、运行、维护、管理、支持等过程中活动の软件称为软件工具(CASE)。 ?软件生存周期定义:软件产品从形成概念开始,经过开发、使用和维护,直到最后不再使用の整个过程。各阶段の任务彼此间尽可能の相对独立,同一阶段内各项任务の性质尽可能の相同。软件の开发就是“按软件顺时间发展の过程分阶段进行”の。 ?软件生存周期模型: 瀑布模型(阶段间具有顺序型和依赖性,清楚地区分逻辑设计与物理设计、尽可能推迟程序の物理实现,是文档驱动模型,遵循结构化设计);

软件工程导论期末考试题

一、单项选择题 1.适合于面向对象方法学的软件生存周期模型是( B ) A.瀑布模型 B.喷泉模型 C.螺旋模型 D.增量模型 2.从实用角度看,数据规范化程度在大多数场合选用第( C )范式。 A. 1 B.2 C.3 D.5 3. 可行性分析研究的目的是( A )。 A.项目值得开发否 B.争取项目 C.开发项目 D.规划项目 4. 模块的内聚性最高的是 ( D ) A.逻辑内聚 B.时间内聚 C.偶然内聚 D.功能内聚 5.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做 ( B ) A. 软件工程 B. 软件危机 C. 软件周期 D. 软件产生 6. 需求分析阶段的任务是确定( D ) A.软件开发方法 B.软件开发工具 C.软件开发费 D.软件系统的功能 7. 完整的软件结构通常用( B )图来表示。 A. IPO 图 B. HIPO 图 C.PAD 图 D.DFD 图 8. 在白盒法技术测试用例的设计中( A )是最弱的覆盖标准。 A.语句 B.路径 C.条件组合 D.判定 9?对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。 A.结合 B.隐藏 C.封装 D.抽象 10. 在数据流图中,圆代表( C )。 A.源点 B.终点 C.加工 D.模块 11. 模块内聚度越高,说明模块内各成分彼此结合的程度越( B )。 A.松散 B.紧密 C.无法判断 D.相等 12. 软件测试方法中,黑盒、白盒测试法是常用的方法,其中黑盒测试主要用于测试( B )。 A.结构合理性 B.软件外部功能 C.程序正确性 D.程序内部逻辑 13. 面向对象开发方法中, ( C )是占主导地位的标准建模语言。 A.Booch 方法 B.Coad 方法 C.UML 语言 D.OMT 方法 14. 软件需求分析的主要任务是准确地定义出要开发的软件系统是( C ) A.如何做 B.怎么做 C.做什么 D.对谁做 15. 结构化程序设计的一种基本方法是( C ) A.筛选法 B.迭代法 C.逐步求精法 D.递归法 二、填空题 1. 目前使用最广泛的软件工 程学方法分别是传统方法学和(面向对象方法学 ) )和事务流。 文档 ) 。 ( 重复 )三种结构。 自顶向下 的集成测试方法,对软件结构中下层使 6. 软件维护包括 ( 改正性维护 )、适应性维护、完善性维护、预防性维护。 7. 面向对象方法学建模得到的三个基本子模型是 (对象建模 ) .动态模型、功能模型。 8. 复杂大型问题的对象模型通常由主题 2. 数据流图中信息流的类型有(变换流 3. 软件的定义是:软件 =程序+数据+ 4. 经典结构程序设计包括顺序、选择和 5. 集成测试时对软件结构中上层使用 用 ( 自底向上 ) 的集成测试方法。

软件工程大作业

《软件工程》大作业 学期: 2015秋季学期 班号: 学号: 姓名: 成绩: 子与信息工程学院 2015年10月

电子与信息工程学院大作业 目录 第1章系统概述 (2) 1.1系统介绍 (2) 1.2开发的目的与意义 (2) 第2章可行性分析 (3) 2.1经济可行性 (3) 2.2 技术可行性 (3) 2.3 系统业务分析 (3) 第3章需求分析 (5) 3.1 结构化需求分析 (5) 3.2 系统需求说明 (5) 3.3 系统数据流图和数据字典 (6) 第4章系统设计 (9) 4.1 系统ER图 (9) 4.2 系统功能结构图 (11) 第5章系统实现 (11) 5.1用户模块 (11) 5.2用户注册功能 (12) 第6章系统测试 (13) 1

第1章系统概述 随着计算机网络技术和信息技术的不断发展,人类信息资源实现高度共享,从根本上改变了人类生活的方式,网上购物作为一种新型的购物方式,以其快捷方便的特点成为了人们购物的主要选择。网上支付的不断完善,加上物流业的配套建设,使得用户能够足不出户就能挑选商品,节省了时间和金钱,这种网上购物方式越来越受到人们的青睐。 1.1系统介绍 网上商城系统是一个可以方便各类人群所需,省时省力全方位的大型购物网上商城,可以让所需人群足不出户不分地域时间的购买所需用品。网上商城系统共分为两个部分:前台用户部分和后台管理部分。在前台系统中有用户注册登陆,浏览商品,选购商品,订购商品。后台系统中有系统管理,会员管理,订单管理,商品管理。在用户注册模块中,分别加强了用户注册信息验证的严格性;在商品或商家信息浏览和查询模块中,用户可以对商品进行浏览检索,查看商品的详细信息;非注册会员可以选定商品加入购物车,但只有注册成会员的用户才能对商品进行购买。在后台系统中,系统管理员可以对已注册的用户进行审查,可以对现有的商品进行管理;并对提交的订单进行处理与邮寄。 1.2开发的目的与意义 在线购物系统,从结构上讲,可以划分为前台和后台两个部分,主要涉及到前、后台的网页设计,以及与数据库相关的操作。在网络应用中,数据库的应用是一个很关键的环节。特别地,随着Internet的普及和人们对于互联网的依赖性,许多基于互联网的应用也不断的涌现出来。基于B/S(浏览器、服务器)构架开发网站和系统已成为一种主流趋势,人们对其的需求也越来越大。 现在已经进入网络时代,很多电子产品的生产企业也开始意识到了网络的重要性,开始在电子产品中加入对网络服务的支持。比如在智能手机中增加了对移动互联网应用的支持,这在提升了电子产品的竞争力的同时,也扩展了电子商务的应用范围。 总体上看,电子商务的发展,具有十分良好的发展前景。

软件工程导论论文

软件危机的表现、产生原因以及可能的解决方案 一、软件危机概括 落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。 二、软件危机的表现 (1)软件开发成本难以控制、软件开发进度难以预测。 费用超支、进度拖延的情况屡屡发生。有时为了赶进度或压成本不得不采取一些权宜之计,这样又往往严重损害了软件产品的质量。 (2)、软件的可靠性差,产品质量无法保证。 软件是逻辑产品,质量问题很难以统一的标准度量,因而造成质量控制困难。尽管耗费了大量的人力物力,而系统的正确性却越来越难以保证,出错率大大增加。 (3)、生产出来的软件难以维护。 很多程序缺乏相应的文档资料,程序中的错误难以定位,难以改正,有时改正了已有的错误又引入新的错误。随着软件的社会拥有量越来越大,维护占用了大量人力、物力和财力。 (4)、软件成本在计算机系统总成本中所占的比例居高不下,且逐年上升。 由于微电子学技术的进步和硬件生产自动化程度不断提高,硬件成本逐年下降,性能和产量迅速提高。然而软件开发需要大量人力,软件成本随着软件规模和数量的剧增而持续上升。 (5)、软件开发生产率提高的速度远远满足不了计算机应用迅速普及深入的需要。软件产品供不应求的状况使得人类不能充分利用现代计算机硬件所能提供的巨大潜力。 (6)、用户对产品功能难以满足。 开发人员和用户之间很难沟通、矛盾很难统一。往往是软件开发人员不能真正了解用户的需求,而用户又不了解计算机求解问题的模式和能力,双方无法用共同熟悉的语言进行交流和描述。 二、软件危机产生的原因 (1)、软件本身的特点 软件不同于硬件,它是计算机系统中的逻辑部件;软件样品即是产品,试制过程也就是生产过程;软件不会因使用时间过长而“老化”或“用坏”;软件具有可运行的行为特性,在写出程序代码并在计算机上试运行之前,软件开发过程的进展情况较难衡量,软件质量也较难评价,因此管理和控制软件开发过程十分困难;软件质量不是根据大量制造的相同实体的质量来度量,而是与每一个组成部分的不同实体的质量紧密相关,因此,在运行时所出现的软件错误几乎都是在开发时期就存在而一直未被发现的,改正这类错误通常意味着改正或修改原来的设计,这就在客观上使得软件维护远比硬件维护困难;软件是一种信息产品,具有可延展性,属于柔性生产,与通用性强的硬件相比,软件更具有多样化的特点,更加接近人们的应用问题。 (2)、软件开发人员的弱点 其一,软件产品是人的思维结果,因此软件生产水平最终在相当程度上取决

软件工程导论第五章课后答案

软件工程导论第五章课后 答案 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

第五章习题答案 1、为每种类型的模块耦合举一个具体例子。 答:耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问某一模块的点,以及通过接口的数据,一般模块之间可能的连接方式有7种,构成耦合的7种类型,它们之间的关系为: 下面举例说明以上各种耦合: a.非直接耦合(Nondirect Coupling)在这种情况下,两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这就是非直接耦合。例如在实数的运算中,有两个模块分别完成几个实数的求和,求乘积功能,这两个模块之间没有直接联系,只有在主模块调用中有执行的前后顺序而已,这个例子即属于非直接耦合。 b.数据耦合(Data Coupling)即一个模块访问另一个模块时,彼此之间是通过数据参数来交换输入,输出信息的,这种耦合为数据输入,输出信息的这种耦合为数据耦合。如有两个模块,其中A完成两个烽的比较,求出其中最大的并返回该值,模块B是完成了个数的比较,求出其中最大的并返回该最大值,为完成四个数的比较,模块B调用模块A即可完成,在这种调用关系中,模块A的运算结

果作为一个参烽参加B的运算,这两个模块之间即发生数据耦合。数据耦合是松散的耦合,模块间的独立性比较强。 c.标记耦合(Stamp Coupling),即一组模块通过参数传递记录信息,这就是标记耦合。事实上,这组模块共享了这个记录,它是某一数据结构的子结构,而不是简单变量。 d.控制耦合(Control Coupling)即一个模块通过开关标志,名字等控制住处明显的控制,选择另一模块的功能,这就是控制耦合,如下图所示,这一种耦合实质是在单一接口上实现选择多功能模块中的某项功能,如程序设计中用到多路选择结构即是最好的例子。e.外部耦合(External Coupling)即一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递全局数据结构,而且不是通过参数表传递全局变量的信息。如C语言中都访问被说明为extern类型的外部变量的各个模块之间即发生外部耦合。外部耦合引起的问题类似于下面要介绍的公共耦合,区别在于外部耦合中不存在依赖于一个数据结构内部各项的物理安排。f.公共耦合(Common Coupling)若一组模块都访问同一个公共数据环境,则它们之间的耦合就是公共耦合。公共的数据环境可以是全局的数据结构,共享的通信区,内存的公共覆盖区等。如几个模块对同一个数据库的查询就属于这种耦合。公共耦合可以分为松散的公共耦合和紧密的公共耦合,其中松散的公共耦合是单向操作,如两个或多个模块对同一个文件的读操作;而紧密的公共耦合是双

软件工程导论》期末考试试题与答案

《软件工程导论》期末考试-试题与答案 一、填空题 1.软件工程中的结构化分析 SA 是一种面向________的分析方法。 2.软件模块独立性的两个定性度量标准是_________________。 3.软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个________的过程。 4. ________和数据字典共同构成了系统的逻辑模型 5. ___________是一种黑盒测试技术,这种技术把程序的输入域划分为若干个数据类,据此导出测试用例。二、单选 题 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. Jackson 方法是在软件开发过程中常用的方法,使用 Jackson 方法时可以实现______。A.从数据结构导出程序结构B.从数据流图导出初始结构图C.从模块结构导出数据结构D.从模块结构导出程序结构 7.软件测试时为了________而执行程序的过程。A.纠正 错误B.发现错误 C.避免错误 D.证明错误 8.在软件系统中,一个模块应具有什么样的功能,这是由_____决定的。A.总体 设计B.需求分析C.详细设计D.程序设计 9.面向对象分析是对系统进行_________的一种方法。A.需求 分析B.程序设计C.设计评审D.测试验收 10.软件文档是软件工程实施中的重要部分,它不仅是软件开发各阶段的重要依据,而 且影响软件的_______。A.可理解 性B.可维护性C.可扩展性D.可 移植

软件工程导论之需求分析

软件工程导论 题目:图书管理系统文档名称:需求分析班级:科技0801 项目组长:唐子龙 项目成员: 唐子龙(05082019)朱磊(05082025) 赵欣(05082023) 刘华琛(05082004)

需求分析 §2.1 引言 §2.1.1 编写目的 需求分析的目的是让读者能够基本了解本系统的开发目的,开发方法,以及目前的硬件、软件的情况和开发所需资金和设备, 概要设计和详细设计与开发工作将在此基础上进一步提出。 §2.1.2 背景 这次待开发的系统名称为:图书管理系统 本次项目的任务提出者、开发者:唐子龙、朱磊、赵欣、刘华琛。 用户:图书馆 §2.1.3 定义 图书管理系统对于现代图书馆而言,是能否发挥其教学科研作用的至关重要技术平台。对于读者和图书管理员来说,是能否方便快速获取信息的关键。所以,图书管理系统应该能够为用户提供充足的信息和快捷方便的操作手段。 §2.1.4 参考资料 1.李伟波.软件工程. 武汉:武汉大学出版社,2006 2.郑人杰.实用软件工程. 北京:清华大学出版社,2003 3.张海藩.软件工程导论(第5版). 北京:清华大学出版社,2008.2 §2.2 业务愿景和范围 §2.2.1 业务需求 1.背景、业务机会和客户需求

随着社会信息量的与日俱增,作为信息存储的主要媒体之一图书,数量、规模比以往任何时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。在计算机日益普及的今天,对个人而言,若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。对图书管理部门而言,随着图书种类的繁杂,和图书数量的增多,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理,我们需要有效的图书管理软件。 1.业务目标和成功标准 业务目标:本系统旨在减轻图书馆工作人员工作负担,提高工作效率,而且方便用户查询、借阅。 成功标准:在使用本系统后,图书馆工作人员的工作效率大大提高,且对用户查询、借阅、预订都会有很大的便利。 §2.2.2 解决方案的前景 1.前景陈述 本图书馆管理信息系统在原有手工系统基础上,采用图书管理技术。通过收集、整理、存储关于图书、读者的主要信息,以及原有系统的作业流程信息,为建立数据仓库做基础准备。 本系统采用最新的计算机技术,界面友好、操作方便,管理员可以针对不同需求分类、排序、查询、统计,方便读者和其他部门根据自己的需求准确、快速地查询图书信息,实现以计算机辅助形式代替传统的手工查找形式,减轻图书信息管理人员的劳动强度,提高图书馆的工作效率和水平,更好地为读者服务,从而使图书和读者管理更加合理化和科学化。 2.任务概述 ○1目标:本软件旨在为学校的图书馆管理人员提供一个可以方便管理库 存图书的系统。可以对库存图书进行录入、借还、查询、修改功 能。减少操作时间,提高工作效率。 该软件适用于一般规模的图书馆管理操作。 ○2用户特点:本系统的操作对象为图书馆管理人员。对管理人员的计算机水平 不需要很高的要求。 3、数据描述: ○1静态数据:系统密码,书籍名称,库存总数,剩余数,借出数。 ○2动态数据:使用者输入的信息,包括添加的书籍信息,查询关键字。 ○3数据库描述:系统数据库采用TXT文档。

软件工程导论作业答案

学号_31009210** 姓名_朱某某班级_软件10* 作业一 1.什么是软件危机?它有哪些典型表现?为什么会出现软件危机? “软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。这些问题不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。 “软件危机”包含两方面的问题: (1)如何开发软件,以满足对软件日益增长的需求; (2)如何维护数量不断膨胀的已有软件。 它们有以下表现: (1)对软件开发成本和进度的估计常常很不准确; (2)用户对“已完成的”软件系统不满意的现象经常发生; (3)软件产品的质量往往靠不住; (4)软件常常是不可维护的; (5)软件通常没有适当的文档资料; (6)软件成本在计算机系统总成本中所占的比例逐年上升; (7)软件开发生产速率提高的速度,远远跟不上计算机应用普及深入的趋势。 出现软件危机的原因 (1)开发人员与客户认识之间的矛盾 (2)开发人员能力与开发目标之间的矛盾 (3)预估与实际工作量之间的矛盾 (4)客户认识的提高与软件维护之间的矛盾 (5)遗产系统与实施软件之间的矛盾 2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面比较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价俱增。在软件“已经完成”时再引入变动,当然付出的代价更高。一个故障时代码错误造成的,有时这种错误时不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。 3.什么是软件工程?他有哪些本质特征?怎样用软件工程消除软件危机? 软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效的维护它,这就是软件工程。 本质特征: 软件工程关注于大型软件的构造 软件工程的中心课题是控制复杂性 软件经常变化 开发软件的效率非常重要 和谐地合作是开发软件的关键 软件必须有效支持它用户

相关文档
最新文档