软件是如何开发出来的?

如题所述

1、软件开发的第一个流程是项目开发目的分析与确定,主要是在软件开发商将开发项目确定下来之后,需要与需求方进行讨论,确定需求方对于软件开发的需要实现目标及其具体需要的功能等等,并确定是否可达成;
2、接下来就是需求分析,这个步骤也是为软件开发的正常进行确定具体思路的阶段。在确定软件开发可进行后,必须要对客户需要实现的软件功能需求进行具体详细的分析。同时应当考虑在开发过程中可能出现的变化情况,制定需求变更计划随时应对特殊情况的发生,保证软件开发流程的顺畅进行;
3、接下来就是软件设计。软件设计要根据上一阶段对软件功能需求分析的结果,来设计软件系统的框架结构、功能模块和数据库等等。它主要分为总体设计和详细设计两个部分;
4、接下来就是编程实施步骤。编程也是根据对软件设计,将软件设计的各部分需求通计算机程序代码来实现运行,编程有统一、规范的程序编写规则,保证软件程序的易懂性、易维护性;
5、接下来就是软件测试步骤。也就是在根据设计将客户软件需用编程代码来实现之后,也就是软件程序完成之后,需要对编写的程序,形成整体构架、功能进行单元、组装、系统三阶段的测试,以测试程序编写的正确性,以及对客户需求功能满足的充分性,以此来确定软件是否达到开发要求,同时也是一个发现问题、纠正问题的过程;
6、通过以上核心环节完成了软件开发,接下来就是在软件开发达到客户需求之后,开发者将软件系统交予客户,并将软件安装程序、数据库的数据字典、《用户安装手册》、《用户使用指南》、需求报告、设计报告、测试报告等产物交付给客户,同时指导客户进行软件安装、以及安装技巧,提醒客户注意软件运行状况、环境、服务器及相关中间件的检测与注意事项,知道客户软件的实际操作方法、使用流程等等问题,实现合同规定任务;
7、用户在接受开发商交付的软件开发结果,并进行实际操作、测试运行,实现满意结果之后,对开发出来的软件进行验收;
8、定制开发的软件通常都需要提供售后服务,定期对软件进行维护,或者根据用户出现的新需求,进行应用软件程序的修改,使之不断满足客户实际需求。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-13

软件开发流程

先上一个软件开发的整体流程图,这就是大名鼎鼎的“瀑布模型(Waterfall Model)”。据说由温斯顿·罗伊斯(Winston Royce)在1970年提出。

瀑布模型的特点为:上一阶段的结果为本阶段的输入,开发进程从一个阶段“流动”到下一个阶段。

(图中右侧括号中为每个阶段的输出物。)

一般软件售前人员对这个流程比较熟悉,这其中项目规划、可行性论证报告、需求说明书等,通常都由IT售前人员提供。

如果将瀑布模型的设计部分分为总体设计、详细设计两部分,即“软件开发的8个流程”:

1、问题定义阶段

用户提出一个软件开发需求以后,分析人员首先要明确软件的实现目标、规模及类型:如它是数据处理问题还是实时控制问题,是科学计算问题还是人工智能问题等。

2、可行性研究

基本任务:“对于上一个阶段所确定的问题有行得通的解决办法吗”?

内容包括经济可行性、技术可行性、法律可行性、不同方案。

结束标准:提出关于问题性质、工程目标和规模的问题定义书面报告;提出可行性研究报告。

3. 需求分析

基本任务:“为了解决这个问题,目标系统必须做什么?”

确定系统必须具有的功能和性能,系统要求的运行环境,并且预测系统发展的前景。

结束标准:软件需求规格说明书(specification)

4. 总体设计(概要设计)

基本任务:“概括地说,应如何解决这个问题?”

设计出实现目标系统的几种可能的方案。推荐一个最佳方案。

结束标准:概要设计文档

5. 详细设计

基本任务:“应该怎样具体地实现这个系统呢?”

结束标准:设计出程序的详细规格说明。

