2021-2022年收藏的精品资料软件工程第一章学习辅导.doc
《2021-2022年收藏的精品资料软件工程第一章学习辅导.doc》由会员分享,可在线阅读,更多相关《2021-2022年收藏的精品资料软件工程第一章学习辅导.doc(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程第一章学习辅导 一、填空练习 1 按软件的功能可将软件分成(系统软件 支撑软件 应用软件)等三类。 2 按软件规模可将软件分成(微型 小型 中型 大型 甚大型 极大型)等六类。 3 按软件工作方式可将软件分成(实时处理软件 分时软件 交互式软件 批处理软件 )等四类。 4 按软件软服务对象可将软件分成(项目软件 产品软件)等两类。 5 软件危机中遇到的主要问题有(软件开发无计划 软件需求不充分 软件开发过程无规范 软件产品无评测 )等四类。手段 6 软件工程过程通常包括(软件规格说明 软件开发 软件确认 软件演进)等四种基本的过程活动。 7 软件工程的三个要素是(方法 工具 过程)。
2、二、用框图说明软件工程目标之间的关系。 软件工程第二章学习辅导2.1 基于计算机的系统通常把基于计算机的系统定义为某些元素的一个集合,并把这些元素组织起来以实现某种方法、过程或借助处理信息进行控制。这些系统元素以各种方式组合来进行信息的转换。基于计算机的系统可以成为一个更大的基于计算机系统中的一个元素,并称为那个更大系统的宏元素。系统工程师(亦称为系统分析员)的作用就是要在总的系统(宏元素)层次结构的环境中定义某一特定基于计算机系统的元素。2.2 计算机系统工程计算机系统工程是一个问题求解活动,目的是揭示、分析所期望的功能,并把它们分配到各个系统元素中去,即选择一个特定的系统配置,并把功能与性
3、能规格分配给硬件、软件、人、数据库、文档和过程。 2.2.1 硬件和硬件工程选择某种硬件元件的组合以构成基于计算机系统的硬件元素。在选择硬件时,主要考虑以下几个特性:(1)对各种元件打包,形成一些单独的构件块;(2)各个元件之间的接口标准;(3)可以有多种供权衡使用的候选方案;(4)性能、成本、有效性相对地比较容易确定。2.2.2 软件和软件工程软件实现了完成系统功能所需要的处理算法。一般地,处理算法变换输入数据或控制信息,并生成输出到其它系统元素或宏元素中去的数据或控制信息。软件工程是一门有关开发高质量的基于计算机系统的软件的学科 。 2.2.3 人与人类工程早期的基于计算机的系统总是把着眼
4、点放在硬件与软件易于实现上,并强迫用户按系统规定的方式与系统通信,而完全不考虑人是否容易理解。今天,已经把用户友好性放在优先的位置。基于计算机系统的人类工程已成为系统开发申一个重要的步骤。 人类工程是应用从心理学和方法论导出的知识来确定和设计高质量人机对话界面HCI(Human Conversation Interface)的多学科活动。人类工程过程包括以下步骤:(1)活动分析 (2)语义分析和设计:对用户要求的动作和机器产生的动作进行精确定义。 (3)语法和词法设计:标识与描述各个动作和命令的特定形式,然后设计每一动作或命令的硬件与软件实现。(4)用户环境设计:将硬件、软件和其它系统生成元素
5、组合起来形成用户环境。环境包括物理设备以及HCI。(5)原型:从人的角度出发来评价HCI。2.2.4 数据库和数据库工程并不是所有的基于计算机的系统都使用数据库,但对于使用数据库的系统来说,这种信息仓库往往是所有功能的核心。数据库工程(包括数据库分析、设计和实现),是一门技术学科,它的应用是在数据库的信息域定义完成之后。 2.3 系统需求识别系统分析的目标(1)识别用户要求;(2)评价系统的可行性;(3)进行经济分析和技术分析;(4)把功能分配给硬件、软件、人、数据库和其它系统元素;(5)建立成本和迸度限制;(6)生成系统规格说明,形成所有后续工程的基础。2.4 可行性研究可行性研究主要集中在
6、以下四个方面: (1)经济可行性。确定待开发系统是否值得投资开发。(2)技术可行性。对待开发的系统进行功能、性能和限制条件的分析,确定在现有的资源的条件下,技术风险有多大,系统是否能实现。 (3)法律可行性。确认待开发系统可能会涉及的任何侵犯、妨碍、责任等问题。(4)抉择。对系统开发的不同方案进行比较评估。成本和时间的限制,会给方案的选择带来局限性,对于一些合理的方案都应加以考虑。2.5 成本-效益分析从经济角度评价开发一个新的软件项目是否可行。成本-效益分析首先是估算待开发系统的开发成本,然后与可能取得的效益(有形的和无形的)进行比较和权衡。有形的效益可以用货币的时间价值、投资回收期、纯收入
7、等指标进行度量。 货币的时间价值 通常用利率表示货币的时间价值。设年利率为i,现已存入P元,则n年后可得钱数为F=P(1十i)n。反之,若n年后能收入F元,那么这些钱现在的价值是 P=F/(1十i)n投资回收期 投资回收期是衡量一个开发工程价值的经济指标。投资回收期就是使累计的经济效益等于最初的投资所需要的时间。投资回收期越短,就能越快获得利润。 纯收入 工程的纯收入是衡量工程价值的另一项经济指标。纯收入就是在整个生存期之内系统的累计经济效益(折合成现在值)与投资之差。 2.6 技术分析技术分析提交系统技术可行性评估。指明为完成系统的功能和性能需要什么技术?需要哪些新材料、方法、算法、或者过程
8、?有什么开发风险?这些技术问题对成本的影响如何?用于技术分析的方法,有数学模型和优化技术、概率和统计、排队论、控制论等。 2.7 分配与权衡一旦解决了与分析任务相关的问题,就应开始考虑候选的解决方案。每一个系统功能,与其必要的一些性能和接口特性一起,分配给一个或多个系统元素。2.8 系统结构的模块化用图形符号描绘系统里面的每个部件,即用流程图对现有系统作概括的物理模型描述。系统流程图的功能 (1)制作系统流程图的过程是系统分析员全面了解系统业务处理概况的过程,是系统分析员进一步分析的依据。 (2)系统流程图是系统分析员、管理员、业务员相互交流的工具。 (3)可利用流程图来分析业务流程的合理性。
9、2.9 系统定义与评审系统规格说明是作为硬件工程、软件工程、数据库工程、人类工程的基础而使用的一个文档。它描述了系统的功能和性能,以及管理该系统开发的一些限制条件。 系统规格说明的主要内容(1)引言 文档的范围和目的 概述:目标、限制条件(2)功能和数据描述 系统结构:结构环境图(ACD)、ACD描述(3)子系统描述 对子系统的结构图描述:结构流程图(AFD)、系统模块描述、性能问题、设计限制条件、系统部件的分配 结构词典 结构互连图及其描述(4)系统模型化和模拟结果 用于模拟的系统模型 模拟结果 特殊的性能问题(5)项目问题 项目开发成本 项目进度安排(6)附录系统定义的评审 评审由开发人员
10、和用户合作进行,要保证:(1)正确地定义了项目的范围;(2)适当地定义了功能、性能和接口;(3)环境分析和开发风险证明了系统是可行的;(4)开发人员与用户对系统目标达成了共识。软件工程第三章学习辅导 3.1 软件需求分析的任务需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其他系统元素的接口细节,定义软件的其他有效性需求。 3.2 需求分析的过程需求分析工作可分成四个方面: 1.对问题的识别:确定对目标系统的综合要求,即软件的需求。 2.分析与综合:最终综合成系统的解决方案,给出目标系统的详细逻辑模型。 3.制定规格说明:编制需求分析的文档。 4.评审:对功能的正确性
11、、完整性和清晰性,需求给予评价。 3.3 软件需求分析的原则必须能够表达和理解问题的数据域和功能域。必须按自顶向下、逐层分解的方式对问题进行分解和不断细化。要给出系统的逻辑视图和物理视图。3.4 分析员和用户的责任系统分析员处在用户和高级程序员之间,负责沟通用户和开发人员的认识和见解,起着桥梁的作用。 用户应密切配合分析员的工作。用户对数据处理工作的考虑、对软件的意见和要求是需求分析的宝贵原始资料。3.5 软件需求分析方法需求分析方法由对软件的数据域和功能域的系统分析过程及其表示方法组成。它定义了表示系统逻辑视图和物理视图的方式。最终建立一个待开发软件的抽象模型,即目标系统的逻辑模型。 3.6
12、 原型化方法 在软件开发过程中,原型是软件的一个早期可运行的版本,它反映最终系统的部分重要特性。用户在试用原型系统的过程中做出反应和评价。然后开发者根据用户的意见对原型加以改进。随着不断试验、纠错、使用、评价和修改,获得新的原型版本,如此周而复始,从而提高了最终产品的质量。 3.7 结构化分析方法结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。 结构化分析方法使用的主要工具:数据流图、数据词典、结构化英语、判定表和判定树。 数据流图 (DFD,Data Flow Diagram) 数据流图也称为Bubble C
13、hart或Data Flow Graph。是描述数据处理过程的工具。数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。数据词典 (DD,Data Dictionary)数据词典的任务是对于数据流图中出现的所有被命名的图形元素在数据词典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。数据词典中所有的定义应是严密的、精确的,不可有半点含混,不可有二义性。结构化英语(Structured English)结构化英语也称为PDL,是一种介于自然语言和形式化语言之间的半形式化语言。它是在自然语言基础上加了一些限制而得到的语言,是使用有限的词汇和有限的语
14、句来描述加工逻辑。 判定表(Decision Table) 用表格表达在什么条件下,系统应完成哪些操作,显得十分清楚、准确、一目了然。这是用语言说明难以准确、清楚表达的。但是用判定表描述循环比较困难。有时,判定表可以和结构化英语结合起来使用。判定树(Decision Tree)判定树也是用来表达加工逻辑的一种工具。有时侯它比判定表更直观。用它来描述加工,很容易为用户接受。 软件工程第四章学习辅导 4.1 软件设计的目标和任务一旦确定了软件需求之后,就进入开发阶段。开发阶段由三个互相关联的步骤组成:设计、实现(编码)和测试。每个步骤都按某种方式进行信息变换,最后得到有效的计算机软件。开发阶段的信
15、息流如图所示。4.1.1 软件设计在开发阶段中的重要性除了维护阶段以外,开发阶段占软件工程总成本的75%以上。开发阶段的决策将最终影响软件实现的成败,影响软件维护的难易程度。软件设计是软件开发阶段最重要的步骤。它是软件开发中质量得以保证的关键步骤。设计提供了软件的表示,使得软件的质量评价成为可能。软件设计又是将用户要求准确地转化成为最终的软件产品的唯一途径。4.1.2 软件设计任务软件设计是一个把软件需求变换成软件表示的过程。最初这种表示只是描绘出软件的总的框架,然后进一步细化,在此框架中填入细节,把它加工成在程序细节上非常接近于源程序的软件表示。软件设计分两步完成。首先做概要设计,将软件需求
16、转化为数据结构和软件的系统结构。然后是详细设计,即过程设计。通过对结构表示进行细化,得到软件的详细的数据结构和算法。在概要设计过程中需要完成的工作具体有:(1)制定规范在进入软件开发阶段之初,首先应为软件开发组制定在设计时应该共同遵守的标准,以便协调组内各成员的工作。它包括:1)阅读和理解软件需求说明书,在给定预算范围内和技术现状下,确认用户的要求能否实现。若不能实现,则需明确实现的条件,从而确定设计的目标,以及它们的优先顺序。2)根据目标确定最合适的设计方法。3)规定设计文档的编制标准,包括文档体系、用纸及样式、记述详细的程度、图形的画法等。4)规定编码的信息形式(代码体系),与硬件、操作系
17、统的接口规约,命名规则等。(2)软件系统结构的总体设计在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,使每一部分完成简单的功能且各个部分之间又保持一定的联系,这就是功能设计。在设计阶段,基于这个功能的层次结构把各个部分组合起来成为系统。它包括:1)采用某种设计方法,将一个复杂的系统按功能划分成模块的层次结构。2)确定每个模块的功能,建立与已确定的软件需求的对应关系;3)确定模块间的调用关系。4)确定模块间的接口,即模块间传递的信息。设计接口的信息结构。5)评估模块划分的质量及导出模块结构的规则。(3)处理方式设计1)确定为实现软件系统的功能需求所必需的算法,评估算法的
18、性能。2)确定为满足软件系统的性能需求所必需的算法和模块间的控制方式(性能设计)。性能主要是指以下四个指标:周转时间:即一旦向计算机发出要求处理的请求之后,从输入开始,经过处理直到输出结果为止的整个时间。响应时间:这是对于实时联机系统的性能需求。当终端用户向计算机发出处理请求之后,从输入开始到输出最终结果中间的一段时间内,用户需要多次对计算机进行输入输出,而一次输入输出的时间就是响应时间。吞吐量:单位时间内能够处理的数据量叫做吞吐量。这是表示系统能力的指标。精度:在进行科学计算或工程计算时,运算精确度的要求。3)确定外部信号的接收发送形式。(4)数据结构设计确定软件涉及的文件系统的结构以及数据
19、库的模式、子模式,进行数据完整性和安全性的设计。它包括:1)确定输入、输出文件的详细的数据结构。2)结合算法设计,确定算法所必需的逻辑数据结构及其操作。3)确定对逻辑数据结构所必需的那些操作的程序模块(软件包)。限制和确定各个数据设计决策的影响范围。4)若需要与操作系统或调度程序接口所必须的控制表等数据时,确定其详细的数据结构和使用规则。5)数据的保护性设计防卫性设计:在软件设计中插入自动检错,报错和纠错的功能。一致性设计:有两个方面。其一是保证软件运行过程中所使用的数据的类型和取值范围不变。其二是在并发处理过程中使用封锁和解除封锁机制保持数据不被破坏。冗余性设计:针对同一问题,由两个开发者采
20、用不同的程序设计风格、不同的算法设计软件,当两者运行结果之差不在允许范围内时,利用检错系统予以纠正,或使用表决技术决定一个正确的结果,以保证软件容错。(5)可靠性设计可靠性设计也叫做质量设计。软件可靠性是指程序和文档中的错误少。软件越使用可靠性越高。但是在运行过程中,为了适应环境的变化和用户新的要求,需要经常对软件进行改造和修正,这就是软件的维护。由于软件的维护往往会产生新的故障,所以要求在软件开发期间应当尽早找出差错,并在软件开发的一开始就要确定软件可靠性和其他质量指标,考虑相应措施,以使得软件易于修改和易于维护。(6)编写概要设计阶段的文档概要设计阶段完成时应编写以下文档:概要设计说明书。
21、给出系统目标、总体设计、数据设计、处理方式设计、运行设计、出错设计等。数据库设计说明书。给出所使用数据库简介、数据模式设计、物理设计等。用户手册。对需求分析阶段编写的初步的用户手册进行审订。制定初步的测试计划。对测试的策略、方法和步骤提出明确的要求。(7)概要设计评审在完成以上几项工作之后,应当组织对概要设计工作的评审。评审的内容包括:可追溯性:即分析该软件的系统结构、子系统结构,确认该软件设计是否覆盖了所有已确定的软件需求,软件每一成分是否可追溯到某一项需求。接口:即分析软件各部分之间的联系,确认该软件的内部接口与外部接口是否已经明确定义。模块是否满足高内聚和低耦合的要求。模块作用范围是否在
22、其控制范围之内。风险:即确认该软件设计在现有技术条件下和预算范围内是否能按时实现。实用性:即确认该软件设计对于需求的解决方案是否实用。技术清晰度:即确认该软件设计是否以一种易于翻译成代码的形式表达。可维护性:从软件维护的角度出发,确认该软件设计是否考虑了方便未来的维护。质量:即确认该软件设计是否表现出良好的质量特征。各种选择方案:看是否考虑过其他方案,比较各种选择方案的标准是什么。限制:评估对该软件的限制是否现实,是否与需求一致。其他具体问题:对于文档、可测试性、设计过程等等进行评估。在这里需要特别注意:软件系统的一些外部特性的设计,例如软件的功能、一部分性能、以及用户的使用特性等,在软件需求
23、分析阶段就已经开始。这些问题的解决,多少带有一些“怎么做”的性质,因此有人称之为软件的外部设计。在详细设计过程中需要完成的工作是:(1)确定软件各个组成部分内的算法以及各部分的内部数据组织。(2)选定某种过程的表达形式来描述各种算法。(3)进行详细设计的评审软件设计的最终目标是要取得最佳方案。“最佳”是指在所有候选方案中,就节省开发费用,降低资源消耗,缩短开发时间的条件,选择能够赢得较高的生产率、较高的可靠性和可维护性的方案。在整个设计的过程中,各个时期的设计结果需要经过一系列的设计质量的评审,以便及时发现和及时解决在软件设计中出现的问题,防止把问题遗留到开发的后期阶段,造成后患。在评审以后,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2021 2022 收藏 精品 资料软件 工程 第一章 学习 辅导
限制150内