第9章程序设计与软件工程基础

上传人:宝路 文档编号:3168024 上传时间:2017-07-30 格式:PPT 页数:102 大小:2.65MB
返回 下载 相关 举报
第9章程序设计与软件工程基础_第1页
第1页 / 共102页
第9章程序设计与软件工程基础_第2页
第2页 / 共102页
第9章程序设计与软件工程基础_第3页
第3页 / 共102页
第9章程序设计与软件工程基础_第4页
第4页 / 共102页
第9章程序设计与软件工程基础_第5页
第5页 / 共102页
点击查看更多>>
资源描述

《第9章程序设计与软件工程基础》由会员分享,可在线阅读,更多相关《第9章程序设计与软件工程基础(102页珍藏版)》请在金锄头文库上搜索。

1、第9章 程序设计与软件工程基础,主要内容,程序设计的方法和风格结构化程序设计的方法面向对象程序设计的方法软件工程的基本概念结构化分析方法结构化设计方法软件的测试软件的维护,9.1 程序设计基础,一、有关程序设计的基本概念1、程序 由人所编写的、指挥和控制计算机完成某一任务的指令序列。2、程序设计编写程序的过程。是一门技术,需要相应的理论、技术、方法与工具的支持。3、程序设计方法研究问题求解和系统构造的软件方法学。主要有两种结构化程序设计面向对象程序设计4、程序设计语言编写程序所使用的语言,人和计算机进行交流的语言。分类高级语言:C、VB、VC、JAVA、C#等低级语言:机器语言和汇编语言,二、

2、程序设计的风格1、概念:编写程序时所表现出来的特点、习惯和逻辑思路。2、作用良好的程序设计风格能够使设计的程序结构清晰合理、代码易于维护,保证软件开发的质量。3、原则“清晰第一、效率第二”,4、内容(四个方面)(1)总体设计的风格 程序设计首先要从全局出发,对整体结构进行设计,为后面的具体编程做好准备,其根本目标是降低程序的复杂性,提高程序的可读性。 总体设计应满足结构清晰、思路清晰、条理清晰的要求。(2)语言运用的风格选取恰当的程序设计语言采用朴素的语句成分(3)程序文本的风格注意程序文本的易读性数据定义规范化程序中加必要的注释合理使用分隔符(4)输入输出的风格,三、结构化程序设计方法1、主

3、要思想功能分解,逐步求精。把一个大的任务分解为若干个较小的功能部件分别实现。2、结构化程序设计的基本结构(3种)(1)顺序结构 按照语句的自然顺序依次执行的结构。,(2)选择结构(分支结构) 根据条件判断结果的不同,选择相应的分支语句执行。分为两路分支结构和多路分支结构。,两路分支结构,多路分支结构,(3)循环结构,1)当型循环:先判断条件,当条件满足时执行循环体语句,条件不满足时跳出循环,执行循环后面的语句。,2)直到型循环:先执行循环体语句,然后判断条件是否满足,如果满足条件则跳出循环,执行循环后面的语句。否则,继续执行循环体语句,3、结构化程序设计的原则(1)模块化原则将一个大的任务分解

4、为若干个人们能理解的模块。遵循两个原则:按功能划分、按层次组织(2)自顶向下、逐步求精(3)限制使用goto语句,四、面向对象程序设计方法1、主要思想把描述事物静态属性的数据结构和表示事物动态行为的操作放在一起构成一个整体,完整自然的表示客观世界的实体。2、基本概念(1)对象指客观存在并且能够相互区分的事物。可以是有形的(比如一辆汽车),也可以是无形的(比如一项计划)。(2)属性指对对象某一个方面特性的描述,它是对象包含的信息。例如:可用“姓名”、“年龄”、“性别”等属性描述一个人。(3)方法允许作用于某个对象上的各种操作,如汽车的前进、后退等。,(4)事件 是指由对象识别的一个动作.(5)类

5、指具有相同属性和相同操作的对象集合。类和对象的关系类是对象的抽象,对象是类的实例,犹如模具与铸件之间的关系(6)封装将对象的属性和方法结合成一个整体。是一种信息隐藏技术,使用者无法访问封装体的内部。(7)消息消息传递是对象之间通信的手段,一个对象向另一个对象发送消息来请求服务,接受消息的对象经过解释,然后给予响应。,(8)继承一个类(称为子类)的定义可以定义在另一个已经定义类(称为父类)的基础上,子类可以继承父类中的属性和方法,也可以定义自己的属性和方法。 如下图:假设已经定义好了一个人类,具有姓名、年龄、性别等属性和修改姓名、显示各信息的方法。现在要定义一个学生类,只需要从人类继承一下,就自

