软件工程知识点总结
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如果问题没有可行的解,系统分析员应该建议停止这项开发工程,以避 免时间、资源、人力和金钱的浪费。 如果问题值得解,系统分析员应该推荐一个较好的解决方案,并且为工 程制定一个初步的计划。 可行性研究需要的时间长短取决于工程的规模。一般说来,可行性研究 的成本是预期的工程总成本的5%~10%。 数据流图例题: 例2: 银行取款系统的数据流图(活期储蓄) 分析 第一步 系统的源点和终点 储户是数据源点也是数据终点 处理 取款系统 数据流 取款数额信息 存折/卡 现金 数据存储 取款系统的基本系统模型
模块间的接口信息,并设计模块的单元测试计划。 可以采用结构化的设计方法,采用结构化的程序流程图、N-S图、过程 设计语言(PDL,Procedure Design Language)等工具进行描述,也可 以采用面向对象的设计方法等等。 详细设计阶段的主要成果是“详细设计规格说明”(或称“模块开发卷 宗”)和单元测试计划等详细设计文档。 编码和单元测试 编码的主要任务是根据详细设计规格说明,用某种选定的程序设计语言 把详细设计的结果转化为机器可运行的源程序模块,这是一个编程和调 试程序的过程。 编码阶段应注意遵循编程标准、养成良好的编程风格,以便编写出正确 的便于理解、调试和维护的程序模块。 单元测试:每编写出一个程序模块的源程序,调试通过后,即对该模块 进行测试,这称为单元测试。 这一阶段结束时应提供按一定规则存在盘上的通过单元测试的各功能模 块的集合、详细的单元测试报告等文档。 综合测试 这个阶段的关键任务是通过各种类型的测试和调试使软件达到预定的要 求。 最基本的测试是集成测试和验收测试。 集成测试是根据概要设计提供的软件结构、各功能模块的说明和集成测 试计划,把经过单元测试检验的模块按照某种选定的策略逐步进行装配 和测试。 验收测试是按照验收测试计划和准则对软件系统进行测试,看其是否达 到了需求规格说明中定义的全部功能和性能等方面的需求。 这一阶段应将测试计划、详细测试方案和实际测试结果保存为相应的文 档,作为软件配置的一个组成部分。 软件维护 软件维护的任务是通过各种维护活动使软件系统持久地满足用户的需 求。 每项维护活动实质上都是一次压缩和简化了的软件定义和软件开发过 程。都要经历提出维护要求、分析维护要求、提出维护方案、审批维护 方案、确定维护计划、修改软件设计、修改程序、测试程序、评审、验 收等步骤。 通常有四类维护活动:改正性维护、适应性维护、完善性维护和预防性 维护。 每一项维护活动都应该准确记录下来,作为正式的文档资料加以保管。
第二章 1. 可行性研究的任务 可行性研究的目的:用最小的代价,在尽可能短的时间内确定问题是 否能够解决。 可行性研究的实质:进行一次大大压缩简化了的系统分析和设计的过 程。 可行性研究,首先需要进一步分析和澄清问题定义;在澄清了问题定义 之后,系统分析员应该导出系统的逻辑模型;然后从系统逻辑模型出 发,探索若干种可供选择的主要解法(即系统实现方案);之后再对每种 解法仔细研究它的可行性。 一般说来,需要着重从以下五方面研究每种解法的可行性: 技术可行性:使用现有的技术能否实现这个系统。 经济可行性:这个系统的经济效益能否超过它的开发成本。 运行可行性:为系统规定的运行方式是否可行。 操作可行性:系统的操作方式在这个用户组织内是否行得通。 法律可行性:系统的开发是否会侵犯他人、集体或国家的利益,是否违 反了国家的法律,并由此而承担法律责任。 可行性研究最根本的任务是对以后的行动方针提出建议。
螺旋模型的缺点 如果每次迭代的效率不高,致使迭代次数过多,将会增加成本并推迟提 交时间。 使用该模型需要有相当丰富的风险评估经验和专门知识,要求开发队伍 水平较高。 螺旋模型适用的场合
支持需求不明确、特别是大型软件系统的开发,并支持面向规格说 明、面向过程、面向对象等多种软件开发方法,是一种具有广阔前景的 模型。 11.1、喷泉模型的优点
一般说来,对于任何其故障是可以修复的系统,都应该同时使用可靠性 和可用性衡量它的优劣程度。
第八章 软件维护:指在软件已经交付使用之后,为了改正错误或满足新的需要 而修改软件的过程。
软件维护通常包括4类活动:改正性维护、适应性维护、完善性维护、 预防性维护。
第七章 1. 测试步骤: 2.软件可靠性:是程序在给定的时间间隔内,按照规格说明书的规定成 功地运行的概率。 软件可用性: 是程序在给定的时间点,按照规格说明书的规定,成功 地运行的概率。
可靠性和可用性之间的主要差别是:可靠性意味着在0到t这段时间间隔 内系统没有失效,而可用性只意味着在时刻t,系统是正常运行的。
5. 瀑布模型的优缺点: 瀑布模型的优点 可以强迫开发人员采用规范的方法; 严格规定了每个阶段必须提交的文档; 要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。 瀑布模型的缺点 在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多 应用软件来说是极其困难的。 在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。 作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开 发过程中很难发现的错误,只有在最终产品运行时才能暴露出来,从而 使软件产品难以维护。 瀑布模型适用的场合
第二步
将处理“机票预定系统”进行功能分解: 接收数据(旅客信息); 安排航班; 打印取票通知、账单; 校对数据(机票信息); 打印机票; 机票预定系统的功能级数据流图
第五章 1. 总体设计的任务是什么? 总体设计又称为概要设计或初步设计,总体设计的基本目的就是回 答“概括地说,系统应该如何实现?”这个问题。 这个阶段的两个重要任务: 划分出组成系统的物理元素; 设计软件的结构,也就是确定系统中每个程序是由哪些模块组成的, 以及这些模块相互间的关系。
第一章 1.软件危机的概念: 软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问 题。 概括地说,软件危机包Fra Baidu bibliotek两方面问题:如何开发软件,以满足对软件日 益增长的需求;如何维护数量不断膨胀的已有软件。
1. 软件危机产生的原因? 原因一:软件本身的特点 软件是逻辑产品; 软件规模庞大 原因二:软件专业人员本身的素质所决定的:软件专业人员对软件开发 和维护存在糊涂的观念,在实践过程中采用了错误的方法和技术 忽视用户需求分析或分析不足; 对软件生存周期这一过程认识不明确; 对完整的软件配置认识不准确; 忽略了软件维护的重要性;
瀑布模型一般适用于功能、性能明确、完整、无重大变化的软件系 统的开发。例如操作系统、编译系统、数据库管理系统等系统软件的开 发。应用有一定的局限性。 8.快速原型模型适用的场合 原型模型比瀑布模型更符合人们认识事物的过程和规律,是一种较实用 的开发框架。 它适合于那些不能预先确切定义需求的软件系统的开发,更适合于那些 项目组成员(包括分析员、设计员、程序员和用户)不能很好交流或通 信有困难的情况。 9.增量模型的优点 能在较短时间内向用户提交可完成部分工作的产品。 逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而 减少一个全新的软件可能给客户组织带来的冲击。 增量模型的缺点 在把每个新的增量构件集成到现有软件体系结构中时,必须不破坏原来 已经开发出的产品。此外,必须把软件的体系结构设计的便于按照这种 方式进行扩充,向现有产品中加入新构件的过程必须简单、方便,这就 意味着需要更精心的设计。 10.螺旋模型的优点 对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件 质量作为软件开发的一个重要目标。 减少了过多测试或测试不足所带来的风险。 在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本 质区别。
期可划分为三个阶段:问题定义、可行性研究、需求分析。 软件开发时期的任务是:具体设计和实现在前一个时期定义的软件。这 一时期由四阶段组成:总体设计、详细设计、编码和单元测试、综合测 试。 软件维护时期的任务是:当软件在使用过程中发现错误时加以改正;当 环境改变时修改软件以适应新的环境;当用户有新要求时及时改进软件 以满足用户的新需要。 问题定义阶段要回答的关键问题是“要解决的问题是什么?”通过对客户 的访问调查,系统分析员扼要的写出关于问题性质、工程目标和工程规 模的书面报告,经过讨论和必要的修改之后,这份报告还应该得到客户 的确认。 可行性研究本阶段的任务是根据用户提出的工程项目的性质、目标和规 模,进一步了解用户的要求及现有的环境及条件,从技术、经济和社会 等多方面研究并论证该项目的可行性。即该项目是否值得去解决,是否 存在可行的解决办法。 此时,系统分析人员应在用户的配合下对用户的要求和现有的环境进行 深入调查并写出调研报告。进而进行可行性论证。可行性论证包括经济 可行性、技术可行性、操作可行性、法律可行性等。在此基础上还要制 定初步的项目计划,包括需要的软硬件资源、定义任务、风险分析、成 本/效益分析以及进度安排等。 可行性研究的结果将是使用部门负责人做出是否继续进行该项目决定的 重要依据 需求分析的任务是确定待开发的软件系统“做什么”。 软件系统需求一般由用户提出。系统分析员和开发人员在需求分析阶段 必须与用户反复讨论、协商,充分交流信息,并用某种方法和工具构建 软件系统的逻辑模型。 总体设计阶段必须回答的关键问题是:“概括地说,应该怎样实现目标 系统?” 这一阶段对需求规格说明中提供的软件系统逻辑模型进行进一步的分 解,从而建立软件系统的总体结构和各子系统之间、各模块之间的关 系,定义各子系统接口界面和各功能模块的接口,设计全局数据库或数 据结构,规定设计约束,制定组装测试计划,进而给出每个功能模块的 功能描述、全局数据定义和外部文件定义等。 总体设计阶段的主要成果有概要设计说明书、 数据库或数据结构说明 书、组装测试计划等文档 详细设计是将概要设计产生的功能模块进一步细化,形成可编程的程序 模块,然后设计程序模块的内部细节,包括算法、数据结构以及各程序
喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动, 设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界限, 开发人员可以同步进行开发。其优点是可以提高软件项目开发效率,节 省开发时间,适应于面向对象的软件开发过程。 2、喷泉模型的缺点
由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量 的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文 档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与 资料的情况。
2. 消除软件危机的途径 (1)对计算机软件应当有一个正确的认识; (2)应当有组织、有计划、通过严格的管理手段进行软件的开发; (3)及时总结软件开发的成功技术和方法并加以推广; (4)开发和使用更好的软件工具; 总之,为了解决软件危机,既要有技术措施,又要有必要的组织管理措 施。
3. 什么是软件工程? 软件工程是研究软件生产的一门学科。它采用工程的概念、原理、技术 和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当 前能够得到的最好的技术方法结合起来,以达到经济地开发出高质量的 软件并有效的维护它的目的。
4. 什么是工程化的思想?
5软件生命周期分为哪几个阶段,各阶段的任务是什么? 软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个
时期又进一步划分为若干个阶段。 软件定义时期的任务是:确定软件开发工程必须完成的总目标;确定工 程的可行性;到处实现工程目标应该采用的策略及系统必须完成的功 能;估计完成该项工程需要的资源和成本,并制定工程进度表。这一时
第二步
将处理“取款系统”进行功能分解,分解为“密码核对”、“记录”、“付 款”三部分; 考虑有关数据存储的问题,例中涉及到的两个数据存储:银行保存储户 信息和存取记录的“帐卡”和“存折”
课本53页第三题: 分析 第一步 系统的源点和终点 源点是旅行社和旅客 终点是旅客 处理
机票预定系统 数据流 旅客信息 取票通知、账单 票款 机票 数据存储 机票预定系统的基本数据流图