[软件工程]CH06-编码

合集下载

《软件工程》第8章_程序编码

《软件工程》第8章_程序编码
例如一些目前可用的查询语言提供了自然语言接口,允
许用户给出的描述如“对东北地区和华北地区,使用最 近3年的实际销售额预测明年的销售前景”。绝大部分用 户都喜欢这种接口方式。
(2) 程序生成器:程序生成器代表更为复杂的一类 4GL,它只需很少的语句就能生成完整的第三代语言程 序,甚至是第五代程序语言,目前一般用于MIS系统、 菜单生成等方面。
2.第二代语言 ――汇编语言(Assembly Language)
汇编语言指令是机器指令的符号化,与机器语言有直接
的对应关系,将机器指令对应成为人们易读的助记符, 如ADD、LDA和MOV等。同机器语言一样,汇编语言也 属于低级语言。汇编语言又称符号语言,它把计算机所 能识别的机器指令用符号表示出来,从而比二进制表示 的机器语言更直观,更方便阅读和排错。虽然汇编语言 比机器语言容易理解,容易记忆,但还是有难掌握、容 易出错、维护困难等缺点。不同指令集的处理器系统能 够有自己相应的汇编语言。
第八章 程序编码
【本章引言】
完成系统设计后,进入到系统实现阶段。系统实 现阶段的主要任务是根据系统设计规格说明书的内容 编写程序代码,这个阶段称为程序编码。程序编码就 是把软件设计阶段的成果(主要是详细设计规格说明书) 使用某种计算机程序编程语言转换成计算机能够理解 的形式 ――程序代码的过程。作为软件工程生命周期 的一个阶段,程序编码的实质就是对软件设计的翻 译,翻译过程所使用的计算机程序设计语言及程序员 的编程风格对程序的可靠性、可读性、可测试性、可 维护性等方面都将产生很大的影响,从而最终影响到 计算机软件系统的质量。程序编码阶段的目标是编写 出满足系统功能要求的、正确的代码。
Language)
高级程序设计语言起始于20世纪50年代中期。高

软件工程第6章 软件编码设计

软件工程第6章  软件编码设计

10
(1)理论标准 1)理想的模块化机制、易于阅读和使用的控制结 构及数据结构 模块化、良好的控制结构和数据结构可以降低编码 工作的难度,增强程序的可理解性,提高程序的可测试 性和可维护性,从而减少软件生存周期中的总成本,并 缩短软件开发所需的时间。 2)完善、独立的编译机制
11
(2)实用标准 1)系统用户的要求 由于用户是软件的使用者,因此软件开发者应充分 考虑用户对开发工具的要求。特别是当用户要负责软件 的维护工作时,用户理所应当地会要求采用他们熟悉的 语言进行编程。 2)工程的规模 3)软件的运行环境 4)可以得到的软件开发工具
16
(3)语句的构造及书写 语句是构成程序的基本单位,语句的构造方式和书 写格式对程序的可读性具有非常重要的决定作用。 在一行内只写一条语句,并且采取适当的移行格式, 使程序的逻辑和功能变得更加明确。 程序编写首先应当考虑清晰性,不要刻意追求技巧 性,使程序编写得过于紧凑。
17
(4)输入/输出 由于输入和输出是用户与程序之间传递信息的渠道, 因此输入、输出的方式往往是用户衡量程序好坏的重要 指标。为了使程序的输入、输出能便于用户的使用,在 编写程序时应对输入和输出的设计格外注意。 1)输入 2)输出
23
良好的编码风格,应该以结构程序设计的原则为指 导,使用单输入口和单输出口的控制结构。倡导源程序 代码的文档化,程序内部良好的文档资料,有规律的数 据说明格式,简单清晰的语句构造和输入输出格式等, 都对程序的可读性有很大作用,也在相当大的程度上改 进了程序的可维护性。程序的输入输出应该充分考虑运 行工程学的要求,在满足数据可靠性的前提下,尽量做 到对用户友善。
19
(1)用于提高运行速度的指导原则 ①编写程序之前,先对需要使用的算术表达式和逻 辑表达式进行化简。 ②尽可能多地采用执行时间短的算术运算。 ③尽量避免使用多维数组、指针和其他复杂的数据 类型。 ④尽量采用整型算术表达式和布尔表达式。 ⑤尽可能减少循环体,特别是内循环中语句的个数。 ⑥尽量使同一表达式中的数据类型保持统一。 ⑦应当对所有的输入和输出安排适当的缓冲区,以 减少频繁通信所带来的额外开销。

