软件工程复习要点_第1页
软件工程复习要点_第2页
软件工程复习要点_第3页
软件工程复习要点_第4页
软件工程复习要点_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/题型名词说明问答题应用题(看图题,分析题,计算题)学问点:什么是软件及软件特点,软件的分类软件是计算机系统中和硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合软件的特点(1)软件是一种逻辑实体。(2)软件的开发,是人的智力的高度发挥,而不是传统意义上的硬件制造。(3)软件维护和硬件的修理有着本质的差别。(4)软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依靠性。(5)软件的开发至今尚未完全摆脱手工艺的开发方式,使软件的开发效率受到很大限制。(6)软件的开发是一个困难的过程。(7)软件的成本特殊昂扬软件的分类1.基于软件功能的划分系统软应用软件 支撑软件2.基于软件工作方式的划分实时处理软件 分时软件 交互式软件批处理软件什么是软件危机,起因一方面软件特殊困难,价格昂贵,供需差日益增大,另一方面软件开发时又常常受挫,质量差,指定的进度表和完成日期很少能按时实现,研制过程很难管理,即软件的研制往往失去限制。我们称软件开发和维护过程中所中遇到的这一系列严峻问题为软件危机。软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。什么是软件工程,它的基本目标,要素,原则(1)软件工程是指探讨软件生产的一门学科,也就是将完善的工程原理应用于经济地生产既牢靠又能在实际机器上有效运行的软件。(2)软件工程学探讨的基本目标是:定义良好的方法学,面对支配,开发维护整个软件生存周期的方法学;确定的软件成分,记录软件生存周期每一步的软件文件资料,按步显示轨迹;可预料的结果,在生存周期中,每隔确定时间可以进行复审(3)软件工程的原则:分解;抽象和信息隐藏;一样性;确定性什么是软件生命周期,每个阶段的意义理解如同任何其他事物一样,软件也有一个孕育、诞生、成长、成熟、衰亡的生存过程,一般称之为计算机软件的生命周期。1.软件定义时期(1)问题定义:这是软件生存期的第一个阶段,主要任务是弄清用户要计算机解决的问题是什么。

(2)可行性探讨:任务是为前一阶段提出的问题寻求一种至数种在技术上可行、且在经济上有较高效益的解决方案。2.软件开发时期(1)需求分析:弄清用户对软件系统的全部需求,主要是确定目标系统必需具备哪些功能。(2)总体设计:设计软件的结构,即确定程序由哪些模块组成以及模块间的关系。(3)详细设计:针对单个模块的设计。(4)编码:依据选定的语言,把模块的过程性描述翻译为源程序。(5)测试:通过各种类型的测试(及相应的调试)使软件达到预定的要求。3.软件运行时期 是软件生存周期的最终一个时期。软件人员在这一时期的工作,主要是做好软件维护。维护的目的,是使软件在整个生存周期内保证满足用户的需求和延长软件的运用寿命。瀑布开发模型和原型法的理解瀑布模型:将软件生存周期的各项活动规定为依照固定依次连接的若干阶段工作,形如瀑布流水,最终得到软件产品。原型模型:从需求分析起先,软件开发者和用户在一起定义软件的总目标,说明需求,并规划出定义的区域。然后快速设计软件中对用户可见部分的表示,快速设计导致了原型的建设,原型由用户评估,并进一步求精待开发软件的需求。逐步调整原型使之满足用户的需求,这是一个迭代的过程。原型模型的优点原型法在得到良好的需求定义上比传统生存周期法好得多,不仅可以处理模糊需求,而且开发者和用户可充分通信原型法可作为培训环境,有利于用户培训和开发同步,开发过程也是学习过程用户有机会更改原先设想的,不合理的系统可以低使总的开发费用降低,时间缩短风险开发柔性较大的计算机系统开发的系统更易维护,对用户更友好可行性探讨的任务,它的探讨内容,它的实施步骤可行性探讨的任务是用最小的代价、在尽可能短的时间内确定问题是否能够解决。在澄清了问题定义之后,分析员首先应当导出系统的逻辑模型,然后从系统逻辑模型动身,探究出若干种可供选择的主要解法(即系统实现方案)。最终细致探讨每种解法的可行性。一般说来,探讨可行性应当从下述几方面进行:(1)技术可行性:指运用现有的技术能否完成这个项目。风险分析:在给定范围内,能否设计出系统,实现必要的功能和性能资源分析:开发人员是否能胜任,硬件软件资源是否具备技术分析:相关技术的发展是否支持这个系统(2)经济可行性:指通过对软件开发项目进行成本/效益估计,以确定软件系统可能带来的经济效益能否超过研制和维护此系统所需的费用。(3)法律可行性:探讨系统开发过程中可能涉及的各种合同、侵权、责任及各种和法律相抵触的问题(4)运行可行性:新系统规定的运行方式是否可行可行性探讨的步骤(1)复查系统规模和目标

