软件工程复习知识点
软件工程_主要知识点

1.软件的定义?(P1)计算机(程序)、(规程)以及运行计算机系统可能需要的相关(文档)和(数据)。
2.应用软件的分类?(P2)通用软件和定制软件3.软件的本质特性?(P3)复杂性、一致性、可变性、不可见性4.软件危机的表现?(P5-7)1、软件开发的成本和进度难以准确估计,延迟交付甚至取消项目的现象屡见不鲜。
2、软件存在错误多,性能低,不可靠,不安全等质量问题。
3、软件成本在计算机系统的整个成本中所占的比例越来越大4、软件维护及其困难,而且很难适应不断变化的用户需求和使用环境。
5.软件工程的定义?(P7)①将系统性的、规化的、可定量的方法应用于软件的开发、运行和维护,即工程化应用到软件上;②对①中所述方法的研究。
6.软件工程包括哪些基本要素?简述它们的作用?(P7-8)过程、方法、工具方法:为软件开发提供了“如何做”的技术、通常包含某种语言或图形的模型表示方法,设计实践和质量保证标准。
工具:为软件工程的方法提供自动或半自动的软件支持环境辅助软件开发任务完成。
过程:是管理和控制产品质量的关键,将人员、技术、组织与管理有机的结合起来。
7.软件的质量可以从哪些方面评价?(P8-9)可用性、有效性、可依赖性、可维护性8.软件工程方法有哪些?(P9-10)(传统方法<面向过程的方法、面向数据的方法等>、面向对象方法)传统方法:面向数据方法、面向过程方法面向对象方法9.CASE系统的三个层次?(P10-11)工具:CASE工具支持单个过程的任务工作台:CASE工作台支持某一过程阶段的活动环境:CASE环境支持整个软件过程的所有活动或者大部分活动,通常是若干CASE工作台的集成10.SWEBOK的10个知识域?英文名称?(P15-19)1软件需求(Software requirements)→2软件设计(Software Design)→3软件构造(Software Construction)→4软件测试(Software Testing)→5软件维护(Software Maintenance)→6软件配置管理(Software Configuration Management)→7软件工程管理(Software Engineering Management)→8软件工程过程(Software Engineering Process)→9软件工程工具与方法(Software Engineering Tools and Methods)→10软件质量(Software Quality)11.软件工程与其他相关学科的关系?(P19-20)软件工程将计算机科学,数学,工程学和管理学等基本原理应用于软件开发的工程实践中,并借鉴传统工程的原则和方法,以系统的,课控的,有效的方式产生高质量的软件。
计算机软件工程复习要点(计算机科学与技术)

一、术语解释软件工程、需求工程、软件生命周期、测试用例、软件复用、软件可维护性、CASE、软件工程过程二、基本知识要点1. 软件危机的主要表现。
软件工程主要研究与软件开发和维护有关的四个方面的内容:方法和技术、工具和环境、管理技术、标准和规范。
2. 生命周期模型。
典型瀑布模型生命周期的六个阶段。
各阶段产生的文档的名称及承担的人员。
螺旋模型综合了传统瀑布模型直线式的特点和快速原型模型的迭代思想,同时增加了一个重要特征,即风险分析。
螺旋模型在4个象限定义了4个主要活动。
螺旋模型的基本思想和主要特点。
原型模型的基本思想及分类。
喷泉模型是面向对象的模型,体现了迭代和无间隙的特点。
3. 需求分析的主要方法(结构化方法SA、面向对象的方法OOA、形式化方法等)。
结构化分析方法SA、结构化设计方法SD的主要任务、结束文档及内容。
SA得到分层DFD及DD;SD得到模块结构图SC及模块功能说明书。
SD是实现了DFD→SC。
需求规格说明书的主要内容。
软件设计的分类。
E-R图的基本构成要素。
软件系统需求的分类,需求管理的主要任务。
4. DFD的四个构成要素及各自可以表达的内容。
常用加工说明的描述工具(结构化语言、判定表、判定树)。
根据问题结构的不同,可以使用变换分析及事务分析得到初始的SC(分别对应变换型DFD和事务型DFD)。
画DFD的基本原则。
5. 分解、信息隐藏和模块独立性是实现模块化设计的重要指导思想。
模块化设计的核心——模块独立性,由内聚和耦合度量(熟练掌握七种内聚、七种耦合以及控制软件耦合度的方法)。
扇入、扇出。
作用域控制域原则。
程序模块优化的启发式规则。
6. 对象的三个构成要素(对象标识、属性和方法)。
面向对象分析过程中,系统的问题域由概念模型描述,即使用类图表示概念模型;使用用例图描述角色可见的系统功能;使用顺序图和协作图描述对象的行为。
顺序图和协作图的区别。
7. UML的缩写,来自于三个方法(Booch、OMT、OOSE)。
软件工程期末复习必备知识点