软件工程导论程序编码

软件工程导论程序编码

根据局部化与信息隐蔽原理, 一个程序对象只能在程序中真正需 要它的那些部分才能访问。 FORTRAN 、 C 提 供 的 是 单 层 局 部 性 , 而PASCAL提供的是所层局部性。单 层局部性有助于块独立编译的实现, 多层局部性有助于提高程序的可读 性,但内外层对象同名有可能引起 差错。
软件工程导论
软件工程导论
4
6.1 程序设计语言
设计语言 质量要求 复杂度 设计风格 结构化 面向对象 本章小结
2019/11/14
6.1.1 程序设计语言分类 6.1.2 程序设计语言的特征属性 6.1.3 选择程序设计语言准则
软件工程导论
5
6.1.1 程序设计语言分类
设计语言 质量要求 复杂度 设计风格 结构化 面向对象 本章小结
遇到的问题,如程序设计语言的特性
和程序设计风格会深刻影响软件的质
量和可维护性。本章将从软件工程这
个更广泛的范围讨论与程序设计语言
及程序编码有关的问题,而不具体介
绍如何编写软 件程工序程 导。论
2
设计语言 质量要Байду номын сангаас 复杂度 设计风格 结构化 面向对象 本章小结
2019/11/14
第六章 程序编码
6.1 程序设计语言 6.2 对源程序的质量要求 6.3 程序复杂度度量 6.4 程序设计风格 6.5 结构化程序设计 6.6 面向对象技术 6.7 本章小结
超高级语言:第四代语言
查询语言:SQL语言。 应用程序生成器 原型语言 图形语言
2019/11/14
软件工程导论
9
6.1.1 程序设计语言分类
设计语言 质量要求 复杂度 设计风格 结构化 面向对象 本章小结

软件工程中的软件通用编码标准

软件工程中的软件通用编码标准
推动软件工程发展
02
促进软件工程领域的发展和进步,推动行业朝着更高效和可持续的方向发展
03
感谢
支持
共同努力
推动发展
合作
感谢各位的聆听和支持,让我 们共同努力,推动编码标准的 落地和实践
希望大家共同努力,将编码标 准贯穿于软件工程的整个开发 过程
共同促进软件工程领域的发展 和进步,不断提升行业的水平 和质量
●06
第六章 总结与展望
编码标准的重要性总结
编码标准是软件工程中的重要一环, 能够提高代码的质量、可读性和可维 护性。它是每个开发团队必须遵守的 规范,有助于减少错误、提高开发效 率,以及促进团队协作。
未来发展趋势
持续更新和完善
随着软件开发不断 发展,编码标准需 要与时俱进,以适 应新技术和新需求
软件生命周期
需求分析
明确软件需要解决 的问题
编码
将设计转化为源代 码
设计
制定软件的整体架 构和功能
测试
验证软件功能的正 确性
软件工程的原则
用户参与
确保软件符合用户 需求
灵活性
适应需求和变化
迭代开发
循序渐进,不断完 善
重用性
利用已有组件和代 码
软件工程中的挑战
需求变化
01
采用敏捷开发,灵活应对变化
编码标准的重要性
编码标准能够提高团队合作的效率、减少代码错误、增强代码可 读性和降低维护成本。
常见的编码标准
Google编码风格指 南
提供了代码规范和 最佳实践
PEP 8 Python编码 规范
为Python语言提 供了编码指导
Airbnb JavaScript 编码规范
专注于JavaScript 编码规范

软件工程考核知识点-第6章-软件编码

软件工程考核知识点-第6章-软件编码

软件工程考核知识点-第6章-软件编码6.1 程序设计语言的特性及选择程序设计语言是人机通信的工具之一,使用这类语言“指挥”计算机干什么,是人类特定的活动。

我们从以下三个方面介绍语言的特性。

6.1.1 程序设计语言特性1. 心理特性(1)歧义性。

(2)简洁性。

