软件设计的基本步骤是什么

软件设计的基本步骤是什么,第1张

软件开发是指一个软件项目的开发,如市场调查,需求分析,可行性分析,初步设计,详细设计,形成文档,建立初步模型,编写详细代码,测试修改,发布等。

软件是怎么样开发出来的

第一个步骤是市场调研,技术和市场要结合才能体现最大价值。

第二个步骤是需求分析,这个阶段需要出三样东西,用户视图,数据词典和用户 *** 作手册。

用户视图是该软件用户(包括终端用户和管理用户)所能看到的页面样式,这里面包含了很多 *** 作方面的流程和条件。

数据词典是指明数据逻辑关系并加以整理的东东,完成了数据词典,数据库的设计就完成了一半多。

用户 *** 作手册是指明了 *** 作流程的说明书。

请注意,用户 *** 作流程和用户视图是由需求决定的,因此应该在软件设计之前完成,完成这些,就为程序研发提供了约束和准绳,很遗憾太多公司都不是这样做的,因果颠倒,顺序不分,开发工作和实际需求往往因此产生隔阂脱节的现象。

需求分析,除了以上工作,笔者以为作为项目设计者应当完整的做出项目的性能需求说明书,因为往往性能需求只有懂技术的人才可能理解,这就需要技术专家和需求方(客户或公司市场部门)能够有真正的沟通和了解。

第三个步骤是概要设计,将系统功能模块初步划分,并给出合理的研发流程和资源要求。

作为快速原型设计方法,完成概要设计就可以进入编码阶段了,通常采用这种方法是因为涉及的研发任务属于新领域,技术主管人员一上来无法给出明确的详细设计说明书,但是并不是说详细设计说明书不重要,事实上快速原型法在完成原型代码后,根据评测结果和经验教训的总结,还要重新进行详细设计的步骤。

第四个步骤是详细设计,这是考验技术专家设计思维的重要关卡,详细设计说明书应当把具体的模块以最’干净’的方式(黑箱结构)提供给编码者,使得系统整体模块化达到最大;一份好的详细设计说明书,可以使编码的复杂性减低到最低,实际上,严格的讲详细设计说明书应当把每个函数的每个参数的定义都精精细细的提供出来,从需求分析到概要设计到完成详细设计说明书,一个软件项目就应当说完成了一半了。换言之,一个大型软件系统在完成了一半的时候,其实还没有开始一行代码工作。

那些把作软件的程序员简单理解为写代码的,就从根子上犯了错误了。

第五个步骤是编码,在规范化的研发流程中,编码工作在整个项目流程里最多不会超过1/2,通常在1/3的时间,所谓磨刀不误砍柴功,设计过程完成的好,编码效率就会极大提高,编码时不同模块之间的进度协调和协作是最需要小心的,也许一个小模块的问题就可能影响了整体进度,让很多程序员因此被迫停下工作等待,这种问题在很多研发过程中都出现过。

编码时的相互沟通和应急的解决手段都是相当重要的,对于程序员而言,bug永远存在,你必须永远面对这个问题,大名鼎鼎的微软,可曾有连续三个月不发补丁的时候吗?从来没有!

第六个步骤是测试

测试有很多种:

按照测试执行方,可以分为内部测试和外部测试

按照测试范围,可以分为模块测试和整体联调

按照测试条件,可以分为正常 *** 作情况测试和异常情况测试

按照测试的输入范围,可以分为全覆盖测试和抽样测试

以上都很好理解,不再解释。

总之,测试同样是项目研发中一个相当重要的步骤,对于一个大型软件,3个月到1年的外部测试都是正常的,因为永远都会又不可预料的问题存在。

完成测试后,完成验收并完成最后的一些帮助文档,整体项目才算告一段落,当然日后少不了升级,修补等等工作,只要不是想通过一锤子买卖骗钱,就要不停的跟踪软件的运营状况并持续修补升级,直到这个软件被彻底淘汰为止。

什么是软件开发的核心问题

按照软件工程鼻祖,《人月神话》作者Brooks在“没有银d——软件工程中的根本和次要问题”一章中阐述的思想,软件开发的核心问题就是如何从概念上对一个复杂的业务系统进行建模。这个建模是含义广泛的,不仅仅包括对象建模,还包括数据建模、算法建模等等一系列的内容。总而言之是要先找到解决复杂问题的突破口(先要搞明白需要做什么,然后再考虑如何做)。至于采用什么表示方法(简单文本、UML图、E-R图)、采用什么高级语言、是否一定要用面向对象、使用什么开发工具都是次要的问题。

软件开发方法

软件开发方法(SoftwareDevelopmentMethod)是指软件开发过程所遵循的办法和步骤。

软件开发活动的目的是有效地得到一些工作产物,也就是一个运行的系统及其支持文档,并且满足有关的质量要求。软件开发是一种非常复杂的脑力劳动,所以经常更多讨论的是软件开发方法学,指的是规则、方法和工具的集成,既支持开发,也支持以后的演变过程(交付运行后,系统还会变化,或是为了改错,或是为了功能的增减)。

