软件工程自学指导书.doc
《软件工程自学指导书.doc》由会员分享,可在线阅读,更多相关《软件工程自学指导书.doc(63页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、,软件工程自学指导书宋海南2011年于东北石油大学第一章 软件与软件工程教学内容1.软件软件的发展、软件的定义、软件的特点、软件的种类。2.软件工程的概念软件危机与软件工程的定义、软件工程的目标、软件工程的原则。3.软件生存周期与软件开发模型瀑布模型、原型模型、螺旋模型。教学要求掌握:软件和软件工程的基本概念。了解:软件生命周期及软件开发的各个模型。自学要点软件、软件工程、软件生存周期和软件开发模型学时分配3学时(自学学时:6学时)1.1 软件的定义及其特点v 软件的定义计算机系统是通过运行程序来实现各种不同的应用。把各种不同功能的程序,包括用户为自己的特定目的编写的应用程序、检查和诊断机器系
2、统的程序、支持用户应用程序运行的系统程序、管理和控制机器系统资源的程序等通常称为软件。v 软件的非精确定义:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档组成的完整集合。v 比较公认的软件定义由以下三部分组成:在运行中能提供所希望的功能和性能的指令集(即程序);使程序能够正确运行的数据结构;描述程序研制过程、方法所用的文档。v 软件的特点软件具有抽象特征。软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性软件是智力劳动的结果。软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。软件无备件特征。在软件的运行和使用期间,没有
3、硬件那样的机械磨损、老化问题。软件对硬件有明显的依存性。软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。在软件的开发和运行中必须以硬件提供的条件为基础。软件的研发主要由人工完成。软件的开发至今尚未完全摆脱手工的开发方式。软件无明显的制造过程。软件的开发费用越来越高,成本相当昂贵。软件的分类 软件依据不同的标准,可划分为不同的分类。根据软件的应用领域可分为:系统软件、实时软件、商业软件、科学计算软件、嵌入式软件、人工智能软件。1.2 软件工程概念v 软件危机与软件工程定义v 软件危机软件危机指的是软件开发和维护过程中遇到的一系列严重问题。v 软件危机的表现产品不符合用
4、户的实际需要。软件开发生产率提高的速度远远不能满足客观需要,软件的生产率远远低于硬件生产率和计算机应用的增长,使人们不能充分利用现代计算机硬件提供的巨大潜力。软件产品的质量差。对软件开发成本和进度的估计常常不准确。软件的可维护性差。软件文档资料通常既不完整也不合格。软件的价格昂贵,软件成本在计算机系统总成本中所占的比例逐年上升。v 产生软件危机的原因软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。在写出程序代码并在计算机上试运行之前,很难检验开发的正确性,而且软件开发的质量也较难评价。软件不同于一般程序,它的一个显著特点是规模庞大。虽然软件本身独有的特点确实给开发和维护带来一些客观困
5、难,但是人们在开发和使用计算机系统的长期实践中,也确实积累和总结出了许多成功的经验。开发和管理人员只重视开发而轻视问题的定义,使软件产品无法满足用户的需求。软件管理技术不能满足现代软件开发的需要,没有统一的软件质量管理规范。在软件的开发与维护关系问题上存在错误的概念。v 软件工程的定义软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。软件工程准则可以概括为如下六条基本原理。(1)用分阶段的生存周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)
6、采用现代程序设计技术 (5)结果应能清楚地审查(6)合理安排软件开发小组的人员v 软件工程的基本内容与目标v 软件工程的基本内容从内容上划分软件工程学可分为理论、结构、方法、工具、环境、管理、规范等。v 软件工程学研究的基本目标定义良好的方法学,面向计划、开发维护整个软件生存周期的方法学。确定的软件成分,记录软件生存周期每一步的软件文件资料,按步显示轨迹。 可预测的结果,在生存周期中,每隔一定时间可以进行复审。软件工程学的最终目标是以较少投资获得易维护、易理解、可靠、高效率的软件产品。软件工程学是研究软件结构、软件设计与维护方法、软件工具与环境、软件工程标准与规范 、软件开发技术与管理技术的相
7、关理论。v 软件工程的原则为了开发出低成本高质量的软件产品,软件工程学应遵守以下基本原则:分解、独立性、一致性、确定性。13 软件生存周期与软件开发模型软件工程采用的生存周期方法就是从时间角度对软件的开发与维护这个复杂问题进行分解,将软件生存漫长的时期分为若干阶段,每个阶段都有其相对独立的任务,然后逐步完成各个阶段的任务。v 软件生存周期一个软件从定义到开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。软件生存周期就是从提出软件产品开始,直到该软件产品被淘汰的全过程。软件生存周期一般可分为以下阶段:问题定义可行性研究需求分析设计编码测试运行与维
8、护软件生存期也可以分为三个大的阶段:计划阶段、开发阶段和维护阶段。 v 软件开发模型为了反映软件生存周期内各种工作应如何组织及软件生存周期各个阶段应如何衔接,需要用软件开发模型给出直观的图示表达。软件开发模型是软件工程思想的具体化,是实施于过程模型中的软件开发方法和工具,是在软件开发实践中总结出来的软件开发方法和步骤。总的说来,软件开发模型是跨越整个软件生存周期的系统开发、运行、维护所实施的全部工作和任务的结构框架。1瀑布模型瀑布模型: 瀑布模型规定了各项软件工程活动,包括:制定开发计划,进行需求分析和说明,软件设计,程序编码。测试及运行维护,参看图1.1。并且规定了它们自上而下,相互衔接的固
9、定次序,如同瀑布流水,逐级下落。 图1.1 软件生存周期的瀑布模型然而软件开发的实践表明,上述各项活动之间并非完全是自上而下,呈线性图式。实际情况是,每项开发活动均处于一个质量环(输入-处理-输出-评审)中。只有当其工作得到确认,才能继续进行下一项活动,在图1.1中用向下的箭头表示;否则返工,由向上的箭头表示。2螺旋模型对于复杂的大型软件,开发一个原型往往达不到要求。螺旋模型将瀑布模型与演化模型结合起来,并且加入两种模型均忽略了的风险分析。螺旋模型沿着螺线旋转,如图1.2所示,在笛卡尔坐标的四个象限上分别表达了四个方面的活动,即: 制定计划确定软件目标,选定实施方案,弄清项目开发的限制条件;
10、风险分析分析所选方案,考虑如何识别和消除风险; 实施工程实施软件开发 客户评估评价开发工作,提出修正建议。沿螺线自内向外每旋转一圈便开发出更为完善的一个新的软件版本。图1.2 螺旋模型3原型模型又称快速成型模型,快速原型模型正是为了克服瀑布模型的缺点而提出来的。一般用于最终系统的早期用户评价,开发工期短,质量有保证。其本质是“快速”,开发人员应该尽可能快地建造出原型系统,以加速软件开发过程,节约软件开发成本。原型的用途是获知用户的真正需求,一旦需求确定了,原型将被抛弃。v 主要优点: 使用这种软件过程开发出的软件产品通常能满足用户的真实的需求; 软件产品的开发过程基本上是线性顺序过程。4. 变
11、换模型 是基于形式化规格说明语言以及程序变换技术的软件系统开发模型。第二章 可行性研究 教学内容1 问题的定义2 可行性研究的任务3 可行性研究的步骤4 系统流程图5 成本/效益分析教学要求了解:可行性分析的步骤自学要点可行性研究的任务和步骤、系统流程图。学时分配2学时(自学学时:4学时)v 可行性研究v 问题的定义 问题定义阶段需解决问题是“该软件开发项目要解决什么问题”。v 可行性研究的任务可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。也就是说可行性研究的目的不是解决问题,而是确定问题是否值得去解,研究在当前的具体条件下,开发新系统是否具备必要的资源和其它条件。一般
12、说来,应从经济可行性、技术可行性、运行可行性、法律可行性和开发方案的选择等方面研究可行性。可行性研究需要的时间长短取决于工程的规模,一般说来,可行性研究的成本只占预期的工程中成本的5-10%。v 可行性研究的步骤1确定系统规模和目标2分析目前正在使用的系统3. 设计出新系统的高层逻辑模型4. 评审系统模型5. 设计和评价供选择的方案6. 推荐一个方案并说明理由7. 制定行动方针8. 拟定开发计划并书写计划任务书9. 编制可性报告并提交审查v 可行性研究工具系统流程图系统流程图是描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、数据库、图表、人工处理等)。
13、系统流程图不同于程序流程图。v 系统流程图的基本符号v 系统流程图的作用1. 制作系统流程图的过程是系统分析员全面了解系统业务处理概况的过程,它是系统分析员作进一步分析的依据。2. 系统流程图是系统分析员、管理人员、业务操作人员相互交流的工具。3. 系统分析员可直接在系统流程图上拟出可以实现计算机处理的部分。4. 可利用系统流程图来分析业务流程的合理性。v 成本效益分析成本效益分析的目的是要从经济角度分析开发一个特定的新系统是否划算,从而帮助使用部门负责人正确地做出是否投资于这项开发工程的决定。v 成本估计本课程把主要的成本估计方法归并为自顶向下估计、自底向上估计和算法模型估计三类。v 费用估
14、计1 代码行技术一旦估计出源代码行数以后,用每行代码的平均成本乘以行数就可以确定软件的成本。每行代码的平均成本主要取决于软件的复杂程度和工资水平。2 任务分解技术这种方法首先把软件开发工程分解为若干个相对独立的任务。再分别估计每个单独的开发任务的成本,最后加起来得出软件开发工程的总成本。v 几种度量效益的方法1.货币的时间价值 成本估算的目的是要求对项目投资。但投资在前,取得效益在后。因此要考虑货币的时间价值。通常用利率表示货币的时间价值。2.投资回收期投资回收期是衡量一个开发工程价值的经济指标。所谓投资回收期就是使累计的经济效益等于最初的投资所需的时间。投资回收期越短,就能越快获得利润,就越
15、值得投资。3纯收入工程的纯收入是衡量工程价值的另一项经济指标。所谓纯收入就是在整个生存期之内系统的累计经济效益(折合成现在值)与投资之差。如果纯收入为零,则工程的预期效益与在银行存款一样。但开发一个软件项目有风险,从经济观点看,这项工程可能是不值得投资的。如果纯收入小于零,那么显然这项工程不值得投资。只有当纯收入大于零,才能考虑投资。第三章 需求分析教学内容1需求分析的任务与步骤2需求分析方法(面向数据流的分析方法)1 基本符号、基于数据流的分析方法、数据字典。 4需求规格说明书教学要求掌握:需求分析的方法;理解:需求分析的任务和原则自学要点数据流图、面向数据流的分析方法。学时分配4学时(自学
16、学时:10学时)31 需求分析的任务与步骤v 需求分析的任务需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?”这个问题。需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。通常软件开发项目是要实现目标系统的物理模型,即确定待开发软件系统的系统元素,并将功能和数据结构分配到这些系统元素中。它是软件实现的基础。需求分析的任务不是确定系统如何完成它的工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。在这个阶段结束时交出的文档中应该包括详细的数据流图(DFD),数
17、据字典(DD)和一组简明的算法描述。v 需求分析阶段的任务包括下述几方面1确定目标系统的具体要求。确定系统的运行环境要求;系统的性能要求;系统功能。2分析系统的数据要求。分析系统的数据需求是由系统的信息流归纳抽象出数据元素组成、数据的逻辑关系、数据字典格式和数据模型。并以输入/处理/输出(IPO)的结构方式表示。因此,必须分析系统的数据需求,这是软件需求分析的一个重要任务。3建立目标系统的逻辑模型,就是在理解当前系统需要“怎样做”的基础上,抽取其“做什么”的本质。4修正系统开发计划5建立原型系统6编写软件需求规格说明书及评审v 需求分析的方法结构化分析方法(简称SA方法)就是面向数据流自顶向下
18、逐步求精进行需求分析的方法。v 需求分析的过程或步骤1 调查研究 2 描述和分析系统的逻辑模型应注意下述两条原则:第一,在分层细化时必须保持信息连续性,也就是说细化前后对应功能的输入输出数据必须相同;第二,当进一步细化将涉及如何具体地实现一个功能时,也就是当把一个功能进一步分解成子功能后,并将考虑为了完成这些子功能而写出其程序代码时,就不应该再分解了。3编制文档在这个阶段应该完成下述四种文档资料:系统规格说明-用比较形式化的术语和表示对软件功能构成的详细描述,作用是:技术合同说明;设计和编码的基础;测试和验收的依据。数据要求-数据结构、数据域、数据精度。用户系统描述。修正的开发计划。4需求分析
19、审查v 需求分析的原则1. 必须能够表达和理解问题的数据域和功能域2. 按自顶向下、逐层分解问题 3. 要给出系统的逻辑视图和物理视图v 需求分析评审标准的主要内涵正确性、无歧义性、完全性、可验证性、一致性、可理解性、可修改性、可追踪性。v 需求分析方法 大多数的需求分析方法是由数据驱动的,数据域具有三种属性:数据流、数据内容和数据结构。通常,一种需求分析方法总要利用一种或几种属性。v 需求分析方法的共性1支持数据域分析的机制2功能表示的方法3接口的定义4问题分解的机制以及对抽象的支持5逻辑视图和物理视图6系统抽象模型v 面向数据流的需求分析方法结构化分析方法是面向数据流进行需求分析的方法。结
20、构化分析方法使用数据流图DFD与数据字典DD来描述,面向数据流问题的需求分析适合于数据处理类型软件的需求描述。其核心思想是分解化简问题,将物理与逻辑表示分开,对系统进行数据与逻辑的抽象。3.2 数据流图与数据字典v 数据流图(DFD)1数据流图的含义数据流图是描述数据处理过程的工具。数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的传输变换过程。数据流图是结构化系统分析的主要工具,它表示了系统内部信息的流向,并表示了系统的逻辑处理的功能。2数据流图的特性:抽象性、概括性、层次性。3. 数据流图基本符号(1)数据流图中的主要图形元素数据流图的基本图形元素有4种,如图所示。数据流
21、图基本图形符号(2)数据流与加工之间的关系“*”表示相邻的一对数据流之间是“与”关系;“+”表示相邻的两个数据流是“或”关系;“”表示相邻的两个数据流是“异或”的关系。 (3)分层的数据流图数据流图加工关系4.数据流图的用途数据流图的作用主要有以下几条:(1)系统分析员用这种工具可以自顶向下分析系统信息流程。(2)可在图上画出需要计算机处理的部分。(3)根据数据存贮,进一步作数据分析,向数据库设计过渡。(4)根据数据流向,定出存取方式。 (5)对应一个处理过程,用相应的语言、判定表等工具表达处理方法。5数据流图的优缺点(1)总体概念强,每一层都明确强调“干什么”,“需要什么”,“给出什么”。(
22、2)可以反映出数据的流向和处理过程。 (3)由于自顶向下分析,容易及早发现系统各部分的逻辑错误,也容易修正。(4)容易与计算机处理相对照。 (5)不直观,一般都要在作业流程分析的基础上加以概括、抽象、修正来得到。(6)如果没有计算机系统帮助的话,人工绘制太麻烦,工作量较大。6数据流图画法(1)画数据流图的一般原则:画数据流图的基本步骤概括地说,就是自外向内,自顶向下,逐层细化,完善求精。(2)数据流图的分层方法(3)分层法绘制流程图的几个问题7数据流图的绘制与其它流程图的差别(1) 数据流图与系统流程图的区别(2) 数据流与程序流程图的区别(3) 数据流与程序结构图的区别(4) 数据流与控制流
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 自学 指导书
限制150内