热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

软件工程——程序编码(程序编码总原则、5个好程序标准、源程序文档化)

经过前面的对要开发软件的设计,我们需要开始实际行动了,选择好了语言之后,而如何把模块的过程描述翻译为计算机所能看懂得的“东西”࿰

经过前面的对要开发软件的设计,我们需要开始实际行动了,选择好了语言之后,而如何把模块的过程描述翻译为计算机所能看懂得的“东西”,就需要编码来做了。

目录

程序设计语言分了哪几类?

在开发软件得过程中如何选择语言呢?

选择语言的原则有哪些?

程序编码总原则有哪些?

 

好程序标准(编完的程序怎样来评审它的好坏)有哪些?

结构化程序设计

程序设计风格

总结


 

程序设计语言分了哪几类?

汇编语言

高级语言

 

在开发软件得过程中如何选择语言呢?


  • 应用领域的不同决定选择的语言

       

领域

可选语言

商用

COBOL、4GLS(第四代语言)

科学计算

FORTRAN、PASCAL、PL/1

实时

汇编、ADA

系统

汇编、ADA、C6

智能

LISP、PROLOG

 

  • 系统用户的要求决定

        用户使用他们熟悉的语言

  • 可以使用的编译程序

        当工程规模很大时,而又没有完全合适的语言,可编一个专用的语言

 

选择语言的原则有哪些?


  1. 最少的工作量原则
  2. 最少技巧性原则
  3. 最少错误原则
  4. 最少维护原则
  5. 减少记忆原则

 

程序编码总原则有哪些?


  1. 先求正确后求快
  2. 先求清晰后求快
  3. 求快不忘保持程序正确
  4. 保持程序整洁以求块
  5. 不要因效率而牺牲清晰

 

好程序标准(编完的程序怎样来评审它的好坏)有哪些?


  1. 易于测试和调试
  2. 易于维护
  3. 易于修改
  4. 设计简单
  5. 高效率

 

结构化程序设计

强调使用几种基本控制结构、由粗到细,一步步展开

主要原则:使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑。

选用的控制结构只准许有一个入口和一个出口

复杂结构应该用基本控制结构进行组合嵌套来实现

自顶向下,逐步细化的过程

 

程序设计风格

源程序文档化:

                    标识符的命名

                    安排注释

                    程序的视觉组织

数据说明:

               数据说明的次序应当规范化

               当多个变量名在 一个语句中说明时,按字母顺序排列;

               应当对过程和函数的形参排列有序:输入参数在前,输出参数在后;整形参数在前,实型参数次之,其他参数在后

 

总结

程序编码阶段是将前面经过得软件设计、需求分析、概要设计、详细设计实践化,翻译为计算机能“理解”的编码形式

 

 

不足之处欢迎大家斧正哦!🙂


推荐阅读
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • Final关键字的含义及用法详解
    本文详细介绍了Java中final关键字的含义和用法。final关键字可以修饰非抽象类、非抽象类成员方法和变量。final类不能被继承,final类中的方法默认是final的。final方法不能被子类的方法覆盖,但可以被继承。final成员变量表示常量,只能被赋值一次,赋值后值不再改变。文章还讨论了final类和final方法的应用场景,以及使用final方法的两个原因:锁定方法防止修改和提高执行效率。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文介绍了C函数ispunct()的用法及示例代码。ispunct()函数用于检查传递的字符是否是标点符号,如果是标点符号则返回非零值,否则返回零。示例代码演示了如何使用ispunct()函数来判断字符是否为标点符号。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • 本文探讨了C语言中指针的应用与价值,指针在C语言中具有灵活性和可变性,通过指针可以操作系统内存和控制外部I/O端口。文章介绍了指针变量和指针的指向变量的含义和用法,以及判断变量数据类型和指向变量或成员变量的类型的方法。还讨论了指针访问数组元素和下标法数组元素的等价关系,以及指针作为函数参数可以改变主调函数变量的值的特点。此外,文章还提到了指针在动态存储分配、链表创建和相关操作中的应用,以及类成员指针与外部变量的区分方法。通过本文的阐述,读者可以更好地理解和应用C语言中的指针。 ... [详细]
  • switch语句的一些用法及注意事项
    本文介绍了使用switch语句时的一些用法和注意事项,包括如何实现"fall through"、default语句的作用、在case语句中定义变量时可能出现的问题以及解决方法。同时也提到了C#严格控制switch分支不允许贯穿的规定。通过本文的介绍,读者可以更好地理解和使用switch语句。 ... [详细]
  • 加密世界下一个主流叙事领域:L2、跨链桥、GameFi等
    本文介绍了加密世界下一个主流叙事的七个潜力领域,包括L2、跨链桥、GameFi等。L2作为以太坊的二层解决方案,在过去一年取得了巨大成功,跨链桥和互操作性是多链Web3中最重要的因素。去中心化的数据存储领域也具有巨大潜力,未来云存储市场有望达到1500亿美元。DAO和社交代币将成为购买和控制现实世界资产的重要方式,而GameFi作为数字资产在高收入游戏中的应用有望推动数字资产走向主流。衍生品市场也在不断发展壮大。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文介绍了在多平台下进行条件编译的必要性,以及具体的实现方法。通过示例代码展示了如何使用条件编译来实现不同平台的功能。最后总结了只要接口相同,不同平台下的编译运行结果也会相同。 ... [详细]
author-avatar
skyyyf
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有