一、概念解释1.软件:是程序,数据结构和文档的集合,用于实现系统所需要的逻辑方法、过程和控制。
2.软件危机:是软件开发和维护过程中所遇到的一系列严重的问题。
3.软件周期:是从软件从定义,开发,运行维护到废弃时经历的一个漫长的时期。
4.需求分析:是发现,求精,建模,规格说明和复审的过程。
5,概要设计:通过仔细分析需求规格说明,确定完成系统的模块以及各模块之间的关系,设计出完成预定功能的模块(软件结构),并建立借口。
详细设计:设计完成系统的模块内的算法和数据结构。
6.模块化:将软件划分成可以独立命名的且可以独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能来满足用户的需求。
信息隐藏:一个模块内包含的信息对于一个不需要这些的模块来说是不可访问的。
7.耦合:是一个软件结构内的每个模块互连程度的度量。
内聚:一个模块间各个元素之间的紧密的程度。
8.类:是对有相同数据和相同操作的一组相似对象的抽象描述。
对象:是客观世界中事物的抽象表示,其属性(状态、数据)和相关操作(行为、方法或服务)的封装体;对象之间靠消息传递相互作用。
9.消息:是对象之间相互通信的机制,是某个对象执行其操作的规格说明。
消息传递:一个对象向另一个对象发送消息时,接收消息的对象经过解释、给予响应,这种对象之间进行通信的机制成为消息传递。
10.继承:继承是子类(新类)自动的共享父类(已有类)中定义的数据的操作的机制。
子类可以继承父类的属性和操作;同时子类可以定义自己独有的属性和操作。
子类复用父类的定义,而不修改父类。
继承具有传递性。
多态性:在一个类层次中,不同对象对相同消息做出不同的响应。
11.软件重用:是指同一事物不做修改或者稍加修改就可多次重复使用,软件重用是降低软件开发成本,提高软件开发生产率和质量的有效途径。
12.软件测试:根据软件开发的规格说明和程序的内部结构而设计的一个测试用例,利用这些测试用例去运行程序以发现设计和程序错误的过程。
软件工程知识点

软件工程知识点第一章软件工程概述一、软件的定义和特性(P2—P3)定义:软件=程序+数据+文档程序:按照事先设计的功能和性能要求执行的指令或语句序列数据:程序能正常操纵信息的数据结构文档:描述程序操作和使用的文档特性:(1)软件是一种逻辑实体,具有抽象性,不是一般的物理实体;(2)软件的成产与硬件存在某些相同点,但有根本上的不同,软件开发是人的智力的高度发挥,而不是传统意义上的制造,它更依赖于开发人员的素质,智力,人员和组合,合作和管理;(3)软件维护与硬件维修有着本质的差别,软件维护没有硬件维护那样有可替换的标准零件;(4)软件在运行和使用期间没有硬件那样的机械磨损,老化问题,但存在退化问题;(5)基于构件的开发方法由于其自身的特点越来越受到人们的重视,这些技术可以减少开发时间、提高质量,并提高复用水平。
* 掌握P4图1-2(b)软件失效率曲线二、计算机软件的发展经历了几个阶段?各有何特征?(P1—P2)共经历了四个阶段特征:第一阶段——程序规模小且主要采用个体工作方式,开发的系统大多采用批处理技术第二阶段——引入人机交互的概念,实时系统出现,产生了第一代数据库管理系统,程序编制采用了合作的工作方式,出现了早期的软件危机第三阶段——分布式系统出现,嵌入式系统得到广泛应用,低成本硬件第四阶段——强大的桌面系统和计算机网络迅速发展时期,面向对象技术得到广泛应用,人工智能技术和专家系统开始应用于软件。
三、什么是软件危机?其产生的原因是什么?定义:软件危机是指由于落后的软件生产方式无法满足迅速增长的计算机软件应用需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
(P4)原因:(P5)(1)用户对软件需求的描述不准确、不全面,甚至有错误,以及在开发过程中,不断提出或者修改需求;(2)用户和开发人员对软件需求的理解存在差异,导致所开发的软件产品和用户需求不一致;(3)大型软件项目需要组织一定的人力共同完成,各类人员的信息交流不及时、不准确,有时还可能产生误解,软件开发人员对大型软件缺少开发经验,管理人员缺少相应的管理经验;(4)软件开发人员不能有、独立自主的处理大型软件的全部关系和各个分支,因此容易产生疏漏和错误;(5)开发技术落后,缺乏有效的方法学和工具方面的支持,过分依赖程序设计人员在软件开发过程中的技巧和创造性,加剧软件产品的个性化(6)软件产品的特殊性和人类智力的局限性,导致人们无法处理“复杂问题”,因为软件是逻辑产品,软件开发进展情况较难衡量、软件开发质量难以评价、管理和控制软件开发过程相当困难。
软件工程知识点汇总