(2)探讨目前正在运用的系统

(3)导出新系统的高层逻辑模型

(4)重新定义问题

(5)导出和评价供选择的方案

(6)举荐方案和行动方针

(7)草拟开发支配

(8)书写文档、提交审查理解系统流程图中的图案,理解系统的工作过程表2.1系统流程图的基本符号符号名称说明处理能变更数据值或数据位置的加工或部件输入/输出表示输入或输出(或既输入又输出),是一个广义的不指明详细设备的符号连接指出转到图的另一部分或从图的另一部分转来,通常在同一页上换页连接指出转到另一页图上或由另一页图转来人工操作由人工完成处理数据流用来连接其他符号,指明数据流淌方向成本/效益分析的目的,成本估计的三个方法的原理和特点成本/效益分析的目的,是从经济角度评价开发一个新项目是否可行、是否划算,从而帮助运用部门的负责人正确地作出是否投资于这项开发的确定。成本估计1).自顶向下成本估计:该方法着眼于软件整体,依据项目的整体特征,依靠以前的阅历,将项目和以往的软件“类比”,估计新的开发所需的工作量和成本缺点:某些局部问题和特殊困难简洁低估,甚至没有考虑到。假如开发的项目没有借鉴的阅历,简洁造成较大的误差2).自底向上成本估计该方法是从各个任务单元起先估计成本,汇合成项目的总成本。由于任务单元的成本交给任务的开发人员估计,所以比较实际,但往往只留意到自己的范围内的工作,对综合测试和质量管理的费用估计不足,甚至完全忽视3).算法模型估计货币的时间价值,投资回收期和纯收入货币的时间价值 货币的时间价值通常用利率的形式表示。假设年利率为i,假如现在存入P元,则n年后可以得到的钱数为:F=P×(1十i)n 这也就是P元钱在n年后的价值。反之,假如n年后能收入F元钱,那么这些钱的现在的价值是:P=F÷(1十i)n投资回收期 所谓投资回收期就是使累计的经济效益等于最初投资所须要的时间。明显,投资回收期越短就能越快获得利润,这项工程也就越值得投资。纯收入 纯收入就是在整个生命周期之内系统累计经济效益(折合成现在值)和投资之差。这相当于比较投资开发一个软件系统和把钱存在银行中(或贷给其他企业)这两种方案的优劣。需求分析阶段的任务和重要性需求分析的任务就是精确地回答“系统必需做什么?”这个问题,是通过系统分析员和用户一起商定,清楚、精确、详细地描述软件产品必需具有的功能、性能、运行规格等要求。软件需求分析阶段的目的是澄清用户的要求,并把双方共同的理解明确地表达成一份书面文档——软件需求规格说明书。重要性:软件开发的基础和前提最终目标软件系统验收的标准避开或者尽早剔除早期的错误深化的调查探讨的方法:视察,收集现有资料,访谈和调查问卷的比较分析访谈优点可获得最干脆的资料来源可干脆向用户确认需求可增进对用户的了解缺点费时且成本又高影响受访者工作的进行不适用于大量人员的信息搜寻什么是数据流程图,依据系统的要求,规范的制作数据流程图数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。数据流图的基本图形元素

(1)数据流:是一组数据。在数据流图中数据流用带箭头的线表示,在其线旁标注数据流名。

(2)加工:是对数据流执行的某种操作或变换。在数据流图中加工用圆圈表示,在圆圈内写上加工名。

(3)文件:是依据某种规则组织起来的、长度不限的数据。在数据流图中文件用始终线表示,在线段旁注上文件名。

