软件开发的关键性问题.ppt
《软件开发的关键性问题.ppt》由会员分享,可在线阅读,更多相关《软件开发的关键性问题.ppt(44页珍藏版)》请在三一文库上搜索。
1、软件开发过程的关键因素,1、软件的质量要素 2、软件开发的困惑 3、软件开发的方法 4、管理信息系统的特点 5、管理信息系统分析与设计的方法 6、数据库设计方法,软件的质量要素,可维护性:软件必须能够不断进化以满足用户的需求变 化,这是软件产品最根本的要素,因为工作环境是不断变化的,软件也必然要跟着变化。 可依赖性:包括可靠性、保密性和安全性。可靠的软件在系统失败的情况下,也不会导致人员伤亡和经济损失。 有效性:软件不要浪费内存和CPU等系统资源,因而有效性应包括响应时间、处理时间、内存利用率等。 可用性:软件必须具备可用性。必须是用户不用特殊地努力就能操作。那么,软件必须提供用户界面和充分地
2、说明文档。, 软件的发展经历了这么久,却依然存在如下问题:,一个软件的完成为什么总需要这么长的时间?,软件开发存在的问题,为什么我们的开发成本总据高不下?,为什么我们不能在把软件交付给用户之前发现软件中所有的错误?,?,Case,美国IBM公司在1963年至1966年开发的IBM360机的操作系统。这一项目花了5000人一年的工作量,最多时有1000人投入开发工作,写出了近100万行源程序。据统计,这个操作系统每次发行的新版本都是从前一版本中找出1000个程序错误而修正的结果。 这个项目的负责人F. D. Brooks事后总结了他在组织开发过程中的沉痛教训时说:“正像一只逃亡的野兽落到泥潭中做
3、垂死的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。程序设计工作正像这样一个泥潭,一批批程序员被迫在泥潭中拼命挣扎,谁也没有料到问题竟会陷入这样的困境”。 IBM360操作系统的历史教训成为软件开发项目的典型事例为人们所记取。,问题出在哪里?, 项目没有被很好地理解;计划不周,最终导致进度拖延。 没有充分的文档资料(documentation) 软件可靠性(reliability)缺少度量的标准,质量无法保证。如何保证软件产品的质量,是非常复杂困难的问题,特别对于规模庞大的软件。 软件难以维护(maintainability) 不易升级(evolvability),问题出在哪里?,软件开发
4、的困惑,如何开发软件,怎样满足对软件的日益增长的需求。 如何维护数量不断膨胀的已有软件 产生困惑的原因 软件本身的原因 不恰当的软件开发和维护方法,软件本身的特点,软件是一种逻辑实体,具有抽象性。 软件的生产与硬件不同,软件一旦研制开发成功,其生产过程变成简单的复制过程。 软件对硬件和环境有着不同程度的依赖性。 软件生产至今尚未摆脱手工方式,多数软件是自定义的。 软件本身是复杂的,成本相当昂贵。 软件的开发往往涉及到其他领域、各行各业的专门知识,而且还往往与社会、人的组织和管理因素相关,这对软件工程师提出了很高的要求。所以其开发和维护必然困难。,不恰当的软件开发和维护方法,忽视软件开发前期的调
5、研和分析工作,仓促上阵,认为软件开发就是写程序并设法使之运行。这如同不打好地基就盖高楼一样,最 终必垮台. 没有统一的、规范的 方法论指导,文档资 料不齐全。 忽视人与人的交流 轻视测试和维护。,怎么办呢?,软件工程定义,总之,软件工程可以定义为为了解决软件危机,采用工程化的概念、原理和技术、方法来开发和维护软件,把经过时间考验证明是正确的管理技术和当前最好的技术方法结合起来指导软件开发和维护的工程学科。,工具,方法,过程,质量焦点,软件工程的要素,软件工程目标,软件工程的目标是从根本上解决软件危机,采用工程化的管理和技术最终产生正确的、可靠的、高效的软件产品。 付出较少的开发成本 达到要求的
6、软件功能 取得较好的软件性能 开发的软件易于移植 需要较低的维护费用 较高的开发效率,软件生存期(开发)模型,软件开发模型直观地反映了从软件需求定义到软件交付使用后报废为止,在整个生命期中的系统开发、运行、维护所实施的全部过程和活动。 正如同任何事物一样,软件也有一个孕育、诞生、成长、 成熟、衰亡的生存过程。我们称其为软件生存周期。 一般地,软件生存期六个步骤: (问题定义和可行性研究、制定计划、需求分析、设计(总体设计和详细设计)、程序编码、测试及运行维护,问题定义,关键问题是:要解决的问题是什么? 系统分析员应该提出关于问题性质、工程目标和工程规模的书面报告,且需要得到用户对该报告的认可,
7、可行性研究,关键问题是:上一个阶段所确定的问题是否有行得通的解决办法? 在进一步概括了用户的需求后,提出若干种可能的解决方案,对每种方案都从技术、经济、社会因素等方面分析可行性。 制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查。,需求分析,关键问题:目标系统必须做什么? 对待开发软件提出的需求进行分析并给出详细的定义。 编写软件需求说明书或系统功能说明书。 提交管理机构评审。,结构化分析方法 SA,结构化分析(Structured Analysis,SA)是由Douglas Ross 提出的,由DeMarco进行推广的。 采用自顶向下、逐层进行功能分解的系统分析方法来定义系
8、统的需求。 适用于分析大型的数据处理系统。 方法的特点:利用数据流图(Data Flow Diagram,DFD)来帮助理解问题,对问题进行分析。 一般工具:DFD、数据字典、结构化英语、判定表、判定树等。,结构化分析方法,功能分析工具:DFD、DD、结构化英语、判定表和判定树。 行为分析工具:状态迁移图、Petri网等。 数据分析工具:ER图或者EER(扩展ER)图。 SA主要针对数据处理领域,因此,系统分析的侧重点在于功能分析和数据分析,而行为分析使用得较少。,设计,总体设计 “如何解决问题” 可以列出多种解决方案进行比较 把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 开发 关键性 问题
链接地址:https://www.31doc.com/p-3499662.html