(3)局部性和顺序性。

(4)传统性。

2. 工程特性(1)可移植性。

(2)开发工具的可利用性。

(3)软件的可重用性。

(4)可维护性。

3. 技术特性支持结构化构造的语言有利于减少程序环路的复杂性,使程序易测试、易维护。

6.1.2 程序设计语言的选择1. 项目的应用领域(1)科学工程计算。

需要大量的标准库函数,以便处理复杂的数值计算,可供选用的语言有:FORTRAN语言、C语言等。

(2)数据处理与数据库应用SQL为IBM公司开发的数据库查询语言4GL称为第4代语言(3)实时处理实时处理软件一般对性能的要求很高,可选用的语言有:汇编语言、Ada语言等。

(4)系统软件。

如果编写操作系统、编译系统等系统软件时,可选用汇编语言、C语言、Pascal语言和Ada语言。

(5)人工智能。

如果要完成知识库系统、专家系统、决策支持系统、推理工程、语言识别、模式识别等人工智能领域内的系统,应选择Prolog、Lisp语言。

2. 软件开发的方法(详见第9章)有时编程语言的选择依赖于开发的方法,如果要用快速原型模型来开发,要求能快速实现原型,因此宜采用4GL。

如果是面向对象方法,宜采用面向对象的语言编程。

3. 软件执行的环境良好的编程环境不但有效提高软件生产率,同时能减少错误,有效提高软件质量。

4. 算法和数据结构的复杂性科学计算、实时处理和人工智能领域中的问题算法较复杂,而数据处理、数据库应用、系统软件领域内的问题,数据结构比较复杂,因此选择语言时可考虑是否有完成复杂复杂算法的能力,或者有构造复杂数据结构的能力。

5. 软件开发人员的知识编写语言的选择与软件开发人员的知识水平及心理因素有关,开发人员应仔细地分析软件项目的类型,敢于学习新知识,掌握新技术。

软件工程程序设计语言和编码学习教案

软件工程程序设计语言和编码学习教案


对象的抽象,定义了对象的属性和方法。
继承
子类继承父类的属性和方法,实现代码重用 。
面向对象编程语言
Java:流行的面向对象编程语言 ,具有跨平台性、安全性、垃圾
回收等特点。
C支持面向对象编程的C语言扩展 ,具有高效性能和丰富的库支持

Python:简洁易读的面向对象编 程语言,适用于科学计算、数据
作为返回值。
不可变性
函数式编程语言强调不可变性,即数 据一旦创建就不能被修改,只能通过 新的数据来替代旧的数据。
递归
递归是函数式编程中常用的技术,用 于解决一些需要分解成更小问题的问 题。
函数式编程应用场景
数据处理
函数式编程语言非常适合处理大量数据,例如在数据分析、数据挖掘 等领域中。
算法设计
函数式编程语言可以用于设计各种算法,例如排序、搜索、图算法等 。
并发和分布式系统
由于函数式编程语言强调不可变性,因此它们非常适合用于构建并发 和分布式系统。
Web开发
一些函数式编程语言(如Haskell、Clojure等)可以用于Web开发, 它们通常具有更好的性能和更强的类型安全性。
07
并发编程语言
并发编程基础
01
02
03
并行计算
并行计算是指在同一时间 内同时进行多个计算任务 的技术。
系统的学科。
软件工程的目标是提高软件的质 量、效率、可靠性和可维护性。
软件工程涉及软件开发的全过程 ,包括需求分析、设计、编码、
测试和维护等。
软件工程过程
设计
根据需求分析结果,设计软件 系统的结构、模块、接口和数 据结构等。
测试
对软件系统进行测试,确保其 符合需求并能够正常运行。

Ch06-标准化和一致性管理

Ch06-标准化和一致性管理

