程序是运行在电子计算机上,用于实现某种功能的一组指令的集合。程序的规定与功能的复杂度有关,一般而言,功能越复杂,程序的规模就越大。下面将从程序的开发流程、程序的编写方法、编程约定和数据的表示等方面对程序实现方法进行说明。

程序开发流程

为了保证程序与问题统一,也保证程序能长期稳定使用,人们将程序的开发过程分为以下6个阶段。

1.分析问题

编程的目的是控制计算机解决问题,在解决问题之前,应充分了解要解决的问题,明确真正的需求,避免因理解偏差而设计出不符合需求的程序。

2.划分边界

准确描述程序要“做什么”,此时无须考虑程序具体要“怎么做”。例如小李明天要从家出发到公司,对于此问题,只需要关心核心人物“小李”从“家里”出发,最终到达“公司”,至于小李如何从家到达公司,不需要考虑。在这一阶段可利用IPO(Input, Process, Output)方法描述问题,确定程序的输入、处理和输出之间的总体关系。

3.程序设计

这一步需要考虑“怎么做”,即确定程序的结构和流程。对于简单的问题,使用IPO方法描述,再着重设计算法即可。对于复杂的程序,应先“化整为零,分而治之”,即将整个程序划分为多个“小模块”,每个小模块实现小功能,将每个小功能当作独立的处理过程,为其设计算法,最后再“化零为整”设计可以联系各个小功能的流程。

4.编写程序

使用编程语言编写程序。这一阶段首先要考虑的是编程语言的选择,不同的编程语言在性能、开发周期、可维护性等方面有一定的差异,实际开发中开发人员会对性能、周期、可维护性等因素进行一定的考量。

5.测试与调试

运行程序,测试程序的功能,判断功能是否与预期相符,是否存在疏漏。如果程序存在不足,应着手定位和修复(即“调试”)程序。在这一过程中应尽量多地考量与测试。

6.升级与维护

程序并不会完全完成,哪怕它已投入使用。后续需求方可能提出新的需求,此时需要为程序增加新的功能,对其进行升级;程序使用时可能会产生问题,或发现漏洞,此时需要完善程序,对其进行维护。

综上所述,解决问题的过程不单单是程序编写的问题,问题分析、划分边界、程序设计、程序测试与调试、升级与维护亦是解决问题不可或缺的步骤。

【分享】程序的开发与编写相关推荐

  1. 好程序员前端分享使用JS开发简单的音乐播放器

    好程序员前端分享使用JS开发简单的音乐播放器,最近,我们在教学生使用JavaScript,今天就带大家开发一款简单的音乐播放器.首先,最终效果如图所示: 首先,我们来编写html界面index.htm ...

  2. html air 桌面开发,adobeair桌面应用程序的开发流程分享.docx

    PAGE / NUMPAGES Adobe AIR桌面应用程序的开发流程 富媒体时代使RIA成为桌面应用开发的主流,人们开始追求高互动性和具有美观感受的应用程序.Flash在视觉效果上的优势,加上在R ...

  3. 桌面版应用_【Nordic博文分享系列】开发你的第一个NCS(Zephyr)应用程序

    Nordic有2套并存的SDK 1.老的nRF5 SDK 2.新的NCS SDK 两套SDK相互独立, 大家选择其中一套进行开发即可. 一般而言,如果你选择的芯片是nRF51或者nRF52系列,那么推 ...

  4. 编程日历小程序,对小程序云开发和生成分享海报的实践

    1.起源 朋友圈晒的很多的一本日历书<了不起的程序员 2021>,我也买了,很厚,纸质书嘛,现在已经很少看了,加上这是一本日历书,希望是每天都打开看.可实际上的情况是,要么忘记看今天的内容 ...

  5. 好程序员web前端分享移动前端开发和web前端开发的区别

    好程序员web前端培训分享移动前端开发和web前端开发的区别,既然都是前端开发,两者肯定有紧密的联系,但是楼主主要询问区别,我就先简单聊一下相同点,之后在着重分析不同点. 移动前端开发和web前端开发 ...

  6. 校园表白墙、微信表白墙、校园墙 微信小程序 JAVA 开发记录与分享

    目录 最新版表白墙博客地址 1.微信小程序前台展示 2.功能介绍 3.后台管理 4.后端语言采用 JAVA 开发 5.体验此微信小程序 扫描下方二维码 6.如何联系我或需要源码进行联系 最新版表白墙博 ...

  7. 基于列表框的简单选课窗体开发。编写Windows应用程序,设计实现一个简单选课系统,要求:(1)点击“添加”按钮,将把在第一文本框中的输入的课程名称添加到左边的列表框中,且所添加的课程不能为空,不能

    基于列表框的简单选课窗体开发.编写Windows应用程序,设计实现一个简单选课系统,要求: (1)点击"添加"按钮,将把在第一文本框中的输入的课程名称添加到左边的列表框中,且所添加 ...

  8. 头歌-信息安全技术-用Python实现自己的区块链、支持以太坊的云笔记服务器端开发、编写并测试用于保存云笔记的智能合约、支持以太坊的云笔记小程序开发基础

    头歌-信息安全技术-用Python实现自己的区块链.支持以太坊的云笔记服务器端开发.编写并测试用于保存云笔记的智能合约.支持以太坊的云笔记小程序开发基础 一.用Python实现自己的区块链 1.任务描 ...

  9. 【golang程序包推荐分享】分享亿点点golang json操作及myJsonMarshal程序包开发的踩坑经历 :)

    目录[阅读时间:约5分钟] 一.概述 1.Json的作用 2.Go官方 encoding/json 包 3. golang json的主要操作 二.Json Marshal:将数据编码成json字符串 ...

最新文章

  1. opencv源码解析之(6):hog源码分析
  2. 水杯测试----误人子弟啊!
  3. flutter - URL出现在网站名称的位置
  4. java简单课程设计_!高分跪求帮忙写一个简单小程序的JAVA课程设计报告(内详!!)...
  5. wxWidgets:wxColourPickerEvent类用法
  6. js粘贴板为什么获取不到图片信息_【第1829期】复制黏贴上传图片和跨浏览器自动化测试...
  7. kotlin获取属性_Kotlin程序| 属性获取器和设置器方法的示例
  8. Redis工作笔记-事务
  9. python炒股日记_自学python的日记分享
  10. IronPython 2.0 Alpha2
  11. C语言pid算法模糊控制,温度PID模糊控制的算法完整
  12. 怎么改mnist数据的标签_详解 MNIST 数据集
  13. 多功能下拉分页选择插件SelectPage插件 http://www.jq22.com/jquery-info14227
  14. win7一激活就蓝屏
  15. APP设计:(一)app界面常用设计规范
  16. Echarts设置y轴值间隔
  17. 高等数学基础概念的Python开发实现
  18. ITRON的内存管理,中断处理,时钟管理
  19. MAC 在线安装系统
  20. 通过创建script标签来引入外部js

热门文章

  1. Hadoop学习之Hadoop集群的定制配置(二)
  2. 知识点讲解二:关于requests里的timeout()
  3. 【python进阶】_正则表达式
  4. python 查看当前系统Python版本
  5. 日常python常见问题
  6. redis java对象操作
  7. 机器学习-数据科学库(第一天)
  8. 【模型迭代】模型迭代
  9. vue语法 `${ }` (模版字符串)
  10. SpringBoot Thymeleaf使用教程(实用版)