关于组成软件开发和系统演化的活动有着各种模型(参见软件生存周期,软件开发模型,软件过程),但是典型地都包含了以下的过程或活动:分析、设计、实现、确认(测试验收)、演化(维护)。

有些软件开发方法是专门针对某一开发阶段的,属于局部性的软件开发方法。

特别是软件开发的实践表明,在开发的早期阶段多做努力,在后来的测试和维护阶段就会使费用较大地得以缩减。因此,针对分析和设计阶段的软件开发方法特别受到重视。其它阶段的方法,从程序设计发展的初期起就是研究的重点,

已经发展得比较成熟(参见程序设计,维护过程)。除了分阶段的局部性软件开发方法之外,还有覆盖开发全过程的全局性方法,尤为软件开发方法学注意的重点。

对软件开发方法的一般要求:当提出一种软件开发方法时,应该考虑许多因素,包括:

①覆盖开发全过程,并且便于在各阶段间的过渡;

②便于在开发各阶段中有关人员之间的通信;

③支持有效的解决问题的

④支持系统设计和开发的各种不同途径;

⑤在开发过程中支持软件正确性的校验和验证;

⑥便于在系统需求中列入设计、实际和性能的约束;

⑦支持设计师和其他技术人员的智力劳动;

⑧在系统的整个生存周期都支持它的演化;

⑨受自动化工具的支持。此外,在开发的所有阶段,有关的软件产物都应该是可见和可控的;软件开发方法应该可教学、可转移,还应该是开放的,即可以容纳新的技术、管理方法和新工具,并且与已有的标准相适应。软件设计基本步骤:

第一步:明确总体需求,你要做的是一个什么软件,用一句话表述之

第二步:需求分析,需求捕捉,撰写需求文档,不断细化,确认需求

第三步:总体设计

一、前期

二十世纪四十年代当计算机刚诞生时,计算机需要程序员手动控制。,德国工程师楚泽提出要用一种程序语言控制计算机。

60年代末期为了应对软件危机,克服程序设计模型中都无法克服错误随着代码的扩大而扩大,这新的思考程序设计方式和程序设计模型——面向对象程序设计出现了。

也就诞生了一批支持此技术的程序设计语言,比如eiffel,c++,java,这些语言都以新的观点去看待问题,即问题就是由各种不同属性的对象以及对象之间的消息传递构成。

面向对象语言由此必须支持新的程序设计技术,例如:数据隐藏,数据抽象,用户定义类型,继承,多态等等。

二、现状

如今通用的编程语言有两种形式:汇编语言和高级语言。

汇编语言和机器语言实质是相同的,都是直接对硬件 *** 作,只不过指令采用了英文缩写的标识符,容易识别和记忆。源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。

高级语言是绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体 *** 作有关但与完成工作无关的细节。

三、趋势

面向对象程序设计以及数据抽象在现代程序设计思想中占有很重要的地位,未来语言的发展将不在是一种单纯的语言标准,将会以一种完全面向对象,更易表达现实世界,更易为人编写。

简单性:提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序。

面向对象:提供简单的类机制以及动态的接口模型。对象中封装状态变量以及相应的方法,实现了模块化和信息隐藏;提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。

安全性:用于网络、分布环境下有安全机制保证。

平台无关性:与平台无关的特性使程序可以方便地被移植到网络上的不同机器、不同平台。

扩展资料:

计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。

1、解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。

2、编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。

3、低级类:机器语言、汇编语言和符号语言。

汇编语言:源程序必须经过汇编,生成目标文件,然后执行。

机器语言:机器语言是指一台计算机全部的指令集合

参考资料:

百度百科-计算机语言

