你是一个软件开发的老板,我是一个软件开发的员工,翻然 你的公司还有很多从事其他业务的人员,一天的工作开始了
一个客户来到了我们的公司,首先由接待员接待,问请他要开发什么样的软件(类型),并把他的问题提交给程序策划人员,这还不够,第二天,策划人员要与客户面谈,内容就是软件需要什么样的功能,并给出合理的建议,以及针对某一个功能进行评估,(是否能够满足,因为客户的要求有的时候是不可能完成的,他毕竟是外行)。他了解了客户的要求以后,并对该软件进行详细的分解,并最后决定是否接受该软件的开发,分解的过程是这样的:
1 列出该软件的功能表:针对每一个问题,都有一个详细的说明
2 根据功能表,制定出软件的几大模块。
并切根据模块的复杂程度,决定是否继续划分出更详细的模块
3 详细分解模块之间的关系,并画出关系图纸。我门叫他《程序的流程图》
做好了以上的工作以后,就可以将各各模块分发给普通的程序设计者,设计者们根据模块的要求,设计自己的程序模块,具体的工作是:
1 分解模块的问题,并指定出可行的算法。
2根据算法,画出流程图,
3根据流程图及算法,编写程序代码
4上机运行。
5找出程序的错误。
6返回第3步,修改代码,继续第4步,5步
直到程序没有错误,
每个程序员都这样完成了自己的工作,
并把自己的模块的 代码,流程图,及其他稳当提交给程序策划人员,策划人员接过代码后编写主要的函数(既主程序)目的是将各模块主和在一起,形成一个完整的程序。在这一过程中也有返工和修改错误的可能。直到程序完好。
下面的工作就有测试人员完成了
要分别进行 嘿盒子测试,和白盒子测试。
黑盒子测试: 由非设计人员,提出一些极端的,苛刻的,以及错误的要求,看程序是否可以正常运行。如果不能,修该程序。
白盒子测试: 有程序设计者提供合理的,全面的要求,看程序是否可以正常运行,如果不能,修改。
经过测试,程序已经设计完毕。由接待人员把程序提交给客户,并客户调试,运行,满意以后,交钱。
程序的文挡要保留好,因为客户很可能继续提出跟高的要求,一旦事情发生,程序员根据历史文挡进行程序的功能扩葱,这就是人们常见的版本,例如 photoshop v1.2 ,photoshop v2.0
等等,
这是从人员的角度开发程序的过程。
一个程序是如何产生的呢 答案如下
愿代码 -》编译程序-》目标程序
原代码:
根据程序设计语言编写的文本
例
main()
{
printf("这就是一个程序,它的功能很简单,就是在屏幕成打印这句话!");
return(0);
}
计算机硬件是看不懂这样的字的,必须有相关的编译程序翻译成计算机硬件可以识别的 2进制文件例如
00110011 00111100 11001010 11001010
00001111 00010001 00011010 00101000
目标程序就是以上的 由 0 和 1 主成的目标程序,这样的程序就可以使用了。
软件开发流程(Software development process)即软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。
开发流程
需求调研分析
●相关系统分析员和用户初步了解需求,然后用WORD列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。
●系统分析员深入了解和分析需求,根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功能需求文档。这次的文档会清楚例用系统大致的大功能模块,大功能模块有哪些小功能模块,并且还例出相关的界面和界面功能。
●系统分析员和用户再次确认需求。
概要设计
首先,开发者需要对软件系统进行概要设计,即系统设计。概要设计需要对软件系统的设计 进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、 运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。
详细设计
在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描述实 现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应当保证软件的需求完全分配给整个软件。详细设计应当足够详细,能够根据详细设计报告进行编码。
编码
在软件编码阶段,开发者根据《软件系统详细设计报告》中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。
测试
测试编写好的系统。交给用户使用,用户使用后一个一个的确认每个功能。
软件交付准备
在软件测试证明软件达到要求后,软件开发者应向用户提交开发的目标安装程序、数据库的数据字典、《用户安装手册》、《用户使用指南》、需求报告、设计报告、测试报告等双方合同约定的产物。 《用户安装手册》应详细介绍安装软件对运行环境的要求、安装软件的定义和内容、在客户端、服务器端及中间件的具体安装步骤、安装后的系统配置。 《用户使用指南》应包括软件各项功能的使用流程、操作步骤、相应业务介绍、特殊提示和注意事项等方面的内容,在需要时还应举例说明。
验收 用户验收。
以上就是基本的软件开发流程。
分享到:
相关推荐
项目开发流程是软件开发过程中的核心部分,它确保了从概念到产品的顺利过渡。在本文档中,项目开发流程被细分为以下几个关键步骤: 1. **需求文档编写**:此阶段主要是与客户沟通,了解他们的具体需求,并转化为...
【软件开发项目计划编制过程】 在软件开发领域,项目计划的编制是确保项目成功的关键步骤。这份文档模板详细阐述了项目计划的多个要素和编制过程,适用于项目管理的专业人士。以下是对这些要素和过程的详细解释: ...
【软件开发项目计划编制过程】 在软件开发领域,项目计划的编制是确保项目成功的关键步骤。这份文档将探讨软件开发项目计划的要素、编制过程,以及如何根据项目的进展进行迭代和调整。 首先,项目计划的要素是项目...
全球整车开发流程(GVDP)是汽车行业中一套严谨的、标准化的研发流程,旨在高效地将汽车从概念构思转化为实际商品。这一流程包含了多个关键阶段,每个阶段都有其特定的目标和交付物,确保产品的质量和市场竞争力。 ...
软件开发项目的计划通常是动态的,开始时可能只有粗略的计划,随着项目的推进,计划会逐步细化。通过迭代和调整,计划会从高层次活动和预期里程碑逐渐变得详细。计划的更新周期根据项目规模和特性而定,通常在一周至...
在实际操作中,房地产开发项目的策划与决策是一个动态过程,早期策划可能基于初步假设和粗略估计,随着项目的进展,这些假设会得到验证或调整,策划内容也会变得更加精确。因此,策划人员必须灵活应对,及时修正偏差...
学习者可以通过实际操作,深入了解Android开发的整个流程,提升自己的实战能力。 此外,我们还提供了一系列练习题,旨在巩固所学知识,检验学习成果。这些练习题既有基础题,也有难度较高的挑战题,适合不同层次的...
《软件开发项目成本研究——会计实务操作教程》 在当今信息技术快速发展的时代,软件产业已成为推动国民经济的关键力量。为了确保软件项目的成功,有效的项目管理至关重要,尤其是其中的成本管理。软件项目管理涵盖...
在实际开发过程中,我们还需要考虑其他因素,比如数据的异步加载(使用AsyncTask或LiveData)、网络请求库(如Retrofit或OkHttp)的使用、错误处理和异常捕获、UI性能优化等。此外,为了提高用户体验,还可以引入...
此外,技术规划和技术开发流程的建立有助于新技术的预研,增强技术积累,避免技术问题成为项目瓶颈。 需求管理是产品开发的核心环节。课程将教授如何建立规范的需求管理流程,进行需求跟踪和变更管理,以确保需求的...
确定项目范围是一项粗略的工作,但是很重要,它的作用是给软件制作项目定向,使项目组与用户有一个共同的起点。确定项目范围需要明确教学内容范围、教学软件产生的预期结果或教学软件目的、学习者的能力水平等。 ...
1. 合同签订前的成本估算:根据以往类似项目的经验,采用类比估算方法进行粗略的估算。根据用户的要求,系统采用 B/S 结构,公司的 JSP+SQL Server 技术比较成熟,以前成功完成过类似项目,根据工作说明书...
项目章程是项目启动的一个重要文档,它由项目发起人发布,或者在项目为组织内部开发时由投资人发布。项目章程会粗略地规定项目的范围,并为项目经理提供使用组织资源进行项目活动的授权。项目章程的内容应包括项目...
在调研过程中,需深入探究业务流程,关注关键细节,确保设计能够满足实际需求,为后期开发打下坚实基础。 总结来说,大型MIS软件的开发是一项综合性极强的任务,需要通过制定规范、组建高效团队、精确管理进度以及...
传统项目管理往往以严格的合同和全面的文档为主,而敏捷项目管理则提倡粗略的预估和每次迭代的详细计划,鼓励需求变化,并且保持客户与开发团队的高度互动。 Scrum的角色包括产品负责人(Product Owner)、Scrum ...
通过这个项目,开发者可以全面地学习到Android应用开发的基本流程和常见技术,同时也能提升对于用户体验和交互设计的理解。在实际开发中,还需要结合Android Studio的调试工具,不断优化代码,确保应用的稳定性和...
1. **个体和交互胜过过程和工具**:在敏捷开发中,人际关系、沟通和团队合作被认为比严格的流程和工具更重要。优秀的团队成员和良好的协作比单一的技术能力更能推动项目的成功。 2. **可以工作的软件胜过面面俱到的...
在IT行业中,尤其是在数据分析、项目管理和软件开发领域,分数对比折算的粗略估算是一种重要的技术。这个概念主要应用于在没有完整数据或精确计算条件的情况下,对不同对象或任务的相对价值进行快速评估。2017年可能...