资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,软 件 工 程,Software Engineering,第,2,章:可行性研究,2.1,可行性研究的任务,2.2,可行性研究过程,2.3,系统流程图,2.4,数据流图,2.5,数据字典,2.6,成本,/,效益分析,2.7,小结,Y,开始,问题定义,可性行研究,可行否?,项目实施计划,终止项目的建议,结束,N,问题的定义与可性行研究,Who,为谁设计,用户是谁?,What,要解决哪些问题?,Why,为什么要解决这些问题,有用的软件,3W,第,2,章:可行性研究,可行性研究的目的,:,用最小的代价在尽可能短的时间内,确定问题是否能够解决。,(不是解决问题,而是确定问题是否值得去解决,。),可行性研究就是要回答“所定义的问题有可行的解决办法吗?”。,可行性研究的主要任务是“了解客户的要求及现实环境,从技术、经济和社会因素等三方面研究并论证本软件项目的可行性,编写可行性研究报告,制定初步项目开发计划。”,GB 8566-88,计算机软件开发规范,2.1,可行性研究的任务,可行性研究的实质:,进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。,可行性研究的内容:,1,),技术可行性,使用现有的技术能否实现这个系统?,是否有胜任开发该项目的熟练技术人员?,能否按期得到开发该项目所需的软件、硬件资源?,2,),经济可行性,所要考虑的问题:这个系统的经济效益能否超过它的开发成本?,这就需要对项目进行价格,/,利益分析,即“投入,/,产出”分析。,3,),操作可行性,操作可行性评价系统运行后会引起的各方面变化,如:对组织机构管理模式、用户工作环境等产生的影响。,4,),社会可行性,主要讨论法律方面和使用方面的可行性。,例如,被开发软件的权利归属问题、软件所使用的技术是否会造成侵权等问题。,可行性研究的最根本任务,对软件开发以后的行动方针提出建议,。,可行性研究所需的时间取决于工程的规模,所需要的成本要占工程总成本的,5%10%,。,2.2,可行性研究过程,可行性研究的步骤,1.,复查系统规模和目标,确保分析员正在解决的问题确实是要求他解决的问题。,2.,研究目前正在使用的系统,1,),新的目标系统必须也能完成旧系统的基本功能;,2,),新系统必须能解决旧系统中存在的问题;,3,)新系统不能增加收入或减少使用费用,那么从经济角度看新系统不如旧系统。,3.,导出新系统的高层逻辑模型,现有的物理系统现有系统的逻辑模型目标系统的逻辑,模型新的物理系统(数据流图、数据字典),4.,重新定义问题;,分析员和用户一起再次复查问题定义、工程规模和目标。,前,4,个步骤实质上构成一个循环。,5.,导出和评价供选择的解法(物理解决方案),1,)从技术角度提出些可能的物理系统,排除不现实系统;,2,)考虑操作可行性,去掉用户不能接受的方案;,3,)考虑经济可行性,估计余下的每个可能的系统的开发成本和运行费 用,进行成本,/,效益分析;,4,)为每个在各方面都可行的系统制定实现进度表。,6.,推荐行动方案,根据可行性研究结果做出关键性决定:是否继续进行这项开发工程。,7.,草拟开发计划;,8.,书写文档提交审查。,2.3,系统流程图,系统流程图是,概括地描绘物理系统的传统工具,。,它的基本思想是,用图形符号以黑盒子形式,描绘组成系统的每个部件,(,程序,文档,数据库,人工过程等,),。,系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是,物理数据流图,而不是程序流程图。,2.3.1,符号,符号,名称,说明,处理,如:程序,处理机,人工加工,输入,/,输出,连接,换页连接,数据流,表示输入或输出,同一页上图的连接,不同页上图的连接,指明数据流动方向,图,2.1,基本符号,基本符号,-,以概括的方式抽象地描绘一个实际系统所用符号,符号,名称,说明,穿孔卡片,文档,磁带,联机存储,磁盘,磁鼓,显示,人工输入,人工操作,辅助操作,通信链路,穿孔卡片输入,/,输出,或穿孔卡片文件,打印输出,或打印终端输入数据,磁带输入,/,输出,或表示磁带文件,任何种类磁盘存储,如磁盘、磁鼓等,磁盘输入,/,输出,或磁盘上文件、数据库,磁鼓输入,/,输出,或磁鼓上文件、数据库,显示器部件,人工输入数据,如填写表格,人工完成的处理,使用辅助设备进行的脱机操作,通过远程通信线路传送数据,图,2.2,系统符号,系统符号,-,用符号具体地描绘一个物理系统所,2.3.2,例子,事务,库存清单程序,报告生成程序,定货信息,定货报告,库存清单主文件,图,2.3,库存清单系统的系统流程图,2.4,数据流图,数据流图(,DFD Data Flow Diagram,),一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。,在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程,是系统逻辑功能的图形表示。,设计数据流图时只需考虑系统必须完成的基本逻辑功能,完全不需要考虑怎样具体地实现这些功能,所以它也是今后进行软件设计的很好的出发点。,数据流图的基本目的是利用它作为交流信息的工具。分析员把他对现有系统的认识或对目标系统的认识用数据流图绘制出来,供有关人员审查确认。,2.4.1,绘制数据流图的符号,数据加工,/,处理,/,变换,数据流,(data flow),数据存储文件,或,或,或,图,2.4,(,a,)基本符号的含义,数据源点或终点,(,外部实体,),图,2.4,(,b,)附加符号的含义,注意:,“,处理,”,可表示:单个程序、一系列程序、程序的一个模块、人工处理过程等等;,“,数据存储,”,可表示:一个文件、文件的一部分、数据库记录等等;,数据存储和数据流均为数据。数据存储是静止数据,而数据流是动态数据。,数据流图张忽略出错处理、打开文件、关闭文件。只描绘“做什么”,而不考虑“怎么做”,仓库,管理员,采购员,定货系统,事务,定货报表,图,2.5,定货系统的基本系统模型,例子:,一家工厂的采购部每天需要一张订货报表。报表按零件编号排序,表中列出了所有需要再次订货的零件。通过放在仓库中的,CRT,把事务报告给订货系统,当某种零件库存量少于库存量临界值时就应该再次订货。,2.4.2,绘制数据流图的例子,图,2.6,定货系统的功能级数据流图,库存清单,仓库,管理员,采购员,事务,定货报表,处理事务,1,产生报表,2,D1,库存清单,D2,定货信息,定货信息,定货信息,在这个任务中主要完成两个功能:“事务处理”和“产生报表”。,事务处理需要用到“库存清单”数据(静态),同时产生“订货信息”。而事务处理和产生报表不在不同时间进行,因此,要存储“订货信息”,成为两个功能的数据流连接数据。,组成该例子的数据流图的元素,源点,/,终点,处 理,采购员,仓库管理员,产生报表,处理事务,数据流,数据存储,订货报表,零件编号,零件名称,订货数量,目前价格,主要供应商,次要供应商,事务,零件编号,事务类型,数量,订货信息,(见订货报表),库存清单,零件编号,库存量,库存量临界值,仓库,管理员,采购员,事务,定货报表,图,2.7,定货系统进一步分解后的数据流图,更新库存清单,1.2,产生报表,2,D1,库存清单,D2,定货信息,接收事务,1.1,处理定货,1.3,库存清单,定货信息,定货信息,当一个事务发生时必须首先接受它,按照事务内容修改库存清单;若库存量少于库存临界值时,就应再次订货,也就需要再次修改订货信息,这样,“,事务处理”可分解为以下,3,个步骤:,1,),为数据流(或数据存储)命名,A,名字应该代表整个数据流(或数据存储)的内容;,B,不要使用空洞的、缺乏具体含义的名字(如“数据”、“输入”);,C,如果为某个数据流(或数据存储)起名字时遇到困难,则很可能是因为对数据流图的分解不恰当造成的,应该试试重新分解数据流图;,2.4.3,命名,2,),为处理命名,A,通常先为数据流命名,然后再为与之相关联的处理命名;,B,名字应该反映整个处理的功能;,C,应该尽量避免空洞笼统的动词做名字,如“处理”、“加工”;,D,通常用一个动词命名,如果必须用两个动词才能描述整个处理的功能,则可能要把这个处理分解成两个处理更恰当;,E,如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的情况,应考虑重新分解。,1,)利用它作为交流信息的工具;,2,)作为软件分析和设计的工具。,2.4.4,数据流图的用途,仓库,管理员,采购员,事务,定货报表,图,2.8,这种自动化边界建议以联机方式更新库存清单,更新库存清单,1.2,产生报表,2,D1,库存清单,D2,定货信息,接收事务,1.1,处理定货,1.3,库存清单,定货信息,定货信息,图,2.8,对应的物理实现硬件方案,仓库,管理员,采购员,事务,定货报表,图,2.9,这种自动化边界暗示以批量方式更新库存清单,更新库存清单,1.2,产生报表,2,D1,库存清单,D2,定货信息,接收事务,1.1,处理定货,1.3,库存清单,定货信息,定货信息,D3,事务,图,2.9,对应的物理实现硬件方案,2.5,数据字典,数据流图,和,数据字典,共同构成系统的逻辑模型。,没有数据字典数据流图就不严格,没有数据流图数据字典也难于发挥作用。,数据字典,DD,(,Data Dictionary,),的任务是,:,对于数据流图中出现的所有被命名的图形元素在字典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。,数据字典是关于数据信息的集合,是对数据流图中包含的所有元素定义的集合。,数据字典应该由对下列,4,元素的定义组成:,1,)数据流;,2,)数据元素(数据流分量);,3,)数据存储;,4,)处理。,2.5.1,数据字典的内容,在数据字典中记录数据元素的下列信息:,一般信息,(名字,别名,描述等);,定 义,(数据类型,长度,结构等);,使用特点,(值的范围,使用频率,,使用方式,输 入、输出、本地,条件值等);,控制信息,(来源,用户,使用它的程序,改变权,,使用权等);,分组信息,(付结构,丛书结构,,物理位置,记录、文件和数据库等)。,2.5.2,定义数据的方法,方法,:,对数据自顶向下分解。,数据组成方式,(,三种基本类型,),:,顺序,以确定次序连接两个或多个分量;,选择,从两个或多个可能的元素中选取一个;,重复,把指定的分量重复零次或多次。,附加类型:,可选,一个分量是可有可无的,(,重复零次或一次,),。,符号,:,=,意思是等价于(或定义为);,+,意思是和(连接两个分量,),;,意思是或(从方括弧内列出的若干个分,量中选择一个),通常用“,|”,号隔开供选,择的分量;,意思是重复(重复花括弧内的分量);常,常使用上限和下限进一步注释表示重复的,花括弧。,(),意思是可选(圆括弧里的分量可有可无)。,例,1,:,标识符,=,字母字符,+,字母数字串,字母数字串,=0,字母或数字,7,字母或数字,=,字母字符数字字符,例,2,:,购书单,=,学号,+,姓名,+,书号,+,数量,+,单价,+,总价,+,书费合计,学生用书表,=,学院编号,+,专业编号,+,年级,+,书号,年级,=1|2|3|4,学号,=0,数字,10,作为分析阶段的重要工具;,分析员和用户之间的通信,开发人员或不同开发小组之间的通信,每个数据元素的控制信息给出了使用该元素的所有程序(或模块);,3.,有助于开发数据库,是开发数据库的第一步。,2.5.3,数据字典的用途,实现数据字典两种方式:,1,),计算机,程序处理:,在开发大型软件系统的过程中,数据字典的规模和复杂程度迅速增加,人工维护数据字典几乎是不可能的,必须建立数据字典,通
展开阅读全文