(4)数据流的源点和终点:在数据流图中用方框表示,在框内写上相应的名称。由外向里画数据流图的步骤(1)确定系统的输入输出:由于系统原委包括哪些功能可能一时难于弄清楚,可使范围尽量大一些,把可能有的内容全部都包括进去。此时,应当向用户了解“系统从外界接受什么数据”、“系统向外界送出什么数据”等信息,然后,依据用户的答复画出数据流图的外围(2)由外向里画系统的顶层数据流图 首先,将系统的输人数据和输出数据用一连串的加工连接起来。在数据流的值发生变更的地方就是一个加工。接着,给各个加工命名。然后,给加工之间的数据命名。最终,给文件命名。(3)自顶向下逐层分解,绘出分层数据流图 对于大型的系统,为了限制困难性,便于理解,须要接受自顶向下逐层分解的方法进行,即用分层的方法将一个数据流图分解成几个数据流图来分别表示。什么是数据字典,它的优点,驾驭如何制作一个符合格式要求的数据字典数据字典的任务就是对于数据流图中所出现的全部被命名的图形元素在数据字典中作为一个词条加以定义,使得每一个图形元素的名字都有一个精确的说明。数据字典的内容包括:图形元素的名字、别名或编号、分类、描述、定义、位置等。数据字典中全部的定义都应是严密的、精确的,不行有半点含混,不行有二义性。X=a+b X是由a和b构成X=[a,b] X是由a或b构成X=[a|b] X是由a或b构成X=(a) a可在X中出现,也可能不出现X={a} X由零次或多次重复的a构成X=m{a}n X由m至n个a组成,即至少有m个a,至多有n个aX=a..b X可取a至b的任一值X=“a” X为取值a的基本数据元素,即a无需进一步定义什么是决策树和决策表,驾驭绘制树表实力在某些数据处理中,某数据流图的加工须要依靠于多个逻辑条件的取值,就是说完成这一加工的一组动作是由于某一组条件取值的组合而引发的。这时运用判定表来描述比较合适。 一张判定表通常由四部分组成,左上部列出的是全部的条件,左下部为全部可能的操作,右上部分表示各种条件组合的一个矩阵,右下部分是对应于每种条件组合应有的操作。1234条件发货单金额>$500>$500≤$500≤$500赊欠状况>60天≤60天>60天≤60天操作不发出批准书√发出批准书√√√发动身货单√√√发出赊欠报告√判定树是判定表的变种,它也能清楚地表达困难的条件组合和所对应的操作之间的关系。判定树的优点在于它无须任何说明,一眼就能看出其含义,易于理解和运用。 欠款>60天──不发出批准书 金额>$500 欠款≤60天──发出批准书、发货单检查发货单 欠款>60天──发出批准书、发货单及赊欠报告 金额≤$500 欠款≤60天──发出批准书、发货单概要设计的任务和步骤,什么是模块化,抽象,信息隐藏,模块独立性概要设计,将软件需求转化为数据结构和软件的系统结构。总体设计又称为概要设计或初步设计,它的基本目的就是回答“概括地说,系统应当如何实现?”这个问题。在总体设计阶段,应划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等,并确定系统中每个程序由哪些模块组成以及这些模块相互间的关系。步骤:1.设想供选择的方案

2.选取合理的方案

3.举荐最佳方案

4.功能分解

5.设计软件结构

6.数据库设计

7.制定测试支配

8.书写文档

9.审查和复审模块化抽象:忽视微小环节,分层理解问题,自顶向下层层加细信息隐藏:模块内部的数据和过程,应当对不须要了解这些数据和过程的模块隐藏起来。只有那些为了完成软件的总体功能而必需在模块间交换的信息,才允许在模块间进行传递。模块独立性:概括了把软件划分为模块时要遵守的准则,也是推断模块构造是否合理的标准。一般地,坚持模块的独立性是获得良好设计的关键。什么是耦合和内聚及其类型耦合是对一个软件结构内不同模块之间互联程度的度量。耦合强弱取决于模块间接口的困难程度、进入或访问一个模块的点以及通过接口的数据。内聚标记着一个模块内部各个元素间彼此结合的紧密程度。简洁地说,志向内聚的模块只做一件事情。设计时应当力求做到高内聚,通常中等程度的内聚也是可以接受的,而且效果和高内聚相差不多。但是,坚决不要运用低内聚。偶然内聚逻辑内聚时间内聚过程内聚通讯内聚依次内聚功能内聚低 内聚 高 如何将数据流程图转换成系统结构图转换步骤(1)找出变换中心,逻辑输入,逻辑输出,物理输入,物理输出。(2)依据变换中心、逻辑输入、逻辑输入设计出系统顶层和第一层的模块。(3)依据输入模块、输出模块设计中下层模块。数据设计的任务,如何将er图转换成规范关系模型数据设计的任务:把分析阶段创建的信息域模型转变成实现软件所须要的数据结构。包括抽象数据结构的设计和数据库的设计。任务:将E-RD中的实体、实体的属性和实体间的联系(包括联系的属性)转换成关系模型。转换的原则:(1)实体A和实体B是1:1的联系:生成两张表TA和TB,同时即可以将TA的主键加到TB中,或者也可以将TB的主键添加到TA中。(2)实体A和实体B是1:n的联系:生成两张表TA和TB。同时必需将TA的主键添加到TB中作为外键。(3)实体A和实体B是m:n的联系:生成3张表,TA,TB和一张关系表TAB,TAB的列=TA的主键+TB的主键+关系自己的属性。程序流程图的绘制,它的优缺点程序流程图也称为程序框图,程序流程图运用五种基本限制结构是:程序流程图的标准符号任何困难的程序流程图都应由以上五种基本结构组合而成。优点:简洁驾驭,且历史“悠久”,运用广泛。缺点:本质上不具备逐步求精的特点,对于提高;大型系统的可理解性作用甚微;不易表示数据结构;转移限制太便利。趋势:停止运用理解N-s图、PAD图,及其特点1)N-S图也叫做盒图(BoxDiagram)。五种基本限制结构由五种图形构件表示。特点:①没有箭头,不允许随意转移限制;②每个矩形框(Case中条件取值例外)都是一个功能域(即一个特定结构的作用域),结构表示明确;③局部及全程数据的作用域易见;④易表现嵌套关系(embeddedstructure)以及模块的层次结构。2)PAD是问题分析图(ProblemAnalysisDiagram)的英文缩写,自1973年由日本日立公司独创以来,已经得到确定程度的推广。它用二维数形结构的图表示程序的限制流,将这种图转换为程序代码比较简洁。特点:①结构清楚,层次分明,易读;②支持逐步求精的设计思想;③简洁将PAD自动转换为高级语言源程序。计算机语言的分类,如何选择一个合适的计算机语言1.机器语言2.汇编语言3.高级语言4.第四代语言程序设计语言的选择常从以下几个方面考虑:(1)项目的应用领域

