L2(软件工程概论).ppt
《L2(软件工程概论).ppt》由会员分享,可在线阅读,更多相关《L2(软件工程概论).ppt(129页珍藏版)》请在课桌文档上搜索。
1、第二讲 软件工程概论,软件工程导论 1.概述,目的 利用正确的工程方法开发出成本低、可靠性好并在机器上能高效运行的软件。软件工程的概念,水利工程,建筑工程,机械工程,软件工程,传统工程,新兴工程,气象工程,生物工程,是把软件当作一种工业产品,要求“采用工程化的原理与方法对软件进行计划、开发和维护”。-于1968年 NATO 组织在德国召开的一次会议上提出。,软件:,software,soft+ware,软制品(软体),软件是计算机系统中与硬件相互依存的另一部分。它包括程序、数据及其相关文档的完整集合。,软件工程导论 1.概述,软件的特点软件是一种逻辑实体,而不是具体的物理实体软件的生产与硬件不
2、同在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题,磨合调整,磨损用坏,修改点,实际曲线,理想曲线,软件工程导论 1.概述,软件成本越来越高,软件技术的发展落后于需求,硬、软件成本比例的变化,年份,成本%,软件,硬件,软件工程导论 1.概述,软件工程学,软件开发技术,软件工程管理,软件开发方法学,软件工具,软件工程环境,软件工程管理学,软件经济学,程序,传统软件开发,现代软件开发,软件工程学的范畴与发展,软件工程导论 1.概述,特点:上一阶段的变换结果 是下一阶段的变换的 输入,相邻两个阶段 具有因果关系,紧密 相联。,需求分析,问题定义,可性行研究,计划时期,概要设计,详细设计,编
3、码,测 试,开发时期,运行与维护,运 行时 期,把软件从产生、发展到成熟、直至衰亡为止,软件生存周期模型(瀑布模型 Waterfall Model),软件生存周期,软件工程导论 1.概述,加工原型,原型:是指模拟某种产品的原始模型,快速分析和设计,建造原型,客户评价原型,1、原型系统仅包括未来系统的 主要功能,以及系统的重要 接口。,2、为了尽快向用户提供原型,开发原型系统时应尽量使用 能缩短开发周期的语言和工 具。,软件工程导论 1.概述,软件工程导论 2.问题的定义与可行性分析,Who,What,Why,3W,有用的软件,开始,问题定义,可性行研究,可行否?,项目实施计划,终止项目的建议,
4、结束,Y,N,明确该软件产品开发的任务,以及完成任务的价值,从而制定出完成任务的计划。-计划时期,软件工程导论 2.问题的定义与可行性分析,系统目标与规范说明书1、项目:教材销售系统2、问题:人工销售教材手续繁琐,容易出错3、项目目标:建立一个高效率、无差错的计算机教材销售系统4、项目范围:利用现有的计算机,软件开发费用不得超过2000元5、初步想法:建议在系统中增加对缺书的统计与采购功能6、可性行研究:建议进行大约10天的可性行研究,且研究费用不超过500元,目的:弄清楚用户要求计算机解决什么问题,任务:编写系统目标与规范说明书,软件工程导论 2.问题的定义与可行性分析,1、经济可行性:,进
5、行成本效益分析,评估项目的开发成本。,基于计算机系统的成本由四部分组成,其论证的焦点是:围绕着对系统开发的价值进行论证,软件工程导论 2.问题的定义与可行性分析,2、技术可行性:,对系统的性能、可靠性、可维护性以及生产率等方面的信息进行评价。,通过技术可行性的分析,将为新系统提交技术可行性评估。以指明为完成系统的功能和性能需要什么技术?需要哪些材料、方法、算法、或者过程等,可行性论证报告,2023/3/16,软件需求分析是软件开发早期的一个重要阶段。它在问题定义和可行性研究阶段之后进行。需求分析的基本任务是软件人员和用户一起完全弄清用户对系统的确切要求。这是关系到软件开发成败的关键步骤,也是整
6、个系统开发的基础。软件需求分析阶段要求用 需求规格说明书(SRS)来表达用户对系统的要求。规格说明书可用文字方式表示,也可用图形表示。,软件工程导论 3.软件需求分析,2023/3/16,一、确定目标系统的具体要求,1、确定系统的运行环境要求,2、系统的性能要求,3、系统功能,3.1 需求分析的任务,硬件环境和软件环境,确定目标系统具备的所有功能,软件工程导论 3.软件需求分析,2023/3/16,二、建立目标系统的逻辑模型,通常软件软件开发项目是要实现目标系统的物理模型,即 确定待开发软件系统的系统元素,并将功能和数据结构分配到 这些系统元素中。它是软件实现的基础。但是目标系统的物理模型是由
7、它的逻辑模型经实例化,即 具体到某个业务领域而得到的。与物理模型不同,逻辑模型忽 视机制和细节,只描述系统要完成的功能和要处理的数据。为此,该阶段的主要任务是,借助于当前系统的逻辑模型 导出目标系统的逻辑模型,也就是解决目标系统“做什么”的问 题。,软件工程导论 3.软件需求分析,2023/3/16,用户调查,具体模型,建立系统模型的工作流程,逻辑抽象,当前系统,逻辑模型,当前系统,计算机化,评审修改,正式模型,完善细节,目标系统,目标系统初始模型,经认可的,问题需求,系统模型,用户,1、建立目标系统逻辑模型的步骤,软件工程导论 3.软件需求分析,2023/3/16,图形工具,2、建立目标系统
8、逻辑模型的图形工具,软件工程导论 3.软件需求分析,2023/3/16,-学生购买教材的具体模型,请建立计算机售书系统的逻辑模型,-学生购买教材的 逻辑模型,软件工程导论 3.问题的定义与可行性分析,2023/3/16,-学生购买教材的 逻辑模型,完善目标系统并补充细节,的出目标系统的正式逻辑模型,软件工程导论 3.软件需求分析,2023/3/16,三、需求规格说明书与评审,软件需求说明书,-SRS(Software Requirement Specification),主要包括以下的内容:,SRS,数据流图,数据字典,软件工程导论 3.软件需求分析,2023/3/16,一、数据流图,3.1
9、面向数据流的方法,-DFD(Data Flow Diagram),软件工程导论 3.软件需求分析,2023/3/16,储户,检验,付款,登录,存折,帐卡,取款信息,办理取款手续的 DFD 图,检验不合格,现款,付款信息,取款单,存折,软件工程导论 3.软件需求分析,2023/3/16,1、数据流图中的主要图形元素,-转换数据流的处理过程,-可以是数据库文件或任何形式的数 据组织。箭头向内则表示写入文件 或查询文件,箭头向外则表示从文 件中读取数据或得到查询结果,数据转换,外部实体,-位于软件系统边界之外的信息生产者 或 消费者,数据流,-在转换之间有向流动的数据项或数据 集合,数据存储文件,软
10、件工程导论 3.软件需求分析,2023/3/16,-系统逻辑模型,软件工程导论 3.软件需求分析,2023/3/16,-学生购买教材的 逻辑模型,软件工程导论 3.问题的定义与可行性分析,2023/3/16,人工销售教材 系统流程图,软件工程导论 3.软件需求分析,2023/3/16,学生,教材购销系统,保管员,外部实体,外部实体,软件工程导论 3.软件需求分析,2023/3/16,教材销售子系统,1.3登记并开领书单,1.2开发票,1.1审查有效性,1.4登记缺书,1.5补售教材,采购,学生,学生,暂缺书单,补售书单,第 3 层,F1书号单价数量,外部项,软件工程导论 3.软件需求分析,20
11、23/3/16,采购 子系统,第 2 层,缺书单,2.3修改教材库存和待购量,销售,2.1按书号汇总缺书,2.2按出版社统计缺书,保管员,软件工程导论 3.软件需求分析,2023/3/16,二、*数据字典,-DD(Data Dictionary),软件工程导论 3.软件需求分析,2023/3/16,1、数据字典的定义,数据流名:说明:简要介绍作用即它产生的原因和结果。数据流来源:即该数据流来自何方。数据流去向:去向何处。数据流组成:数据结构。每个数据量流通量:数据量、流通量。,(1)数据流词条的描述,数据流名:发票 说明:用作学生已付书款的依据 数据流来源:来自加工“审查并开发票”数据流去向:
12、流向加工“开领书单”。数据流组成:学号+姓名+书号+单价总价+书费合计,软件工程导论 3.软件需求分析,2023/3/16,数据元素名:类型:数字(离散值、连续值),文字(编码类型)长度:取值范围:相关的数据元素及数据结构,(2)数据元素词条的描述,软件工程导论 3.软件需求分析,2023/3/16,(3)数据文件词条的描述,数据文件名:简述:存放的是什么数据。输入数据:输出数据:数据文件组成:数据结构。存储方式:顺序,直接,关键码。存取频率:,软件工程导论 3.软件需求分析,2023/3/16,加工名:加工编号:反映该加工的层次 简要描述:加工逻辑及功能简述 输入数据流:取值范围:相关的数据
13、元素及数据结构,(4)加工逻辑词条的描述,软件工程导论 3.软件需求分析,2023/3/16,软件工程导论 4.软件设计基础,2023/3/16,4.1 软件设计过程,编码,测试,设计,-软件开发阶段的信息流,软件工程导论 4.软件设计基础,2023/3/16,软件设计任务,4.2 软件设计的任务和步骤,软件工程导论 4.软件设计基础,2023/3/16,软件设计方法,4.3 软件设计的方法,软件工程导论 4.软件设计基础,2023/3/16,4.5 结构化设计方法(SD-Structured Design),结构化设计方法是基于模块化、自顶向下细化、结构化程序设计等程序设计技术基础发展起来的
14、。它所提供的方法和原则,主要是用来指导软件的概要设计。它还提供了一种“结构图”的描述工具,是专门用来描述软件的总体结构的。,软件工程导论 4.软件设计基础,2023/3/16,结构化设计属于面向数据流 的设计方法。在软件的需求分析阶段,数据流是软件开发人员考虑问题的出发点和基础。数据流从系统的输入端向输出端,则要经历一系列的变换或处理。用来表现这个过程的数据流(DFD),实际上就是软件系统的逻辑模型。面向数据流的设计要解决的任务,就是在上述需求分析的基础上,将DFD图 映射(Mapping)-软件系统的结构。换句话说,这类设计方法,允许把用 DFD图表示的系统逻辑模型,很方便地转换成对于软件结
15、构的初始设计描述。结构化设计方法中,软件的结构一律用 SC 图来描述。,软件工程导论 4.软件设计基础,2023/3/16,软件工程导论 4.软件设计基础,2023/3/16,目标系统的DFD,SC 图-Structured Chart,该图常用来表示系统的软件结构。利用它可以清楚地表达软件结构中模块间的层次调用关系和模块之间的联系。,SD,目标系统的SC,软件工程导论 4.软件设计基础,2023/3/16,A,SC 图中的主要内容,1、模块-在SC图中用矩形框表示,并用名字来标记它,-模块调用关系,2、模块的调用关系和接口,B,调用模块,调用模块,A(查询学生),B(查找学生记录),数据信号
16、,控制信号,学号,查找成功信号,-模块间接口的表示,软件工程导论 4.软件设计基础,2023/3/16,SC 图的一般格式,软件工程导论 4.软件设计基础,2023/3/16,采 购,按书号汇总,缺书登记表,统计缺书,登记进书,按出版社汇总,打印缺书单,修改教材存量表,修改教材待购量,统计命令,登记命令,待购教材表,暂缺书单,暂缺书单,进书通知,进书通知,-采购子系统的 SC 图-,缺书登记表=班号+姓名+书号+数量,软件工程导论 4.软件设计基础,2023/3/16,5.1 详细设计阶段的目的与任务,详细设计的目的:为软件结构图(SC)中的每一个模块确定采用的算法和模块内 数据结构,用某种选
17、定的表达工具给出清 晰的描述。,详细设计阶段的主要任务:编写软件的“详细设计说明书”,软件工程导论 5.详细设计,2023/3/16,软件工程导论 5.详细设计,2023/3/16,详细设计阶段的主要任务,软件工程导论 5.详细设计,2023/3/16,描述工具,5.2 详细设计阶段的描述工具,软件工程导论 5.详细设计,2023/3/16,A,1、顺序型,一、程序流程图,B,几个连续的加工依次序排列,exp,A,B,2、选择型,由某个判断式的取值决定选择两个加工中的一个。,软件工程导论 5.详细设计,2023/3/16,3、当型循环型,当循环控制条件成立时,重复执行特定的加工。,4、直到型循
18、环型,重复执行特定的加工,直到循环控制条件成立时。,软件工程导论 5.详细设计,2023/3/16,5、多情况选择型,列出多种加工情况,根据控制变量的取值,选择执行其一。,软件工程导论 5.详细设计,2023/3/16,软件工程导论 5.详细设计,2023/3/16,标准化程序流程图规定符号,软件工程导论 5.详细设计,2023/3/16,流程符号的使用规则,1、循环符号的使用,循环体,-循环流程符号的使用,软件工程导论 5.详细设计,2023/3/16,2、判断有一个入口,但也允许有多个可选出口,-多出口判断流程符号的使用,软件工程导论 5.详细设计,2023/3/16,顺序型,二、N-S
19、图,选择型,-Nassi and Shneideman,当型循环型,直到型循环型,多分支选择型,软件工程导论 5.详细设计,2023/3/16,软件工程导论 5.详细设计,2023/3/16,三、PAD 图,直到型循环型,当型循环型,顺序型,选择型,多分支选择型循环型,-Problem Analysis Diagram,软件工程导论 5.详细设计,2023/3/16,举例,软件工程导论 5.详细设计,2023/3/16,四、*PDL,-Program Ddesign Language,PDL 是一种用于描述功能模块的算法设计和加工细节的语言。称为设计程序用语言。它是一种伪代码(Pseudo c
20、ode),PDL,-关键词+自然语言,软件工程导论 5.详细设计,2023/3/16,(1)、数据说明:,格式:TYPE AS,其功能是定义数据的类型和作用域,说明:1.变量名:是一个模块内部使用的变量或模块间共用 的全局变量名。,2.限定词1:标明数据类型,3.限定词2:标明该变量的作用域,TYPE number AS STRING LENGTH(12),软件工程导论 5.详细设计,2023/3/16,(2)、程序块:,PDL的过程成分是由块结构构成的,而块将作为一个单个的实体来执行。,BEGIN END,软件工程导论 5.详细设计,2023/3/16,(3)、子程序结构:,把 PDL 中的
21、过程称为子程序。,PROCEDURE INTERFACE END,软件工程导论 5.详细设计,2023/3/16,(4)、基本控制结构:,IF THEN;ELSE;ENDIF,-选择型结构,软件工程导论 5.详细设计,2023/3/16,DO WHILE;ENDDO,REPEAT UNTIL;ENDREP,-重复型结构,软件工程导论 5.详细设计,2023/3/16,DO LOOP;EXIT WHEN ENDLOOP,DO FOR;ENDFOR,-重复型结构,软件工程导论 5.详细设计,2023/3/16,-多路选择结构,CASE OF;WHEN SELECT;WHEN SELECT;DEFA
22、ULT:;ENDCASE,软件工程导论 5.详细设计,2023/3/16,READ/WRITE TO,-输入/输出结构,软件工程导论 5.详细设计,2023/3/16,Enter a vector Set Maximum to the value of the first element in the vector DO for each second one to the last IF value of THEN element is greater than the Maximum value Set Maximum to value of the element ENDDO Print
23、 the Maximum value,软件工程导论 5.详细设计,2023/3/16,编码的目的:是使用选定的程序设计语言,把模块的过程性描述翻译为用该语言书写的源程序(源代码),模块的过程性描述(不可执行的),源程序(可执行的),编码,6.1 编码的目的,软件工程导论 6.*程序编码,2023/3/16,Winberg 的程序实验结果,软件工程导论 6.*程序编码,2023/3/16,结构化程序设计是一种设计程序的技术,它采用自顶向下逐步细化的设计方法和单入口(Single entry)单出口(Single exit)的控制结构。这种控制结构包括有:顺序、选择和循环。,6.2 结构化程序设计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- L2 软件工程 概论
链接地址:https://www.desk33.com/p-242008.html