汇编语言程序设计步骤: 1、 分析问题,抽象出描述问题的数据模型 2、 确定问题的算法思想 3、 画出流程图或结构图 4、 分配存储器和工作单元(寄存器) 5、 逐条编写程序 6、 静态检查,上机调试 例:编程查找考生的最高分,假设所有考生分数已存入计算机内存。 1、 分析问题 根据条件、特点、规律 →数学模型 本例分数已给定为0~200之间的整数集合(考虑加试分) ,记为{S},找max{S}(注: 简单问题不一定写数学模型) 。 2、 确定算法思想 最好利用现成算法和程序设计方法,若无,则需根据实践经验总结算法思想。如本例, 从成绩单第一分数往下看,边看边比较,记住较高分,舍弃较低分,直至看完,最高分存于 脑中。归纳算法思想:建立数据指针并指向数据区首地址。将第一数取入寄存器(如AL) , 与下一数比较,若下一数大则将其取入寄存器,否则调整指针,再与下一数比较,重复上述 过程,直至比较完毕,寄存器中即最高分。 读分数用MOV指令,比较用CMP指令,分析判断用条件转移指令。 3、 画流程图或结构图 有逻辑流程、算法流程、程序流程等,复杂问题需画模块结构。本例简单,只画出程序 流程图(用模块化结构的N-S流程图表示) : 本例的N-S流程图 图中初始化包括:设一个计数器,将分数个数减一后送计数器,每比较一次减一,至 零查找结束;建立一个指针指向数据区。 开始 初始化 取第一数到寄存器 与下一数比较 下一数大? 是 否 取大数到寄存器 修改指针,计数次数减一 返回到循环体开始,直到计数次数为0退出循环 结束 4、 分配存储器空间和工作单元(寄存器) 定义数据段、堆栈段、代码段等。工作单元一般用寄存器。本例:分数放数据段,建100 字节堆栈空间,BX作数据指针,CX作计数器,AL放最高分。 5、 逐条编写程序 DATA SEGMENT FEN DB 85,90,60,75,87,35,80,78,96,82…… ;存分数 MAX DB ;存最高分 DATA ENDS STACK SEGMENT PARA STACK ‘STACK’ DB 100 DUP() ;100字节堆栈 STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START PROC FAR PUSH DS MOV AX,0 PUSH AX ;为了返回DOS MOV AX,DATA MOV DS,AX ;置数据段寄存器 MOV BX,OFFSET FEN ;置数据指针 MOV CX,MAX-FEN ;置计数器初值 DEC CX ;N个分数比较N-1次 MOV AL,[BX] ;取第一个分数 LOP: INC BX ;调整指针 CMP AL,[BX] ;与下一数比较 JAE NEXT ;大于等于则转 MOV AL,[BX] ;否则取下一数 NEXT: LOOP LOP ;计数器减一, ;不为零转LOP MOV MAX,AL ;存放最高分 RET ;返回DOS START ENDP CODE ENDS END START 6、 静态检查,上机调试 选用指令尽量字节少,使其执行速度快。易错处应重点查,如比较次数、转移条件等。 确信无错后方可上机调试。

1、顺序结构:顺序结构是一种线性、有序的结构,它依次执行各语句模块。

2、循环结构:循环结构是重复执行一个或几个模块,直到满足某一条件为止。

3、选择结构:选择结构是根据条件成立与否选择程序执行的通路。

当型循环:表示先判断条件,当满足给定的条件时执行循环体,并且在循环终端处流程自动返回到循环入口;如果条件不满足,则退出循环体直接到达流程出口处。因为是"当条件满足时执行循环",即先判断后执行,所以称为当型循环。

扩展资料:

注意事项

1、使用顺序、选择、循环等有限的基本结构表示程序逻辑。

2、选用的控制结构只准许有一个入口和一个出口

3、程序语句组成容易识别的块,每块只有一个入口和一个出口。

4、复杂结构应该用基本控制结构进行组合或嵌套来实现。

5、程序设计语言中没有的控制结构,可用一段等价的程序段模拟,但要求改程序段在整个系统中应前后一致。

6、严格控制GOTO语句。

参考资料来源:百度百科-程序设计

选择B。

程序设计语言的发展经历了从机器语言、汇编语言到高级语言的历程。

第一代机器语言

机器语言是由二进制 0、1 代码指令构成,不同的 CPU 具有不同的指令系统。机器语言程序难编写、难修改、难维护,需要用户直接对存储空间进行分配,编程效率极低。这种语言已经被渐渐淘汰了。

第二代汇编语言

汇编语言指令是机器指令的符号化,与机器指令存在着直接的对应关系,所以汇编语言同样存在着难学难用、容易出错、维护困难等缺点。但是汇编语言也有自己的优点:可直接访问系统接口,汇编程序翻译成的机器语言程序的效率高。 从软件工程角度来看,只有在高级语言不能满足设计要求,或不具备支持某种特定功能的技术性能(如特殊的输入输出)时,汇编语言才被使用。

第三代高级语言

高级语言是面向用户的、基本上独立于计算机种类和结构的语言。其最大的优点是:形式上接近于算术语言和自然语言,概念上接近于人们通常使用的概念。高级语言的一个命令可以代替几条、几十条甚至几百条汇编语言的指令。因此,高级语言易学易用,通用性强,应用广泛。高级语言种类繁多,可以从应用特点和对客观系统的描述两个方面对其进一步分类。

程序设计语言用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。程序设计语言有3个方面的因素,即语法、语义和语用。

语法表示程序的结构或形式,亦即表示构成语言的各个记号之间的组合规律,但不涉及这些记号的特定含义,也不涉及使用者。语义表示程序的含义,亦即表示按照各种方法所表示的各个记号的特定含义,但不涉及使用者。

设计程序是有目的的实现设计计划的次序和科学方法,设计程序是存在的,也是有规律可循的,一般较为普遍的程序安排可

分为以下五个阶段:

①设计的准备阶段;②设计的构思阶段;③设计的定案阶段;④设计的审核阶段;⑤设计的管理阶段。

程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。专业的程序设计人员常被称为程序员。

以上就是关于软件设计的基本步骤是什么全部的内容,包括:软件设计的基本步骤是什么、简述计算机程序设计语言的发展历程。、汇编语言程序设计步骤 有那几步等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9284458.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存