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