6、动具有人类的属性和方法,然后给学生类添加特有的属性如学号、班级、成绩等和相应的方法就可以了。继承可以一直进行下去,形成一棵树,称为类层次结构。,(9)多态性 指在类的不同层次上可以使用相同的方法名,但不同层次的类可以按自己的需要来实现这个行为。 如上图中,人类可以具有显示信息(print)的方法,而学生类同样可以有同名的方法。但人类的Print显示姓名、年龄、性别信息,而学生类的print则显示姓名、年龄、性别、学号、班级、成绩信息。 另外,整型数据和复数都有加法运算,但它们的运算规则是不同的,这也是一种多态性。,3、面向对象技术面向对象的分析(OOA)面向对象的设计(OOD)面向对象的实现(

7、OOI),4、面向对象技术优点与人类习惯思维方法一致良好的可重用性良好的可维护性表示方法的一致性,9.2 软件工程基础,一、软件工程的概念1、软件:程序+文档程序:由人所编写的、指挥和控制计算机完成某一任务的指令序列。文档:与程序运行和维护有关的图文资料,2、软件危机软件危机是指在软件开发和维护中所产生的一系列严重的问题。一是如何开发软件,满足用户对软件的需求,二是如何维护数量众多的已有软件。其主要表现如下: (1)用户需求不明确、变更过多 (2)软件成本日益增长 (3)开发进度难以控制 (4)软件质量差 (5)软件维护困难,3、软件工程为了解决软件危机,出现了软件工程,就是应用于计算机软件的

8、定义、开发和维护的整套方法、文档、实践标准和工具。采用工程的概念、原理、技术和方法来指导软件的开发与维护。,3、软件工程基本原理用分阶段的生命周期计划严格管理;坚持进行阶段评审;实行严格的产品控制;采用现代程序设计技术;结果应能清楚地审查;开发小组的人员应该少而精;承认不断改进软件工程实践的必要性。,3、软件工程结构,4、软件的生命周期软件也有一个孕育、诞生、成长、成熟、衰亡的生存过程。我们称其为计算机软件的生命周期。若为软件的生命周期,是指软件产品从提出、实现、使用、维护直到最后停止使用退役的全过程。分为3个时期、8个阶段软件定义时期:包括问题定义、可行性研究、需求分析3个阶段软件开发时期:

9、包括系统设计、详细设计、编码和测试4个阶段软件维护阶段:包括运行维护1个阶段,软件的生命周期,二、软件生命周期各阶段的任务1、问题定义阶段 主要目标:回答“要解决什么问题”,给出软件系统的总目标和总要求。 因为涉及整个工程的基础,需要软件开发人员、用户以及使用部门的负责人共同参加,取得一致思想。最终要提交关于问题性、工程规模和目标的报告书。,2、可行性研究阶段 主要任务:从多个角度分析,确定上一阶段定义的问题是否有可行的解决办法。 分析的角度包括4个方面:经济可行性技术可行性运行环境法律可行性,3、需求分析阶段(1)主要任务:不是去解决问题(怎么做),而是准确全面地定义目标系统必须要具备哪些功

10、能。具体讲是确定待开发软件的数据、功能、性能、界面等要求。最后编写软件需求规格说明书。,(2)需求分析采用的方法SA方法(p309) SA(Structured Analysis,结构化分析方法)是20世纪70年代中期由EYourdon等人倡导的一种面向数据流的分析方法。 SA方法采用自顶向下、逐层分解的原则,沿着数据流将系统的各种需求抽象分解,用数据流图和数据字典为主要工具建立系统的逻辑模型。,SA方法的步骤数据分析根据对用户的调查,以用户的需求为标准构建初始的数据流图,写出简单的数据字典和初始的处理说明回溯从数据流图的输出端回溯,在回溯过程中将所有的输入输出数据流和数据存储确定下来,放入数

