程序设计与软件工程基础_第1页
程序设计与软件工程基础_第2页
程序设计与软件工程基础_第3页
程序设计与软件工程基础_第4页
程序设计与软件工程基础_第5页
已阅读5页,还剩113页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京联合大学应用文理学院计算机中心

第9章结构

程序设计的方法与语言

程序设计的风格

程序设计基础

结构化程序设计方法

、面向对象程序设计方法

厂软件工程的概念与结构

软件分析阶段常用方法一一SA方法

软件工程基础《软件设计阶段常用方法一SD方法

软件的测试

、软件的调试

09/11/1联大应用文理学院计算机中心2

思考

♦:♦程序?

♦:♦程序设计?

♦:♦程序设计语言?

♦:♦程序设计方法?

09/11/1联大应用文理学院计算机中心4

程序与程序设计

♦:♦程序

由人所编写的指挥和控制计算机完成某一任务的指

令序列

♦:♦程序设计

编写程序的过程

♦:♦程序设计语言

人和计算机进行信息交流的语言

09/11/1联大应用文理学院计算机中心5

程序设计的发展

♦:♦初期的程序设计

高运行效率,少占用内存为目标

♦:♦结构化程序设计阶段

程序的可读性,可维护性为目标

♦:♦面向对象的程序设计阶段

降低程序的复杂性,提高软件的开发效率和改善工

作界面%目标

09/11/1联大应用文理学院计算机中心6

♦:♦程序设计风格

是指编写程序时所表现出来的特点、习惯和逻辑思路。

♦:♦程序设计风格会深刻的影响软件的质量和可维护性。

良好的程序设计风格可以使程序结构清晰合理,使程

序代码易于维护。

♦:♦基本出发点

自己编制的程序还要给别人看

自己编制的程序还要为以后看

♦:♦程序设计总体风格

强调简单清晰,程序是可理解的

“清晰第一,效率第二”的论点已成为当今主导的程序设计

风格

09/11/1联大应用文理学院计算机中心7

程序设计风格

♦良好的程序设计风格包括:

总体设计的风格

语言运用的风格

程序文本的风格

输入输出的风格

09/11/1联大应用文理学院计算机中心8

总体设计的风格

♦:♦结构清晰:

程序是模块化结构的,且按层次组织,合理运用3

种基本结构

模块功能尽可能单一化,模块间的联系尽量少

♦:♦思路清晰:

遵循自顶向下、逐步细化的原则

♦:♦条理清晰:

遵循“简短朴实”原则,切忌卖弄所谓的“技巧”

09/11/1联大应用文理学院计算机中心9

语言运用的风格

♦:♦选择合适的程序设计语言

符合软件工程的要求

符合结构化程序设计的思想

■使用要方便

♦:♦不要滥用语言中的某些特色

09/11/1联大应用文理学院计算机中心10

♦注意程序文本的易读性♦:♦符号规范化:

一般情况下每个语句占常用从简,专用从繁

用一行照顾习惯用法

程序的层次要分明,在数据说明的次序规范化,

各层次之间应采用缩进易于理解、测试排错及维

规则

同一结构层次中的语句说明语句中变量安排有序

,缩进相同的字数化

举例

Ifx>ythen

max=x

Else

max=y

Endif

09/11/1联大应用文理学院计算机中心11

程序文本的风格

♦程序中添加必要的注释

■序言性注释

$位于每个程序的开头部分,给出程序的整体说明

$主要描述的内容:程序标题,程序功能说明,主要算法,

接口说明,程序位置,开发简历,程序设计者、复审者,

复审日期,修改日期等

■功能性注释

$一般嵌在源程序体之中

$主要描述其后的语句或程序做什么

♦:♦程序中合理使用分隔符

一类是语法所规定的分隔符

另一类是为提高程序的可读性,系统允许用户使用的分隔

符——空格及空行

09/11/1联大应用文理学院计算机中心12

输入输出的风格

♦:♦输入

在需要输入数据时,应该给出必要的提示

输入格式要简单,以使得输入的步骤和操作尽可能

简单

输入数据时,应允许使用自由格式,允许缺省值

输入一批数据时,最好使用输入结束标志

以适当的方式对输入数据进行检验,以确认其有效

♦:♦输出

对输出数据应该加上必要的说明

■设计输出的报表格式

09/11/1联大应用文理学院计算机中心13

结构化程序设计

♦:♦结构化程序的两个特点:

以控制结构为单位,只有一个入口和一个出口,使

各单位之间的接口比较简单,每个单位也容易被人

