软件工程讲义(南大)

上传人:ji****n 文档编号:54954515 上传时间:2018-09-22 格式:PPT 页数:235 大小:714KB
返回 下载 相关 举报
软件工程讲义(南大)_第1页
第1页 / 共235页
软件工程讲义(南大)_第2页
第2页 / 共235页
软件工程讲义(南大)_第3页
第3页 / 共235页
软件工程讲义(南大)_第4页
第4页 / 共235页
软件工程讲义(南大)_第5页
第5页 / 共235页
点击查看更多>>
资源描述

《软件工程讲义(南大)》由会员分享,可在线阅读,更多相关《软件工程讲义(南大)(235页珍藏版)》请在金锄头文库上搜索。

1、软 件 工 程,李 宣 东南京大学计算机科学与技术系,主要内容,传统软件工程方法面向对象软件工程(统一建模语言UML)软件过程、管理与质量,参考文献,软件工程:实践者的研究方法Roger S. Pressman著黄柏素 梅宏 译机械工业出版社 可视化面向对象建模技术刘超 张莉 编著北京航空航天大学出版社 http:/,传统软件工程方法,问题定义 需求分析 概要设计 详细设计 编 码 测 试 维 护,基本概念,软件计算机系统中的程序及其有关文件。 程序计算任务中的处理对象和处理规则的描述。 文件为了便于了解程序所需的资料说明。,基本概念,软件的作用用户与硬件的接口 计算机系统的指挥者 计算机系统

2、结构设计的重要依据,基本概念,软件的发展过程 第一阶段:从第一台计算机上的第一个程序的出现到实用的高级程序设计语言出现之前(1946-1956); 第二阶段:从实用的高级程序设计语言出现到软件工程出现之前(1956-1968); 第三阶段:软件工程(1968- )。,基本概念,软件的分类:系统软件 支撑软件 应用软件,基本概念,软件危机 供求关系失调 开发费用失控,进度拖延 可靠性差 难以维护,基本概念,产生软件危机的原因(软件本身的特点) 软件开发进展情况较难衡量 软件开发质量难以评价 管理和控制软件开发过程相当困难 软件没有“磨损”概念,软件维护通常意味着该进或修改原来的设计,基本概念,产

3、生软件危机的原因(软件开发人员的错误观点) “有一个对目标的概括描述就足以着手编写程序了,许多细节可以在以后再补充” “所谓软件开发就是编写程序并设法使它运行” “用户对软件的要求不断变化,然而软件是柔软而灵活的,可以轻易地改动” “软件投入生产性运行以后需要的维护工作并不多,而且维护是一件很容易做的简单工作”,基本概念,软件工程 应用计算机科学、数学及管理科学等原理,以工程化原则、方法解决软件问题的工程。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、降低成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。,基本概念,软件工程的基本内容: 软件设计方法论 软件

4、工具 软件工程标准和规范 软件工程管理 软件工程理论,基本概念,软件工程的基本原理: 严格按照计划进行管理 坚持进行阶段评审 实行严格的产品控制 采用现代的程序技术 结果要能清晰地审计 开发小组人员素质要好,数量不宜多 要承认不断改善软件工程实践的必要性,基本概念,软件生存期(过程)模型:软件生存期是软件产品或系统一系列相关活动的全周期。从形成概念开始,经过研制,交付使用,在使用中不断增补修订,直到最后被淘汰,让位于新的软件产品的过程。对软件生存期的不同划分,形成了不同的软件生存期模型。,基本概念,瀑布式软件生存期模型强调阶段的划分 及其顺序性、各阶段工作 及其文档的完备性,是一种严格线性的、

5、 按阶段顺序的、逐步细化的开发模式。,定义,分析,设计,编码,测试,维护,基本概念,瀑布式软件生存期模型把软件开发过程划分成若干阶段,每个阶段的任务相对独立,便于不同人员分工协作,从而降低了整个软件开发工程的困难程度。在软件生存期的每个阶段都采用科学的管理技术和良好的方法与技术,而且每个阶段结束之前,都从技术和管理两个角度进行严格的审查,经确认之后才开始下一阶段的工作。,基本概念,瀑布式模型的特点: 结构简单明了;历史较长、应用面广泛、为广大软件工作者所熟悉;已有与之配套的一组十分成熟的开发方法和丰富的支撑工具。 确定了需求分析的绝对重要性,但是在实践中要想获得完善的需求说明是非常困难的;反馈