• 全面管理与工程实施
软件过程改进方法与实践案例
王安生
洛克希德马丁的标准建立与剪裁
LM 企业政策 ANS/EIA-632 ISO 9001:2000 CMMI 1.1 ISO/IEC-12207 LM-硬件过程 标准 ISO/IEC-15288 IEEE 1220 公共标准源 项目特定标准 行业标准 信息 参考 政府标准 领域特定标准 领域特的标准 LM-IEP 标准 组织层面 的标准 过程 EPI:工程过程改进 标准过程 集成方法 集成工作 产品
– 具体的过程任务的生产效率和质量特性,可以用来评 估任务的效率,标识过程改进中最需要处理的领域。
软件过程改进方法与实践案例
王安生
过程库中收集的常用数据
数据类型 软件规模 Software size 工作量 成本 同行评审的覆盖率 度 量 元 Line of Code(LOC代码行) Normalized Line of Code (规范化代码行) 按各阶段统计的工作量 按各阶段统计的成本 例如,评审的需求文档数/总的需求文档数 * 100 % 计划的 实际的
RI = Requirements Incorrect(需求不准确)
DH = DE = Data Handling Error(数据处理错误) Design Error(设计错误) IN = Interface Error(接口错误) DB = Data Base error(数据库错误) CL = Clerical Error(书写错误) OT = Other
关键过程域
分类 等级 管 理 类 组 织 类 技术更改管理(TCM) 过程更改管理(PCM) 定量过程管理(QSM) 集成软件管理(ISM) 组间协调(IC) 组织过程焦点 (OPF) 组织过程定义 (OPD) 培训大纲(TP) 缺陷预防(DP) 软件质量管理(SQM) 软件产品工程(SPE) 同行评审(PR) 工 程 类

软件工程中的软件编码标准与规范

软件工程中的软件编码标准与规范
持续改进软件开发 流程和方法
软件编码标准的持续优化
与时俱进
不断调整和改进编码标准
定制化
结合实际项目需求和团队特点进行定制化
对软件开发者的建议
遵守编码标准和规 范
严格遵守编码标准 确保代码质量
不断学习和提升编 码能力
持续学习新知识 参与技术交流
总结与展望
软件编码标准是软件工程中非常重要的一部分,通过遵守标准 和规范可以提高团队的开发效率和代码质量。未来软件开发将 面临更多挑战和机遇,需要持续学习和适应新技术。同时,软 件编码标准需要不断优化,以适应不断变化的软件开发环境。 对软件开发者来说,遵守标准和持续学习提升编码能力是非常
代码质量与安全性
确保每行代码都符合规范 减少错误和bug产生的可 能性
促进团队合作和知识共享 提高代码质量
维护公共代码库的整洁性 减少潜在的安全漏洞
● 03
第3章 常见的软件编码标准规范
JavaScript编码规范
在软件工程中,JavaScript是一种常用的编程语言, 为了确保代码质量和规范性,通常会使用ESLint进行 代码检查。在编写JavaScript代码时,需要遵循命名 规范、统一缩进风格以及良好的注释规范,这些都是
学习他人的成功经验和失 败教训
避免重复犯错
保持对行业动态的敏感度 避免质量问题
培训团队成员遵守新 标准
制定新的规则和流程
找出问题根源并制 定改进计划
确保团队全员理解 和执行新标准
根据实际情况优化 编码标准
软件编码标准的效果评估
比较改进前后的代码质量和团队效率
检验编码标准改进效果
收集用户反馈和建议
从用户角度评估编码标准效果
不断优化和改进编码标准

软件工程 编码

软件工程  编码

软件工程编码在软件工程的广阔领域中,编码无疑是最为关键和基础的环节之一。

它就像是一座大厦的基石,直接决定了软件的质量、性能和可维护性。

编码,简单来说,就是将软件设计转化为可执行的计算机程序的过程。

这可不是一件轻松的任务,它需要开发者具备扎实的编程技能、深厚的算法知识,以及对问题的清晰理解和解决能力。

首先,选择合适的编程语言是编码的第一步。

不同的编程语言有着各自的特点和适用场景。

比如,C 和 C++常用于系统编程和性能要求极高的应用;Python 则在数据科学、机器学习和快速开发方面表现出色;Java 广泛应用于企业级应用开发。

开发者需要根据项目的需求、性能要求、团队的技术栈等因素,综合考虑选择最适合的语言。

在开始编码之前,充分理解软件的需求和设计是至关重要的。

如果对需求理解有误,那么编写出的代码很可能无法满足实际的业务需求,导致大量的返工和修改。

因此,开发者需要与需求分析师、设计师等密切沟通,确保自己对软件的功能、性能、界面等方面的要求有清晰准确的认识。