11、据字典中进行定义,完善初始数据流图和数据字典,每个处理的详细说明也要扩充到处理说明表中。确定系统的非功能需求需要对软件性能指标、接口定义、设计和实现的约束条件等逐一进行分析,确定可以实现的成分复查系统分析人员要与用户共同探讨经过改进和丰富的数据流图、数据字典和处理说明是否合理必要,是否还需要扩充或改动,直到最后符合要求为止修正开发计划根据上阶段得到的详细地用户需求修正开发计划编写需求文档编写需求规格说明和初始用户手册,测试人员编写功能测试的数据,SA方法的主要工具数据流图和数据字典数据流图(DFD,Data Flow Diagram)功能:描绘信息在系统中的流动和处理情况,能够反映出系统逻辑模

12、型。 图中使用如下符号:,数据流:,数据处理:,处理名,外部实体:,数据存储:,外部实体名,DFD的画法:自顶向下、由外到里先找到系统的外部实体找出外部实体的输出数据流与输入数据流在数据流的外围画出外部实体从外部实体的输出数据流出发,初步画出各个逻辑加工,直到找到输入数据流为止检查与修改按上面的步骤,从各个加工出发画出需要的子图,DFD练习1售书系统,DFD练习2学生成绩管理系统,1画顶层数据流图,2画第二层数据流图,3画第三层数据流图,数据字典(DD,Data Dictionary)功能:关于系统中各种数据的信息的集合。在数据流图中出现的所有元素在数据字典中都用一个词条来定义。DD包含的内容

13、:数据流数据流分量数据处理数据存储外部实体,4、系统设计(概要设计)阶段(1)任务:确定软件系统的结构,进行模块划分,确定每个模块的功能、接口及模块间的调用关系,并对全局数据结构进行设计。并编写概要设计说明书(2)模块化: 就是把系统程序划分成若干个模块,每个模块完成一个子功能,模块既独立,相互之间又有一定的联系。,步骤:,步骤:,1)设想供选择的方案开发人员根据需求分析阶段得到的数据流图所划分的自动化边界,一个边界一个边界 地设想并且列出供选择的方案。2)选取合理的方案通过对不同方案的比较选取合理的方案。比较主要从易于实现性和成本/效益分析两方 面进行。推荐最佳方案,并制定出实现这个系统的进

14、度计划。,3)功能分解功能分解也就是进行结构设计,确定软件系统都由哪些模块组成,以及这些模块间的 相互关系。4)设计软件结构设计软件结构是概要设计阶段的核心工作。主要应用软件设计的概念和原理,采用面 向数据流的设计方法(结构化设计方法SD)将软件划分层次和结构。,5)数据库设计应用所学的数据库知识,对软件系统进行数据库设计。6)制定测试计划在软件开发的早期阶段考虑测试问题,能促使软件设计人员在设计时注意提高软件的可测试性。7)书写文档8)审查和复审技术审查通过之后,再由使用部门的负责人从管理角度进行复审。,(5)设计时常用方法结构化设计方法(SD,Structured Design)概念:是一

15、种面向数据流的设计方法,主要任务是采用模块化、自顶向下逐层细化、结构化程序设计等技术手段,将需求分析阶段得到的数据流图,通过一系列映射变换为结构图(SC,Structured Chart)。结构图功能:描述系统的层次和分块结构关系,表达模块与模块之间的联系和通信。,使用的符号:,SD方法的步骤根据对数据流的分析,确定问题的类型:变换型、事务型由数据流图导出初始结构图改进初始结构图,直到满足要求为止用“因子分解”方法定义软件的层次模块结构修改补充数据字典,并制定测试计划,信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变 换中心,经加工处理以后再沿输出通路变换成外部形式离开系统,当数据流图具有这些特 征时,这种信息流叫变换流。,数据沿输入通路到达一个处理,这个处理根据输入数据的类型在若干个动作序列中选 出一个来执行。这一类数据流叫事务流。,(3)耦合与内聚作用:评价软件概要设计质量好坏的标准,它们衡量系统设计中模块的划分是否合理,模块是否独立性强。耦合:表示模块之间相互依赖的程度,是对模块之间相互依赖程度的衡量。当然,模块之间的耦合度越小,模块的独立性就越强。内聚:模块内部各成分之间相互关联的程度。设计时追求的目标应尽量使每个模块做到高内聚。,

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

当前位置:首页 > 行业资料 > 其它行业文档

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