们理解

缩小了程序的静态结构与动态执行之间的差异,使

人们能方便、正确地理解程序的功能

♦:♦三种基本控制结构的形式

顺序结构

选择结构

循环结构

09/11/1联大应用文理学院计算机中心14

顺序结构

09/11/1联大应用文理学院计算机中心15

09/11/1联大应用文理学院计算机中心16

选择结构

*If…Then语句(单分支结构)

■If<表达式>Then

语句块

Else

语句块

EndIf

09/11/1联大应用文理学院计算机中心17

09/11/1联大应用文理学院计算机中心18

选择结构一一多分支结构

♦SelectCase语句

SelectCase<测试表达式>

•[Casev表达式列表1>

・卜语句块1>]]

•[Casev表达式列表3>

・卜语句块2>]]

•...

•[Casev表达式歹4表n>

•[v语句块n>]]

•[CaseElse

•[v语句块n+l>]]

EndSelect

09/11/1联大应用文理学院计算机中心19

循环结构

♦循环结构

当型循环结构

条件

S

直到型循环结构

S

条件

09/11/1联大应用文理学院计算机中心20

当型循环结构

判断循环条件是否成立

♦如果条件成立,则执行

循环体语句组,然后再

次判断循环条件是否成

❖如果条件不成立,则不

执行或退出循环体结构

,转向其它操作步骤

09/11/1联大应用文理学院计算机中心21

当型循环结构

判断循环条件是否成立

♦如果条件不成立,则执

行循环体语句组,然后

再次判断循环条件是否

不成立

如果条件成立,则不执

行或退出循环体结构,

转向其它操作步骤

09/11/1联大应用文理学院计算机中心22

直到型循环结构

先执行循环体语句组1

循环变量初始化次

♦然后判断循环条件是否

成立,如果条件成立,

则再次执行循环体语句

其它操作步骤❖如果条件不成立,则不

再执行或退出循环体结

构,转向其它操作步骤

O

09/11/1联大应用文理学院计算机中心23

直到型循环结构

先执行循环体语句组1

♦然后判断循环条件是否

成立,如果条件不成立

,则再次执行循环体语

句组

*如果条件成立,则不再

执行或退出循环体结构

,转向其它操作步骤。

09/11/1联大应用文理学院计算机中心24

结构化程序设计原则

模块化的设计理念

自顶向下、逐步求精的设计过程

限制使用GOTO语句

09/11/1联大应用文理学院计算机中心25

模块化程序设计

♦:♦模块化程序设计

是指把一个大程序按人们能理解的大小规模进行分

♦:♦模块划分与组织的方法:

1按功能划分模块

$要求

—各模块功能单一

-各模块之间的联系尽量少

$优点

-可读性和可理解性都比较好

-各模块间的接口关系比较简单

-当要修改某一功能时,只涉及一个模块

-其他应用程序可以充分利用已有的一些模块

09/11/1联大应用文理学院计算机中心26

模块化程序设计

2按层次组织模块

$上层模块指出总任务,即“做什么”;下层模块精确

描述各个子任务,即“如何做”

模块4模块5模块6

09/11/1联大应用文理学院计算机中心27

自顶向下、逐步求精的设计过程

♦:♦包括两个方面

将一个复杂问题的解法分解和细化成由若干模块组

晟的层次结构

将一个模块的功能逐步分解细化为一系列的处理步

骤,直到某种程序设计语言的语句或某种机器指令

♦:♦两条优点

符合人们解决复杂问题的规律,可以显著提高程序

设计的效率

用先全局后局部、先整体后细节、先抽象后具体的

方法设计,结构层次清晰,容易阅读和理解

09/11/1联大应用文理学院计算机中心28

自顶向下、逐步求精的设计过程

计算并打印输出某班某门课程平均分细化的

过程

09/11/1联大应用文理学院计算机中心29

面向对象程序设计方法

♦:♦面向对象(ObjectOriented)方法已经发

展成为主流的软件开发方法,起源于对面向对

象语言的研究

♦:*20世纪60年代后期首次被提出,80年代开始

走向实用

09/11/1联大应用文理学院计算机中心30

面向对象的基本概念

♦:♦对象

客观世界中的实体

♦:♦分类

具体的物理实体:一辆车

任何有明确意义和边界的东西:一个项目计划

♦:♦特点

对象是构成世界的一个独立单位,通常既有静态的

特征(属性),又有动态的行为(方法)

09/11/1联大应用文理学院计算机中心31

面向对象的基本概念