6. 编码

基本任务:写出正确的容易理解、容易维护的程序模块

结束标准:以某种程序设计语言表示的源程序清单

7. 测试(单元测试和综合测试)

基本任务:在设计测试用例的基础上检验软件的各个组成部分是否达到预定的要求。

结束标准:软件合格,能交付用户使用。

8. 软件维护

基本任务:使系统持久地满足用户的需要。

改正性维护,适应性维护,完善性维护,预防性维护。

虽然后来提出很多模型,如演化模型(evolutionary model)、增量模型(incremental model)、原型模型(prototyping model)等,但现在软件开发的流程,依然总体遵循瀑布模型。


如何搭建一个系统

说完流程,再说说系统是如何被开发人员搭建出来的。

系统的百度百科定义为:软件系统(Software Systems)是指由系统软件、支撑软件和应用软件组成的计算机软件系统,它是计算机系统中由软件组成的部分。

搭建系统可以分为三个步骤:环境部署、软件开发、软件部署。

1、环境部署

准备服务器,部署操作系统、软件环境、安全软件、FTP服务器等。数据库和应用可分开布置在多个服务器,也可布置在同一服务器。

准备网络,分为内网和外网。外网需要购买公网IP和域名。

负责人:网络管理员

2、软件开发

包括开发语言选择、架构设计、数据库设计等工作,并进行编码、编译、测试、打包。

负责人:程序员

3、软件部署

将程序文件上传到服务器,进行部署、配置,成功后即可通过客户端访问项目。

负责人:软件实施


软件开发阶段

下面以java语言开发为例,简单讲讲程序员是如何进行软件开发的。

(本部分参考了“软帝在线”公众号、博客园“架构与我”的文章)。

1、新建java文件(或工程)

java源代码本质上就是普通的文本文件,可以用txt等工具编辑java代码(程序员一般采用源代码编辑工具,如:Notepad++;或集成开发工具IDE,如:Eclipse)。txt编写后需将文件扩展名改成java。

2、编写代码

以“Hello World”举例编写代码:

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}

该程序表示的意思是输出Hello World这样一段话。

3、编译程序

Java程序之所以能做到跨平台运行,是因为Java程序运行在JVM中的,然而JVM只能够识别字节码文件,而不能直接识别Java文件。所以需要先将Java文件编译成字节码文件,即class文件,然后字节码文件才能够在JVM中运行。

编译文件,可以通过手动执行Dos命令javac,或直接用编译器如Eclipse完成。

4、运行程序

可在Dos命令窗口中输入java命令,按回车,输出Hello World;

或在编译器的控制台中看到输出结果。

5、单元测试

单元测试(模块测试)是开发者对编写的一小段代码,检验一个很小的、很明确的功能是否正确。

通常采用JUnit框架(多数java开发环境已集成)进行测试,即所谓白盒测试,叫“白盒”是因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。

测试通过后,就完成了软件开发阶段,可以打包部署了。(IT售前圈)

本回答被网友采纳
第2个回答  2019-02-08
软件是怎么开发出来的?

最佳答案

由提问者推荐

匿名用户