良好的代码结构和规范是高质量编码的重要保障。

代码应该具有清晰的层次结构,模块划分合理,函数和变量的命名清晰易懂。

遵循一定的代码规范,比如缩进、注释的写法等,不仅能够提高代码的可读性,也便于团队成员之间的协作和代码的维护。

想象一下,一个没有规范的代码库,各种奇怪的命名、混乱的结构,对于后来的开发者来说简直就是一场噩梦。

算法的选择和优化也是编码中不能忽视的部分。

一个高效的算法可以大大提高软件的性能,而一个糟糕的算法可能会导致程序运行缓慢甚至崩溃。

比如,在处理大规模数据时,选择合适的数据结构(如数组、链表、树、图等)和算法(如排序算法、搜索算法等)就显得尤为重要。

而且,在代码实现过程中,还需要注意对算法的优化,减少不必要的计算和内存消耗。

错误处理也是编码中必须要认真对待的环节。

在程序运行过程中,可能会遇到各种各样的错误,如输入错误、网络故障、资源不足等。

《软件工程》课件第4章 软件编码

《软件工程》课件第4章 软件编码

第4章 软件编码
2. 软件开发的方法 有时编程语言的选择依赖于开发的方法,如果要用快速原 型模型来开发(详见第7章),要求能快速实现原型,因此宜采 用4GL。如果是面向对象方法,宜采用面向对象的语言编程。 近年来,推出了许多面向对象的语言,这里主要介绍以下几种: (1) C++:是由美国AT&T公司的Bell实验室最先设计和实 现的语言,它提供了面向对象类的定义、继承、封装和消息传 递等概念实现的手段,又与C语言兼容,保留了C语言的许多特 性,维护了大量已开发的C库、C工具以及C源程序的完整性, 使编程人员不必放弃自己熟悉的C语言,只需补充学习C++提供 的那些面向对象的概念,因而从C过渡到C++比较容易,加之它 的运行性能较高,成为当今最受欢迎的对象语言之一。
第4章 软件编码
目前,除了常用的AT&T C++,Turbo C++,Borland C++ 及 Microsoft C++ 等 版 本 外 , 又 推 出 了 Microsoft Visual C++,充分发挥Windows和Web的功能。
(2) Java:是由Sun公司开发的一种面向对象的、 分布式的、安全的、高效的及易移植的语言,它的基本 功能类似于C++,但做了重大修改,不再支持运算符重 载、多继承及许多易于混淆和较少使用的特性,增加了 内存空间自动垃圾收集的功能,使程序员不必考虑内存 管理问题。Java应用程序可利用语言提供的例程库,能 够自由地打开和访问网络上的对象。
第4章 软件编码
(4) 可维护性:指源程序的可维护性对复杂的软件开发 项目的重要性,如易于把详细设计翻译为源程序、易于修改 需要变化的源程序。因此,源程序的可读性、语言的文档化 特性对软件的可维护性具有重大的影响。

软件工程 编码

软件工程  编码

实验三一、实验目的掌握结构化编程,对程序源代码进行工程文档化处理二、主要仪器设备微型计算机系统,MS Visio 2003软件,IDE软件三、实验原理与方法根据提供的非结构化伪码或源代码,编写出结构化的程序。

结构化程序设计的原则(使用顺序、选择、重复基本控制结构表示程序逻辑,控制结构的单入口与出口等)为指导,使用约束型流程图、NS或PAD图进行结构化的设计;采用自顶向下和逐步细化的原则,导出程序的结构化编码。

四、实验内容与步骤1、主要内容根据给定的非结构化案例和实验大纲的要求,建立模块结构化模型(主模块、子模块),并编写每个模块的结构化文档化代码。

案例:复制命令接口:<程序名> [参数1] [参数2]功能:是将命令行参数中的参数1标识的文件,复制到参数2标识的文件中,如命令行中只有一个文件名则把该文件写到标准输出文件(显示器)中。

