总括本人十几年的软件开发经验,通过对软件开发的感悟,觉得可以概括其精髓如下:

1、建立逻辑模型;

2、处理逻辑模型的数据;

关于建立逻辑模型

我们开发软件,肯定是为了完成某个客观任务,这就要求我们的软件表达并处理现实中的某项任务,这个现实任务,就是一个客观存在的事物,也就是说,一个客观模型;但计算机不可能直接处理该客观模型,必须相应地建立一个逻辑模型;

逻辑模型建立得好与否,唯一的标准系是否准确地反映了客观模型,要做到这一点,就必须做好如下两项工作:

1)我们对所要处理的客观模型描述是否全面、详细;

2)我们对客观模型的分析是否到位,理解客观模型的本质,是否对客观模型进行完整的归纳;

通过客观模型的归纳和抽象,得出计算机能够处理的逻辑模型;

处理逻辑模型的数据

在软件开发设计中,这一项工作是否做得好,最直接的标准是:逻辑对象的数据处理起来是否方便;

逻辑模式建立起来了,需要确定如何组织、表达逻辑模型中的数据,在软件设计中,就涉及到我们所熟悉的数据词典、对象定义、数据库结构,并且包括数组结构、数据集合、属性和公用变量等;

处理逻辑模型的数据,也涉及到一系列的相关业务算法,算法设计是否合理,是否如实地表达业务需求,并能够基于逻辑模型的数据进行运算。

逻辑模型的数据表达,在软件结构设计的不同层面中,也有相应不同的表达方式,如在数据层,通过数据库表格,表达并存储逻辑模型的数据,但在业务层,则必须通过实例化的类对象、结构、数组表达逻辑模型的数据。

总结

目前关于软件结构设计和实现的方法,大家常提及的就是:系统需求说明、系统设计说明、模块设计说明、数据库设计等,这些设计文档的表达方式每个公司、开发团队有不同的要求,并且相对于软件项目的规模,这些设计文档有所取舍,但是,软件开发,有其内在的精髓,其精髓总结起来就是:

建立逻辑模型,并处理逻辑模型中的数据。

在实际的软件开发中,记住并领悟这句话,思路会保持明朗清晰的。

用一句话表达的软件开发精髓相关推荐

  1. Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓 O725

    Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓  O725 1. DSL主要分为三类:外部DSL.内部DSL,以及语言工作台. 1 2. DSL ...

  2. 软件开发高手须掌握的4大SQL精髓语句(综合篇)

    软件开发高手须掌握的4大SQL精髓语句(综合篇)                                   马根峰      ( 广东联合电子收费股份有限公司,广州 510300) 作者博客 ...

  3. 软件开发提效哪有那么容易,都是坑啊~

    提效就是减少浪费吗? 基于现状的各环节浪费进行分析,避免浪费,就能达到提效的目的了么?这么说未必正确,要看目的是什么.有三种可能的目的: 减少总花费:可能人变少了,但是要开发的时间变长了. 提高总吞吐 ...

  4. 从开源软件开发中体会到的心得

    Mitchell Hashimoto 是一名开源软件工程师.由他托管到 GitHub 上的 开源项目 Vagrant,是一个用于创建和部署虚拟化开发环境的工具.近日,Mitchell撰文讲述了在开发 ...

  5. 一个沉重的问题:软件开发到底还有价值吗?

    无论是医生.老师,还是会计,都很容易让人理解工作内容,并且这项工作在现实生活中也可以继续发挥作用,但软件开发工程师这个岗位实在是不好描述.纵观国内外不少程序员扎堆的论坛,我们总能看到与"软件 ...

  6. 软件开发前言技术系列讲座

    一.最开始的题目 1.大数据 1)大数据背景下软件开发的特点(分条), 2)大数据背景下软件开发要注意什么(或需要关注的是什么). 价值,数据量,速度,复杂度,多样性 2.什么是云计算?(给出你使用过 ...

  7. 漫谈程序员系列:软件开发的十八般乐趣

    有人说我在传递负能量,看了我的"漫谈程序员系列"感到了前所未有的彷徨与迷惘,哇哦,这不是我的初衷,我只是给你看真实的世界,真的勇士,敢于直面惨淡的人生与淋漓的鲜血. 有人说我在黑程 ...

  8. 软件开发流程与初始软件测试

    一.项目成员(公司组织架构) 二.项目开发流程 项目开发流程 三.软件测试关于人格品质 几乎所有公司都是把人品考核放在第一位. 1. 为人诚实 要正确地认识自己,在面试或者工作的过程中,应如实表达自己 ...

  9. DesignPattern团队《设计模式在软件开发的应用》讨论会议记录

    Design&Pattern团队<设计模式在软件开发的应用>讨论会议记录 时间:2004年12月18日20:00-21:00 地点:博客园聊天室 主持:Dudu.Wayfarer ...

最新文章

  1. Java IO流之缓冲流
  2. NCRE四级网络工程师考题详解----目录分解法
  3. HttpClient 实现爬取百度搜索结果(自动翻页)
  4. 为什么阿里腾讯们都在抢夺 LoRa?| 技术头条
  5. [转]Windows环境中使用版本管理工具 Git
  6. 新版office365介绍
  7. net3.5离线一键安装工具_一键获取抖音直播源地址(无水印高清下载),无需安装Fiddler抓包工具...
  8. SLAM 中evo的使用(二) (evaluation of odometry) evo_traj/ape rpe/evo_ape说明与示例
  9. 售前是做什么的?需要具备什么能力?
  10. AidLearning0.87F3安装Python3.8
  11. MOOC武汉大学SAS第2章作业
  12. 编写python程序、计算账户余额_《易学Python》——第1章 为何学习Python 1.1 学习编程...
  13. 鹦鹉用 Echo 购物成功?浙大“海豚攻击”不服
  14. SpringMVC的工作原理图
  15. silverlight beet - 从xap文件中加载图片
  16. STM32F407的USB_HID 基础配置STM32CubeMX
  17. 用PHP制作简单的登录页面
  18. 苹果推出iPhone 12维修计划,解决无声音问题
  19. 利用powerful number求积性函数前缀和
  20. BALER ace 相机的安装和配置

热门文章

  1. Adversarial Examples:Attacks and Defenses for Deep Learning Networks
  2. html5w3cschool帮助文档,W3C school HTML教程 CHM帮助
  3. SPI写OLED(软硬件切换)
  4. 7-47 打印选课学生名单
  5. 全网首发克莱斯勒东南大捷龙jeep道奇DIY数码碟盒增加USB和蓝牙播放音乐功能使用原车接口无损改装
  6. 老男孩python作业_老男孩python学习第一天作业
  7. 方法未找到异常java.lang.NoSuchMethodException的解决办法
  8. html 重复显示,使用相同的JavaScript重复HTML
  9. 【windows10】Rufus软件制作USB闪存启动盘-CentOS8
  10. Microsoft.Word技巧:如何全选所有公式?