简述软件开发的本质(简述软件开发的本质特征)

软件开发 1527
本篇文章给大家谈谈简述软件开发的本质,以及简述软件开发的本质特征对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、软件的本质是什么? 2、

本篇文章给大家谈谈简述软件开发的本质,以及简述软件开发的本质特征对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

软件的本质是什么?

我觉得我只是一个小人物,似乎不配讨论这种那么大的题目。但是几天来一些想法萦绕在我心中,不吐不快。

软件的本质我觉得有非常多的理解方法。我们可以说软件是一种秩序,是一种从混沌的真实世界中抽象出的秩序的本质。软件描述了一种正确的规律,一系列必要的约束,指导着其他软件以及大众如何正确地行动。软件是一组可以用数学描述的命题,这些命题的证明过程描述了问题的正确的解决方式。广义上讲,我们大脑里对某个问题的理性的思考过程也就是一个软件正在被执行。

从另外一个一个角度说,软件是硬件工作的任务,软件协调并指导硬件与硬件正确地交互产生人们想要的正确结果。我们不能说没有经过build的代码就是软件,因为光代码不能做任何事情。软件供应商大多数时候将代码编译后的二进制版本成为软件并将之出售,我觉得也有问题。光盘上的二进制序列和代码本质上没有什么区别,什么都不能做。我觉得软件只有在执行的时候,在真正协调着我们工作时才是真正意义上的软件。也就是说,不能正常工作的软件没有任何意义,软件的一个最基本的要求就是,能够正常工作。

从这个角度上看来,软件与程序也是截然不同的两个概念。我们可以将一个非常炫的.exe叫做一个程序,但是有时候并不一定是软件。软件应该要具有一定的鲁棒性,可维护性和可扩展性,并且必须首先是不能经常出bug的,否则永远只能是程序。写程序容易,写软件难。

那么为什么那么多软件,到最后结果却并不是特别的好呢?我觉得这里又是两个概念了,就是软件与产品。软件的话,只要你写出来的东西能够运行,我们就可以说是软件。软件有非常非常多,但是能成为产品的却很少。产品,是给人用的,而且一般是给不懂你是怎么实现这些功能的人用的。产品就是把复杂逻辑封装后,只留下简单的用户接口。产品的特性决定了,一个产品,在是个软件的基础上,还要具备简单易用,界面美观,与同系列其它产品能够形成一套统一平台,拥有完整文档等等许许多多的要求,并且用户能直接看得见的产品的每一个部分,都必须是完美无缺的,这就不只是程序员或者软件工程师能够做到的了。产品,必须追求100%完美,即使不能达到也要追求这个目标。

软件的本质,是对真实世界的抽象。有时候这种抽象是难以接受的,这个时候这种抽象不能带来任何物质利益。而产品的本质就是服务,是一种全身心为客户着想的服务,只有对客户全身心投入,才能获得回报。这是这几天以来的一个感悟。

软件的本质是什么?

软件的本质:按既定要求进行的运算、储存、读取、传输。

既定要求的输入:键盘输入、端口输入、网络传输,其他方式输入。

运算结果的输出:屏幕显示、打印输出、网络传输,其他方式输出。

计算机硬件为软件运行提供物理支持。

1.软件开发的本质是实现什么到什么的映射?

1.软件开发的本质就是要实现“高层概念”到“低层概念”的映射

2.统一过程的突出特点体现在如下三个方面:用况驱动、以构架为中心、迭代和增量

3.面向对象的原则:抽象、多态、继承、封装

4.功能模型、对象模型、动态模型

5.模型、过程

6.实现关系

7.一个用例与其协作之间的关系是一种实现关系

8.构造性和演化性

软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发。软件分为系统软件和应用软件,并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分。 软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。

统一软件开发过程(Rational Unified Process,RUP)是一个面向对象且基于网络的程序开发方法论。根据Rational(Rational Rose和统一建模语言的开发者)的说法,好像一个在线的指导者,它可以为所有方面和层次的程序开发提供指导方针,模版以及事例支持。 RUP和类似的产品--例如面向对象的软件过程(OOSP),以及OPEN Process都是理解性的软件工程工具--把开发中面向过程的方面(例如定义的阶段,技术和实践)和其他开发的组件(例如文档,模型,手册以及代码等等)整合在一个统一的框架内。

软件开发是什么?