三言两语也不好说。如果单纯指软件的实现,不太完整的理解是:用编程工具,程序员写程序代码实现需求的逻辑,然后编译发布出来的。 摘自百度: 1.问题的定义及规划 此阶段是软件开发与需求放共同讨论,主要确定软件的开发目标及其可行性。 2.需求分析 在确定软件开发可行性的情况下,对软件需要实现的各个功能进行详细需求分析。需求分析阶段是一个很重要的阶段,这一阶段做的好,将为整个软件项目的开发打下良好的基础。“唯一不变的是变化本身”,同样软件需求也是在软件爱你开发过程中不断变化和深入的,因此,我们必须定制需求变更计划来应付这种变化,以保护整个项目的正常进行。 3.软件设计 此阶段中偶要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计、数据库设计等。软件设计一般分为总体设计和详细设计。还的软件设计将为软件程序编写打下良好的基础。 4.程序编码 此阶段是将软件设计的结果转化为计算机可运行的程序代码。在程序编码中必定要制定统一、符合标准的编写规范。以保证程序的可读性、易维护性。提高程序的运行效率。 5.软件测试 在软件设计完成之后要进行严密的测试,一发现软件在整个软件设计过程中存在的问题并加以纠正。整个测试阶段分为单元测试、组装测试、系统测试三个阶段进行。测试方法主要有白盒测试和黑盒测试。本回答被网友采纳
第3个回答  2020-07-13
软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发。软件分为系统软件和应用软件,并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分。 软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。
第4个回答  2022-03-30
软件开发公司排行榜
极其流行,同样也是竞争力极其大的一种商业模式。虽然国内软件开发公司都发展壮大起来了,但是各地软件开发公司的实力及资质仍然参差不齐。下面为大家介绍下近期国内软件开发公司的排名汇总。
1:华盛恒辉科技有限公司
上榜理由:华盛恒辉是一家专注于高端软件定制开发服务和高端建设的服务机构,致力于为企业提供全面、系统的开发制作方案。在开发、建设到运营推广领域拥有丰富经验,我们通过建立对目标客户和用户行为的分析,整合高质量设计和极其新技术,为您打造创意十足、有价值的企业品牌。
在军工领域,合作客户包括:中央军委联合参谋(原总参)、中央军委后勤保障部(原总后)、中央军委装备发展部(原总装)、装备研究所、战略支援、军事科学院、研究所、航天科工集团、中国航天科技集团、中国船舶工业集团、中国船舶重工集团、第一研究所、训练器材所、装备技术研究所等单位。
在民用领域,公司大力拓展民用市场,目前合作的客户包括中国中铁电气化局集团、中国铁道科学研究院、济南机务段、东莞轨道交通公司、京港地铁、中国国电集团、电力科学研究院、水利部、国家发改委、中信银行、华为公司等大型客户。
2:五木恒润科技有限公司
上榜理由:五木恒润拥有员工300多人,技术人员占90%以上,是一家专业的军工信息化建设服务单位,为军工单位提供完整的信息化解决方案。公司设有股东会、董事会、监事会、工会等上层机构,同时设置总经理职位,由总经理管理公司的具体事务。公司下设有研发部、质量部、市场部、财务部、人事部等机构。公司下辖成都研发中心、西安研发中心、沈阳办事处、天津办事处等分支机构。

3、浪潮
浪潮集团有限公司是国家首批认定的规划布局内的重点软件企业,中国著名的企业管理软件、分行业ERP及服务供应商,在咨询服务、IT规划、软件及解决方案等方面具有强大的优势,形成了以浪潮ERP系列产品PS、GS、GSP三大主要产品。是目前中国高端企业管理软件领跑者、中国企业管理软件技术领先者、中国最大的行业ERP与集团管理软件供应商、国内服务满意度最高的管理软件企业。
4、德格Dagle
德格智能SaaS软件管理系统自德国工业4.0,并且结合国内工厂行业现状而打造的一款工厂智能化信息平台管理软件,具备工厂ERP管理、SCRM客户关系管理、BPM业务流程管理、
OMS订单管理等四大企业业务信息系统,不仅满足企业对生产进行简易管理的需求,并突破局域网应用的局限性,同时使数据管理延伸到互联网与移动商务,不论是内部的管理应用还是外部的移动应用,都可以在智能SaaS软件管理系统中进行业务流程的管控。
5、Manage
高亚的产品 (8Manage) 是美国经验中国研发的企业管理软件,整个系统架构基于移动互联网和一体化管理设计而成,其源代码编写采用的是最为广泛应用的
Java / J2EE 开发语言,这样的技术优势使 8Manage
可灵活地按需进行客制化,并且非常适用于移动互联网的业务直通式处理,让用户可以随时随地通过手机apps进行实时沟通与交易。
相似回答