软件工程导论复习
软件工程导论总复习
• 5.3、设计的启发规则
1、提高模块独立性 2、模块规模适中 – 3、深度、宽度、扇入、扇出适当 4、作用域在控制域内 5、降低接口的复杂程度 – 6、单出口单入口,避免内容耦合 – 7、模块功能可预测
• 5.4 描绘软件结构的图形工具
– 层次图和HIPO图
• 5.5 面向数据流的设计方法
– 变换流 – 事务流 – 变换分析和事务分析的步骤
– 状态 – 事件 – 符号
• 3.7 其他图形工具
– 层次方框图 – Warnier图 – IPO图
• 3.8 验证软件需求
– 方法、工具
练习题
•
•
•
什么是需求分析?需求分析阶段的基本任务是 什么? 答:所谓"需求分析",是指对要解决的问题进行 详细的分析,弄清楚问题的要求,包括需要输 入什么数据,要得到什么结果,最后应输出什 么。可以说,“需求分析”就是确定要计算机 “做什么”。 任务:确定软件项目的目标和范围。调查使用 者的要求,分析软件必须做什么,编写需求规 格说明书等它相关文档,并进行必要的需求审 查。除此之外,还包括需求变更控制,需求风 险控制,需求版本控制等对需求的管理工作
•
•
指出瀑布模型中下列任务的顺序:验收测 试,项目计划,单元测试,需求评审,成 本估计,概要设计,详细设计,系统测试, 设计评审,编码,需求规格说明书。 答:项目计划,成本估计,需求规格说明 书,需求评审,概要设计,详细设计,设 计评审,编码,单元测试,系统测试,验 收测试
第二章 可行性研究
• 2.1 任务
可行性研究是在(A)之前 • A、系统开发 B、测试 C、试运行 D、集成测试 可行性研究需要的时间长短取决于系统的 规模,一般来说,可行性研究的成本只是 预期总成本的(C)。 • A、1% B、20% C、8% D、50%
软件工程导论复习整理(最新)
软件工程导论复习整理(最新)第一篇:软件工程导论复习整理(最新)第一章1..软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题。
2.软件与硬件的区别:软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。
3.软件:程序、数据及相关文档的完整集合。
4.软件工程是指导计算机软件开发和维护的一门工程学科,采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到最好的技术方法结合起来,以经济地开发出高质量的软件并有校地维护它。
5.软件工程方法学三要素:方法、工具和过程。
6.传统方法学也称为生命周期方法学或结构化范型。
它采用结构化技术来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。
7.面向对象方法学把数据和行为看成同等重要的,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。
8.软件生命周期划分为三个时期:1软件定义(问题定义、可行性研究、需求分析),2软件开发(总体设计、详细设计、编码和单元测试、综合测试),3运行维护(软件维护)。
9.4类软件维护活动:改正性维护,也就是诊断和改正在使用过程中发现的软件错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的要求改进或扩充软件使它更完善;预防性维护,即修改软件,为将来的维护活动预先做准备。
10.“瀑布模型”的缺点:它是由文档驱动的,仅仅通过写在纸上的静态的规格说明,很难全面正确地认识动态的软件产品;瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的产品不能真正的满足用户的需要。
11.快速原型模型的优点:原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求;开发人员通过建立原型系统已经学到了很多东西,因此,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。
软件工程导论综合复习题
一、选择题1、软件是一种( B )性工业产品。
(1)理论(2)知识(或逻辑)(3)消耗(4)体力2、需求分析是在( B )进行的。
(1)用户(2)用户和分析人员之间(3)开发人员内部(4)使用和维护人员之间3、在软件的可行性研究中经常从不同角度对系统进行可行性研究,其中从功能角度对系统进行研究属于( B )的研究。
(1)经济可行性(2)技术可行性(3)操作可行性(4)法律可行性4、在软件工程项目中,不随参与人员的增加而使软件的生产率增加的主要问题是( D )。
(1)工作阶段的等待时间(2)生产原型的复杂性(3)参与人员所需的工作站数(4)参与人员之间的沟通困难5、需求分析阶段的研究对象是( A )。
(1)用户需求(2)分析员要求(3)系统需求(4)软硬件需求6、对某公司进行调查分析,确定是否值得开发一个新系统的工作是进行( D )。
(1)系统设计(2)系统分析(3)系统详细调查(4)系统初步调查7、系统分析员应当( D )。
(1)善于使用户接受自已的观点(2)善于使自已获得成就(3)是用户与计算机技术人员的有效协调与组织者(4)满足上述所有条件8、数据流图的绘制过程,是对新系统的需求进行综合分析和形成新系统( A )的过程。
(1)逻辑模型(2)物理模型(3)总体方案(4)可行性报告9、系统测试的目的是( D )。
(1)找出编码错误(2)找出数据错误(3)要证明程序无错(4)发现软件错误10、一个模块内部各程序段都在同一张表上操作,这个操作的内聚性称为( B )。
(1)时间内聚(2)功能内聚(3)通信内聚(4)顺序内聚11、对象是面向对象开发的基本成分,每个对象可用它的一组()和它可以执行的一组操作来定义。
(1)服务(2)参数(3)属性(4)调用12、最高程度也是最差的耦合是()。
(1)公共耦合(2)内容耦合(3)控制耦合(4)数据耦合13、概要设计阶段产生的文档不包括()。
(1)概要设计说明书(2)数据库设计说明书(3)用户手册(4)开发进度报告14、汽车有一个发动机,汽车和发动机之间的关系是()。
软件工程导论复习重点总结很全第六版
第1章软件工程学概述1.1 软件危机1.1.1 软件危机旳简介软件危机(软件萧条、软件困扰): 是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。
软件危机包括下述两方面旳问题:怎样开发软件, 满足对软件日益增长旳需求;怎样维护数量不停膨胀旳已经有软件。
软件危机旳经典体现:(1)对软件开发成本和进度旳估计常常很不精确;(2)顾客对“已完毕旳”软件系统不满意旳现象常常发生;(3)软件产品旳质量往往靠不住;(4)软件常常是不可维护旳;(5)软件一般没有合适旳文档资料;(6)软件成本在计算机系统总成本中所占旳比例逐年上升;(7)软件开发生产率提高旳速度, 远远跟不上计算机应用迅速普及深入旳趋势。
1.1.2 产生软件危机旳原因(1)与软件自身旳特点有关(2)与软件开发与维护旳措施不对旳有关1.1.3 消除软件危机旳途径对计算机软件有对旳旳认识。
认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完毕旳工程项目。
应当推广使用在实践中总结出来旳开发软件旳成功技术和措施, 并继续研究探索。
应当开发和使用更好旳软件工具。
总之, 为了处理软件危机, 既要有技术措施(措施和工具), 又要有必要旳组织管理措施。
1.21.2.1 软件工程旳简介软件工程: 是指导计算机软件开发和维护旳一门工程学科。
采用工程旳概念、原理、技术和措施来开发与维护软件, 把通过时间考验而证明对旳旳管理技术和目前可以得到旳最佳旳技术措施结合起来, 以经济地开发出高质量旳软件并有效地维护它, 这就是软件工程。
(期中考)软件工程旳本质特性:软件工程关注于大型程序旳构造软件工程旳中心课题是控制复杂性软件常常变化开发软件旳效率非常重要友好地合作是开发软件旳关键软件必须有效地支持它旳顾客在软件工程领域中是由具有一种文化背景旳人替具有另一种文化背景旳人发明产品1.2.2 软件工程旳基本原理用分阶段旳生命周期计划严格管理坚持进行阶段评审实行严格旳产品控制采用现代程序设计技术成果应能清晰地审查开发小组旳人员应当少而精承认不停改善软件工程实践旳必要性1.2.3 软件工程措施学软件工程包括技术和管理两方面旳内容。
软件工程导论 期末复习
第一章软件工程学概述1.什么是软件危机(概念)在计算机软件的开发和维护过程中所遇到的一系列严重问题2.软件工程学科出现的主要原因:软件危机的出现3.什么是软件工程?(概念)①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。
4.简述结构化范型和面向对象范型的要点,并分析他们的优缺点目前使用得最广泛的软件工程方法学(2种):⑴传统方法学:也称为生命周期方法学或结构化范型。
优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。
缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
⑵面向对象方法学优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。
5.软件生命周期每个阶段的基本任务问题定义:准确地回答“要解决的问题是什么”可行性研究:确定问题是否值得去解决需求分析:准确地回答“系统必须做什么”总体设计:设计出实现目标系统的几种可能的方案确定程序由哪些模块组成以与模块间的关系详细设计:把解法具体化(设计出程序的详细规格说明)编码和单元测试:写出正确的容易理解、容易维护的程序模块综合测试:通过各种类型测试(与相应的调试)使软件达到预期的要求软件维护:通过各种必要的维护活动使系统持久地满足用户的需要软件生命周期划分成哪些阶段软件生命周期由软件定义、软件开发和运行维护(也成为软件维护)3个时期组成软件定义时期:问题定义、可行性研究和需求分析软件开发时期:总体设计、详细设计、编码和单元测试、综合测试软件维护时期6.什么是软件过程?(概念)为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤7.常见的软件生存周期模型(了解)1.瀑布模型——阶段化过程特点:具有顺序性和依赖性缺点:是由文档驱动的。
软件工程导论复习题含答案
软件工程习题集第1章概述(一)单项选择题1.“软件危机”产生的主要原因是( A )。
A.软件日益庞大B.开发方法不当C.开发人员编写程序能力差D.没有维护好软件2. 软件是一种( B )性工业产品。
A. 理论B. 知识(或逻辑)C. 消耗D. 体力3. 需求分析是在( B )进行的。
A. 用户B. 用户和分析设计人员之间C. 开发人员内部D. 使用和维护人员间4. 软件的主要结构和功能是在( A )阶段决定的。
A. 分析设计B. 编程C. 测试D. 维护5.软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是( D )。
A.程序、数据 B.程序、文档 C.程序 D. 程序、数据、文档6.在软件工程时期,决定软件质量的主要因素是( A )A.管理水平 B.个人程序技术 C.小组技术水平 D.硬件的发展7. 在软件开发模型中,提出最早、应用最广泛的模型是( A )。
A. 瀑布模型B. 喷泉模型C. 增量模型D. 螺旋模型8.瀑布模型把软件生存周期划分为软件定义、软件开发与( C )三个阶段,而每一阶段又可分为若干更小的阶段。
A. 详细设计B. 可行性分析C. 运行及维护D. 测试与排错9. 计算机辅助软件工程,简称( D )。
A. SAB. SDC. SCD. CASE10. 软件危机是软件产业化过程中出现的一种现象,下述现象中:( C )是其主要表现。
①软件需要增长难以满足。
②软件开发成本提高。
③软件开发进度难以控制。
④软件质量不易保证。
A. ③和④B. ③和④C. 全部D. ①、②和③11 软件工程的出现主要是由于( C )。
A. 程序设计方法学的影响B. 其他工程科学影响C. 软件危机的出现D. 计算机的发展12、软件生成周期模型有多种,下列选项中,( C )不是软件生存周期模型。
A.螺旋模型B.增量模型C.功能模型D.瀑布模型(二)简答题1. 软件产品的特点是什么?2. 软件生产的发展经历了哪几个时代?各有何特征?3. 软件危机的概念、表现形式、产生原因、解决途径4. 简述主要的软件生存期模型(或软件开发模型)。
软件工程导论复习
软件工程导论复习软件工程导论---------------- 信计13-1 韩慧珊第一章软件工程学概述1、软件危机软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件危机包含下述两个方面的问题:1.如何开发软件,以满足对软件日益增长的需求。
2.如何维护数量不断膨胀的已有软件。
2、软件工程及软件工程的特性1.软件工程关注于大型程序的构造。
2.软件工程的中心课题是控制复杂性。
3.软件经常变化。
4.开发软件的效率非常重要。
5.和谐地合作是开发软件的关键。
6.软件必须有效地支持它的用户。
7.在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。
3、软件工程的基本原理1.用分阶段的生命周期计划严格管理。
2.坚持进行阶段评审。
3.实行严格的产品控制4.采用现代程序设计技术。
5.结构应能清楚的审查。
6.开发小组的人员应该少而精。
7.承认不断改进软件工程实践的必要性。
4、软件工程方法学包含3个要素:方法、工具和过程。
使用最广泛的分别是传统方法学和面向对象方法学。
5、软件生存周期3个时期:软件定义、软件开发和运行维护。
软件定义:问题定义、可行性研究和需求分析。
开发时期:总体设计,详细设计,编码和单元测试,综合测试。
前两个阶段称为系统设计,后两个称为系统实现。
维护时期的主要任务是使软件持久的满足用户的需求。
6、瀑布模型模型严格按照软件生存周期各个阶段来进行开发,上一阶段的输出即是下一阶段的输入,并强调每一阶段的严格性。
它规定了各阶段的任务和应提交的成果及文档,每一阶段的任务完成后,都必须对其阶段性产品(主要是文档)进行评审,通过后才能开始下一阶段的工作。
因此,它是一种以文档作为驱动的模型。
瀑布模型特点:1.阶段间具有顺序性和依赖性。
2.推迟实现的观点。
3.质量保证的观点。
(以下看一下)快速原型:是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成功能的一个子集。
-软件工程导论复习题.doc
软件工程导论复习题一、名词解释软件、继承性、封装、多态性、软件危机、UML、用例视图、软件生存周期、瀑布模型、需求分析、模块化、模块独立性、白盒测试、等价类划分、风险管理二、选择题1、封装是指把对象的()结合在一起,组成一个独立的对象。
A.属性和操作B。
信息流C。
消息和事件D。
数据的集合2、封装是一种()技术,目的是使对象的生产者和使用者分离,使对象的定义和实现分开。
A.工程化B。
系统维护C。
信息隐蔽D。
产生对象3、面向对象方法中的()机制使子类可以自动地拥有(复制)父类的全部属性和操作。
A.约束B。
对象影射C。
信息隐蔽D。
继承5、软件是一种逻辑产品,它的开发主要是()A研制B拷贝C再生产D复制6、软件生命周期一般包括:软件开发期和软件运行期,下述()不是软件开发期所包含的内容?A需求分析B结构设计C程序编制D性能优化8、在软件生存周期中,()阶段必须要回答的问题是“要解决的问题是什么?”A需求分析B可行性分析与项目开发计划C概要设计D测试9、在软件开发中,通常要花费()以上的代价进行测试和排错A20% B 30% C 40% D 50%10、在软件开发方法中,()方法总的指导思想是自顶向下、逐步求精。
它的基本原则是功能的分解和抽象。
A结构化B面向对象的开发 C JSD D VDM11、软件工程是一门()学科。
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、设年利率为I,若n年能收入F元,那么这些钱现在的价值P 是()A P=F/(1+n*I)B P=F*(1+n*I)C P=F*n*(1+n)D P=F*(1+I)n17、需求分析阶段,分析人员要确定对问题的综合看法,其中最主要的是()需求A功能B性能C可靠性D可维护性18、需求分析阶段产生的最重要的文档是()A需求规格说明书 B 修改完善的软件开发计划C 确认测试计划D 初步的用户使用手册19、数据流图反映系统“做什么”,不反映“如何做”,因此箭头上的数据流名称只能是(),整个图不反映加工的执行顺序。
软件工程导论 复习资料
软件工程导论复习资料软件工程导论是计算机科学与技术专业的一门重要课程,它主要介绍了软件工程的基本概念和原理,帮助学生了解软件开发过程中的关键问题和解决方法。
本文将为大家提供一份软件工程导论的复习资料,希望能够帮助同学们更好地复习和掌握这门课程。
1. 软件工程概述1.1 软件工程定义软件工程是一门关于开发和维护大规模软件的学科,它涉及到软件开发的各个阶段和过程。
软件工程的目标是通过系统化和可量化的方法来开发、维护和管理软件,以提高软件的质量、效率和可靠性。
1.2 软件生命周期软件生命周期是软件开发过程中的一个重要概念,它包括需求分析、设计、编码、测试、部署和维护等阶段。
了解软件生命周期的各个阶段和活动,对于理解软件开发过程的全貌和整体把控至关重要。
1.3 软件工程方法学软件工程方法学是用于指导软件开发过程的一种方法体系,包括传统的瀑布模型、敏捷开发方法、迭代开发方法等。
通过学习不同的软件工程方法学,可以使软件开发过程更加有序、高效。
2. 需求工程2.1 需求定义和分类需求工程是软件开发过程中的第一个阶段,它主要涉及到需求的定义、分析和规范化等活动。
了解需求的定义和分类能够帮助我们更好地理解用户的需求,从而制定出更准确的软件需求规格说明书。
2.2 需求获取和分析需求获取是收集用户需求信息的过程,需求分析是将这些需求信息进行过滤、分类和分析的过程。
在需求获取和分析阶段,我们需要使用一些常见的工具和技术,例如面谈、问卷调查、用例图等。
2.3 需求规格说明书需求规格说明书是对系统需求进行详细描述和规范的文档,它包括功能需求、非功能需求、性能需求等内容。
编写清晰、准确的需求规格说明书是软件开发过程中的关键一步,它对于后续的设计和编码工作具有重要的指导作用。
3. 软件设计3.1 软件设计基础软件设计是将需求转化为软件结构的过程,它包括模块化设计、面向对象设计、数据结构设计等。
掌握软件设计的基础知识,能够帮助我们合理划分系统的功能模块,提高软件的可维护性和可扩展性。
软件工程导论第五版复习重点
储户
储户
1
记录存款 信息
打印存款 信息
存款单
存款信息
存款存单
3
计算利息
4
打印利息 清单
存款信息
利息值
利息清单
D1
存款信息
存款信息
2
细化后的计算机储蓄系统软件结构
第3章 需求分析
1、需求分析的基本任务是什么?P46-P48 2、分析建模 2.1什么是模型? 模型:就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成。 2.2数据模型(E-R)、 功能模型(2.4节数据流图)、 行为模型(状态转换图是行为模型的基础) 3、要从哪些方面验证软件需求?P60
第6章 详细设计
1、结构程序设计中有哪几种基本控制结构?P108 2、了解人机界面的设计。 3、掌握过程设计的工具(程序流程图、盒图、PAD图,判定树)P114—P119 4、面向数据结构的设计方法(Jackson图) 5、程序复杂度的定量度量(McCabe)
6.1 结构程序设计
6.1 结构程序设计
实现
编码和测试
7.2 软件测试基础
7.2 软件测试基础
软件测试:为发现程序中的错误而执行程序的过程。 软件测试的准则(尽早和不断的测试、彻底测试的不可能、软件测试是有风险的行为、并非所有的软件错误都能恢复、反向思维逻辑、由小到大的测试范围、避免检查自己的代码、追溯至用户需求) 测试方法(黑盒测试和白盒测试) 测试步骤(模块测试、子系统测试、系统测试、验收测试、平行运行)
图6.4 盒图的基本符号
图6.5 PAD中基本符号 顺序结构;(b) 分支结构;(c) 多分支CASE结构; (d) 当型循环;(e);直到型循环;(f) 语句标号;(g)定义
软件工程导论 复习资料
名词解释:1.软件生命周期模型软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。
软件生存周期主要模型:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等2. 模块独立性模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。
模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。
3.软件的可维护性软件可维护性指软件能够被理解、校正、适应及增强功能的容易程度。
4. 软件工程软件工程指用科学知识和技术原理来定义、开发、维护软件的一门学科。
或者说,软件工程就是运用工程学的基本原理和方法来组织管理软件的生产、研究、开发、管理、维护的过程、方法和技术。
5.数据字典字据字典:简称DD,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的\无二义性的说明方式为系统的分析\设计及维护提供了有关元素的一致的定义和详细的描述。
6、静态测试静态测试是采用人工检测和计算机辅助静态分析的方法对程序进行检测。
7、面向对象:面向对象OO=类+对象+继承+通信8、需求分析需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。
9、软件危机软件危机(Software Crisis) 是计算机软件在它的开发和维护过程中所遇到的一系列严重问题。
概括地说,主要包含两方面的问题:如何开发软件,怎样满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
10、软件生存周期软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。
软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等。
简答:1.软件生存周期有哪几个阶段?①可行性研究②需求分析③总体设计④详细设计⑤编码⑥测试⑦维护2.白盒测试法有哪些逻辑覆盖标准?①语句覆盖②判定覆盖③条件覆盖④判定/条件覆盖⑤条件组合覆盖⑥点覆盖、边覆盖、路径覆盖3.软件的维护有哪4种类型?①校正性维护②适应性维护③完善性维护④预防性维护。
软件工程导论复习
软件工程导论复习一、概念:1.软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
2.软件工程:是指导软件开发与维护的工程性学科,采用工程的概念、原理、技术和方法来开发与维护软件。
3.软件工程的7条基本原理:(1)用分阶段的生命周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采用现代程序设计技术(5)结果可以清楚地审查(6)开发小组的人员应该少而精(7)承认不断改进软件工程实践的必要性4.软件生命周期:从软件定义开始到软件被废弃所经历的整个时期,它包括软件定义、软件开发和运行维护3个时期,每个时期又进一步划分成若干个阶段。
5.软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
6.瀑布模型的特点:(1)阶段间具有顺序性和依赖性(2)推迟实现的观点(典型特点)(3)质量保证的观点7.可行性研究的任务目的:用最小的代价和尽可能短的时间判断问题是否值得去解8.系统流程图:用来描述物理系统的工具。
9.数据流图(DFD):是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换,即数据流图描绘数据在软件中流动和被处理的逻辑过程。
10.结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。
11.数据模型中包含3种互相关联的信息:(1)数据对象(2)数据对象的属性(3)数据对象彼此间相互连接的关系12.信息隐藏原理:应这样设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。
13.数据耦合:如果两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,那么这种耦合称为数据耦合。
14.控制耦合:如果传递的信息中有控制信息(尽管有时这种控制信息以数据的形式出现),则这种耦合称为控制耦合。
15.黑盒测试法:把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程,是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,黑盒测试又称为功能测试。
软件工程导论最全复习总结
1、软件危机是指在计算机开发过程中旳开发和维护过程中所碰到旳一系列旳严重问题。
2、软件是程序、数据及有关文档旳完整集合,程序是可以完毕预定功能和性能旳可执行旳程序序列;数据是是使程序可以合适旳处理信息旳数据构造;文档是开发、使用和维护程序所需要旳图文资料。
3、软件工程学包括3个要素:措施、工具、过程。
4、目前使用最广泛旳软件工程措施学是老式措施学和面向对象措施学。
5、软件工程措施学旳软件过程基本上可以用瀑布模型来描述。
6、瀑布模型、迅速原型模型、增量模型、螺旋模型、喷泉模型。
7、Rup把软件生命周期划为:初始、精化、构建、移交阶段。
8、可行性研究旳三方面:技术可行性、经济可行性、操作可行性。
9、数据流图(DFD是一种图形化技术,他描绘信息流和数据从输入移动到输出旳过程中所经受旳变化。
10、数据字典是有关数据信息旳集合,也就是对数据流程图中所包括旳所有元素旳定义旳集合。
11、数据流图和数据字典共同构成系统旳逻辑模型,没有数据字典,数据如就不严格,没有流程图,数据字典也难以发挥作用。
12、需求分析阶段结束之前,系统分析员应当写出软件需求规格阐明书,以书面形式准确旳描述软件需求。
13、9、构造化分析措施就是面向数据流自顶向下逐渐求精进行需求分析旳措施。
14、ER图中包括了实体、关系和属性,矩形代表实体,菱形表达关系,椭圆或圆角矩形表达属性,用直线把实体和其属性连接。
15、验证软件需求旳对旳性:一致性、完整性、现实性、有效性。
16、总体设计旳基本目旳是回答“概括地说,系统应当怎样实现?”,总体设计又称为概要设或初步设计。
17、模块旳独立程度可以有两个定性标量度量:内聚和耦合。
18、软件测试旳目旳:(1测试是为了发现程序中旳错误而执行程序旳过程;(2好旳测试方案是极也许发现迄今为止尚未发现旳错误旳测试方案;(3成功旳测试是发现可至今为止尚未发现旳错误旳测试。
19、软件测试环节:模块测试、子系统测试、系统测试、验收测试、平行运行。
软件工程导论部分复习重点
1.理解软件危机产生的原因及解决途径,了解软件危机的表现。
软件危机:落后的软件生产方式无法满足迅速增长的计算机软件需求。
从而导致软件开发与开发过程中产生了一系列严重问题的现象。
主要有两个方面的原因:1、与软件本身的特点有关,软件不同与硬件,他是计算机系统中的逻辑部件而不是物理部件;软件样品及产品,试制过程也就是生产过程;软件不会因使用时间过长而“老化”或“用坏”;软件具有可运行的行为特性,在写出代码并在计算机上试运行之前,软件的质量难以评估;软件在运行时所出现的错误几乎都是在开发时期就存在而一直未被发现的,改正这类错误就通常意味着改变或修正原来的设计,这就使得软件维护远比硬件困难。
2、来自于软件开发人员的弱点。
其一,软件产品是人的思维结果,因此软件生产水平最终在相当程度上取决于软件人员的数量、训练和经验的积累;其二,对于大型软件往往需要许多开发人员深入应用领域的问题研究,这样就需要相互之间的沟通,在此过程中难免产生理解的差异;其三,由于计算机技术和应用发展的迅速,知识更新周期加快,软件开发人员经常处在变化之中,不仅需要适应硬件更新,而且还要涉及日益扩大的应用领域的问题研究。
表现:a、对软件开发成本和进度的估计常常很不准确;b、用户对“已完成的”软件系统不满意的现象经常发生;c、软件产品的质量往往靠不住;d、软件常常是不可维护的;e、软件通常没有适当的文档资料;f、软件成本在计算机系统总成本中所占的比例逐年上升;g、软件开发生产率提高的速度,远远跟不上计算机应用迅速普及及深入的趋势。
解决途径:a、为了消除软件危机,首先应该对计算机软件有一个正确的认识;b、更重要的是,必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目;c、应该推广使用实践中总结出来的开发软件的成功的技术和方法,并且研究探索更好更有效的技术和方法,尽快清除在计算机系统在早期发展阶段形成的一些错误概念和做法。
软件工程导论复习知识点
、软件:软件定义:软件=程序+文档+数据软件特点:1、具有抽象性2、没有明显的制造过程3、软件的维护比硬件的维护要复杂得多4、对计算机系统有着不同程度的依赖性5、尚未完全摆脱手工艺的开发方式6、软件本身是复杂的7、软件成本相当昂贵8、相当多的软件工作涉及到社会因素软件的发展:程序设计、程序系统、软件工程软件危机:软件危机指的是软件开发和维护过程中遇到的一系列严重问题。
软件危机的问题:如何开发软件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机表现:1.开发成本难以控制,进度不可预计;2. 软件系统的质量和可靠性很差,难以满意;3. 软件文档相当缺乏,软件系统不可维护;4. 软件开发生产率很低,软件产品供不应求。
5. 软件产品成本十分昂贵。
软件危机产生原因:1、软件本身的特点2、对软件开发与维护存在许多错误认识和做法3、软件开发与维护的方法不正确解决软件危机途径:1、将软件开发看成是一种组织严密、管理严格、各类人员协同配合共同完成的工程项目。
2、研究和推广成功的软件开发技术和方法。
3、开发和使用好的软件工具。
软件生命周期:软件所经历的定义、开发、使用和维护直到废弃所经历的时期。
程序设计环境:源程序编辑,编译或解释,链接,调试和运行工具的集合软件工程环境:软件定义,设计和实现,测试和维护等各个阶段所使用的软件工具的集合二、软件工程:软件工程定义:研究如何应用一些科学理论和工程上的技术来指导软件的开发,用较少的投资获得高质量的软件的一门学科。
软件工程性质:涉及计算机科学、工程科学、管理科学、数学等领域,着重于如何建造一个软件系统。
用工程科学中的观点来进行费用估算、制定进度、制定计划和方案。
用管理科学中的方法和原理进行软件生产的管理。
用数学的方法建立软件开发中的各种模型和各种算法,如可靠性模型,说明用户需求的形式化模型等。
软件工程三要素:方法、工具和过程。
软件方法:是完成软件开发的各项任务的技术方法,回答“如何做”的问题;工具是为方法的运用提供自动的或半自动的软件支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
软件工程导论 复习整理
1.软件危机的概念2.产生软件危机的原因(了解)3.消除软件危机的途径4.软件工程的概念5.软件工程的本质特性(7个)6.软件工程的基本原理(7个)7.传统方法学和面向对象的比较(各自的优缺点)8.软件生命周期的8个阶段以及各阶段的基本任务9.软件过程中使用的5个模型以及各自的特点瀑布模型:1)瀑布模型具有顺序性和依赖性。
2)推迟实现的观点:把逻辑设计与物理设计清楚地划分开,尽可能推迟物理模型的实现。
3)质量保证的观点:每一步都循序渐进,及早消除隐患,从而保证软件质量。
缺点:只有做出精确的需求分析,才能取得预期的结果。
由于各种客观、主观的原因,需求分析往往不很精确,常常给日后的开发带来隐患。
快速原型模型:1)开发人员和用户在“原型”上达成一致。
2)缩短开发周期,加快工程进度。
3)降低成本。
缺点:当告诉用户,还必须重新生产该产品时,用户是很难接受的。
这往往给工程继续开展带来不利因素。
增量模型:1)增量模型是一种非整体开发的模型。
2)该模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。
缺点:要求软件具有开放的结构是这种模型固有的困难,可能会导致设计差、效率低、维护难。
螺旋模型:1)风险驱动,有利于软件重用。
2)建立在风险分析的基础上,绝对依赖人的素质。
3)开发中的每一层都很有弹性,并不是很明确的界限;每一层的目标和计划都是由小组本身来制定。
缺点:很难让用户确信这种演化方法的结果是可以控制的。
喷泉模型:1)充分体现了面向对象软件开发过程迭代和平滑过渡的特性。
2)各个阶段没有明显的界限,开发人员可以同步进行开发。
3)适应于面向对象的软件开发过程。
缺点:由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。
此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。
10.Rational统一过程(简称RUP,了解)11.敏捷过程的宣言(4个)12.极限编程&微软过程(了解)第2章1.可行性研究的任务(4个)2.系统流程图(了解)3.数据流图&数据字典(会画)4.单元练习题51.需求分析的目的2.获取需求的方法3.需求分析的图形工具(5个,重点掌握前2个)第5章1.总体设计的目的和原理原理:模块化;抽象;逐步求精;信息隐藏和局部化;模块独立2.耦合&内聚(从强到弱的顺序,各7个)耦合:1)内容耦合:当一个模块直接修改或操作另一个模块的数据,或者直接转入另一个模块时,就发生了内容耦合。
软件工程导论期末复习重点
软件工程导论期末复习重点选择、判断略一、名词解释1、软件危机2、软件工程3、数据字典4、模块化5、黑盒测试6、软件维护7、软件过程8、快速原型9、白盒测试二、简答题1、可行性研究目的和任务?2、可行性研究包括哪几方面的内容?3、简述需求分析的描述工具和基本任务?4、什么是模块化?模块设计的准则?5、详细设计阶段的根本目标和任务?6、比较面向数据流和面向数据结构两类设计方法的异同?7、测试与调试的主要区别?8、什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用X围.9、比较层次方框图与结构图的异同?10、结构化程序设计的基本原则?11、提高软件编码效率的3条原则?一、名词解释1、软件危机答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题.概括地说,包含两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件.2、软件工程答:①把系统的、规X的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径.3、数据字典答:数据字典是描述数据流图中数据的信息的集合.它对数据流图上每一个成分:数据项、文件<数据结构>、数据流、数据存储、加工和外部项等给以定义和说明;它主要由数据流描述、加工描述和文件描述三部分组成.4、模块化答:模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求.5、黑盒测试答:黑盒测试也称为功能测试,它着眼于程序的外部特征,而不考虑程序的内部逻辑结构.测试者把被测程序看成一个黑盒,不用关心程序的内部结构.黑盒测试是在程序接口处进行测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息<如数据库或文件>的完整性.6、软件维护软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程.7、软件过程答:软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤.8、快速原型答:快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集.9、白盒测试答:白盒测试是指测试者了解被测程序的内部结构和处理过程,对程序的所有逻辑路径进行测试,在不同点检查程序状态,确定实际状态与预期状态是否一致.二、简答题1、可行性研究目的和任务?目的:确定在问题定义中所提出的问题是否值得去解,在限制条件下问题能否解决.可行性研究的任务:<1> 进一步分析和澄清问题的定义,在澄清问题的基础上,导出系统的逻辑模型;<2> 从系统逻辑模型中,选择问题的若干种主要解法,研究每一种解法的可行性,为以后的行动提出建议;<3> 如果问题没有可行的解,建议停止系统开发;如果问题有可行的解,应该推荐一个较好的解决方案,并为工程制定一个初步的计划.2、可行性研究包括哪几方面的内容?答:<1>技术可行性:现有技术能否实现本系统,现有技术人员能否胜任,开发系统的资源能否满足;<2>经济可行性:经济效益是否超出开发成本;<3>操作可行性:系统操作在用户内部行得通吗?<4>法律可行性:新系统开发是否会侵犯他人、集体或国家利益,是否违反国家法律. 3、简述需求分析的描述工具和基本任务?答:需求分析的描述工具有数据流图、数据字典、判定表、判定树、结构化自然语言、层次方框图、Warnier图、IPO图和需求描述语言等.需求分析的基本任务是:准确定义未来系统的目标,确定为满足用户的需要系统必须做什么.4、什么是模块化?模块设计的准则?答:模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求.模块设计的准则:<1> 改进软件结构, 提高模块独立性:在对初步模块进行合并、分解和移动的分析、精化过程中力求提高模块的内聚,降低藕合.<2> 模块大小要适中:大约50行语句的代码,过大的模块应分解以提高理解性和可维护性;过小的模块,合并到上级模块中.<3> 软件结构图的深度、宽度、扇入和扇出要适当.一般模块的调用个数不要超过5个.<4> 尽量降低模块接口的复杂程度;<5> 设计单入口、单出口的模块.<6> 模块的作用域应在控制域之内.5、详细设计阶段的根本目标和任务?答:详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统;详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的"蓝图〞.6、比较面向数据流和面向数据结构两类设计方法的异同?答:相同点:<1> 遵守结构程序设计"由顶向下〞逐步细化的原则,并以其为共同的基础;<2> 均服从"程序结构必须适应问题结构〞的基本原则,各自拥有从问题结构<包括数据结构>导出程序结构的一组映射规则.不同点:<1> 面向数据流的设计以数据流图为基础,在分析阶段用DFD表示软件的逻辑模型,在设计阶段按数据流类型,将数据流图转换为软件结构.面向数据结构的设计以数据结构为基础,从问题的数据结构出发导出它的程序结构.<2> 面向数据流的设计的最终目标是软件的最终结构图,面向数据结构的设计的最终目标是程序的过程性描述.7、测试与调试的主要区别?答: <1> 测试从一个侧面证明程序员的失败;调试证明程序员的正确;<2> 测试从已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试从不可知内部条件开始,除统计性调试外,结果是不可预见的;<3> 测试有计划并且要进行测试设计;调试不受时间约束;<4> 测试是发现错误、改正错误、重新测试的过程;调试是一个推理的过程;<5> 测试执行是有规程的;调试执行要求程序员进行必要的推理;<6> 测试由独立的测试组在不了解软件设计的件下完成;调试由了解详细设计的程序员完成;<7> 大多数测试的执行和设计可由工具支持;调试用的工具主要是调试器.8、什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用X围.答:软件生命周期模型可以简洁地描述软件过程,它规定了把生命周期划分成哪些阶段与各个阶段的执行顺序.包括瀑布模型、快速原型模型、增量模型和螺旋模型等.瀑布模型优点:可强迫开发人员采用规X的方法〔例如,结构化技术〕;严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证.缺点:模型过于理想化,是由文档驱动的.快速原型模型优点:通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用户反馈意见的方法,获取用户真正的需要.增量模型优点:能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可以使用户有较充实的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击.螺旋模型优点:对可选方案和约束条件的强调有利于已有软件的重用;减少过多测试.瀑布模型适用于文档驱动的产品研发;快速原型模型适用于软件交付时间紧急,且需获知用户真实需求的情况;增量模型适用于能在较短时间内向用户提交可完成部分工作的产品;螺旋模型适用于内部开发的大规模软件项目.9、比较层次方框图与结构图的异同?答: <1> 层次方框图描绘数据的层次结构, 结构图描绘的是软件结构.<2> 二者都采用多层次矩形框树形结构.层次方框图的顶层矩形框代表完整的数据结构, 下面各层矩形框依次代表上个框数据的子集;结构图是在层次图的每一个方框内注明模块的名字或主要功能,方框之间的直线表示模块的调用关系,用带注解的箭头表示模块调用过程中传递的信息.10、结构化程序设计的基本原则?答:结构化程序设计的基本原则是:在详细设计中所有模块都使用单入口、单出口的顺序、选择、循环三种基本控制结构.11、提高软件编码效率的3条原则?答:3条原则为:1〕效率是性能要求,因此应该在需求分析阶段确定效率方面的要求.2〕效率是靠好设计来提高的.3〕程序的效率和程序的简单程度是一致的,不要牺牲程序的清晰性和可读性来不必要地提高效率.。
软件工程导论复习(期末_考研用)
软件工程导论复习(期末_考研用)第1章软件工程概述1、什么是软件工程?为什么会出现软件工程?软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。
软件工作者在20世纪60年代后期开始认真研究消除软件危机的途径,从而逐渐形成了一门新兴的工程学科——计算机软件工程学(通常简称为软件工程)。
2、软件工程的主要目标是什么?基本目标是什么?软件工程的目标:从管理和技术两个方面开发和维护计算机软件,用低成本,开发出达标、高性能、易于移植、可靠性高的软件。
软件工程的基本目标是:优质、高产。
3、什么是软件工程方法学?软件工程的3要素(软件工程方法学的3要素)是什么?分别包含什么内容?软件工程方法学:软件生命周期全过程中使用的一整套技术方法的集合软件工程方法学包含3个要素:方法、工具和过程。
方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。
4、什么是软件过程?什么是软件周期?常见软件生命周期模型(课件中的前5类)的特点有哪些?软件过程:它是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
软件生命周期:由软件定义、软件开发和运行维护(也称之为软件维护)3个时期组成①瀑布模型定义:传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述。
瀑布模型的特点:1.阶段间具有顺序性和依赖性;2.推迟实现的观点;3.质量保证的观点。
瀑布模型的成功在很大程序上是由于它基本上是一种文档驱动的模型。
瀑布模型的主要优点:a.可强迫开发人员采用规范的技术方法;b.严格地规定了每个阶段必须提交的文档;c.每个阶段结束前必须正式进行严格的技术审查和管理复审。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章软件工程概述1、什么是软件工程?为什么会出现软件工程?软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。
软件工作者在20世纪60年代后期开始认真研究消除软件危机的途径,从而逐渐形成了一门新兴的工程学科——计算机软件工程学(通常简称为软件工程)。
2、软件工程的主要目标是什么?基本目标是什么?软件工程的目标:从管理和技术两个方面开发和维护计算机软件,用低成本,开发出达标、高性能、易于移植、可靠性高的软件。
软件工程的基本目标是:优质、高产。
3、什么是软件工程方法学?软件工程的3要素(软件工程方法学的3要素)是什么?分别包含什么内容?软件工程方法学:软件生命周期全过程中使用的一整套技术方法的集合软件工程方法学包含3个要素:方法、工具和过程。
方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。
4、什么是软件过程?什么是软件周期?常见软件生命周期模型(课件中的前5类)的特点有哪些?软件过程:它是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
软件生命周期:由软件定义、软件开发和运行维护(也称之为软件维护)3个时期组成①瀑布模型定义:传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述。
瀑布模型的特点:1.阶段间具有顺序性和依赖性;2.推迟实现的观点;3.质量保证的观点。
瀑布模型的成功在很大程序上是由于它基本上是一种文档驱动的模型。
瀑布模型的主要优点:a.可强迫开发人员采用规范的技术方法;b.严格地规定了每个阶段必须提交的文档;c.每个阶段结束前必须正式进行严格的技术审查和管理复审。
瀑布模型的主要缺点:在可运行的软件产品交付给用户之前,用户只能通过文档来了解未来产品是什么样的。
开发人员和用户之间缺乏有效的沟通,很可能导致最终开发出的软件产品不能真正满足用户的需求。
②快速原型模型定义:所谓“快速原型”,是快速建立起来的、可在计算机上运行的程序,它所能完成的功能往往是最终的软件产品所能完成的功能的子集。
原型是软件开发人员与用户沟通的强有力工具,因此有助于所开发出的软件产品满足用户的真实需求。
快速原型模型的主要优点是:A.使用这种软件过程开发出的软件产品通常能满足用户的真实需求;B.软件产品的开发过程基本上是线性顺序过程。
③增量模型定义:增量模型也称为渐增模型增量模型的主要优点A.能在较短时间内向用户提交可完成部分工作的产品;B.逐步增加产品功能,从而使用户有较充裕的时间学习和适应新产品,减少一个全新的软件给客户组织带来的冲击。
④螺旋模型定义:螺旋模型的基本思想是,使用原型及其他方法尽量降低风险。
理解这种模型的一个简便方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型。
螺旋模型所描述的软件过程主要适用于内部开发的大型软件项目。
使用螺旋模型开发软件,要求软件开发人员具有丰富的风险评估知识和经验。
螺旋模型主要有下述优点:A.有利于已有软件的重用;B.有助于把软件质量作为软件开发的一个重要目标C.减少了过多测试或测试不足所带来的风险;D.软件维护与软件开发没有本质区别。
⑤喷泉模型定义:迭代是软件开发过程中普遍存在的一种内在属性。
在面向对象范型中,软件开发过程各阶段之间的迭代或同一阶段内各个工作步骤之间的迭代,比在结构化范型中更常见。
喷泉模型,是典型的面向对象生命周期模型,它充分体现了面向对象软件开发过程迭代和平滑过渡的特性。
5、在“快速原型”模型中软件原型的作用主要是什么?在哪类生命周期模型中引入了风险分析?哪类生命周期模型是典型的传统软件工程生命周期模型?哪类生命周期模型是典型的面向对象软件工程生命周期模型?在“快速原型”模型中软件原型的作用主要是:软件开发人员与用户沟通的强有力工具,因此有助于所开发出的软件产品满足用户的真实需求。
螺旋模型中引入风险分析瀑布模型是典型的传统软件工程生命周期模型喷泉模型是典型的面向对象软件工程第2章可行性研究1、可行性研究包括哪几方面(每方面解决什么问题),研究得到的文档和结论是什么?技术可靠性:使用现有的技术能否实现这个系统吗?经济可行性:这个系统的经济效益能否超过它的开发成本?操作可行性:系统的操作方式在这个用户组织内是否行得通?研究的结果:是一份可行性研究的各个步骤的工作结果的文档,它包含了工程是否能继续进行下去和分析员的推荐方案;2、主要描述工具的概念和使用:系统流程图:是什么,成份和基本符号,描述什么模型,画法;数据流图:是什么,成份和基本符号,系统级和功能级、简单细化数据流图的区别,画法;数据字典:是什么,内容、定义数据的方法。
(1)系统流程图的定义:是概括地描绘物理系统的传统工具。
它用图形符号以黑盒子形式描绘组成系统的每个部件。
系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,是物理数据流图而不是程序流程图。
系统流程图的基本符号:(2)数据流图的定义:它是一种图形化技术,它描述信息和数据从输入移动到输出过程中所经历的变换。
在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。
数据流图的基本符号:正方形(或立方体)表示数据的源点或终点;圆角矩形(或圆形)代表变换数据的处理;开口矩形(或两条平行横线)代表数据存储;箭头线表示数据流,即特定数据的流动方向。
(3)数据字典的定义:是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。
数据字典的内容:数据流、数据流分量、数据存储、处理定义数据的方法:用被定义的事物的成分的某种组合表示这个事物,这些组成成分又由更低的成分组合来定义。
3、数据字典和数据流图的关系。
数据流图和数据字典共同构成系统的逻辑模型。
没有数据字典,数据流图就不严格,然而没有数据流图,数据字典也难于发挥作用。
只有数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。
第3章需求分析1、需求分析的任务是什么?分析得到的成果(文档)是什么?包含哪些内容?1、需求分析的任务:(1)确定对系统的综合要求:功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、逆向需求、将来可能提出的要求(2)分析系统的数据要求:(3)导出系统的逻辑模型(4)修正系统开发计划;2、需求分析得到的结果:是通过需求分析得到的除了分析模型之外,还应该写出软件需求规格说明书,它是需求分析阶段得出的最主要的文档。
2、软件需求通常包括哪些方面?各类需求一般包含内容有哪些?(1)功能需求:这方面的需求指定系统必须提供的服务。
通过需求分析应该划分出系统必须完成的所有功能。
(2)性能需求:性能需求指定系统必须满足的定时约束或容量约束,通常包括速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等方面的需求。
(3)可靠性和可用性需求:可靠性需求定量地指定系统的可靠性。
可用性与可靠性密切相关,它量化了用户可以使用系统的程度。
(4)出错处理需求:这类需求说明系统对环境错误应该怎样响应。
(5)接口需求:接口需求描述应用系统与它的环境通信的格式。
常见的接口需求有:用户接口需求;硬件接口需求;软件接口需求;通信接口需求。
(6)约束:设计约束或实现约束描述在设计或实现应用系统时应遵守的限制条件。
(7)逆向需求:逆向需求说明软件系统不应该做什么。
(8)将来可能提出的要求:应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。
这样做的目的是,在设计过程中对系统将来可能的扩充和修改预做准备,以便一旦确实需要时能比较容易地进行这种扩充和修改。
3、追加的主要描述工具的概念和使用:E-R图:是什么,成份和基本符号,描述什么模型;状态转换图:是什么,描述什么模型(1)E-R图的定义:即实体--联系图,是表示数据对象及其之间关系的图形语言机制,是建立数据模型的图形工具。
E-R图的基本成份和使用的符号:实体(即数据对象)----矩形框,关系----菱形框,属性----椭圆形或圆角矩形。
E-R图描述的模型:用来建立数据模型,ER模型使用简单的图形符号表达系统分析员对问题域的理解(2)状态转换图的定义:通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。
状态转换图的基本成份和使用的符号:基本成分是状态、事件、状态转换。
状态转换图描述的模型:用来建立系统的行为模型。
4、在结构化分析中,建模的核心是什么?3种模型分别是什么,分别用什么工具来描述?建模的核心是数据字典,它描述了所有的在目标系统中使用的和生成的数据对象。
(1)、数据模型,用实体-联系图描述;(2)、功能模型,用数据流图描述;(3)、行为模型,用状态转换图描述。
第5章总体设计1、什么是总体设计?将软件需求转化为软件的数据结构和系统结构,确定各组成成分(子系统或模块)之间的相互关系2、模块化设计的原理包括什么?为了提高软件的可维护性,其中,模块独立性最重要的,是评价软件结构质量的首要标准。
模块化设计的原理包括:模块化、抽象、逐步求精、信息隐藏和局部化、模块独立。
为了提高软件的可维护性,其中,模块独立性最重要的,是评价软件结构质量的首要标准。
3、模块独立性度量(描述)的两个指标:内聚、耦合;什么是内聚,什么是耦合;耦合和内聚的具体分类及使用原则;在面向数据流的方法中,内聚、耦合各分为哪几级,每级的具体含义分别是什么?强度从弱到强如何排列?耦合和内聚两者关系?(1)耦合定义:它是对一个软件结构内不同模块之间互连程度的度量;耦合分类:耦合使用原则:尽量使用数据耦合,小用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合,最终降低模块间接口的复杂性。
(2)内聚定义:它标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。
内聚分类:内聚使用原则:设计时力求高内聚,设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;但是,低内聚很坏,不要使用。
(3)耦合和内聚两者关系:耦合与内聚都是模块独立性的定性标准,都反映模块独立性的良好程度。
其中内聚更重要。
内聚与耦合密切相关。
同其它模块强耦合的模块意味着它自己是弱内聚的;强内聚模块意味着与其它模块间松散耦合。
所以设计的目标应该是力争高内聚、低耦合。
4、软件总体结构描述工具的概念和使用:软件层次图、软件结构(SC)图、HIPO图:是什么,基本符号和表示的结构,画法。