(2)算法和计算的困难性

(3)数据结构的困难性

(4)效率

(5)可移植性

(6)程序设计人员的水平

(7)构造系统的模式为什么强调编码风格,从几个方面考虑?编码风格事实上是一种编码原则。从20世纪70年头以来,编码的目标从强调效率转变到强调清楚。和此相应,编码风格也从追求“聪慧”和“技巧”,变为提倡“简明”和“干脆”。人们慢慢相识到,良好的编码风格能在确定程度上弥补程序设计语言存在的缺点。反之,假如不留意编码风格,即使运用了结构化的现代语言,也很难写出高质量的程序。一、代码文档化:指编码时适当选择标识符的名字、适当支配注释和留意程序的整个组织形式。二、数据说明:程序或模块在其可执行部分的前面都集中了一些说明语句,出于阅读理解和维护的要求,最好使其规范化,使说明的先后次序固定。三、语句构造:每条语句都应当简洁而干脆,同时也不应为了追求运行效率而使代码困难化,这样会减低程序的可读性。四、输入/输出:源程序的输入输出风格必需满足运行工程学的须要。如何提高程序效率(1)效率是一种性能需求,目标值应当在需求分析阶段给出。软件效率应以需求为准,不应以人力所及为准。(2)好的设计可以提高效率。(3)代码效率和代码的简洁性相关。什么是软件测试,白盒测试,黑盒测试定义:测试是为了发觉程序中的错误而执行程序的过程。留意:①只能尽可能查错,不能证明程序中没有错;②测试员和程序员不应是同一个人。黑盒测试(black-box,orclosed-boxtesting):不考虑程序内部的结构,只视察程序的入口和出口,是否能完成规格要求的输入输出.——功能测试白盒测试(white-box,oropen-box,clear-boxtesting):程序的结构和处理过程象白盒子一样透亮.——结构测试软件测试的步骤,每个测试环节的特点(重点是模块测试,集成测试)(1)单元测试——程序设计&编码bugs(2)集成测试——模块之间的连接(3)系统测试——需求&系统设计(4)验收测试——用户参和(5)平行测试——新老系统进行比较.调试的步骤及调试的技术第1步:确定错误的位置(95%工作量);第2步:改正错误。调试技术输出存储器内容:以八进制或十六进制的形式印出存储器的内容。缺点:¨输出信息量极大不易解读且大多无用;¨输出的是程序在某一时刻的静态状况,且往往不是出错时的状态。②插入“watchpoints”(或称“spypoints”)·人工插入打印缺点:¨改动源代码,增加了出错机会;¨打印信息可能太多。·自动调试工具——无须打印额外信息,且不改动源代码维护的类型,可维护性的要素,维护的副作用维护的种类1、纠错性维护2、适应性维护3、完善性维护4、预防性维护确定可维护性的因素1、

可理解性2、可测试性3、可修改性维护的副作用1、修改代码的副作用2、修改数据的副作用3、修改文档资料的副作用软件管理的特点及职能软件项目的特点(1)智力密集,可见性差(2)单件生产(3)劳动密集、自动化程度低(4)运用方法繁琐,维护困难(5)软件工作渗透了人的因素软件管理的职能(1)制定支配:规定待完成

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论