6、信息慢。,基本概念,软件质量要素: 正确性:软件产品准确执行软件规格说明中所规定的能力。 健壮性:在异常条件下软件仍能运行的能力。 可靠性:软件在给定的时间内和规定的环境条件下,按规格说明的规定成功地运行的概率。可靠性理解为正确性和健壮性之和。,问题定义,问题定义的关键任务是确切地定义用户要求解决的问题,也就是确定问题的性质、工程的目标和规模。可行性研究 对软件进行分析与估算 确定软件作用范围,问题定义,可行性研究: 经济可行性 技术可行性 法律可行性 不同的方案,问题定义,对软件进行分析与估算: 确定软件的范围 估算完成软件开发任务所需的资源 估算软件的成本 估算和安排软件开发项目的进度,问

7、题定义,确定软件的作用范围:详细描述软件的任务和具体的要求,抱括软件的功能、性能、接口和可靠性等四个方面的内容。,问题定义,软件计划: 范围(研制的目标,主要功能,其他特性,开发概况) 资源(人力资源、硬件资源、软件资源、可用性资源窗口) 成本 进度安排,需求分析,软件需求分析是软件生存期的一个重要阶段,是软件开发项目得以成功的基础。其最根本的任务是确定为了满足用户的需要软件系统必须做什么。 软件需求分析是一个不断发现和决定的过程,在此过程中,软件开发者和软件申请者(用户)同样起着重要的作用。 在需求分析与说明过程中,需要大量交换意见,其间充满着传错信息和发生误解的可能性:“我知道你相信你明白

8、了你认为我所说的是什么,但是我不能肯定你是否意识到你听到的并不是我所指的意思 ”。,需求分析,软件需求分析实现以下几个目标: 给出软件系统的数据流程图与数据结构,构造一个完全的系统逻辑模型; 提出详细的功能说明确定设计限定条件,规定性能要求; 密切与用户的联系,使用户明确自己的任务,以便实现上述两项目标。,需求分析,软件需求分析包括的工作: 问题的认识需求分析人员通过频繁与用户联系,充分理解用户提出的每一个功能与性能要求,从软件系统特征、软件开发全过程以及软件计划给出的资源和时间约束,来确定软件开发的总策略。 评价与综合需求分析人员必须求得数据的流程和数据结构,评价优缺点;结合用户要求,修改现

9、行的系统,提出新系统的功能,加以细化;提出软件的约束条件、响应时间、存储条件等。,需求分析,软件需求分析包括的工作: 建立需求说明书软件需求说明书包含软件功能、性能、接口、有效性和逻辑模型的描述。为了证实软件能否被成功实现就要规定相应的检验标准,这些标准在软件开发期间将作为测试的依据。 复审由软件开发人员和用户共同对需求说明书进行严格的审查。,需求分析,软件需求分析人员应该具备的特征: 善于领会一些抽象的概念,重新整理使之成为各种逻辑成分,并根据各种逻辑成分综合出问题的解决办法; 善于从各种相互冲突或混淆的原始资料中吸取恰当的论据; 能够理解用户的环境及领域知识;,需求分析,软件需求分析人员应

10、该具备的特征: 具备把系统的硬件和软件部分应用于用户环境的能力; 具备良好的书面和口头形式进行讨论和交换意见的能力; 具有“既能看到树木,又能看到森林”的能力。,需求分析,基本系统模型: 软件系统的全部功能被表示成一个单一的信息变换过程:,软件系统,输入1,输入2,输入n,输出n,输出2,输出1,. . .,. . .,需求分析,需求分析,信息,信息流程,信息结构,出来的是什么 进去的是什么 中间如何变换,单个元件是什么 怎样把它们安置在一起 一组元件合在一起分类 各组元件之间的关系,需求分析,结构化分析方法(SA) SA方法采用“抽象”和“分解”两个基本手段,用抽象模型的概念,按照软件内部数

11、据传递、变换关系,由顶向下逐层分解,直到找到满足功能需要的所有可实现的软件元素为止。 SA方法采用“分解”的方式来理解一个复杂系统,“分解”需要有描述手段,数据流程图就是作为描述信息流程和分解的手段而引入的。,需求分析,数据流程图:表示外部实体,代表数据源和数据池。表示加工,代表接收输入,经过变换,继而产生输出的处理过程。表示数据流,代表数据的流向和路径。表示数据存储,代表系统加工的数据所存储的地方。,需求分析,数据流程图的特点: 可以表示任何一个系统(人工的、自动的、或混合的)中的数据流程; 每个表示加工的圆圈可能需要进一步分解以求得对问题的全面理解; 着重强调的是数据流程而不是控制流程。,