【源码】#include<stdio.h>main(int argc,char *argv[]){ FILE *fp1, *fp2; char ch; int Sel;Sel = argc;if(Sel==1) goto Sel_No ;if((fp1=fopen(argv[1],"rt"))==NULL) goto Sel_Sr ;if(Sel==2) fp2=stdout;else if((fp2=fopen(argv[2],"wt+"))==NULL) goto Sel_Dt ;while((ch=fgetc(fp1))!=EOF) fputc(ch,fp2);fclose(fp1);fclose(fp2);goto Sel_EndSel_No: { printf("have not enter file name strike any key exit");getch();exit(0); }Sel_Sr: { printf("Cannot open %s\n",argv[1]);getch();exit(1); }Sel_Dt: { printf("Cannot open %s\n",argv[1]);getch();exit(1); }Sel_End:}要求:(1)增加设计命令使用方法的提示,若参数仅是/?则显示命令的使用说明;(2)增加设计命令执行后结果提示。

软件工程第6章编码(精)

软件工程第6章编码(精)

软件编码涉及的基本内容
• (2)数据处理与数据库应用,可供选用的语言有如下三种。 • ①COBOL语言:产生于20世纪50年代末,被广泛应用于 商业数据处理,具有极强的数据定义能力,程序说明与硬 件环境说明分离,数据描述与算法描述分离,结构严谨, 层次分明,说明采用英语的语法结构,可读性强。 • ②SQL语言:最初是IBM公司开发的数据库查询语言,目 前不同的软件开发公司有不同的扩充版本,如20世纪80年 代后期我国引入Informix—SQL,Microsoft的SQL可以方 便地对数据库进行存取管理。 • ③4GL语言:称为第四代语言,随着信息系统的飞速发展, 原来的第二代语言(如FORTRAN,COBOL)、第三代语 言(如PASCAL,C等)受硬件和操作系统的局限,其开发 工具不能满足新技术发展的需求,因此,在20世纪70年代 末,提出了第四代语言的概念。
软件编码涉及的基本内容
• • • 1.项目管理 项目应用领域是选择语言的关键因素,有下列几种类型。 (1)科学工程计算,需要大量的标准库函数,以便能处理复杂的数 值计算,可供选用的语言有如下四种。 ①FORTRAN语言:产生于1945年,是世界上第一个被正式推广应用 的计算机语言,经过FORTRAN0到FORTRAN4,继而又扩展到 FORTRAN77、FORTRAN90,通过版本的不断更新,使它不仅支持科 学计算,而且数据处理能力也极强。
• •


软件编码涉及的基本内容
• • 2.软件开发方法 有时编程语言的选择依赖于软件开发的方法,采用 4GL语言适合于用快速原型模型来开发。如果是面向对象 方法,一般采用面向对象的编程语言,近年来,推出了许 多面向对象的语言,这里主要介绍以下两种。 • (1)C++:是由美国AT.T公司的Bell实验室最先设计和 实现的语言,它支持并实现了面向对象设计中类的定义、 继承、封装的概念,并且与C语言兼容,已成为当今最受欢 迎的面向对象语言之一。 • (2)Java:是由Sun公司开发的一种面向对象的、分布 式的、安全的程序设计语言。因为它运行在Java虚拟机上, 因此它与硬件无关,可移植性强。和C++比较,它不支持运 算符重载、多继承等特性,但增加了内存空间自动垃圾收 集功能,使程序员不必考虑内存的管理问题,Java应用程 序提供了许多适合网络编程的软件包。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4GL-第四代语言 -7
交互式: FOCUS、RAMIS、MAPPER、UFO、 NOMAD、SAS等。它们服务于维护、准备和处 理报表,允许用户以可见的交互方式在终端上创 立文件、报表和进行其它的处理。 应用开发环境目前较有代表性的有Power Builder和Oracle。 Oracle提供的SQL*FORMS、SQL*MENU、 SQL*REPORTWRITER等工具建立在 SQL语言 基础之上,借助了数据库管理系统强大的功能, 让用户交互式地定义需求,系统生成相应的屏幕 格式、菜单和打印报表。

2013-7-15
15
4GL-第四代语言 -3