♦:♦属性

对象所包含的信息

在设计对象时确定

•person(姓名,年龄,体重)

不同对象的同一属性可以具有相同或不同的属性值

•personl(张三,19,43kg)

•personl(李四,20,65kg)

♦:♦方法

允许作用于某个对象上的各种操作

事件

由对象识别的某一动作

09/11/1联大应用文理学院计算机中心32

面向对象的基本概念

♦:♦类

■具有相似性质的一组对象

类是对象的抽象,描述了属于该对象类型的所有对

象的性质,而一个对象则是其对应类的一个实例

例如:

•Integer是一个整数类,描述了所有整数的性质

・12是一个具体的整数,是Integer类的一个实例

09/11/1联大应用文理学院计算机中心33

面向对象的基本概念

♦:♦继承:

表示类之间的相似性的机制

是面向对象方法的一个主要特性

一个类(子类)的定义可以定义在另一个已定义类

(父类)的基础上,子类可以继承父类中的属性和

方法,也可以定义自己的属性和方法

如:整数类和正整数类

♦多态性

指在类的不同层次上可以使用相同的方法名,但不

同层次的类可以按自己的需要来实现这个行为。

09/11/1联大应用文理学院计算机中心34

面向对象的基本概念

♦:♦封装

一种信息隐蔽技术,目的在于将对象的使用者和对

象的设计者分开

♦:♦消息

用来请求对象执行某一处理或回答某些信息的要求

面向对象方法和技术以对象为中心。对象是由

数据和容许的操作组成的封装体,对象之间通

过传递消息互相联系,以模拟现实世界中不同

事物彼此之间的联系。

09/11/1联大应用文理学院计算机中心35

面向对象的基本概念

♦:♦对象的基本特征

■模块性

$各个对象之间相对独立,相互依赖性小

■继承性和类比性

动态连接性

易维护性

09/11/1联大应用文理学院计算机中心36

面向对象技术

♦面向对象技术包括3个方面

■面向对象的分析00A

$主要任务:了解问题域内所涉及的对象、对象之间的关系

和作用,然后构造出对象模型,力争这个“模型”能反映

所要解决的“实质问题”O

$主要方法:抽象

面向对象的设计00D

$主要任务:设计软件的对象模型。在软件系统中设计各个

对象、对象之间的关系(如层次关系、继承关系等)、对

象间的通信方式(消息)等。

■面向对象的实现001

$主要任务:实现软件功能,实现各个对象所应完成的任务

,包括实现每个对象的内部功能、系统的界面设计和输出

格卡。

09/11/1联大应用文理学院计算机中心37

面向对象技术

♦:♦面向对象技术的特点

与人类习惯思维方法一致

可重用性----继承特性

可维护性

表示方法的一致性

09/11/1联大应用文理学院计算机中心38

族外工福基砒

北京联合大学应用文理学院计算机中心

软件工程的产生

♦:♦软件:

与计算机系统的操作有关的计算机程序、规程、规

贝h以及可能有的文件、文档及数据。

■软件=程序+文档

♦:♦软件工程

是指采用工程的概念、原理、技术和方法指导软件

的开发与维护。

09/11/1联大应用文理学院计算机中心40

软件工程的结构

工具层

方法层

过程层

质量保证层

3要素:过程、工具、方

09/11/1联大应用文理学院计算机中心41

软件生命周期

♦:♦定义

从某一软件被提出并着手开始实现,直到软件完成

其使命为止的全过程

*3个时期,8个阶段

09/11/1联大应用文理学院计算机中心42

软件生命周期

09/11/1联大应用文理学院计算机中心43

软件工作的范围

只考虑I扩展到涉及整个

编写程1软件生命周

序期

09/11/1联大应用文理学院计算机中心44

软件定义期

09/11/1联大应用文理学院计算机中心45

软件定义期

*1问题定义

■主要目的

$确定问题的性质、工程目标及规模

■参加人员

$软件开发人员、用户及使用部门负责人

■提交

$文档(编写系统目标与规范说明书)

09/11/1联大应用文理学院计算机中心46

软件定义期

*2可行性分析

■主要目的

$进一步研究所定义的问题是否可解

■角度

$技术可行性

$经济可行性

$社会可行性

■使用方法

$逻辑模型数据流图和数据字典

$物理模型系统流程图

■提交

$文档

09/11/1联大应用文理学院计算机中心47

软件定义期

03需求分析

■主要目的

•根据可行性研究阶段提交的文档,特别是从数据流图

出发,对目标系统提出清晰、准确和具体的要求(做

什么)

