您好,欢迎访问三七文档
LOGOEmail:liangsun@dlut.edu.cn大连理工大学计算机科学与技术学院1软件工程主讲:孙亮第一章课程回顾知识点回顾软件-计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及相关文档的完整集合程序-按事先设计的功能和性能要求编写的指令序列;程序是完成指定功能的一段特定语言代码数据-使程序能正常操纵信息的数据结构文档-与程序开发、维护和使用有关的图文资料软件危机-软件开发和维护过程中遇到的一系列严重问题2第一章课程回顾知识点回顾:软件工程-指研究软件生产的一门学科,也就是将完整的工程原理应用于经济地生产既可靠又能在实际机器上有效运行的软件软件工程-开发、运行、维护和修复软件的系统方法软件工程-将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中3第一章课程回顾软件工程-为了经济地获得可靠的和能在实际机器上高效运行的软件而确立和使用健全的工程原理(方法)软件工程方法学-通常指在软件生命周期全过程中使用的一整套技术的集合。软件工程方法学包括三个要素:方法、工具和过程软件生存期-软件产品或软件系统从设计、投入使用到被淘汰的全过程。一般说来,软件生存期由软件定义、软件开发和软件维护三个时期组成,每个时期又可进一步划分成若干个阶段4第一章课程回顾软件危机的典型表现1.对软件开发成本和进度的估计常常不很准确2.用户对“已完成的”软件系统不满意的现象经常发生3.软件产品的质量往往靠不住4.软件常常是不可维护的5.软件通常没有适当的文档资料6.软件成本在计算机系统中的比例逐年增加7.软件开发生产率提高的速度远远跟不上计算机应用普及速度5第一章课程回顾软件工程的本质特性1.软件工程关注于大型程序的构造2.软件工程的中心课题是控制复杂性3.软件经常变化4.开发软件的效率非常重要5.和谐地合作是开发软件的关键6.软件必须有效地支持它的用户7.在软件工程领域中是由具有一种文化背景的人替有另一种文化背景的人创造产品6第一章课程回顾软件工程中的7条基本原理1.用分阶段的生命周期计划严格管理2.坚持进行阶段评审3.实行严格的产品控制4.采用现代程序设计技术5.结果应能够清楚地审查6.开发小组的人员应该少而精7.承认不断改进软件工程实践的必要性7第一章课程回顾常用的过程模型生命周期模型规定了把生命周期划分成几个阶段及各阶段的执行顺序,因此,也称过程模型常用的过程模型有瀑布模型、快速原型模型、增量模型和螺旋模型等8第2章可行性研究2.1可行性研究的任务2.2可行性研究过程2.3系统流程图2.4数据流图2.5数据字典2.6成本/效益分析2.7可行性研究报告书写92.1可行性研究的任务可行性研究的任务是用最小的代价,在尽可能短的时间内确定问题是否能够解决首先进一步分析和澄清问题意义分析员应该导出系统的逻辑模型从逻辑模型出发,探索出若干种可供选择的主要解法(即系统实现方案)最后仔细研究每种解法的可行性可行性研究的实质是一次大大压缩简化的系统分析和设计过程102.1可行性研究的任务实例讲评:两个整数乘法11解法1unsigneda,b,c;c=a*b;可能会存在溢出问题!解法2unsigneda,b;intc;c=a*b;不会存在溢出问题!解法3unsigneda,b;longintc;c=a*b;不会存在溢出问题!但不合理2.1可行性研究的任务可行性应该从下述几方面进行:(1)技术可行性:指使用现有的技术能否完成这个项目,度量一个特定技术信息系统解决方案的实用性及技术资源的可用性•开发风险分析:最新技术成熟度等•资源分析:人力消耗、财力消耗、时间消耗等•相关技术的发展(现有技术能否实现新系统,技术难点、建议采用技术的先进性)122.1可行性研究的任务(2)经济可行性:指通过对软件开发项目进行成本/效益估计,以确定软件系统可能带来的经济效益能否超过研制和维护此系统所需的费用。度量系统解决方案的性能价格比。•成本/效益分析–有形成本、效益–无形成本、效益•价值和成本的关系–质量与价值、成本的关系–价值/成本的均衡132.1可行性研究的任务(3)操作可行性•用户使用可行性:公共汽车非接触式感应卡用输入密码或指纹来代替•时间进度可行性•组织和文化上的可行性(4)社会因素的考虑:软件开发是否会侵犯他人、集体或国家利益实质:一次简化的、高层次的、抽象的分析和设计过程!142.1可行性研究的任务实例讲评:“求一元二次方程的解”可行性问题定义:这是一个简单的数学问题(什么问题),系统要求不高,整系数方程(怎样要求),用于初中教学(哪里应用),解法简单(结论如何)技术上分析:能,简单•此方程可以根据判别是b^2-4ac的值来确定方程根的情况,即b^2-4ac0时又两个不等实根,b^2-4ac=0时有两个相等的实根,b^2-4ac0时有一对共轭复根•a,b,c的取值(unsigned,int,longint,float)类型影响求解过程和求解算法152.1可行性研究的任务经济上分析:略社会效益上分析:略操作上:键盘、鼠标、语音提示、触摸屏等162.1可行性研究的任务实例讲评:系统开发和每年运行费用举例系统开发费用(1次)2名系统分析员(450小时/名,45美元/小时)$40,5005名系统开发人员(275小时/名,36美元/小时)$49,5001名数据库管理员(30小时/名,42美元/小时)$1,2602名技术写作者(120小时/名,25美元/小时)$60001名秘书(160小时/名,15美元/小时)$2,4001名数据通讯专家(60小时/名,42美元/小时)$2,5202名在转换期间数据输入人员(40小时/名,12美元/小时)$960合计:$103,140172.培训•三天开发人员内部培训课程$700•30个用户,三天的内部培训课程$10,0003.物资•复印$500•磁盘、纸张等消耗品$650182.1可行性研究的任务•购买硬件、软件:–20台工作站Windows软件:$1,000–20台工作站内存升级$8,000–网络软件$17,500–20台工作站办公软件产品$20,000系统开发总费用$161,670192.1可行性研究的任务4年运行费用(每年)人员:维护程序员/分析员(250小时/年,42美元/小时)$10,500网络管理员(300小时/年,50美元/小时)$15,000购买硬件、软件升级硬件$5,000软件$6,000物资和杂项$3,500每年总运行费用$40,000202.1可行性研究的任务可行性研究的任务(1)明确目的•确定问题是否能够解决•能否值得解决(2)确定内容•问题定义:明确系统目标、规模和约束条件•导出系统逻辑模型:系统流程图、数据流图等(3)提供可选解决方案212.1可行性研究的任务(4)可行性(内涵)分析:技术/经济/操作/维护分析等;(5)每个方案的粗略进度(6)方案选择建议可行性研究成本:5%~10%222.2可行性研究的过程(1)复查系统规模和目标定义问题复查定义阶段的报告数,清晰限制和约束:目标、规模、全部约束(2)研究目前正在使用的系统[1]分析已有或相关系统技术和应用现状:找问题/总体上[2]分析系统的技术文档和使用手册:了解问题、挖掘问题/微观上232.2可行性研究过程[3]实地考察现有系统:what/why/how[4]重点在于“能做什么”,而不是“如何做什么”。即:只关心高层系统流程图[5]避免花费过多时间分析现有系统[6]关注约束条件(3)导出新系统的高层逻辑模型现有的物理系统现有系统的逻辑模型目标系统的逻辑模型新的物理系统242.2可行性研究过程(4)重新定义问题[1]以数据流图、数据字典为基础[2]需要得到用户的认可,避免疏漏、误解[3]这是一个循环过程,直到完全符合系统要求(5)导出和评价供选择的方案[1]从技术角度解决的不同方案:eg1:控件和程序:eg2:中断与查询252.2可行性研究过程[2]从操作方面的可行性:管理习惯、行为习惯、人员素质等;[3]从经济方面的可行性:开发成本/运行成本/开支变化等[4]确定进度表(6)推荐方案和行动方针分析员给出结论给出理由262.2可行性研究过程(7)草拟开发计划[1]进度表[2]人力资源:系统分析员、程序员、资料员等;[3]设备资源等(8)书写文档、提交审查272.3系统流程图系统流程图是描绘物理系统的传统工具,它的基本思想是用图形符号以黑盒子的形式描述系统里面的每一个部件(程序、文件、数据库、表格、人工过程等)尽管系统流程图使用的某些符号和程序流程图所用的符号相同,但系统流程图表达的信息再系统中各个部件之间流动的情况,而不是对信息进行加工处理的控制过程282.3系统流程图29实例讲评程序流程图实例2.3系统流程图302.3系统流程图312.3系统流程图322.3系统流程图33实例讲评:仓库订货管理系统之系统流程图2.3系统流程图实例讲评7:《口算高手》之系统流程图342.4数据流图数据流图英文DataFlowDiagram,简称DFDDFD是一种描述逻辑模型的图形工具,表示数据再系统内的变化图中没有任何具体的物理元素,只是描绘信息再系统中流动和处理的情况DFD从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程352.4数据流图数据流图中的符号/图形元素正方形:源点或终点圆角矩形:处理开口矩形:数据存储箭头:流动方向362.4数据流图数据流图的基本图形元素(1)数据流:是一组数据。再数据流图中数据流用带箭头的线表示,在其线旁标注数据流名(2)加工:是对数据流执行的某种操作或变换。在数据流图中加工用圆圈表示,在圆圈内写上加工名。(3)文件:是按照某种规则组织起来的、长度不限的数据。在数据流图中文件用一直线表示,在线段旁注上文件名(4)数据流的源点和终点:在数据流图中用方框表示,在框内写上相应的名称372.4数据流图由外向里画数据流图的步骤/画法(1)确定系统的输入输出•由于系统究竟包括哪些功能可能一时难于弄清楚,可使范围尽量大一些,把可能有的内容全部都包括进去。•应该想用户了解“系统从外界接受什么数据”,“系统向外界送出什么数据”等信息•根据用户的答复画出数据流图的外围382.4数据流图(2)由外向里画系统的顶层数据流图首先,将系统的输入数据和输出数据用一连串的加工连接起来在数据流的值发生变化的地方就是一个加工给各个加工命名然后,给加工之间的数据命名最后,给文件命名392.4数据流图(3)自顶向下逐层分解,绘出分层数据流图•对于大型的系统,为了控制复杂性,便于理解,需要采用自顶向下逐层分解的方法进行,即用分层的方法将一个数据流图分解成几个数据流图来分别表示DFD可以用来表示一个系统或软件在任何层次上的抽象。较大型软件系统DFD分成多层(子图,父图概念),可以表示数据流和功能的进一步的细节402.4数据流图实例讲评:仓库订货系统数据流图实例412.4数据流图422.4数据流图432.4数据流图442.4数据流图452.4数据流图实例讲评:《口算高手》的输入/输出462.4数据流图实例讲评:《口算高手》顶层数据流图472.4数据流图实例讲评:《客房管理》输入/输出482.4数据流图实例讲评:《客房管理系统》局部DFD492.4数据流图绘制数据流图的注意事项1.合理细化2.分层细化时必须保持信息的连续性3.注意处理的编号和适当地命名4.画数据流而不是控制流5.先考虑稳定状态6.忽略琐碎的枝节502.4数据流图7.随时准备重画8.注意程序流程图与数据流图的区别。数据流图描绘所有可能,而不应该描绘出现某个数据流的条件9.数据流图基本要点是要回答“作什么”,而不是“怎样作”512.4数据流图10.命名:直接影响到数据流图的可理解性•[
本文标题:第2章可行性研究
链接地址:https://www.777doc.com/doc-613748 .html