软件工程主要内容

上传人:第*** 文档编号:58133325 上传时间:2018-10-27 格式:PDF 页数:36 大小:450.38KB
返回 下载 相关 举报
软件工程主要内容_第1页
第1页 / 共36页
软件工程主要内容_第2页
第2页 / 共36页
软件工程主要内容_第3页
第3页 / 共36页
软件工程主要内容_第4页
第4页 / 共36页
软件工程主要内容_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《软件工程主要内容》由会员分享,可在线阅读,更多相关《软件工程主要内容(36页珍藏版)》请在金锄头文库上搜索。

1、第一章第一章 软件工程学概述软件工程学概述1 软件危机 (1)软件危机的介绍 1)软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题。 2)软件危机的两个主要问题:如何开发软件,以满足对软件日益增长的需求; 如何维护数量不断膨胀的已有软件。 3)软件危机的典型表现: (1) 对软件开发成本和进度的估计常常很不准确。 (2) 用户对“已完成的”软件系统不满意的现象经常发生。 (3) 软件产品的质量往往靠不住。 (4) 软件常常是不可维护的。 (5) 软件通常没有适当的文档资料。 (6) 软件成本在计算机系统总成本中所占的比例逐年上升。 (7) 软件开发生产率提高的速度,远远跟不上计算

2、机应用迅速普及深入的趋 势。 (2)产生软件危机的原因 软件本身特点: 1) 缺乏可见性,在运行之前往往难以衡量,质量也难以评价 2) 不会因为长期使用而用坏,软件维护通常意味着修正或修改原来的设计,较 难维护。 3) 规模庞大, 需分工合作, 如何保证每个人的工作合在一起是极端复杂的问题。 软件开发与维护的方法不正确 产生软件危机的原因可归结为两个重要的方面:软件生产本身存在的复杂性; 软件开发所使用的方法和技术。软件生命周期:一个软件从定义、开发、使用和维护直到最早被废弃。 软件产品必须由一个完整的配置组成(程序、文档、数据) (3)消除软件危机的途径 1) 正确认识计算机软件 2) 认识

3、到软件开发是一个协同配合、共同完成的工程项目并吸取经验。 3) 推广使用已总结的开发软件成功的技术和方法 4) 开发使用更好的软件工具 2 软件工程 (1)软件工程的介绍 软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原 理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和 当前能够得到的最好的技术方法结合起来,以经济地、高效的开发出高质量的 软件并有效地维护它,这就是软件工程。 本质特性: 1) 软件工程关注于大型程序的构造 2) 软件工程的中心课题是控制复杂性 3) 软件经常变化 4) 开发软件的效率非常重要5) 和谐地合作是开发软件的关键 6) 软件必

4、须有效地支持它的用户 7) 在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的 人创造产品。 (2)软件工程的基本原理 1) 用分阶段的生命周期计划严格管理 2) 坚持进行阶段评审 3) 实行严格的产品控制 4) 采用现代程序设计技术 5) 结果应能清楚地审查 6) 开发小组的人员应该少而精 7) 承认不断改进软件工程实践的必要性 (3)软件工程方法学 在软件生命周期全过程中使用的一整套技术方法的集合称为方法学。 软件工程方法学,三要素:方法、工具和过程。 1) 传统方法学 2) 面向对象方法学 3 软件生命周期:定义、开发、维护 (1)问题定义 (2)可行性研究 (3)需求分析

5、 (4)总体设计 (5)详细设计 (6)编码和单元测试 (7)综合测试 (8)软件维护 4 软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任 务的工作步骤。通常使用生命周期模型简洁的描述软件过程。 (1)瀑布模型 1)各个阶段的顺序性和依赖性; 2)划分逻辑设计与物理设计,尽可能推迟程序的物理实现; 3)每个阶段必须完成规定的文档,对其中问题通过复审及早发现,及早解决。(2)快速还原模型 (3)增量模型 (1) 从部分需求出发,先建立一个不完全的系统,通过测试运行该系统取 得经验和信息反馈,加深对软件需求的理解,进一步使系统扩充和完善。如此反复, 直至软件人员和用户

