您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > 软件工程导论张海潘(第六版)第1-13章总结
11、软件危机在计算机软件的开发和维护过程中所遇到的一系列严重问题。几乎所有的软件,都不同程度地存在着这些问题。软件危机主要包括如下两方面的问题:①如何开发软件,满足增长需求;②如何维护软件;2、解决软件软件危机的途径解决软件危机的途径是软件工程。按工程化的原则和方法组织软件开发工作是有效的,是摆脱软件危机的一个主要出路。第一章软件工程学概述23、软件软件是程序、数据及文档的完整集合。其中:程序是能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当地处理信息的数据结构;文档是开发、使用和维护程序的图文资料。4、软件工程软件工程是采用工程的概念、原理、技术和方法来开发与维护软件一门工程学科,从而经济地开发出高质量的软件并有效地维护它。5、软件工程方法学在软件生命周期全过程中使用的一整套技术方法的集合称为软件工程方法学。软件工程第一章36、方法学三要素?工程方法学包含3个要素:方法、工具和过程;方法:是完成软件开发的各项任务的技术方法,回答“怎样做”的问题。工具:是为运用方法而提供的自动的或半自动的软件工程支撑环境。过程:是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件工程第一章47、传统方法学、面向对象方法学(1)传统方法学(生命周期方法学或结构化范型)——强调自顶向下;(2)面向对象方法学——强调主动地多次反复迭代;(3)面向对象方法学4个要点:对象;类;继承;消息软件工程第一章58、软件生命周期软件孕育、诞生、成长、成熟、衰亡的生存过程。软件工程第一章6软件生命周期1.问题定义2.可行性研究3.需求分析4.总体设计5.详细设计6.编码和单元测试7.综合测试8.软件维护7各阶段具体任务:1.问题定义:必须回答的关键问题是:“要解决的问题是什么?”。2.可行性研究:阶段回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?”3.需求分析:“目标系统必须做什么”,确定目标系统必须具备哪些功能。4.总体设计:必须回答的关键问题是:“概括地说,应该怎样实现目标系统?”总体设计又称为概要设计。5.详细设计:关键问题是:“应该怎样具体地实现这个系统呢?”6.编码和单元测试:关键任务是写出正确的容易理解、容易维护的程序模块。7.综合测试:关键任务是通过各种类型的测试使软件达到预定的要求。8.软件维护:通过各种必要的维护活动使系统持久地满足用户的需要。88、软件过程为获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。是软件工程三要素之一的过程。9、软件生命周期模型软件过程通常用软件生命周期模型来描述,它规定了把生命周期划分成哪些阶段以及各个阶段执行的顺序,也称为过程模型。10、典型的生命周期模型瀑布模型、快速原型模型增量模型、螺旋模型喷泉模型软件工程第一章911、瀑布模型、软件工程第一章实际的瀑布模型传统的瀑布模型1012、快速原型模型软件工程第一章实线箭头表示开发过程虚线箭头表示维护过程1113、增量模型软件工程第一章增量模型风险更大的增量模型1214、螺旋模型:增加了风险分析过程的快速原型。软件工程第一章简单得螺旋模型完整的螺旋模型1315、喷泉模型:面向对象软件开发迭代和无缝的特性软件工程第一章喷泉模型1416、各模型特点瀑布模型的特点:1.阶段间具有顺序性和依赖性。2.推迟实现的观点。3.质量保证的观点。快速原型:是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成功能的一个子集。增量模型:它分批地逐步向用户提交产品,整个软件产品被分解成许多个增量构件,开发人员一个构件一个构件地向用户提交产品。螺旋模型:基本思想是使用原型及其他方法来尽量降低风险。理解这种模型的一个简单方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型。(使用于内部开发的大规模软件项目)喷泉模型:强调的是“迭代”和“无缝“的特性,是典型的面向对象的软件过程模型之一。15复习重点软件危机软件工程软件工程三要素软件生命周期包含的过程(3个时期、8个阶段)及各过程的任务瀑布模型快速还原模型161、可行性研究的目的:就是用最小的代价在尽可能短的时间内确定问题是否能够解决。必须记住,可行性研究的目的不是解决问题,而是确定问题是否值得去解决。从下述3个方面研究每种解法的可行性:1)技术可行性2)经济可行性3)操作可行性其他方面:运行可行性、法律可行性2、典型的可行性研究有下述一些步骤:1.复查系统规模和目标。2.研究目前正在使用的系统3.导出新系统的高层逻辑模型4.进一步定义问题5.导出和评价供选择的解法6.推荐行动方针7.草拟开发计划8.书写文档提交审查。第二章可行性研究173、系统流程图:是概括性地描绘物理系统的传统工具,它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件。系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。基本符号如下第二章可行性研究18库存清单系统的系统流程图194、数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。基本符号如下:第二章可行性研究20附加符号:星号(*):表示“与”关系;加号(+):表示“或”关系异或(⊕):表示互斥关系第二章可行性研究215、画数据流图的步骤:(1)从问题描述中提取数据流图的4种成分:数据的源点/终点处理:处于静止状态的数据数据流:处于运动中的数据数据存储:(2)画基本系统模型(3)细化,描绘系统的主要功能(功能级数据流图)(4)对系统主要功能进一步细化226、画数据流图举例:银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。23第一步:提取数据流图的四种成分:数据源点和终点:业务员、储户处理:(1)事物处理(2)处理存款(3)处理取款数据存储:(1)存款信息(2)取款信息数据流:事物、存款单、存单密码、取款单、利息清单24顶层数据流图第二步:画基本数据流图25功能级数据流图第三步:画功能级数据流图26细化的数据流图第四步:对系统主要功能进一步细化277、数据字典:数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。可行性研究阶段,数据流图与数据字典共同构成系统的逻辑模型。没有数据字典,数据流图就不严格,然而没有数据流图,数据字典也难于发挥作用。数据字典应该由对下列4类元素的定义组成:数据流、数据流分量(数据元素)、数据存储和处理。由数据元素组成数据的方式只有下述3种基本类型:顺序、选择、重复和可选。数据定义符号:=+[]{}()=等价于;+和即连接;[]选择一个;{}重复;()可选288、定义数据的方法数据组成方式(三种基本类型):顺序选择重复附加类型:可选数据定义符号:=+[]{}()含义:=意思是等价于(或定义为);+意思是和(即,连接两个分量);[]意思是或(即,从方括弧内列出的若干个分量中选择一个),通常用“|”号隔开供选择的分量;{}意思是重复(即,重复花括弧内的分量);常常使用上限和下限进一步注释表示重复的花括弧。()意思是可选(即,圆括弧里的分量可有可无)。29电话定义--应用举例北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类;a)拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0);b)若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。请用定义数据字典的方法,定义上述的电话号码。电话号码=[校内电话号码|校外电话号码]校内电话号码=非零数字+3位数字//后面继续定义校外电话号码=[本市号码|外地号码]本市号码=数字零+8位数字外地号码=数字零+3位数字+8位数字非零数字=[1|2|3|4|5|6|7|8|9]数字零=03位数字=3{数字}3//3至3个数字8位数字=非零数字+7位数字7位数字=7{数字}7数字=[0|1|2|3|4|5|6|7|8|9]309、成本/效益分析的目标正式要从经济角度分析开发一个特定的新系统是否划算,从而帮助客户组织的负责人正确地做出是否投资于这项开发工程的决定。第二章可行性研究31复习重点:可行性研究的目的可行性研究的内容数据流图的画法数据字典的实现第二章可行性研究321、需求分析的任务准确地回答“系统必须做什么”这个问题。而不必研究“如何做”。需求分析的结果,是提供准确完整的软件需求规格说明书。2、软件系统的综合要求功能需求、性能需求、可靠性和可用性需求、出错处理需求接口需求、约束、逆向需求、将来可能提出的要求3、分析系统的数据要求(1)建立数据模型——E-R图(2)描绘数据结构——层次方框图和Warnier图(3)数据结构规范化第三章需求分析334、需求分析过程建立三种模型数据模型:实体-联系图功能模型:数据流图行为模型:状态转换图数据字典是分析模型的核心第三章需求分析5、实体-联系图数据模型中包含3种相互关联的信息:数据对象、数据对象的属性、数据对象彼此间相互连接的关系。联系可分为以下三种类型:一对一,一对多和多对346、范式:第一范式、第二范式、第三范式35第三章需求分析7、状态转换图通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。3637388、层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。第三章需求分析399、Warnier图Warnier图也用树形结构描绘信息,但是这种图形工具比层次方框图提供了更丰富的描绘手段。第三章需求分析软件产品的Warnier图4010、IPO图是输入、处理、输出图的简称,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。第三章需求分析主文件更新处理的IPO图41第三章需求分析复习重点:需求分析的任务需求分析阶段建立3种模型:数据模型功能模型行为模型实体-联系图(E-R图)的画法42第四章形式化说明技术软件工程的使用方法非形式化:用自然语言描述需求规格说明半形式化:用数据流图或实体—联系图建立模型形式化:描述系统性质的基于数学的技术43第五章总体设计1、总体设计的目的“概括地说,系统应当如何实现”,因此总体设计又称为概要设计或者初步设计。2、总体设计的过程由两个主要阶段组成:系统设计阶段,确定系统的具体实现方案:包括:设想供选择的方案、选取合理的方案、推荐最佳方案。结构设计阶段,确定软件结构:包括:功能分解、设计软件结构、设计数据库、制定测试文档、书写文档、审查和复查。3、模块是由边界元素限定的相邻程序元素的序列,而且有一个总体标识符代表它。44第五章总体设计4、模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来够成一个整体,可以完成指定的功能满足用户的需求。每个程序都相应地有一个最适当的模块数目M,使得系统的开发成本最小。5、模块化的作用模块化可以使软件结构清晰,不仅容易设计也容易阅读和理解;模块化使软件容易测试和调试,因而有助于提高软件的可靠性;模块化能够提高软件的可修改性;模块化也有助于软件开发工程的组织管理。45第五章总体设计6、抽象抽象就是抽出事物本质特性而暂时不考虑细节。是人类处理复杂问题的基本方法之一7、逐步求精为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。8、信息隐藏设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。9、局部化指把一些关系密切的软件元素物理地放得彼此靠近。显然,局部化
本文标题:软件工程导论张海潘(第六版)第1-13章总结
链接地址:https://www.777doc.com/doc-3876651 .html