软件工程提纲
软件工程重要考点复习提纲
![软件工程重要考点复习提纲](https://img.taocdn.com/s3/m/1fedbc1fa8114431b90dd8e3.png)
CH11、软件危机概念软件危机是指在计算机软件开发和维护过程中所遇到的一系列严重问题。
2、软件危机体现在哪几方面?主要表现在软件的开发和维护两方面3、软件工程概念软件工程是知道计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
4、软件工程7条基本原理(1)用分阶段的生命周期计划严格管理;(2)坚持进行阶段评审;(3)实行严格的产品控制;(4)采用线代程序设计技术;(5)结果应能清楚地审查;(6)开发小组的人员应该少而精;(7)承认不断进取软件工程实践的必要性。
5、软件工程方法学包含的3个基本要素方法、工具和过程6、软件生命周期划分哪些阶段软件定义、软件开发和运行维护。
7、各阶段的基本任务软件定义:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。
软件开发:具体设计和实现定义的软件。
运行维护:使软件持久地满足用户的需要。
8、软件过程概念软件过程描述为了开发出客户需要的软件,什么人、什么时候、做什么事以及怎样做这些事以实现某一个特定的具体目标。
9、软件过程模型有哪些瀑布模型、快速圆形、增量模型、螺旋模型、喷泉模型10、瀑布模型有哪些特点(1)可强迫开发人员采用规范的方法;(2)严格地规定每个阶段必须提交的文档;(3)要去每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
11、在软件生产中为什么强调管理CH21、可行性研究的目的用最小的代价在尽可能短的时间内确定问题是否能够解决。
2、从那些方面进行可行性研究技术可行性、经济可行性、操作可行性、社会可行性。
3、系统流程图的作用4、数据流图的作用利用它作为交流信息的工具,作为分析和设计的工具。
软件工程复习提纲PPT
![软件工程复习提纲PPT](https://img.taocdn.com/s3/m/a1186304360cba1aa911da3f.png)
第三章 需求分析
1、需求分析的任务是什么? 确定对系统的综合要求(功能需求,性能需求,可靠性和可 用性需求,出错处理需求,接口需求,约束,逆向需求,将 来可能提出的要求);分析系统的数据要求(通过建立数据 模型来分析,如数据字典,层次方框图、Warnier图,并将 数据结构规范化);导出系统的逻辑模型(完善数据流图、 实体-联系图、状态转换图、数据字典、主要的处理算法 (IPO图));修正系统开发计划(根据在分析过程中获得 的对系统的更深入更具体的了解,可以比较准确地估计系统 的成本和进度,修订前期制定的开发进度计划)。
第一章 软件工程学概述
3、软件生命周期有哪些3个时期?再细分的话,可分为哪 些阶段? 软件生命周期由软件定义、软件开发和软件维护3个时期 组成,再细分的话,分为问题定义、可行性研究、需求分 析、总体设计、详细设计、编码和单元测试、综合测试、 软件维护8个阶段。其中软件维护阶段工作量最大。
第二章 可行性研究
第三章 需求分析
例子: 银行计算机储蓄系统的工作过程大致如下:储户填 写的存款单或取款单由业务员键入系统,如果是存款则系 统记录存款人姓名、住址(或电话号码)、身份证号码、 存款类型、存款日期、到期日期、利率及密码(可选)等 信息,并打印出存款存单给储户;如果是取款而且存款时 留有密码,则系统首先核对储户密码,若密码正确或存款 时未留密码,则系统计算利息并打印出利息清单给储户。
第五章 总体设计
2、什么模块独立?模块独立如何度量? 模块独立是指开发具有独立功能且和其他模块没有过多 的相互作用的模块。模块独立的概念是模块化,抽象、 信息隐藏和局部化概念的直接结果。模块的独立程度可 以由两个定性标准度量:(1)耦合,指不同模块彼此 间互相依赖(连接)的紧密程度;(2)内聚:指在一 个模块内部各个元素彼此结合的紧密程度。模块独立性 比较强的模块应该是具有高内聚性和的低耦合度。
软件工程复习提纲总结3篇
![软件工程复习提纲总结3篇](https://img.taocdn.com/s3/m/4458b4c6f9c75fbfc77da26925c52cc58bd6903c.png)
软件工程复习提纲总结3篇七、软件维护1.软件维护的含义及类型?2.软件维护过程?3.◆需要把握的内容:4.1、面对对象分析(OOA)的任务?5.面对对象分析(OOA)过程中包括哪些活动?6.2、三种面对对象模型各自表示的内容?7.3、对象模型的表示工具?动态模型的表示工具?功能模型的表示工具?8.4、结合软件开发实例,理解三种面对对象模型之间的关系9.以及面对对象分析环节完成的主要工作。
10.11.---------------? 课堂练习题目一、填空题1.软件主要包括程序、和三部分内容。
2.软件可行性讨论的任务是从技术、和三个方面分析软件项目的可行性。
3.软件测试的目的是;通常把软件测试方法分为和两大类。
4.结构化分析方法中,功能模型用描述;数据模型用描述。
5.在类的继承结构中,不同层次的类共享同一个行为名称,但各个类可以根据自己的需要为同名行为设计不同的算法,此性质称为类的__。
二、选择题1.产生软件危机的主要缘由有(C)。
①软件本身的特点②用户使用不当③硬件牢靠性差④程序员水平⑤缺乏好的开发方法和管理手段A.③④B.①②④C.①⑤D.①③2.需求分析阶段,开发人员需从用户那里获得的最重要信息是(C)。
A.用户能接受的开发费用B.用户能接受的开发周期C.用户要让软件做什么D.软件应具有何种结构3.数据流图中的每个处理至少有(B)。
A.一个输入流或一个输出流B.一个输入流和一个输出流C.一个输入流D.一个输出流4.在面对数据流的设计方法中,一般把数据流图划分为(C)两种类型。
A.数据流和事务流B.变换流和数据流C.变换流和事务流D.掌握流和事务流5.数据流图所描述的是实际系统的(A)。
A.规律模型B.物理模型C.程序流程D.数据结构6.由变换型数据流图转换成模块结构图,其中包括变换模块,则(B)。
A.变换模块就是主模块B.变换模块的功能是将规律输入变换为规律输出C.变换模块没有下层模块D.变换模块只能有一个输入量、一个输出量7.为了提高软件测试的效率,应当(C)。
软件工程-张海藩 编著 复习提纲1-6章
![软件工程-张海藩 编著 复习提纲1-6章](https://img.taocdn.com/s3/m/e09b22da76a20029bd642d27.png)
第一章软件工程学概述第一节软件危机1.为了消除软件危机,20世纪60年代后期形成了新学科:计算机软件工程学。
2.软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
(这些问题不是不能运行的软件才仅仅具有的,几乎所有的软件都不同程度存在这些问题。
)3.软件危机包含两个方面的问题:1.如何开发软件,以满足对软件日益增长的需求。
2.如何维护数量不断膨胀的已有软件。
4.产生软件危机的原因(page4—图1.1)1.一方面与软件本身的特点有关2.另一方面也和软件开发与维护的方法不正确有关。
5.软件不同于一般程序,它的一个显著特点是:“规模庞大”。
6.软件开发流程:1. 问题定义:(确定要求解决的问题是什么)2. 可行性研究:(决定该问题是否存在一个可行的解决办法)3. 需求分析:(深入具体的了解用户需求)进入开发时期:对软件设计概要设计详细设计编写程序(全部工作量10%—20%)测试交付使用7.软件产品的配置:包括:程序、文档、数据8.软件危机的一些典型表现:1.对软件开发成本和进度的估计常常不准确2.用户对“已完成的”软件系统不满意的现象经常发生3.软件产品的质量往往靠不住4.软件常常是不可维护的5.软件通常没有适当的文档资料。
6.软件成本在计算机系统总成本中所占的比例逐年上升。
7.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
第二节软件工程1.软件工程定义软件工程是:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;2. 软件工程方法学包含3个要素:方法、工具和过程。
3. 软件工程方法学: 1. 传统方法学2. 面向对象方法学4. 面向对象方法学的4个特点:(1)把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件。
(2)把所有的对象都划分成类(class)。
(3)按照父类(基类)与子类(派生类)的关系,把若干个相关类组成一个层次结构的系统(也成为类的等级)。
《软件工程》复习提纲
![《软件工程》复习提纲](https://img.taocdn.com/s3/m/2722050ea8956bec0875e322.png)
《软件工程》复习提纲一一、、 授授课课的的主主要要内内容容11.. 基基本本概概念念((11)) 有有关关““软软件件工工程程””的的基基本本概概念念11))软软件件工工程程的的诞诞生生那是1968……22))软软件件危危机机计计算算机机软软件件开开发发和和软软件件维维护护过过程程中中所所遇遇到到的的一一系系列列严严重重问问题题统统称称为为““软软件件危危机机””。
概括地说,软件危机包含两方面的问题:一是如何开发软件,怎样满足人们对软件日益增长的需求?二是如何维护软件,使它们持久地满足人们的要求。
33))软软件件包含与数据处理系统操作有关的程序、规程、规则以及相关文档的智力创作称为软件(计算机)。
文档是描述程序开发过程的,是智力创作的真实记录,是创作活动的历史档案和结晶。
软软件件由由计计算算机机程程序序,,数数据据结结构构和和文文档档组组成成。
计算机程序执行特定的功能;数据结构是程序运行所需的数据;文档是描述程序开发、使用和维护的资料。
44)) 软软件件工工程程的的概概念念采采用用工工程程学学的的原原理理来来管管理理和和从从事事软软件件的的开开发发和和软软件件维维护护,,称称为为软软件件工工程程。
(工程学:系统化、规范化、数量化)55))软软件件质质量量的的基基本本概概念念(a )软件质量的定义与软件产品满足规定的和隐含的需求能力有关的特征和特性的全体。
具体来说:1)软件产品中能满足给定需求的性质和特性的总体;2)软件具有所期望的各种属性的组合程度。
(b )软件质量特性(1)功能性:当软件在指定条件下使用时,软件产品提供满足明确和隐含要求的功能的能力。
(2)可靠性:在指定条件下使用时,软件产品维持规定的性能级别的能力。
(3)易用性:在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。
(4)效 率:在规定条件下,相对于所用资源的数量,软件产品可提供适当性能的能力。
(5)维护性:软件产品可被修改的能力。
软件工程复习提纲
![软件工程复习提纲](https://img.taocdn.com/s3/m/05065429af45b307e8719773.png)
1.可行性分析,需求分析,概要设计,详细设计阶段的参与人员有哪些?需求分析用户、管理人员、分析人员、软件开发小组成员2.在软件详细设计过程中采用的工具有哪些?程序流程图、N-S图、PAD图(问题分析图)、判定表&判定树、PDL等、Jackson方法3.白盒技术测试技术有哪些?(5.3-5.4)a)单元测试b)逻辑覆盖i.语句覆盖ii.判定覆盖(分支覆盖)iii.条件覆盖iv.判定/条件覆盖v.条件组合覆盖c)控制结构测试i.基本路径测试ii.条件测试iii.数据流测试iv.循环测试4.黑盒技术测试方法有哪些?(5.5-5.6)a)等价划分b)边界值分析c)错误推测d)验收测试e)集成测试5.软件生存周期的活动中,哪个阶段要进行软件结构设计?(概要设计阶段)软件生命周期由软件定义、软件开发、和运行维护3个时期组成的软件定义:问题定义、可行性分析、务求分析软件开发:系统设计(概要设计、详细设计)、编码、测试6.什么是瀑布模型?瀑布模型是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈。
如果有信息未被覆盖或者发现了问题,可以“返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,7.什么是ER模型?实体联系模型,是概念数据模型的高层描述所使用的数据模型或模式图,它为表述这种实体联系模式图形式的数据模型提供了图形符号。
8.什么是螺旋模型?螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。
螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。
同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。
螺旋模型更适合大型的昂贵的系统级的软件应用。
9. 什么是喷泉模型?喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于采用对象技术的软件开发项目。
软件工程复习提纲
![软件工程复习提纲](https://img.taocdn.com/s3/m/5cebf83731126edb6f1a10ed.png)
1 软件危机产生的原因和方法(1)原因:一方面与软件本身的抽象性和复杂性有关,这是客观原因;另一方面则与软件开发和维护过程中使用的技术和方法有关,这是主观原因.(2)方法:既要有技术措施(包括方法和工具),又要有组织管理措施2 软件生命周期阶段(1)可行性研究(2)需求分析(3)软件设计(4)编码(5)软件测试(6)软件维护3 常见软件开发模型(1)瀑布模型(2)原型模型(3)增量模型(4)螺旋模型(5)统一软件开发过程4 软件需求分析目标和任务(1)目标:研究用户需求,得到目标系统的需求定义(2)任务:1确定目标系统的具体要求2建立目标系统的逻辑模型5 需求分析步骤(1)获取需求,识别问题(2)分析和描述系统的逻辑模型(3)需求分析的复审6数据流图有四种基本符号:(1).正方形或立方体表示数据的源点或终点;(2).圆角矩形或圆形代表数据处理;(3).开口矩形或两条平行横线代表数据存储;(4).箭头表示数据流,即数据流动得方向.7 实体-联系图(E-R图)的三个基本组成部分:(1).实体。
用矩形框表示实体;(2).关系。
用菱形框表示实体之间的关系;(3).属性。
用椭圆形或圆角矩形表示实体(或关系)之间的属性。
8 软件设计基本原则(1)抽象与分解(2)模块化和信息隐藏(3)模块独立性9 耦合和类聚的分类:(1)耦合:1数据耦合,2控制耦合,3特征耦合,4公共环境耦合,5内容耦合(2)内聚:1偶然内聚,2逻辑内聚,3时间内聚,4过程内聚,5通信内聚,6顺序内聚,7功能内聚10数据流图中数据流的分类: 变换型数据流和事务型数据流11 如何高质量的完成详细设计的目标和任务?(1)目标:设计目标系统,得出新系统软件的详细规格,同时要求设计出规格简明易懂,便于下一阶段用某种程序语言在计算机上的实现(2)任务:①算法过程的设计,②数据结构的设计,③数据库物理设计,④信息编码设计,⑤测试用例的设计,⑥其他设计,⑦编写详细设计说明书12结构化程序设计通常采用自顶向下, 逐步求精的设计方法13 软件测试的分类(1)根据程序是否运行分为:静态分析,动态分析(2)测试数据的设计依据分为:黑盒测试,白盒测试14 黑盒测试含义及分类(1)含义:又称功能测试,,是以用户的观点,从输入数据与输出数据的对应关系出发测试的,不涉及程序的内部结构(2)分类:等价类划分法,边界值分析法,决策表法,因果图法15 白盒测试含义及分类(1)含义:按照程序内部逻辑结构测试程序,检验是否程序能够按照规定正常运行(2)分类:覆盖测试,功能性测试,结构性测试(3)16 软件测试步骤(1)单元测试(2)集成测试(3)确认测试(4)系统测试17 软件维护的种类(1).改正性维护(2)适应性维护(3)完善性维护(4)预防性维护18 软件维护的策略(1) 改正性维护(2)适应性维护(3)完善性维护19 软件维护的过程(1)建立维护机构(2)用户提出维护申请并提交维护申请报告(3)维护人员确认维护类型并实施相应的维护工作(4) 整理维护记录并对维护工作进行评审(5)对维护工作进行评价20 决定软件可维护性的因素(1)可理解性(2)可测试性(3)可修改性21 统一建模语言UML是用一组专用符号描述软件规模的语言,这些符号统一、直观、规范,可以用于任何软件开发过程22. UML分为结构图和行为图,其中共有六种结构图和七种行为图。
软件工程各章节提纲
![软件工程各章节提纲](https://img.taocdn.com/s3/m/9fb2428971fe910ef12df8e3.png)
第四章需求分析1.什么是软件需求?用户对目标系统在功能、行为、性能等方面的要求2.什么是需求分析?对软件需求的理解、分析与表达3.需求工程的六个阶段是什么?需求获取、需求分析与协商、系统建模、需求规约、需求验证、需求管理4.什么是需求工程?运用相关的方法与技术进行需求分析的过程5.需求获取的方法?建立顺畅的沟通渠道、访谈与调查、组成联合小组(FAST法、用例)、观察用户的使用流程。
6.需求分析的原则是什么?必须理解分析软件的信息域、功能、行为、服务以及操作,划分子系统,并逐步求精。
7.软件模型的分类有哪些?需求模型、设计模型8.软件建模有哪些方法?结构化法(E-R图,功能模型)、面向对象法9.什么是需求规格说明?对软件需求的书面描述,是需求分析阶段的最终产物。
10.需求规格说明的最基本内容是什么?描述软件的功能、数据与行为、运行环境、接口、必要的非功能约定11.什么是需求管理?对系统需求变更、了解和控制的过程。
12.需求管理的目标是什么?为软件需求提供一个基线,提供给软件工程和管理使用。
使得软件计划、产品、活动与软件需求保持一致第五章结构化分析与设计1.结构化分析模型的描述形式有哪些?数字字典、数据流图(加工规约)、状态转换图(控制规约)、实体—关系图(数据对象描述)2.结构化分析方法的概念结构化分析方法是面向数据流进行分析的方法,利用抽象模型,按照软件内部数据之间的传递、变换的关系,自顶向下地分解,直到找到所有需要的功能的软件为止。
3.结构化分析的工具有哪些?数据流图、数据字典、结构化英语、判定表以及判定树4.数据流图有哪些画法规则?a)顶层图只能有一个加工,就是系统本身,并且不能有文件b)父图与子图的输入、输出要守恒c)一个新出现的文件应该含有文件的输入输出,同时,还应该是不同是加工进行读写d)父图中读取的文件应该要在子图中画出e)DFD图中每个加工都应该有一个加工规约进行说明,同时,每个加工都应该至少有一个输入、输出f)在数据流图中,需按层给加工框编号。
软件工程复习提纲(附答案)
![软件工程复习提纲(附答案)](https://img.taocdn.com/s3/m/0b4b845f8f9951e79b89680203d8ce2f00666530.png)
软件工程复习提纲(附答案)软件工程第一章软件工程介绍1、软件的特性:P3软件是设计开发的,而不是传统意义上的生产制造;软件不会磨损;大多数软件仍是根据实际的客户需求制定的。
2、计算机软件的七大分类:P5系统软件、应用软件、工程/科学软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。
3、遗留系统发生系统演化的原因:P6软件需要修改其适应性,从而可以满足新的计算环境或技术的需求软件必须根据新的业务需求进行升级软件必须扩展以具有与更多现代系统和数据库的协作能力软件架构必须进行改建以适应多样化的网络环境4、软件神话:管理者,用户,从业者P135、软件的定义:P3软件是:指令的集合,通过执行这些指令可以满足预期的特征,功能和性能需求;数据结构,它使得程序可以充分利用信息;描述程序操作和使用的文档。
第二章过程综述1、软件工程的三个要素:工具,过程,方法P8过程:软件过程将各个技术层次结合在一起,并实施合理地,及时地开发计算机软件方法:为建造软件提供技术上的解决方法。
工具:为过程和方法提供自动化或半自动化的支持。
2、通用软件过程框架:沟通,策划,建模,构建,部署P9沟通:这个框架活动包含了与客户之间大量的交流和协作,还包括需求获取以及其他相关活动策划:指为后续的软件工程工作制定计划。
建模:它包括创建模型和设计两方面。
创建模型有助于客户和开发人员更好得理解软件需求;设计可以实现它。
构建:它包括编码和测试。
部署:软件交付到用户,用户对其进行评测并给出意见3、能力成熟度模型:P22第0级:不完全级;第1级:已执行级;第2级:已管理级;第3级:已定义级;第4级:已定量管理级;第5级:优化级;第三章过程模型1、简述惯例框架包含的主要活动:P19沟通、策划、建模、构建、部署2、简述瀑布模型所包含的主要框架活动:P24沟通、策划、建模、构建、部署3、简述瀑布模型在实际运用中所面临的问题(缺点):P24实际的项目很少遵守瀑布模型提出的顺序客户通常难以清楚地描述所有的需求客户必须有耐心,因为只有在项目的后期,他们才能看到可执行的程序。
软件工程背诵提纲归纳 Microsoft Office Word 文档
![软件工程背诵提纲归纳 Microsoft Office Word 文档](https://img.taocdn.com/s3/m/8b94b5ee998fcc22bcd10dbf.png)
一.危机(1) 软件开发成本和进度的估计常常失准;(2) 开发的软件功能未达到用户需求; (3) 软件产品的质量往往靠不住;(4) 软件常常是不可维护的; (5) 软件通常没有适当的文档资料;(6) 软件成本在计算机系统总成本中所占的比例逐年上升;(7) 软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势。
二.软件工程定义:概括地说,软件工程是指导计算机软件开发和维护的一门工程学科。
三.提高可维护性的方法建立明确的软件质量目标和优先级;使用提高软件质量的技术和工具;进行明确的质量审查;选择可维护的程序设计语言;改进程序文档;开发时考虑到维护。
四.概括地说,软件生命周期由3个时期组成:(1)软件定义(2)软件开发(3)软件运行维护五.软件生命周期的八个阶段(1)问题定义(2)可行性研究(3)需求分析 (4)总体设计(5)详细设计(6)编码和单元测试(7)综合测试(8)软件维护六.可行性研究的任务:可行性研究的目的是在尽可能短的时间内以最小的代价确定该项目是否能够开发,是否值得开发。
七.可行性研究分析包括三方面:(1) 技术可行性 (2) 经济可行 (3) 操作可行性八.需求分析对软件系统有下述几方面要求:(1)功能需求 (2)性能需求 (3)可靠性和可用性需求 (4)出错处理需求(5)接口需求 (6)约束 (7)逆向需求 (8)将来可能提出的要求九.需求分析用到的图形工具:(1)层次方框图 (2)Warnier图 (3)IPO图十.从哪些方面验证软件需求的正确性(1) 一致性 (2) 完整性 (3) 现实性 (4) 有效性十一.验证软件需求的方法1. 验证需求的一致性(1)审查验证软件系统规格说明书(2)形式化的描述软件需求2. 验证需求的现实性(1)参照以往开发类似系统的经验进行分析(2)采用仿真或性能模拟技术3. 验证需求的完整性和有效性:原型法十二.总体设计过程通常由两个主要阶段组成:(1)系统设计阶段,确定系统的具体实现方案;1. 设想供选择的方案2. 选取合理的方案3. 推荐最佳方案 (2)结构设计阶段,确定软件结构;4.功能分解5.设计软件结构6.设计数据库7.制定测试计划8.书写文档 9.审查和复审十三.模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结果。
软件工程 期末复习提纲完美版
![软件工程 期末复习提纲完美版](https://img.taocdn.com/s3/m/0550244b2b160b4e767fcf13.png)
《软件工程》复习提纲1 软件与软件工程1.1软件的基本概念(例如,软件的定义、文档、软件的特点等)简单地说,软件由程序和文档两部分组成,一是机器可以执行的程序及有关的数据,二是机器不能执行的文档,软件的两种普遍定义:①软件是与计算机系统操作有关的程序,规程、规则及任何与之相关的文档和数据。
②软件是程序以及开发,使用和维护程序所需要的文档,包括机器运行所需要的各种程序及有关资料。
程序:为了解决某一问题而按事先设计的功能和性能要求执行的指令系列,或者说,用程序设计语言描述的适合于计算机处理的语句序列。
数据:使程序能正常操纵信息的数据结构。
文档:描述程序、数据和系统开发以及使用的各种图文资料。
它具有永久性并能供人或机器阅读。
软件的基本特点:·①计算机软件产品是一种逻辑产品部件而不是物理产品部件。
·②软件产品的生产主要是研制,是通过人们的智力活动,把知识与技术转化成信息的一种产品。
·③软件具有“复杂性”,其开发和运行常受到计算机系统的限制。
而且,软件投入使用后,仍需要进行维护,这就带来软件维护复杂性的问题。
·④软件不存在磨损,物理上不会老化,但存在软件退化问题。
·⑤软件成本昂贵,其开发方式目前尚未完全摆脱手工生产方式。
1.2软件危机的概念软件危机是指在软件开发和维护过程中所遇到的一系列严重问题。
【由于软件的规模越来越大,复杂度不断增加,软件需求量增大。
而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。
致使大量质量低劣的软件涌向市场,有的花费大量人力财力,而在开发过程中就夭折。
】“软件危机”主要表现在两个方面:(1)软件产品质量低劣,甚至开发过程就夭折;(2)软件生产率低,不能满足需要。
1.3软件工程学的概念(定义)、研究的内容(三要素)1993年IEEE定义:(1)把系统化的、规范化的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;(2)研究(1)中提到的途径。
软件工程复习提纲
![软件工程复习提纲](https://img.taocdn.com/s3/m/228fb0187e21af45b207a83c.png)
1.什么是软件?是一系列按照特定顺序组织的计算机数据和指令的集合,包括程序、数据和文档。
附:软件的特征:成本高、风险大、维护困难2.什么是软件危机,其内容主要是指什么?原因:1、与软件本身的特点有关;2、与软件开发人员有关;定义:在计算机软件开发和维护过程中所遇到的一系列严重的问题。
1)对软件开发成本和进度的估计常常不准确。
2)用户对“已完成”系统不满意的现象经常发生。
3)软件产品的质量不可靠。
4)软件的可维护程度非常之低。
5)软件通常没有适当的文档资料。
6)软件的成本不断提高。
7)软件开发生产率无法满足人们对软件的生产要求,软件开发生产率的提高落后于硬件的发展。
3.什么是软件工程?开发、运行和维护软件的系统方法•软件工程主要研究软件生产的客观规律性,建立与系统化软件生产有关的概念、原则、方法、技术和工具,指导和支持软件系统的生产活动,以期达到降低软件生产成本、改进软件产品质量、提高软件生产率水平的目标。
4.软件工程的目标(PP.41 )及其组成部分。
方法、工具和过程。
•软件工程的目标是:在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。
方法: 是指产生某些结果的形式化过程,•工具: 是用更好的方式完成某件事情的设备或自动化系统,如各种集成开发环境、编译工具、测试工具等。
•过程: 生产特定产品的工具和技术的结合•软件工程方法学包含3个要素:方法、工具和过程。
5.软件开发方法的定义。
通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学。
比如SASD方法、面向对象的软件开发方法。
6.好的软件的一些主要衡量指标。
例如McCall 的质量模型。
(1)质量,它的衡量:产品的质量、过程的质量、商业环境背景下产品的质量。
McCall 的质量模型:附:开发团队的成员•需求分析员: 与客户合作,确定并文档化客户需求•设计人员: 生成系统描述:系统要做什么•程序员: 编写事先指定需求的代码•测试人员: 发现错误•培训人员: 向用户说明如何使用这个系统•维护小组: 修复系统验收之后出现的错误•资料管理员: 准备和存储软件需求文档等•配置管理团队: 保持各工件之间的通信第二章1.什么是软件生命周期?主要分为哪些阶段?各个阶段的主要任务及产生的主要制品?定义:当过程是在开发软件产品时,把这种软件开发过程称为软件生命周期。
软件工程复习提纲
![软件工程复习提纲](https://img.taocdn.com/s3/m/62cd9efe49649b6648d74773.png)
软件工程复习提纲第一章软件与软件工程1. 什么是软件工程?构成软件工程的要素是什么?2. 什么是软件危机?软件危机有那些表现?3.软件开发的三种最主要方法是什么?4.软件工程实践中的五个面向理论的含义是什么?5.用图表方式说明软件的生存周期6.结合软件生存周期理论,阐述几个重要的软件开发模型的特点及适用条件(如瀑布模型、快速原型模型、增量模型、迭代模型等)第四章需求分析基础1.什么是软件需求?软件需求的属性是什么?2.需求分析阶段的一般工作流程是什么?3.什么是需求分析?需求分析的任务、目的是什么?4.什么是需求定义?5.简述软件需求分析的任务与步骤,并以图书管理系统为例说明6.需求的分析的方法与切入点?(过程分析、对象分析;功能分析、对象分析、数据分析?)7.需求分析的描述工具?8.什么是业务流程图?业务流程图的主要绘图元素有哪几种?9.什么是数据流图?数据流图的绘图元素有哪几种?10.分别画出图书管理系统的业务流程图和数据流图11.画出图书管理系统的用例图12.画出一个网上招聘系统(招聘网站)的用例图第五章面向数据流的分析方法1. 阐述数据流图、数据字典和E-R图的构成2. 阐述基于数据流图进行需求分析的大致过程。
3. 归纳总结CASE工具的核心思想。
4. 如何判断数据流图的一致性和完全性?可否用CASE工具自动或半自动地完成这两类检查?如果可以,请给出相应的软件设施途径。
5. 设计一个简单图书信息系统上网E-R模型第六章面向对象的需求分析1. 基本概念:对象、类、消息、继承、聚集2. 简述利用UML尽心需求分析的主要步骤。
3. 简述面向对象的消息传递机制在程序设计语言中的实现过程。
4. 绘制表示“书籍”的UML类图,“书籍”可以描述为:一本书由许多部分组成,每一部分又由许多章组成,每一张由许多节组成。
部分、章和节都具有标题和序号属性。
第八章软件设计基础1.什么是软件设计?软件设计过程的输入和输出是什么?2.理解软件设计的原理3.什么是软件架构?理解软件的三层架构的内容及特点4软件设计有两大类方法是什么?5.面向过程设计的主要任务和内容和方法是什么?6.面向对象设计的内容和步骤是什么?第九章面向数据流的设计方法1. 简述SD方法将数据流图转换为软件结构的过程与步骤。
软件工程复习资料(提纲+答案)
![软件工程复习资料(提纲+答案)](https://img.taocdn.com/s3/m/1ca373568f9951e79b89680203d8ce2f006665a1.png)
软件工程复习资料(提纲+答案)第一章软件工程的实质1、什么是软件?由什么组成?软件:是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档组成的完整集合。
可以写作为:软件=程序+数据+文档。
2、什么是软件危机?为什么会产生?(原因)软件危机:指的是在计算机软件的开发和维护过程中所遇到的一系列严重的问题。
原因:用户需求不明确、缺乏正确的理论指导、软件规模越来越大、软件复杂度越来越高3、为什么要进行软件开发?4、软件工程的三段论?三段论:软件项目管理论、软件项目开发论、软件过程改进论5、软件工程生存期模型概念、类型、每种类型的特点?答:软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。
软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段或机动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。
常见的软件生存周期模型有瀑布模型、V模型、原型模型、增量式模型、螺旋式模型。
6、了解复用的原则第二章软件项目的需求分析1、需求分析的主要任务?(基本任务)答:需求分析阶段的基本任务是要准确的定义新系统的目标,满足用户需要,回答系统必须“做什么”的问题。
本阶段要主要有以下几方面工作:(1)问题识别,双方确定对问题的综合需求,包括:功能需求、性能需求、用户界面需求,以及可靠性、安全性、可维护性等方面的需求。
(2)建立模型,对获取的需求,进行分析细化,划分系统功能,确定系统构成,并建立系统的逻辑模型。
(3)编写文档,也就是完成“需求规格说明书”的编写工作。
2、需求分析分两大块(功能与非功能)功能需求描述系统所预期提供的功能或服务。
非功能需求是对系统提供的服务或功能给出的约束。
包括时间约束、开发过程的约束、标准等。
3、(P27)需求建模的基本方法?答:关联模型、行为模型(数据流模型和状态机模型)、数据模型、面向对象模型、结构化模型(技术:数据流图(DFD)、数据字典(DD)、系统流程图)以及其他方法(如原型法、功能列表等)4、结构化方法的代表?(P29)7状态图活动图8、理解好数据流图为什么要分层?9、UML中常用的9种图?(P32 把包图去掉)静态图:类图、对象图、构件图、实施图和包图。
软件工程复习提纲.doc
![软件工程复习提纲.doc](https://img.taocdn.com/s3/m/8786a80f1711cc7930b71603.png)
软件工程的复习题纲第一章1、软件工程的生存周期:制定计划;需求分析;总体设计;详细设计;程序编写;软件测试;运行/维护。
2、软件工程的各个生存期模型的特点和适合项目。
(生存期模型有瀑布模型、V模型、原型模型、增量式模型和螺旋式模型)(部分是在网上找的,老师说考这些模型的特点,有什么情况下适合用什么来进行开发。
)瀑布模型的特点:(1)阶段间具有顺序性和依赖性。
(2)推迟实现的观点。
(3)每个阶段必须完成规定的文(每个阶段结束前完成文档审查, 及早改正错误。
)(4)下一个阶段可以回溯到前面的某个阶段适合于:1.开发阶段需求很少有变化2.分析设计人员对应用领域很熟悉3.低风险项目4.用户使用环境很稳定5.用户除提出需求外,很少参与开发工作类似的项目如:公司的财务系统;库存管理系统;短期项目V模型的特点:(1)简单易用(2)强调测试过程与开发过程的对应性和并行(3)没有反应实际的开发过程。
V模型适合的项目:❑在项目开始前,项目的需求很明确❑在项目开始前,解决方案也很明确❑对系统的性能安全很严格的项目❑类似的项目如:❑航天飞机等❑公司的财务系统原型模型的特点:(1)在需求定义之前,需要快速构建一个系统(2)根据构建系统的优缺点,用户给开发人员提出反馈意见(3)根据反馈意见修改软件需求规格,以便系统可以更正确的反映用户的需求(4)减少各种假设以及风险适合的项目:❑在项目开始前,项目的需求不明确❑需要减少项目需求的不确定性❑类似的项目如:❑确定显示界面❑第一次开发的产品,验证可行性增量式模型的特点:1.需求多变,可以分阶段提交产品。
2.分析设计人员对应用领域不熟悉,难以一步到位。
3.用户参与整个软件开发工程中,起到对客户起到镇静剂的作用,增量能够有计划地管理技术风险。
4.软件公司自己有较好的类库或构件库5.增量的内容写入合同,可能会引起客户的不满。
6.融合了瀑布模型的基本成分和原形实现的迭代特征,优点是人员分配灵活,刚开始不用投入大量人力资源,如果核心产品很受欢迎,则可增加人力实现下一下增量。
软件工程复习提纲
![软件工程复习提纲](https://img.taocdn.com/s3/m/7500c23e5bcfa1c7aa00b52acfc789eb172d9ec1.png)
软件工程复习提纲I. 软件工程概述A. 定义与目标B. 发展历程C. 软件工程原则与方法论II. 软件开发过程A. 瀑布模型1. 阶段划分与任务2. 优点与缺点B. 增量模型1. 阶段划分与任务2. 优点与缺点C. 喷泉模型1. 阶段划分与任务2. 优点与缺点III. 需求工程A. 需求获取与分析1. 用户需求调研2. 需求规格化B. 需求验证与确认1. 需求评审2. 需求跟踪与控制IV. 软件设计A. 结构设计1. 模块化设计原则2. 模块间接口设计B. 数据设计1. 数据建模2. 数据库设计C. 用户界面设计1. 人机交互原则2. 界面布局与设计规范V. 软件构建A. 编码规范与标准1. 命名规范2. 代码注释B. 单元测试与集成测试1. 测试用例设计2. 测试工具与技术VI. 软件质量保证与控制A. 质量特性及度量1. 功能性2. 可靠性3. 可维护性4. 可测试性B. 缺陷管理1. 缺陷跟踪与报告2. 缺陷分析与修复VII. 软件项目管理A. 项目规划与组织1. 范围管理2. 人力资源管理B. 项目进度与成本控制1. 进度计划与跟踪2. 成本估算与控制VIII. 软件配置管理A. 版本管理1. 版本控制工具2. 分支与合并策略B. 变更管理1. 变更控制流程2. 变更影响分析IX. 软件工程伦理与职业责任A. 代码所有权与知识产权B. 软件开发道德标准X. 结语以上是软件工程复习提纲的架构,通过对各个主题的概要介绍和论述,有助于理解软件工程的基本概念、方法和流程,并为考试或复习提供了一个清晰的框架。
在准备复习时,可以根据这个提纲,进一步深入学习和了解各个主题中的具体知识点和案例。
软件工程是一门重要的学科,对于软件开发和项目管理都有着重要的指导意义,希望通过这个提纲的复习,能够帮助你更好地掌握软件工程领域的核心知识。
08《软件工程》复习提纲.doc
![08《软件工程》复习提纲.doc](https://img.taocdn.com/s3/m/0e793ffa7cd184254a353567.png)
1.填空(每题1分,10题,10分)(1)计算机软件是指计算机系统中的程序及其文档。
pagel(2)在软件发展的第二阶段,由于软件规模的日益增大,设计与编制程序的工作方式逐步从个体方式转向合作方式。
page2(3)需求分析主要解决开发软件要“做什么”的问题。
page8(4)软件设计主要解决待开发软件“怎么做”的问题。
page8(5)1990年我国颁布了《中华人民共和国著作权法》,其中将计算机软件作为著作权法的保护对象。
page44(6)模块独立性比较强的模块应是高内聚低耦合的模块。
page70(7)在结构化分析与设计方法中,模块的内聚度和耦合度是判断结构好坏的主要标准。
page75(8)数据流图用于软件系统的功能建模,描述系统的输入数据流如何经过一系列的加工,逐步变成系统的输出数据流,这些对数据流的加工实际上反映了系统的某种功能或子功能。
page87(9)一个模块的员出是指该模块直接调用的模块数目。
pagell7(10)一个模块的虜△是指能直接调用该模块的模块数目。
pagell7(11)模块的影响范围是指受该模块中决策(如判定条件)影响的所有其他模块。
pagellS(12)模块的控制殖围是指该模块自身以及它可直接或间接调用的所有模块。
pagellS(13)人机界面设计的好坏已成为人们衡量软件可用性的标准之一。
page231(14)系统响应时间是指从用户执行某个控制动作(如按回车键或单击鼠标)到软件做出响应(期望的输出或动作)的时间。
page242(15)一个测试用例由测试输入数据和预期结果组成。
page263(16)等价类是指输入域的某个子集,该子集中的每个输入数据对接露软件中的错误都是等效的。
page277(17)a测试是由一个用户在开发者的场所进行的,软件在开发者对用户的指导下进行测试。
page293(18)经a测试后的软件成为B版软件。
page293(19)B测试是软件的最终用户在一个或多个用户场所进行的,开发者通过不在测试现场。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程学简答应用知识点第一部分:软件工程学概论1,什么是软件工程?软件工程的目标是什么?软件工程(学)是研究软件生产方法和技术的学科。
软件工程采用工程的概念、原理和方法来开发、维护软件,把经过时间检验的管理方法和先进的软件技术相结合,以提高软件开发的效率、质量和可用性,并有效控制成本和进度。
软件工程的目标是解决或改善软件危机,即用更低成本、在更短时间内,开发出更高质量、更易使用和维护的软件产品。
2,什么是软件危机?软件危机表现在哪几个方面?软件危机是1960年代以来广泛存在的软件生产力发展远远跟不上社会对软件需求的增长而表现出的一系列矛盾的统称。
其主要表现有:(1)需求分析不充分:即闭门造车,所产软件的功能、用法与用户真实需要相去甚远。
(2)质量参差不齐且售后服务没保障。
(3)开发进度、成本失控。
(4)软件组成不完整,普遍缺失开发文档、源代码和质量评价。
(5)维护成本高。
3,软件工程的基本原理有哪些?(1)分阶段的实施与管理:按软件生命期理论划分软件开发、运行与维护的各项工作任务,对不同阶段安排不同的时间、人员和物力,每个阶段都有相应的管理方法和规范。
(2)各阶段的成果都应是确定的、具体的、可评价的,从而能被清楚地审查。
(3)严格的阶段评审:尤其是靠前的阶段,其工作质量对软件工程的整体质量极为关键。
(4)严格的产品控制:主要是功能、性能需求的基准配置管理。
(5)尽可能采用先进的技术:包括分析技术、设计技术、实现技术、测试技术、维护技术等。
(6)开发人员应少而精。
(7)在软件工程的实践中不断发展软件工程学。
4,什么是软件生存周期模型?软件生存周期模型即软件工程过程模型,它从时间角度将软件开发、运行与维护等工作划分成多个特色鲜明的阶段,对不同阶段安排不同的时间、人员和物力,每个阶段都有相应的管理方法和规范。
它是指导软件开发与维护的方法论基础。
从最初的三阶段论(软件计划、软件开发、运行与维护)到比较成熟的七阶段论(可行性研究、需求分析、概要设计、详细设计、编码实现、测试、运行与维护),形成了多种经典的软件工程过程模型:(1)瀑布模型:是较早体现七阶段理论的实际工程模型,主要体现了软件工程基本原理一、二、三、四,使用此模型,软件开发效率高,但需求分析不充分的风险比较大。
(2)快速原型化模型:运用快速原型技术来降低需求分析不充分的风险。
(3)构件组装模型:在开发产品时有意识地先开发出遵循标准规范的、具有通用功能的、独立性较强的构件,从而在以后的产品开发中可以方便地重用这些代码。
(4)螺旋模型:强调风险分析与决策。
(5)V模型:侧重于质量保证。
5,软件工程为什么要强调规范化和文档化?整个软件工程会有许多人参与其中,不规范会导致交流困难、组合失败;软件的规范化还有利于与其它软件的互动、协作;规范化的软件更容易使用和维护,从而可以降低运行、维护的成本。
文档化是规范化的一个重要要求,其目的是使软件更可理解、更易维护、更可管理,从而提高软件质量、提高二次开发效率。
6,软件工程的发展经历了哪些阶段?(1)1970年代后,传统软件工程:软件工程学理论基本形成;广泛运用结构化分析、设计、编码方法。
(2)1980年代后,对象化软件工程:形成了OOA、OOD、OOP、OOT等面向对象的方法和技术。
(3)1990年代后,组件化软件工程:以对象化技术为基础,形成一系列规范标准,使软件中间件易于维护、易于互调,软件重用度大幅度提高,软件开发效率和质量都有质的提升。
7,软件工程师的基本职业道德规范有哪些?ACM/IEEE-CS的软件工程师道德规范和实践要求(SEEPP)指出:(1)公众原则:以公众利益为目标。
(2)客户和雇主原则:在公众原则的前提下,满足客户和雇主的最高利益。
(3)产品原则:确保产品和相关改进符合最高的专业标准。
(4)判断原则:维护职业判断的完整性和独立性。
(5)管理原则:赞成和促进对软件开发与维护的合乎道德规范的管理。
(6)专业原则:推进专业完整性和声誉。
(7)同行原则:对待同行应当平等、互助和支持。
(8)自身原则:参与终身职业实践学习,并促进合乎道德的职业实践方法。
8,什么是软件工程师的职业化?职业化就是能胜任工作、让人放心。
胜任工作意味着具备相应的专业技能、专业知识和专业经验;让人放心意味着建立在行业准则之上的自律精神、团队内外的良好沟通。
职业工程师的基本素质包括:高质量完成任务,自觉遵守行业标准,积极融入团队,重视知识产权,认真对待计划,公私分明,不断进取,重视沟通,遵重职场守则,诚信豁达。
第二部分:可行性研究与项目管理1,什么是可行性研究?它有什么意义?如何进行可行性研究?可行性研究就是用最小代价在最短时间内确定问题能否解决、是否值得解决。
它可以最大程度上避免投资浪费和无意义的人力投入。
通过经济、技术、法律、环境的可行性研究,在可行性研究报告中描述技术可行性、项目成熟度、市场需求情况、成本估算、经济与社会效益分析结论,如果可行则还要给出项目计划建议。
经济可行性:成本<<收益。
2,开发一个软件产品和开发一个软件项目的可行性研究侧重点有何不同?产品软件是开发者根据市场典型需求自行投次开发的、面向社会销售软件拷贝而盈利的开发模式,软件产品归开发者所有,用户只是购买了一份使用权,其可行性研究应侧重于市场需求、成熟度的分析。
项目软件是由特定用户投资立项、针对该用户实际需求而研发的、目标相对模糊的、产权归该用户的开发模式,其可行性研究一般侧重于技术可行性、成本估算等。
第三部分:结构化分析设计1,什么是需求分析?需求分析就是分析者通过各种调研途径和方式,力求准确把握客户的真实想法,在需求规格说明书中用合适的形式清楚、准确地描述出客户对软件功能、性能的真实需要,并经客户确认。
此后,需求规格说明书将成为软件设计、实现和验收测试的基本依据。
2,什么是结构化需求分析?结构化分析(SA)有什么优缺点?结构化需求分析是面向数据流的分析方法。
该方法可以自顶向下、逐步细化,充分考虑全局业务逻辑,直接支持模块化设计与实现;数据与行为分离,相较于OO方法,软件独立性、灵活性、可重用性不高。
SA方法一般从对软件用户的分析入手,概括出所要处理的信息、信息流经的业务环节以及信息的变化,即软件的数据基础和功能需求。
并进一步论证用户对软件性能的要求。
在结构化分析方法中,通常用系统流程图描述客户当前的基本工作原理。
在此基础上,用数据流图和数据字典描述软件所要处理或生成的基本信息和软件的基本功能逻辑。
进一步,运用ER(实体·关系)图详细描述基本信息的组成、结构和相互关联;运用IPO 图等详细描述每个处理环节的输入、输出信息和处理要点。
3,飞机订票数据流图5,什么是结构化设计?结构化设计以需求分析报告为依据,采用模块化、自顶向下、逐步求精的方法,经过概要设计和详细设计,形成软件方案文档。
概要设计:首先,提出合理的技术实现模型,包括编码语种、数据库类型、服务器等。
其次,根据ER图开展数据基础的设计,定义数据库结构或数据结构或文件结构。
还有,根据数据流图开展程序结构设计,把整个系统划分成若干个模块,并用软件结构图描述模块关系;同时,详细定义各模块的接口。
详细设计:运用FC图、NS图或PDL等详细描述每个模块的计算原理;绘制主要画面的信息布局示意图,定义主要画面上的控制输入和数据输入。
6,什么是模块?如何进行模块化设计?模块是完成一定功能的、能被按名调用的、可以独立编辑、存储和处理的程序单位。
模块的外部特性反映为模块接口,包括模块名、输入参数、返回结果或功能结果;模块的内部特性就是它的内部数据结构和计算原理。
模块定义的关键是独立性和通用性。
增强独立性的措施是加强模块的内聚、弱化模块间的耦合,具体的,就是尽可能将信息隐藏在模块内部,使模块的接口变得简单。
增强通用性主要依靠对事务的抽象。
7,软件设计应遵循哪些原则?软件设计的基本原则有:需求决定设计;提高软件可复用性;高独立性结构化模块化设计——高内聚、低耦合;规范化风格;容错设计等。
8,变换型数据流和事务型数据流有何区别?变换型数据流主要反映数据经过处理后的变换结果;事务型数据流主要反映不同业务环节之间的逻辑关系。
9,衡量模块独立性的两个标准是什么?可以用模块的内聚性衡量其独立性,内聚越强,模块独立性越高,可复用性、可维护性等也越好。
也可用模块间的耦合性衡量模块独立性,模块间耦合越松散,模块的独立性越高。
10,模块内聚有哪些各类?独立性、可复用性较差的弱内聚:(1)巧合内聚(偶然内聚):模块内各操作之间没有任何相关性,每个操作都可以分离为独立的子模块。
这种模块一般没什么复用价值。
(2)逻辑内聚:就是把逻辑上比较相似的操作组合在一个模块中。
这种做法可以节约代码或数据空间,但显著降低了模块的可复用性。
(3)时间内聚:某些完全没有逻辑关联的操作被组合在一起只是因为它们都是在某种时刻被执行的。
例如系统初始化模块。
有一定独立性、复用性的中等内聚:(4)过程内聚:某此操作被组合在一起是因为它们是某一任务过程的不同步骤,这些步骤有先后要求。
(5)顺序内聚:模块内各操作是前后数据关联的,即前一操作的输出是后一操作的输入。
(6)通信内聚:将各操作组合在一起是因为要共用某一输入数据,或是要产生同一种输出。
独立性、复用性好的强内聚:(7)功能内聚:模块内各操作都是为完成某个功能而必不可少的、紧密联系的步骤。
11,模块间有哪几种耦合?现代软件设计中建议禁止的病态耦合:(1)内容耦合:A模块内代码直接引用B模块内的代码或数据。
一般只用于系统服务、总控平台或特殊功能的紧密耦合:(2)公共耦合:多个模块共享某一全局数据结构。
(3)外部耦合:多个模块共享某一全局简单数据。
(4)控制耦合:模块A向模块B传递一个控制信息,最典型的情况是以函数名为参数传递给一个模块。
可以广泛使用的松散耦合或无耦合:(5)数据结构耦合:模块间传递的参数包含数据结构构造类型(数组、结构体、类对象等)。
(6)数据耦合:模块间传递的参数都是以标准数据类型定义的简单参数。
(7)非直接耦合:两个模块间没有直接关系。
第四部分:对象化分析设计1,图书借阅活动图2,学校领书活动图第五部分:软件实现与测试1,计算机语言有哪些类型?各有什么特点和适用性?按照语法复杂性、历史发展水平可以将计算机语言划分为三代:低级语言、(传统)高级语言和现代(高级)语言。
低级语言:包括机器语言、汇编语言和宏汇编语言。
与硬件相关性较强、指令集较小、语法简单、功能编程极其灵活,被称为万能语言。
以此开发软件则质量难以提高、进度难以保证、成本较高,但运行速度相对较快、占用内存空间可以更少。
高级语言:特点是可读性强、硬件无关性强,通常还配有高效易用多功能的语言处理软件和子程序、函数库,一般具有鲜明的应用领域针对性。