软件工程知识点汇总软件工程知识点汇总
1、软件需求
1.1 需求概述
1.2 需求分类
1.3 需求获取与分析
1.4 需求规格说明
2、软件设计
2.1 面向对象设计
2.2 结构化设计
2.3 数据库设计
2.4 用户界面设计
2.5 系统架构设计
3、软件编码
3.1 编程语言选择与使用
3.2 编码规范
3.3 软件开发环境
3.4 编码工具和技术
3.5 调试和测试
4、软件测试
4.1 测试基础知识
4.2 测试方法与策略
4.3 白盒测试
4.4 黑盒测试
4.5 功能性测试
4.6 性能测试
4.7 集成测试
4.8系统测试
4.9用户验收测试
5、软件项目管理
5.1 项目计划与进度管理 5.2 风险管理
5.3 人员管理
5.4 项目质量管理
5.5 变更管理
5.6 项目交付与部署
6、软件维护与升级
6.1 软件维护分类
6.2 软件维护流程
6.3 软件升级策略
6.4 软件版本控制
7、软件安全
7.1 信息安全基础知识
7.2 软件安全需求与设计
7.3 安全测试与评估
7.4 安全漏洞修复与更新
附件:
法律名词及注释:
1、版权: 对一种表达形式的独特创造进行保护的法律概念。
2、商标: 表示和区分特定商品或服务来源的标识符。
3、专利: 对于新发明的独特权利,使得发明人可以禁止他人在专利权期限内使用该发明。
4、法律责任: 违反法律规定而应承担的法律后果。
软件工程知识点

第1章概述(一)知识点1. 软件危机的定义、表现形式、产生原因、解决途径2. 软件工程的定义和目的3. 软件生存周期和每一阶段的主要工作4. 几种常见的软件开发模型及特点,特别注意瀑布模型、增量模型与螺旋模型之间的联系和区别(二)单项选择题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 )不是软件生存周期模型。
软件工程复习知识点

1.软件危机的概念,内容,原因及消除的途径;软件危机的概念:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。
概括地说,软件危机包含两方面问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机产生的原因:软件本身的复杂性、难衡量的特点;2.软件开发与维护的方法不正确。
消除软件危机的途径:(1)对计算机软件应当有一个正确的认识;(2)应当有组织、有计划、通过严格的管理手段进行软件的开发;(3)及时总结软件开发的成功技术和方法并加以推广;(4)开发和使用更好的软件工具;总之,为了解决软件危机,既要有技术措施,又要有必要的组织管理措施。
2.软件工程的定义,基本原理;定义:软件工程是指导计算机软件开发和维护的一门工程学科。
基本原理:软件工程的7条基本原理:(1)用分阶段的生命周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采用现代程序设计技术(5)结果应能清楚地审查(6)开发小组的人员应该少而精(7)承认不断改进软件工程实践的必要性3.软件工程方法学的基本概念、内容;基本概念:把在软件生命周期全过程中使用的一整套开发和管理技术方法的集合成为软件工程方法学,也称为范型。
软件工程方法学包含3个要素:方法、工具和过程。
内容:目前使用得最广泛地软件工程方法学,分别是传统方法学和面向对象方法学。
传统方法学也称为生命周期方法学或结构化范型。
4.软件生命周期的具体内容,每一个阶段的任务是什么?结合具体的工程例子来理解做软件项目主要分那几个个阶段。
①问题定义:确定要求解决的问题是什么②可行性研究:决定该问题是否存在一个可行的解决办法③需求分析:深入了解用户的要求,在要开发的目标系统必须做什么问题和用户取得完全一致的看法。
④概要设计:概括回答怎样实现目标系统。
概要设计又叫逻辑设计、总体设计、高层设计。
⑤详细设计:把解法具体化,设计出程序的详细规格说明。
详细设计也叫模块设计、底层设计。
软件工程知识点总结