软件开发(Software development)是根据用户要求建造出软件系统或者系统中的软件部分的过程。它是一项包括需求获取、开发规划、需求分析和设计、编程实现、软件测试、版本控制的系统工程。 软件开发包括研究、修改、复用、重新设计(再工程)、维护等活动,通常采用软件开发工具进行开发。

阶段划分

计划

软件开发

对所要解决的问题进行总体定义,包括了解用户的要求及现实环境,从技术、经济和社会因素等3个方面研究并论证本软件项目的可行性,编写可行性研究报告,探讨解决问题的方案,并对可供使用的资源(如计算机硬件、系统软件、人力等)成本,可取得的效益和开发进度作出估计,制订完成开发任务的实施计划。

分析

软件需求分析就是对开发什么样的软件的一个系统的分析与设想。它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可。需求分析的主要方法有结构化分析方法、数据流程图和数据字典等方法。本阶段的工作是根据需求说明书的要求,设计建立相应的软件系统的体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系统进行具体设计定义,编写软件概要设计和详细设计说明书,数据库或数据结构设计说明书,组装测试计划。在任何软件或系统开发的初始阶段必须先完全掌握用户需求,以期能将紧随的系统开发过程中哪些功能应该落实、采取何种规格以及设定哪些限制优先加以定位。系统工程师最终将据此完成设计方案,在此基础上对随后的程序开发、系统功能和性能的描述及限制作出定义。

设计

软件设计可以分为概要设计和详细设计两个阶段。实际上软件设计的主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序的程序单元。可以是一个函数、过程、子程序、一段带有程序说明的独立的程序和数据,也可以是可组合、可分解和可更换的功能单元。模块,然后进行模块设计。概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。

编码

软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的“源程序清单”。充分了解软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。

当前软件开发中除在专用场合,已经很少使用二十世纪80年代的高级语言了,取而代之的是面向对象的开发语言。而且面向对象的开发语言和开发环境大都合为一体,大大提高了开发的速度。

测试

软件测试的目的是以较小的代价发现尽可能多的错误。要实现这个目标的关键在于设计一套出色的测试用例(测试数据与功能和预期的输出结果组成了测试用例)。如何才能设计出一套出色的测试用例,关键在于理解测试方法。不同的测试方法有不同的测试用例设计方法。两种常用的测试方法是白盒法测试对象是源程序,依据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误。结构错误包括逻辑、数据流、初始化等错误。用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。白盒法和黑盒法依据的是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。其中接口错误包括内部/外部接口、资源管理、集成化以及系统错误。黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。

维护

维护是指在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后,对软件产品所进行的一些软件工程的活动。即根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。编写软件问题报告、软件修改报告。

一个中等规模的软件,如果研制阶段需要一年至二年的时间,在它投入使用以后,其运行或工作时间可能持续五年至十年。那么它的维护阶段也是运行的这五年至十年期间。在这段时间,人们几乎需要着手解决研制阶段所遇到的各种问题,同时还要解决某些维护工作本身特有的问题。做好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还可以使它扩展功能,提高性能,为用户带来明显的经济效益。然而遗憾的是,对软件维护工作的重视往往远不如对软件研制工作的重视。而事实上,和软件研制工作相比,软件维护的工作量和成本都要大得多。

在实际开发过程中,软件开发并不是从第一步进行到最后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。在测试过程中的问题可能要求修改设计,用户可能会提出一些需要来修改需求说明书等。

如何理解软件的本职是现实世界向计算机世界的映射?在软件开发过程中,如何体现

不同抽象层次之间的映射过程。任何软件系统开发的共同本质在于:从现实空间的需求到计算机空间的软件代码之间的映射与转换。

概念映射是问题空间的概念与解空间的模型化概念之间的的映射;逻辑映射是问题空间的处理逻辑与解空间处理逻辑之间的映射。前者对应与数据结构,后者对应算法。

在软件开发过程中,从需求过程映射到代码空间采取的方式。顾名思义,单步映射一次性完成,而多步映射需要分成多布进行。多步映射可以通过牺牲“时间”来提高“质量”;

映射过程:包括4个部分需求分析、软件设计、实现、验证/确定。

软件开发的本质以及基本途径是什么。

答:软件开发的本质可概括为:实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射;实现这一映射的途径事系统建模。

简述软件开发的本质的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于简述软件开发的本质特征、简述软件开发的本质的信息别忘了在本站进行查找喔。

扫码二维码