4GL应具有的标准 (1)生产率:4GL一出现,就是以大幅度提高软件生产率 为己任的,4GL应比3GL提高生产率一个数量级以上。 (2)非过程化:4GL基本上应该是面向问题的,即只需告 知计算机“做什么”,而不必告知计算机“怎么做”。当 然4GL为了适应复杂的应用,而这些应用是无法“非过程 化”的,就允许保留过程化的语言成分,但非过程化应是 4GL的主要特色。 (3)用户界面:4GL应具有良好的用户界面,应该简单、 易学、易掌握,使用方便、灵活。 (4)功能:4GL要具有生命力,不能适用范围太窄,在某 一范围内应具有通用性。

2013-7-15
24
4GL-第四代语言 -11

发展趋势:


4GL与面向对象技术将进一步结合 支持网络分布式应用开发 4GL将出现事实上的工业标准 受限的自然语言加图形作为用户界面 4GL将进一步与人工智能相结合 4GL继续需要数据库管理系统的支持 4GL要求软件开发方法发生变革
软件工程
软件工程
软件工程
刘迎春
2013-7-15 1
第六章 编码
计划 时期 问题定义 可行性研究 是 可行否? 需求分析 概要/详细设计 终止项目

主要内容

开发 时期
6.1 编码概念 6.2 程序设计语言 6.3 编码风格 6.4 编码工具

编码
2013-7-15 2
6.1 编码概念

【说明】


2013-7-15
4
6.1 编码概念

【㈠目标】

产生正确可靠、简明清晰、具有较高效率的源程序。 把一个模块的功能逐步分解。 详细设计
模块功能细化为一系列具体的步骤。

【㈡自顶向下,逐步求精】



编码阶段
用程序设计语言翻译成一系列的程序。
2013-7-15
5
6.1 编码概念

2013-7-15
18
4GL-第四代语言 -5
2.图形语言 图形信息较之一维的字符串、二维的表格信息更 为直观、鲜明。 目前较有代表性的是Gupta公司开发的SQL Windows系统。它以SQL语言为引擎,让用户在 屏幕上以图形方式定义用户需求,系统自动生成 相应的源程序(还具有面向对象的功能),用户 可修改或增加这些源程序,从而完成应用开发。

2013-7-15
19
4GL-第四代语言 -6
3.应用生成器 应用生成器是重要的一类综合的4GL工具,它用 来生成完整的应用系统。 应用生成器让用户不必使用多个软件,而只用这 样一个综合工具来实现多种功能。 应用生成器按其使用对象可以分为交互式和编程 式二类。

2013-7-15
20
7
6.1 编码概念

例:用筛选法求100以内的素数。 【⒉对框架中的局部再做细化,得到整个程序】