12、需求分析,例:病员监视系统,病员 监视 系统,病员,护士,护士,病员病历,基本模型,病情信号,报告,警告信号,病历数据,请求提出报告,需求分析,本地 监视,中央 监视,报告 产生,更新 病历,护士,护士,病员,病员病历,病员的病情界限,警告信号,病员数据,请求报告,经过整理后的病员数据,病情信号,需求分析,分解 病情信号,整理病员 数据,检查是 否超出 界限,产生警告 信号,时钟,整理后的病员数据,日期时间,病员病情界限,体温,血压,脉搏,病员数据,警告信号,需求分析,推导数据流程图的简单准则: 第一层数据流程图应当是基本的系统模型; 应当仔细说明原始的输入/输出文件; 所有箭头和圆圈均应当加

13、上标注(使用有意义的名字); 必须保持信息的连续性; 每次只加工一个圆圈。,需求分析,数据字典 数据流程图中,所有的图形元素都进行了命名,所有名字的定义集中起来就构成一本数据字典。 数据字典最重要的用途是作为分析阶段的工具。在数据字典中建立的一组严密一致的定义有助于改进分析员和用户之间的通信,因此将消除许多可能的误解。对数据的这一系列严密一致的定义也有助于改进在不同的开发人员之间或者不同开发小组之间的通信。如果要求所有开发人员都根据公共的数据字典描述数据或设计模块,则能避免许多麻烦的接口问题。,需求分析,信息结构 信息结构是各个数据成分之间逻辑关系的一种表示方法。 数据结构决定信息的组织、存取

14、方法、结合性程度以及不同的处理方案。 典型的数据结构包括标量项、顺序向量、n维空间、链接表等。,需求分析,分层数据结构表示法:分层框图Warnier图,需求分析,分层框图 分层框图把信息用多层方框按照树形结构组织起来。在结构的顶层,用一个方框代表整个结构。下面各层由表示不同信息类别的方框组成,它们可以看成是上一层方框的子集。在该图的最低一层,每个框包含单独的数据实体。,需求分析,XX公司销售产品,计算机软件,计算机服务,计算机硬件,存储器,备件,处理机,应用,系统,软件服务,培训,操作系统,编译程序,工具,编辑 程序,测试驱 动程序,设计辅 助工具,. . .,. . .,.,.,. . .,

15、. .,. .,. .,. .,. . .,. .,. .,. .,需求分析,Warnier图 Warnier图把信息表示成一种树形数据结构。可以规定某些信息种类或信息量是重复性的,也可以说明在某一种类中信息是有条件出现的。,需求分析,计算机系统,系统软件,应用软件,操作系统(P1),编译程序(P2),工 具,编 辑(P3),测试驱动(P4),设计辅助(P5),需求分析,软件需求说明书 1. 概述 2. 信息描述 (1) 数据流程图 (2) 数据字典 (3) 数据结构 (4) 系统接口说明 (5) 内部接口,需求分析,软件需求说明书 3. 功能说明 (1) 功能 (2) 处理说明 (3) 设计

16、的限制 4. 检验标准 (1) 性能界限 (2) 测试种类 (3) 预期的软件响应 (4) 应考虑的特殊问题 5. 参考文献 6. 附录,需求分析,初步的用户手册当确定了人机交互作用的软件需求后,准备一份初步的用户手册是作为对所要求文件的补充往往是有用的,这种手册将起到两个作用:手册的准备迫使分析人员从用户的角度来看待软件,从而及早考虑接口方面的人机环境工程。用户可以审查一个明确描述人机接口的实际文件。,需求分析,软件需求说明的审查审查需求的一致性审查需求的现实性审查需求的完整性和有效性,需求分析,软件需求说明审查中的问题: 所规定的软件目标和任务与系统的目标和任务相符合吗? 与所有系统成分的重要接口都已被描述了吗? 研制项目的数据流程图、数据字典、数据结构充分确定了吗? 图表都清楚吗?每个图表在不加补充说明的情况下能被理解吗? 主要功能在规定的范围之内吗?每一种功能被充分说明了吗?,

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

当前位置:首页 > 中学教育 > 初中教育

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