■具体任务

•综合要求者数据分析序详细模型系统

■提交

•文档(系统的功能说明、数据要求和用户系统描述)

09/11/1联大应用文理学院计算机中心48

软件开发期*

A

09/11/1联大应用文理学院计算机中心49

信息描述

功能描述数据设计

设计

行为描述

集成并确

一程序模块认的软件

其他需求编码测试

09/11/1联大应用文理学院计算机中心50

软件开发期

*1系统设计

■主要任务

$划分出构成系统的各物理元素

-如程序、文件、数据库、人工过程与文档等

$设计出软件的结构

-如确定模块之间的关系

$阶段最后要进行严格的技术审查和管理审查

09/11/1联大应用文理学院计算机中心51

系统设计过程

AA\A

VV/V文

09/11/1联大应用文理学院计算机中心52

软件开发期

02详细设计

■主要任务

•对系统做出精确的描述,以方便编码阶段使用

■目标

•保证程序的可靠性、易读、易理解、易测试、易修改

和易维护

提交

•详细的编码规格说明

■工具

•层次图与输入-处理-输出图的结合(HIPO)

•过程描述语言(PDL)

09/11/1联大应用文理学院计算机中心53

■主要任务

$将系统设计与详细设计阶段中的结果翻译成用某种程

序设计语言书写的程序

影响程序设计的几个方面

$选择适当的程序设计语言

$良好的编程风格

$充分利用已有的软件工具协助编码

提交

$源程序编码

$面向用户的文档:用户手册,操作手册

$单元测试计划

09/11/1联大应用文理学院计算机中心54

■主要任务

•尽量发现程序中的错误

■测试与调试的区别

•测试是要尽量发现程序中的错误,但绝不能证明程序

的正确性

•调试是要推断错误的原因,从而进一步改正错误

■提交

•测试分析报告

09/11/1联大应用文理学院计算机中心55

■维护

$是软件生命周期的最后阶段,也是持续时间最长、付

出代价最大的阶段

$程序代码及文档的维护

■分类

$改正性维护:纠正使用中出现的错误

$适应性维护:适应环境的变化

$完善性维护:改进原有软件

$预防性维护:为将来的可维护性和可靠性做的工作

09/11/1联大应用文理学院计算机中心56

软件工具与软件开发环境

♦:♦软件支援环境

是指在宿主硬件和宿主软件的基础上,用于辅助、

支援其他软件的研制和维护的一组软件

♦:♦功能

能够支援软件生命的全周期

能够支援大型软件工程项目

能够支援软件配置管理

09/11/1联大应用文理学院计算机中心57

软件工具与软件开发环境

♦:♦作用

能改进软件质量、提高软件生产率

♦:♦组成

环境数据库

$包含软件必要的信息和软件研制工具的有关信息

■接口软件

$包括系统与用户的接口、系统与环境数据库和工具之

间的接口

■工具组

$包括软件研制工具、软件维护工具和控制配置工具等

09/11/1联大应用文理学院计算机中心58

软件详细设计的表达

♦:♦工程上常用的表达工具

■图形工具

$用图形的方式来描述实现一个算法的过程

■表格工具

$用表格的方式列出实现算法过程的每一步操作

■语言工具

$用某种语言描述算法

09/11/1联大应用文理学院计算机中心59

程序流程图

程序流程图(流程框图)

起止框判断框处理框输入与输出

注释框流程线流程线连接点

09/11/1/、/工IIJA工-J-|VUVI-1/L|-L-»60

程序流程图

程❖顺序结构

5❖选择结构

基❖多分支选择结构

制❖当型循环结构

❖直到型循环结构

09/11/1联大应用文理学院计算机中心61

程序流程图

♦:♦优点

独立,直观,易学

♦:♦缺点:

不是逐步求精的好工具,过早考虑程序的控制流程

,忽略全局结构

不易表示层次结构

不易表示数据结构和模块调用关系

转移控制不受约束

09/11/1联大应用文理学院计算机中心62

NS图

❖NS图(盒图)

去掉了流程图中的流程线,全部算法写在一个框内

,每一种基本结构也是一个框

不允许破坏结构化原则

♦:♦基本特点

■功能域比较明确

不能任意转移控制,符合结构化原则

容易确定局部和全程数据的作用域

容易表示嵌套关系和层次关系

09/11/1联大应用文理学院计算机中心63

4

6

构构大

结构结联

择结环

构构选环循

结结支循型

序择分型到

顺选多当直

❖❖

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论