main ( ) { …… for ( j = 1;j <= 4;j++ ) { for ( i = 2;i <= 100;i++) { if ( 0 == A[i] % B[j] ) A[i] = 0;//3.1 } } for ( i = 2;i <= 100;i++ ) { if ( A[i] != 0 ) printf (“A[%d]=%d\n”,i,A[i] ); //4.1 } }

2013-7-15
14
4GL-第四代语言 -2
由于近代软件工程实践所提出的大部分技术和方 法并未受到普遍的欢迎和采用,软件供求矛盾进 一步恶化,软件的开发成本日益增长,导致了所 谓“新软件危机”。 这既暴露了传统开发模型的不足,又说明了单纯 以劳动力密集的形式来支持软件生产,已不再适 应社会信息化的要求,必须寻求更高效、自动化 程度更高的软件开发工具来支持软件生产。4GL 就是在这种背景下应运而生并发展壮大的。
2013-7-15
25
第五代语言
第五代语言就是自然语言又被称为知识库语言或 人工智能语言,目标是最接近日常生活所用语言 的程序语言。 目前并没有真正意义上的第五代语言,LISP和 PROLOG号称第五代语言,其实还远远不能达到 自然语言的要求。

2013-7-15
26
6.2.3 程序设计语言的选择
机 器 语 言
2013-7-15
汇 编 语 言
硬件
12
6.2.1 程序设计语言分类

按发展过程,程序设计语言分为:
低级语言
③高级语言
① 机 器 语 言
② 汇 编 语 言
人工智能 Lisp、Prolog 用于军事 Ada
2013-7-15
13
4GL-第四代语言 -1
4GL以数据库管理系统所提供的功能为核心,进 一步构造了开发高层软件系统的开发环境,如报 表生成、多窗口表格设计、菜单生成系统等,为 用户提供了一个良好的应用开发环境。 4GL简单易学,用户界面良好,提供了功能强大 的非过程化问题定义手段,用户只需告知系统做 什么,而无需说明怎么做 4GL的代表性软件系统有:Oracle应用开发环境、 SQL Windows、Power Builder 、Delphi和 INFORMOX-4GL等

程序设计语言的特性、程序设计风格会深刻地影 响软件的质量和可维护性。
概要设计 报告
源程序 清单 详细设计 报告 程序设计语言
2013-7-15
3
6.1 编码概念

【㈠目标】

产生正确可靠、简明清晰、具有较高效率的源程序。 ⒈源代码越是清楚和简明,就越便于验证源代码和 设计文档的一致性,越容易对它进行测试和维护; ⒉清晰和效率却常常会有矛盾,清晰性好的程序一 般效率较低,而要求效率高的程序往往清晰度不太 好; ⒊对于大多数模块,编码时应该把简明清晰放在第 一位。
2013-7-15
10
6.2 程序设计语言

程序设计语言指编写计算机程序所用的语言, 是人 与计算机进行交流的工具。
程序设计语言
有问题需 要计算机 解决的人
计算机硬 件仅仅知 道0和1
2013-7-15
11
6.2.1 程序设计语言分类

按发展过程,程序设计语言分为:
依赖于机器 低级语言 硬件 独立于机器 高级语言 系统软件2013-7-15来自66.1 编码概念

例:用筛选法求100以内的素数。 【⒉对框架中的局部再做细化,得到整个程序】








2013-7-15
main ( ) { for ( i = 2;i <= 100;i++ ) A[i] = i; //1 B[1] =2;B[2] = 3;B[3] = 5;B[4] = 7; //2 for ( j = 1;j <= 4;j++ ) { /*3.1 检查A[ ]所有的数能否被B[j]整除并将能被整除的 数从A[ ]中剔除*/ } for ( i = 2;i <= 100;i++ ) { /*4.1 若A[i]没有被剔除,则输出 */ } }

2013-7-15 21
4GL-第四代语言 -8
编程式应用生成器:是为建造复杂系统的专业程 序人员设计的,如NATURAL、FOXPRO、 MANTIS、IDEAL、CSP、DMS、INFO、LINC、 FORMAL、 APPLICATION FACTORY以及作者 设计的OO-HLL等。 这一类4GL中有许多是程序生成器(Program Generator),如LINC生成COBOL程序, FORMAL生成PASCAL程序等。 为了提供专业人员建造复杂的应用系统,有的语 言具有很强的过程化描述能力。虽然语句的形式 有差异,其实质与3GL的过程化语句相同,如 Informix-4GL和Oracle的PRO*C。

2013-7-15 22
4GL-第四代语言 -9
4.形式规格说明语言 软件规格说明是对软件应满足的需求、功能、性 能及其它重要方面的陈述,是软件开发的基础, 有软件的需求规格说明、功能规格说明、设计规 格说明等。用来书写规格说明的语言称为规格说 明语言。 传统的规格说明语言是自然语言。在我国,主要 使用现代汉语来表达软件的规格说明。自然语言 为开发者和用户所熟悉,易于使用。但也会不可 避免地将自然语言的歧义性、不精确性引入到软 件规格说明中,从而给软件的开发和软件的质量 带来隐患。
2013-7-15
16
4GL-第四代语言 -4
(1)4GL虽然功能强大,但在其整体能力上却与3GL 有一定的差距。这一方面是语言抽象级别提高;另 一方面是人为带来的,许多4GL只面向专项应用。 有的4GL为了提高对问题的表达能力,提供了同 3GL的接口,以弥补其能力上的不足。如Oracle提 供了可将SQL语句嵌入C程序中的工具PRO*C。 (2)4GL系统开销庞大,运行效率低下,对软硬件资 源消耗严重,应用受硬件限制。 (3)由于缺乏统一的工业标准,4GL产品花样繁多, 用户界面差异很大,与具体的机器联系紧密,语言 的独立性较差(SQL稍好),影响了应用软件的移植 与推广。 (4)目前4GL主要面向基于数据库应用的领域,不宜 于科学计算、高速的实时系统和系统软件开发。
相关文档
最新文档