2019/12/19第二章问题的定义与可性行研究当我们在着手做任何一件工作以前,必须明确工作的性质、任务,制定完成任务的计划,这是非常必要的。同样对于软件产品的开发,显然也应该解决好这样类似的问题,明确该软件产品开发的任务,以及完成任务的价值从而制定出完成任务的计划。那么问题的定义和可性行研究就是制定软件系统的计划的第一步。所以在软件工程中把这一步称为计划时期2019/12/19开始问题定义可性行研究可行否?项目实施计划终止项目的建议结束Y计划时期的工作流程图N2019/12/19Who为谁设计,用户是谁?What要解决哪些问题?Why为什么要解决这些问题3W有用的软件可行性研究就是要回答“所定义的问题有可行的解决办法吗?”。可行性研究的目的是:用最小的代价在尽可能短的时间内确定问题是否有解,以及是否值得去解。2.1可行性研究的任务可行性研究所需的时间取决于工程的规模,所需要的成本要占工程总成本的5%~10%。可行性研究的内容:1)技术可行性:技术可行性要分析各种技术因素,例如:使用现有的技术能否实现这个系统?是否有胜任开发该项目的熟练技术人员?能否按期得到开发该项目所需的软件、硬件资源?对系统的性能、可靠性、可维护性以及生产率等方面的信息进行评价。技术可行性分析方法---数学模型和优化技术、概率和统计、排队论、控制论等方法。2)经济可行性对经济合理性进行评价,所要考虑的问题是:这个系统的经济效益能否超过它的开发成本?这就需要对项目进行价格/利益分析,即“投入/产出”分析。由于利益分析取决于软件系统的特点,因此在软件开发之前,很难对新系统产生的效益作出精确的定量描述,所以往往采用一些估算方法。2)经济可行性基于计算机系统的成本由四部分组成1、购置软、硬件及有关设备费用2、系统开发费用3、系统安装和维护费用4、人员培训费用费用3)操作可行性:系统的操作方式用户能否接受。操作可行性评价系统运行后会引起的各方面变化,如:对组织机构管理模式、用户工作环境等产生的影响。4)社会可行性社会可行性主要讨论法律方面和使用方面的可行性。例如,被开发软件的权利归属问题、软件所使用的技术是否会造成侵权等问题。2.2可行性研究的过程1)复查系统规模和目标;改正含糊和不确切的叙述;清晰的描述对目标系统的限制和约束。2)研究目前正在使用的系统;找出旧系统的缺点;旧系统运行所需的费用;现有系统和其他系统之间的接口情况;描绘出现有系统的高层系统流程图;3)导出新系统的高层逻辑模型(数据流图、数据字典);4)进一步定义问题;以数据流图和数据字典为基础和用户一起再次复查问题定义、工程规模和目标,力求和用户的目标达到一致。2.2可行性研究的过程5)导出和评价供选择的解法(物理解决方案);先从技术上筛选出几种可行的方案;再从操作上对上一步的方案进一步筛选;第三从经济上对剩下的方案的可行性(系统的开发成本和运行费用)。最后,为可行的系统制定实现粗略的进度表。2.2可行性研究的步骤6)推荐行动方案;分析员应该对所确定的方案选择一种最好的解法,并说明理由;要给用户一个比较仔细的成本/效益分析结果。7)草拟开发计划;估计对各类开发人员和各种资源的需要情况;估计系统生命周期各个阶段的成本;给出下一阶段(需求分析)的详细进度表和成本估计。2.2可行性研究的步骤8)书写文档提交审查。把可行性研究各个步骤的工作结果写成清晰的文档;请用户、客户组织的负责人和评审组审查。2.2可行性研究的步骤2.3系统流程图(描绘物理系统的工具)它的基本思想是用黑盒子形式描绘组成系统的每个部件(程序、文档、数据库、人工过程等)。它表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的过程。2.3.1符号符号名称说明处理如:程序,处理机,人工加工输入/输出连接换页连接数据流表示输入或输出同一页上图的连接不同页上图的连接指明数据流动方向图2.1基本符号2.3系统流程图(描绘物理系统的工具)符号名称说明穿孔卡片文档磁带联机存储磁盘磁鼓显示人工输入人工操作辅助操作通信链路穿孔卡片输入/输出,或穿孔卡片文件打印输出,或打印终端输入数据磁带输入/输出,或表示磁带文件任何种类磁盘存储,如磁盘、磁鼓等磁盘输入/输出,或磁盘上文件、数据库磁鼓输入/输出,或磁鼓上文件、数据库显示器部件人工输入数据,如填写表格人工完成的处理使用辅助设备进行的脱机操作通过远程通信线路传送数据图2.2系统符号2.3.2例子1事务库存清单程序报告生成程序定货信息定货报告库存清单主文件图2.3库存清单系统的系统流程图2019/12/19人工销售教材流程图结束学生申请购书购书证明检索教材帐本是否有该教材购书单开购书发票和购书单购书发票到书库领书2019/12/19计算机售书系统流程图1---学生各学期用书数据库结束学生购书发票到书库领书购书单终端审查并开发票1购书单22---教材存量数据库2019/12/19练习设某城市招干考试成绩统计系统。考生分三个专业,不同专业考试科目不同:法律专业---考政治、语文、法律行政专业---考政治、语文、行政财经专业---考政治、语文、财经学每个考生在报名时登记姓名、地址、年龄和报考专业。报名后招干办公室根据专业考生专业及地址在市区或郊区来编排准考证号码和考场。考生参加考试后,输入每个考生的各门课程的成绩,并统计出每个考生三门课程的总成绩。按准考证号的顺序打印出考生考试成绩单,分发给每个考生。各专业分别将考生按成绩总分从高到低的次序排序,以便决定录取名单。请画出由下列文字描述的系统流程图2.4数据流图(描绘数据在系统中流动的逻辑过程)是用来描述系统逻辑模型的一种图形工具。数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。DFD2019/12/19储户检验付款登录存折帐卡办理取款手续的DFD图检验不合格现款付款信息2.4数据流图2.4.1符号或或或数据源点或终点变换数据的处理数据存储数据流图2.4基本符号的含义2.4数据流图2019/12/192、数据流图中的其它图形元素ABC------有A则B或者C,或者两者都有*ABC+ABC------有A则B与C,或者两者同时有------有A则B或C,但不会同时有B与C2019/12/19-----标识多个数据流与加工之间关系的符号------当A或B有一个存在就有CABC*ABC------只有当A与B都存在,则有C2、数据流图中的其它图形元素注意:“处理”可表示:单个程序、一系列程序、程序的一个模块、人工处理过程等等;“数据存储”可表示:一个文件、文件的一部分、数据库记录等等;数据流图忽略出错处理、打开文件、关闭文件。2.4.2绘制数据流图的例子仓库管理员采购员定货系统事务定货报表图2.5定货系统的基本系统模型数据流图的4种成分:源点或终点,处理,数据存储和数据流。2.4.2绘制数据流图的例子库存清单仓库管理员采购员事务定货报表图2.6定货系统的功能级数据流图处理事务1产生报表2D1库存清单D2定货信息定货信息定货信息组成该例子的数据流图的元素源点/终点处理采购员仓库管理员产生报表处理事务数据流数据存储订货报表零件编号零件名称订货数量目前价格主要供应商次要供应商事务零件编号事务类型数量订货信息(见订货报表)库存清单零件编号库存量库存量临界值上述数据流图所描述的功能够详细了吗?2.4.2绘制数据流图的例子仓库管理员采购员事务定货报表图2.7定货系统进一步分解后的数据流图更新库存清单1.2产生报表2D1库存清单D2定货信息接收事务1.1处理定货1.3库存清单定货信息定货信息1)为数据流(或数据存储)命名(概括性)A.名字应该代表整个数据流(或数据存储)的内容;B.不要使用空洞的、缺乏具体含义的名字(如“数据”、“输入”);C.如果在给某个数据流命名时遇到困难,很可能是对数据流图分解不恰当。应重新分解或再细化。2.4.3命名2)为处理命名应先为数据流命名,再为处理命名;名字应该代表整个处理的功能,而不是它的部分功能;名字:及物动词+宾语组成,避免使用空洞的动词如“加工”、“处理”;名字中应只包含一个动词,否则考虑分解不当;如果在给处理命名时遇到困难,很可能是对处理的分解不恰当。应重新分解。通常,为“数据源点/终点”命名时,采用它们在问题域中习惯使用的名字(如“仓库管理员”、“采购员”)。2.4.3命名1)利用它作为交流信息的工具;•开发人员之间的交流;•分析员和用户的交流。2)作为软件分析和设计的工具。•数据流图着重描绘的是系统所完成的功能,而不是系统的物理实现方案;•可以根据数据流图画出多组自动化边界;2.4.4数据流图的用途2.4.4数据流图的用途仓库管理员采购员事务定货报表图2.8这种自动化边界建议以联机方式更新库存清单更新库存清单1.2产生报表2D1库存清单D2定货信息接收事务1.1处理定货1.3库存清单定货信息定货信息图2.8对应的物理实现硬件方案2.4.4数据流图的用途仓库管理员采购员事务定货报表图2.9这种自动化边界暗示以批量方式更新库存清单更新库存清单1.2产生报表2D1库存清单D2定货信息接收事务1.1处理定货1.3库存清单定货信息定货信息D3事务图2.9对应的物理实现硬件方案数据字典:对数据流图中包含的所有元素的定义的集合;可行性研究阶段,数据流图与数据字典共同构成系统的逻辑模型。2.5数据字典2.5.1数据字典的内容数据字典应该对下列元素进行定义:1)数据流;2)数据元素(数据流分量);3)数据存储;4)处理。2.5.2定义数据的方法1、对数据自顶向下分解,当分解到不需要进一步定义,每个和工程有关的人也都清楚其含义的元素时,就不需要再分解了。2、有数据元素组成数据的3中方式:顺序、选择、重复、可选3)组成数据项的表示方法=表示“等价于”或“定义为”+表示“与”[]与|表示“或”1{}5表示重复()表示可选项通讯录={通讯地址}例如:通讯地址=姓名+邮编+[省|直辖市|自治区]+[市|县]+街道+门牌号+(电话)1)数据元素字典定义其定义的基本内容有:A.数据元素编号、名称及其含义;B.数据类型和长度;C.合理取值;D.其他内容,如它与其它数据的逻辑关系等。数据元素字典定义实例:数据元素编号:DC001数据元素名称:考试成绩别名:成绩、分数简述:学生考试成绩,分五个等级类型/长度:两个字节,字符类型取值/含义:优[90-100]良[80-89]中[70-79]及格[60-69]不及格[0-59]有关数据项或结构:学生成绩档案有关处理逻辑:计算成绩图2.10数据元素字典定义2)数据流字典定义其定义的基本内容有:A.数据流编号及名称;B.数据流来源;C.数据流去处;D.数据流的组成;E.流通量;F.峰值。数据流字典定义实例:数据流编号:DF001数据流名称:订票单简述:订票时填写的订票单数据流来源:外部实体“乘客”数据流去处:处理逻辑“预订机票”数据流组成:订单编号日期乘客号航班号状态订单失效日期流通量:每天300份高峰值流通量:每天早上9:00,约160份图2.11数据流字典定义3)数据存储字典定义其定义的基本内容有:A.数据存储编号及名称;B.数据存储的组成;C.其它要求。4)数据处理字典定义其定义的基本内容有:A.数据处理编号及名称;B.简单描述;C.输入/输出;D.功能描述;E.有关数据存储。数据处理字典定义实例:数据处理编号:DP001数据处理名称:编辑订票简述:接收从终端录入的订票单,检验是否正确输入:乘客订单,来源:外部实体“乘客”输出:1.合格订单,去处:处理逻辑“确定订票”2.不及格订单,去处:外部实体“乘客”功能描述:……(略)图2.12数据处理字典定义1.作为分析阶段的重要工具;2.数据元素的控制信息非常有用;即可估计改变一个数据将产生的影响,并且能对所有受影响的程序或模块做出相应的改变。3.有助于开发数据库。2.5.3数据字典的用途实现数据字典:1)程序处理;2)卡片式人工书写;每张卡片应包含的信息:名字、别名、描述、定义、位置。2.5.4数据字典的实现2.6成本/效益分析