软件工程(简要知识点)软件生命周 期:软件定义 软件开发问题定义(确定题目) 可行性研究 需求分析 概要设计 系统设计 详细设计系统实现编码和单元测试 综合测试运行维护:主要任务是使软件持久地满足用户的需要一、. 软件过程五个模型对比(瀑布模型、快速原型、增量、螺旋、喷泉模型) 二、可行性研究: 1、任务:用最小的代价在尽可能短的时间内确定问题是否能够解决。
2、四个方面:技术、经济、操作可行性、法律 3、数据流图四种成分:1、源点/终点 2、处理 3、数据存储 4、数据流 三、需求分析: 1、任务:确定系统必须完成哪些工作,对目标系统提出完整、清晰、具体的要 求。
2、结构化方法就是面向数据流自顶向下逐步求精进行需求分析的方法。
3、实体联系图:1、数据对象 2、属性 3、联系(1:1、1:N、M:N) 四、总体设计: 1.任务:回答“概括的说,系统应该如何实现”,用比较抽象概括的方式确定系 统如何完成预定的任务,也就是说应该确定系统的物理配置方案,并且进而确定 组成系统的每个程序结构。
2. 系统设计阶段(确定系统具体实施方案)、结构设计阶段(确定软件结构) 3.模块独立:内聚和耦合 4. 耦合表示一个软件结构内各个模块之间的互连程度,应尽量选用松散耦合的 系统5. 内聚 (Cohesion): 一个模块内各元素结合的紧密程度6.面向数据流的设计方法:变换流和事务流 五、详细设计: 1.任务:确定应该怎样具体的实现所要求的系统,也就是说经过这个阶段的设计 工作应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译 成用某种程序设计语言书写的程序。
2.过程设计的工具(程序流程图、盒图、PAD 图、判定表、判定树) 七、测试: 1、单元测试:又称模块测试。
每个程序模块完成一个相对独立的子功能,所以 可以对该模块进行单独的测试。
由于每个模块都有清晰定义的功能,所以通常 比较容易设计相应的测试方案,以检验每个模块的正确性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.软件危机的概念,内容,原因及消除的途径;软件危机的概念:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。
概括地说,软件危机包含两方面问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机产生的原因:软件本身的复杂性、难衡量的特点; 2. 软件开发与维护的方法不正确。
消除软件危机的途径:(1)对计算机软件应当有一个正确的认识;(2)应当有组织、有计划、通过严格的管理手段进行软件的开发;(3)及时总结软件开发的成功技术和方法并加以推广;(4)开发和使用更好的软件工具;总之,为了解决软件危机,既要有技术措施,又要有必要的组织管理措施。
2.软件工程的定义,基本原理;定义:软件工程是指导计算机软件开发和维护的一门工程学科。
基本原理:软件工程的7 条基本原理:(1)用分阶段的生命周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采用现代程序设计技术(5)结果应能清楚地审查6)开发小组的人员应该少而精7) 承认不断改进软件工程实践的必要性3.软件工程方法学的基本概念、内容;基本概念:把在软件生命周期全过程中使用的一整套开发和管理技术方法的集合成为软件工程方法学,也称为范型。
软件工程方法学包含3 个要素:方法、工具和过程。
内容:目前使用得最广泛地软件工程方法学,分别是传统方法学和面向对象方法学。
传统方法学也称为生命周期方法学或结构化范型。
4.软件生命周期的具体内容,每一个阶段的任务是什么?结合具体的工程例子来理解做软件项目主要分那几个个阶段。
①问题定义:确定要求解决的问题是什么②可行性研究:决定该问题是否存在一个可行的解决办法③需求分析:深入了解用户的要求,在要幵发的目标系统必须做什么问题和用户取得完全一致的看法。
④概要设计:概括回答怎样实现目标系统。
概要设计又叫逻辑设计、总体设计、高层设计。
⑤详细设计:把解法具体化,设计出程序的详细规格说明。
详细设计也叫模块设计、底层设计。
⑥编码和单元测试:编写程序的工作量只占软件幵发全部工作量的10沧20%。
⑦综合测试:软件测试的工作量通常占软件幵发全部工作量的40沧50%。
⑧软件维护:软件维护的费用通常占软件总费用的55 %-70%①②③为软件定义时期,④⑤⑥⑦为软件幵发阶段。
④⑤为系统设计,⑥⑦为系统实现。
5.理解几个典型软件过程的内容及其优点与缺点:瀑布模型、增量模型、快速原型模型、螺旋模型、喷泉模型等;瀑布模型内容:瀑布模型是带“反馈环”的。
优点:(1)可强迫开发人员采用的规范的方法(结构化技术)。
(2)严格地规定了每个阶段必须提交的文档。
(3)要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
缺点:瀑布模型是由文档驱动的。
(1)开发过程一般不可逆,否则代价太大。
(2)实际的项目开发过程很难严格按照模型进行。
(3)客户往往很难清楚地给出所有需求,而该模型却要求如此。
(4)软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。
快速原型模型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。
不带反馈环优点:软件产品的开发基本上是线性顺序进行的。
(1)可以得到比较良好的需求定义,容易适应需求的变化。
(2)有利于开发与培训的同步。
(3)开发费用低、开发周期短且对用户更友好。
缺点:(1)客户与开发者对原型理解不同。
(2)准确的原型设计比较困难。
(3)不利于开发人员的创新。
增量模型也称为渐增模型。
使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。
优点:在较短时间内可以向用户提交可完成部分工作的产品,逐步增加产品功能可以使用户有比较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。
(1)人员分配灵活,刚开始不用投入大量资源。
(2)如果核心产品很受欢迎,则可增加人力实现下一增量。
(3)可先发布部分功能给客户,对客户起到镇定剂的作用。
缺点:(1)并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构(2)增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而使软件过程失去整体性。
螺旋模型的基本思想是使用原型及其他方法来尽量降低风险。
理解这种模型的一种简便方法是把它看做在每个阶段之前都增加了风险分析过程的快速原型模型。
优点:(1)设计上的灵活性,可以在项目的每个阶段进行变更。
(2)以笑得分段来构建大型系统,使成本计算变得简单容易。
(3)客户始终参与每个阶段的开发,保证项目不偏离正确的方向一击项目的可控性。
(4)随着项目的推进,客户始终掌握项目的最新信息,从而他能够和管理层有效地交互。
缺点:(1)采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标示风险,势必造成重大损失;(2)过多的迭代次数会增加开发成本,延迟提交时间。
喷泉模型:喷泉模型与传统的结构化生存期比较,具有更多的增量和迭代性质,生存期的各阶段可以相互重叠和多次反复,而且项目的整个生存期中还可以嵌入子生存期。
就像水喷上去又可以落下来,可以落在中间,还可以落在底部。
6.了解可行性研究中的任务和过程;用最小的代价在尽可能短的时间内确定问题是否能够解决。
不是解决问题,而是确定问题是否值得去解决。
可行性研究的根本任务:对以后的行动方案提出建议。
实质:一次大大压缩简化了的系统分析和设计。
任务:1. 初步确定项目的规模,目标,约束和限制。
2.在澄清了问题定义之后,分析员应该导出系统的逻辑模型。
3.从系统逻辑模型出发,探索若干种可供选择的主要解法( 即系统实现方案)。
4.对每种解决方法都要研究它的可行性。
( 技术可行性、经济可行性、操作可行性)过程:1. 复查系统规模和目标访问关键人员,描述目标系统的限制和约束。
2.研究目前正在使用的系统:现有系统的问题。
3.导出新系统的高层逻辑模型。
4.进一步定义问题。
5.导出和评价供选择的解法。
6.推荐行动方针。
7.草拟开发计划。
8.书写文档提交审查。
7.掌握系统流程图的概念和方法,会从具体的案例中抽象出系统流程图(p38)8.掌握数据流图的概念和方法,会从具体的案例中画出0 层数据流图和功能级数据流图(P40)9.掌握数据字典的内容、方法、用户和实现(p47)内容:数据字典由 4 类元素定义组成。
(1)数据流;(2)数据流分量(即数据元素)(3)数据存储;(4)处理;定义数据的方法:数据字典中的定义就是对数据自顶向下的分解。
由数据元素组成数据的方式只有下述 3 种基本类型:顺序选择重复用途:作为分析阶段的工具。
实现:P4910.了解成本/ 效益分析方法(p50)货币的时间价值投资回收期:就是使累计的经济效益等于最初的投资费用所需的时间纯收入:整个生存周期之内的累计经济效益折成现在值-投资。
投资回收率:现在的投资额P和估算出的将来每年的收益Fn,假设系统的使用寿命为n 年。
11.了解需求分析过程中任务是什么.(p47)1.确定对系统的综合要求功能需求。
指定系统必须提供的服务性能需求。
指定系统必须满足的定时约束或容量约束可靠性和可用性需求。
应定量指定出错处理需求。
指环境错误,非系统本身的错误。
2.分析系统的数据要求接口需求。
常见的接口需求有:用户接口需求、硬件接口需求、软件接口需求、通信接口需求。
约束。
常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台。
逆向需求。
说明软件系统不应该做什么。
将来可能提出的要求。
3.导出系统的逻辑模型。
用数据流图、实体- 联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。
4.修正系统开发计划。
用数据流图、实体- 联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。
12.理解面向数据流自顶向下逐步求精的方法和意义;(p59)结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。
通过可行性研究已经得出了目标系统的高层数据流图,需求分析的目标之一就是把数据流和数据存储定义到元素级。
方法:为了达到这个目标,通常从数据流图的输出端着手分析,这是因为系统的基本功能是产生这些输出,输出数据决定了系统必须具有的最基本的组成元素。
意义:(1)对数据流图细化之后得到一组新的数据流图,不同的系统元素之间的关系变得更清楚了。
2)对这组新数据流图的分析追踪可能产生新的问题,这些问题的答案可能又在数据字典中增加一些新条目,并且可能导致新的或精化的算法描述。
(3)随着分析过程的进展,经过提问和解答的反复循环,分析员越来越深入具体地定义目标系统,最终得到对系统数据和功能要求的满意了解。
13.理解分析及建模的意义,需求分析中应该建立哪三种模型?有哪些工具来帮助建立这些模型?需求分析需要建立三种模型:1.数据模型:实体-联系图E—R (数据对象(即实体)之间的关系)2.功能模型:数据流图DFD (系统对数据进行变换的功能)3.行为模型:状态转换图(系统的各种状态(行为模式)及状态之间的转换)14.掌握实体关系(E-R)图的概念,内容和实现方法,能结合具体实例建立实体关系图;(P62)15.掌握状态图的概念,内容,实现方法和作用;(p65)16.掌握层次方框图、warnier 图、IPO 图的概念,内容和作用(p68)17.有穷状态机的概念和内容;Petri的概念;(P77)有穷状态机:状态集、输入集、转换函数、初始态、终态集Petri :P8218.总体设计是做什么?总体设计的过程是怎样的?(P91)总体设计的目标是将需求分析阶段定义的系统模型转换成相应的软件结构,以规定软件的形态及各成分间的层次关系、界面及接口要求。
总体设计通常由两个过程组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件结构。
典型的设计过程包括: 1. 设想选择的方案2.选取理想的方案3.推荐最佳方案4. 功能分解5.设计软件结构6. 设计数据库7. 制定测试计划8. 书写文档9. 省查和复审19.掌握软件设计的几个设计原理,理解他们的内容和意义;(p94)1)模块化就是把程序划分成独立命名且可独立访问的;2)抽象;3)逐步求精;4)信息隐藏和局部化;5)模块独立;它有两个定性标准度量:内聚和耦合。
20.掌握耦合和内聚的概念和内容,理解这些原理对设计有哪些指导意义;耦合:耦合是对一个软件结构内不同模块之间互连程度;内聚:内聚标志着一个模块内各个元素彼此结合的紧密;耦合是影响软件复杂程度的一个重要因素。
设计时力争做到高内聚,并且能够辨认出低内聚的模块,有能力通过修改设计提高模块的内聚程度并且降低模块间的耦合程度,从而获得较高的模块独立性。