【优品课件】---软件工程学习辅导_第1页
【优品课件】---软件工程学习辅导_第2页
【优品课件】---软件工程学习辅导_第3页
【优品课件】---软件工程学习辅导_第4页
【优品课件】---软件工程学习辅导_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论