软件开发是什么该如何去应用

点击以上视频即可播放了解详情 ↑
百度搜索“企云云”即可联系企云云 ↓

软件开发对所需要解决的问题进行总结定义,包括了解用户的要求及现实环境,从技术、经济和社会因素等3个方面研究并论证本软件项目的可行性,软件开发是什么应该如何去做呢?下面软件开发公司为您解答。
一、软件开发是什么
有形的工具是人类肢体的延伸;计算机系统则是人类大脑的延伸:
将人脑中的系统模型放到计算机系统中运行,从而将人脑解放出来做更有价值的事情。
“人脑中的系统模型”可以比喻成导演脑中的电影,在真正拍摄之前,导演会在自己的脑中播放,然后通过演员、道具等再现一遍。抑或比喻成电器设计师脑中的电器设备,在投产之前,在设计师脑中是有完整的电器仿真的。
将 “人脑中的系统模型”变成可以在计算机系统中可运行的系统的过程即为软件开发。
设计师脑中的电器模型必须和当前的生产工艺和技术水平相适应才能生产出产品,超前设计只能停留在概念阶段;导演天马行空的想象如果超越现实的拍摄技术限制也无法拍成电影。 “人脑中的系统模型”要最终变成可运行的计算机系统也受到计算机技术发展水平的限制(包括硬件技术和软件技术的限制),必须做一些适应性的调整,我们只是希望随着计算机技术的发展,这样的调整幅度越来越小,不要让我们的设想被迫打个折扣。
在计算机技术发展初期,计算机只能做一些科学计算,人类只能将一些“科学计算模型”交由计算机实现;随着计算机技术的发展,可以胜任更复杂的任务时,我们希望计算机系统能够帮助我们做更多事情,不仅仅是计算,还能做一些管理工作或处理一些繁琐的事务。
二、软件开发如何做
最开始,计算机只能用于一些科学计算,只能将人脑中的计算过程模型放到计算机中运行,软件开发的思考方式很自然地是面向过程的,这一阶段的编程语言也是面向过程的。后来的结构化编程也只是代码层面的优化,即“改善程序的明晰性、品质,并且避免写出面条式代码”。
随着计算机硬件技术的发展和计算能力、存储能力的提高,计算机被应用到更多的领域,这些领域内的模型已经不是线性的了,而是立体的有层次的,但是软件世界中由于受历史编程语言和编程思想的限制,还再继续用面向过程的编程思想和编程语言刻画人脑中模型,这中间需要进行转换——将立体的有层次的模型转换成线性的过程模型,两者之间不能自然衔接。程序本身也因为不能直接反映人脑中的模型而显得晦涩难懂。
针对这些问题,面向对象思维开始兴起。面向对象编程起源于 Doug Englebart的观点:计算机是人类大脑的延伸。Alan Kay's Dynabook 后来创建了一门编程语言(Smalltalk)将他的观点通过代码实现。实际上,这位面向对象编程的先锋的目的就是用代码捕捉人们头脑中的模型。今天,图形交互界面的繁荣和面向对象语言的控制地位正是当年这些面向对象思维的结果。
但是"用代码捕捉人们头脑中的模型"的目标到目前也没有完全实现,当前处于控制地位的面向对象编程语言如Java,C++,C#等都不能很好的捕获人脑中的模型。
人脑中模型大体上可以分为有生命的动态模型(人、组织和动物等)、响应式静态模型(机器、电子设备等)和完全静态模型(建筑、结构等)。现代的计算机系统一般是代替人类去处理事务,类似一个人或组织,刻画的是人脑中的“有生命的动态模型”。 计算机系统有时也用于一些仿真、模拟等,刻画的是人脑中的“响应式静态模型和完全静态模型”。现代编程语言可以很好地刻画后两个模型,但不能很好地刻画“有生命的动态模型”。现代面向对象编程语言中的对象和“响应式静态模型和完全静态模型”很接近,都是没有生命的,只在线程看到它并调用它时才有昙花一现的执行过程,即便如此现代面向对象编程语言在刻画静态模型时还是有很多问题,比如人类中的“响应式静态模型和完全静态模型”可能是一个电子设备,受到物理和几何特性的限制,组成电子设备的各组件之间是松耦合高内聚的,组件接口清晰、明确,组件之间的组装非常自然、容易。但是我们的程序中的对象却经常不是松耦合高内聚的,我们总认为比大自然能够做的更好,却往往陷入困境。所以才产生了那么多的设计原则、设计模式等来指导我们进行设计。
虽然通过设计原则、设计模式等的指导,我们可以比较完美的刻画人脑中的“响应式静态模型和完全静态模型”,但是在刻画“有生命的动态模型”时还是有些先天不足,语言层面不支持捕获模型中有生命的对象、角色变化和通信方式等。比如组织单位中的每个人是独立的有生命的对象,其角色可能是多重的或可变换的,人与人之间的交流可能是直接的、同步的、异步的或间接通过对话机制进行交流。这些模型还无法通过现代面向对象语言直接进行表达。
将人脑中的模型放到计算机系统中运行的一个理想过程可能是这样的:
(1)人脑首先发挥其长处按照自然的方式(不按程序思维或计算机思维)建立业务模型
(2)业务模型不断细化成为可以完成业务需求的模型系统,并能够在人脑中顺畅的演绎运行。这个阶段应该输出最终的详细模型。
(3)计算机系统理解上一步输出的详细模型并发挥计算机相对于人脑的优势更好的运行这个模型,提供模型中预先定义的服务。
以上就是软件开发公司为大家分享的软件开发以及应用,希望可以帮助到大家,如果还有还有什么不明白或者是想要咨询什么问题,请持续关注我们,我们会为您尽量解答。