6、对所设计完成的软件系统满意为止。 (2) 在渐增型开发下的软件是随软件开发的过程而逐渐形成的。 (3) 渐增型开发方法适合于知识型软件的开发, 设计系统时对用户需求的 认识开始不是很清楚的,需要在开发过程中不断认识、不断获得新的知识去丰富和 完善系统。多数研究性质的试验软件,一般采用此方法。(4)螺旋模型(5)喷泉模型 (6)Rational 统一过程 (7)敏捷过程与极限编程 (8)微软过程第二章第二章 可行性研究可行性研究可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。 问题定义的任务:将用户提出的要求具体化、定量化;确定研制系统的范围,明确研制的边 界。 问题定

7、义阶段的工作: 1) 通过调查研究,了解系统需求; 2) 确定系统的功能需求、性能需求、可靠性需求、安全及保密性、资源、开发费用及开发 进度等的需求; 3) 问题定义阶段的产品-系统目标与范围说明书。1.可行性研究的任务 (1)技术可行性 (2)经济可行性 (3)操作可行性 2.可行性研究的过程 (1)复查系统规模和目标 (2)研究目前正在使用的系统 (3)导出新系统的高层逻辑模型 (4)进一步定义问题 (5)导出和评价供选择的解法 (6)推荐行动方针 (7)草拟开发计划 (8)书写文档提交审查 3.系统流程图 系统流程图是描述物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘 系统

8、里的每个部件(程序、文件、数据库、表格、人工过程等) 。系统流程图表达的是 部件的信息流程,而不表示对信息进行加工处理的控制过程。 4.数据流图 DFD是一种图形化技术, 它描绘信息流和数据从输入移动到输出的过程中所经受的变换。 与程序流程图不同,DFD 不表示程序的控制结构,只描述数据的流动 DFD 分成多层(子图、父图概念)表示, 从而逐步展开数据流和功能的细节。绘制数据流图步骤 (1)确定所开发的系统的外部项(外部实体) ,即系统的数据来源和去处。 (2)确定整个系统的输出数据流和输入数据流,把系统作为一个加工环节,画出关联 图。 (3)确定系统的主要信息处理功能,按此将整个系统分解成几

9、个加工环节(子系统) 确定每个加工的输出与输入数据流以及与这些加工有关的数据存储。 (4)根据自顶向下,逐层分解的原则,对上层图中全部或部分加工环节进行分解。 (5)重复步骤(4) ,直到逐层分解结束。 (6)对图进行检查和合理布局,主要检查分解是否恰当、彻底,DFD 中各层是否有 遗漏、重复、冲突之处,各层 DFD 及同层 DFD 之间关系是否争取及命名、编号是否确切、合理等,对错误与不当之处进行修改。 (7)和用户进行交流,在用户完全理解数据图的内容的基础上征求用户的意见。注意事项: (1)不要把控制流作为数据流 (2)不要标出激发条件 (3)数据流必须要么从某个加工流出、要么流入某个加工

10、,而不能直接从外部项流数据流必须要么从某个加工流出、要么流入某个加工,而不能直接从外部项流 向数据存储等等。向数据存储等等。5.数据字典(对数据的定义) 数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集 合。 (1)数据字典的内容 数据流、数据流分量(数据元素) 、数据存储、处理 数据字典要对数据流图中出现的所有名字(数据流,加工,文件)进行定义。 数据字典的条目由三大类组成,分别是:数据流条目、数据项条目、文件条目、 加工条目(小说明) 。 (2)定义数据的方法 + :和,连接两个分量 = :等价于 :或,用|隔开分量 :重复花括号内的分量 0字母或数字7 表示 8

11、 位字符串 () :可选,即可有可无 (3)数据字典的用途 (4)数据字典的实现 6.成本/效益分析 (1)成本估计 1) 代码行技术 2) 任务分解技术 3) 自动估计成本技术 (2)成本/效益分析方法 1) 货币时间价值 F=P(1+i)n 次方 2) 投资回收期 3) 纯收入 4) 投资回收率第三章第三章需求分析需求分析 1.1)需求分析目的需求分析目的: 可行性分析研究阶段已经粗略的描述了用户的需求, 甚至还提出了一些可行的方案, 但 是,许多细节被忽略了,在最终目标系统中是不能忽略、遗漏任何一个微小细节的,所以, 可行性研究不能代替需求分析。 需求分析的任务还不是确定系统怎样完成它的

12、工作, 而仅仅是确定系统必须完成哪些工 作,也就是对目标提出完整、准确、清晰、具体的要求。 通过需求分析,明确用户对目标软件系统在功能、性能、行为、设计约束等方面的期通过需求分析,明确用户对目标软件系统在功能、性能、行为、设计约束等方面的期 望,回答软件系统望,回答软件系统“必须做什么必须做什么” 。 开发人员准确的理解用户的要求, 进行细致的调查分析, 讲用户形式的需求陈述转化为 完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。2)需求分析的方法: 需求分析方法由对软件的数据域和功能域的系统分析过程及其表示方法组成, 它定义了 表示系统逻辑视图和物理视图的方式,大多数的需求分析方

13、法是由数据驱动的,也就是说, 这些方法提供了一种表示数据域的机制,分析员根据这种表示,确定软件功能及其特性,最 终建立一个待开发软件的抽象模型,即目标系统的逻辑模型。2.需求分析的任务 问题识别、分析与综合导出软件逻辑模型、编写文档 它的基本任务是准确地回答“系统必须做什么?”这个问题。需求分析所要做的工作是 深入描述软件的共能和性能, 确定软件设计的限制和软件同其它系统元素的接口细节, 定义 软件的其它有效性需求。 需求分析的任务不是确定系统如何完成它的工作, 而是确定系统必 须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。其实现步骤如下 图所示:(1)(1) 确定对系统的

14、综合要求确定对系统的综合要求 系统功能需求 系统性能需求 可靠性和可用性需求、 错处理需求 接口需求、约束 逆向需求 将来可能提出的需求 (2) 分析系统的数据需求 就是在理解当前系统“怎样做”的基础上,抽取其“做什么”的本质,明确目标系统 要“做什么” ,可以导出系统的详细的逻辑模型。具体做法:首先确定目标系统与当前系统 的逻辑差别;然后将变化部分看作是新的处理步骤,对功能图(一般为数据流图)及对象图 进行调整;最后有外及里对变化的部分进行分析,推断其结构,获得目标系统的逻辑模型。 通常用数据流图、数字字典和主要的处理算法描述这个逻辑模型。 分析系统的数据要求通常采用建立数据模型的方法, 常

15、常利用图形工具辅助描绘数据结 构。 (3)导出系统的逻辑模型 (4)修正系统开发计划3.3.与用户沟通获取需求的方法与用户沟通获取需求的方法 (1)访谈 正式和非正式访谈、发调查表、情景分析 (2) 面向数据流自顶向下求精 结构化分析:使用数据流程图、数据字典、结构化英语、判定表和判定树等工具,来建立 一 种新的、称为结构化说明书的目标文档-需求规格说明书。 结构化分析法就是面向数据流自顶向下逐步求精进行需求分析的方法,把数据流和数据 存储定义到元素级 (3)简易的应用规格说明技术 (4)快速建立软件原型4分析建模与规格说明 (1)分析建模 数据模型(ER 图) 、功能模型(数据流图,描绘当数

16、据在软件系统中移动时被变换的逻 辑过程,指明系统具有的变换数据的功能) 、行为模型(状态图,指明了作为外部事件结果 的系统行为) (3) 软件需求规格说明书 为了消除用自然语言书写的软件需求规格说明书中可能存在的不一致、歧义、含糊、不 完整及抽象层次混乱等问题,用形式化方法描述用户对软件系统的需求。5.实体联系图(数据对象及数据对象之间的关系) (1)数据对象 一系列不同性质或属性的事务 (4) 属性 数据对象的性质 (5) 联系 数据对象彼此之间相互连接的方式称为联系,也称为关系6.数据规范化 为了减少数据冗余,避免出现插入或删除异常,简化修改数据的过程,通常需要把数据结构规范化。 第一范式 第二范式 第三范式7.状态转换图 通过描绘系统的状态及引起系统状态转换的事件, 来表示系统的行为。 状态图还指明了作 为特定事件的结果系统将做哪些动作。 (1)状态 (2)事件 (3)符号8.其他图 (1)层次方框图:用树形结构的一系列多层次的矩形描绘数据的层次结构。 (2)wanrnier 图 (3)IPO 图:输入、处理、输出图的简称。 9. 软件需求的验证:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 事务文书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号