软件工程之软件设计阶段
软件⼯程之软件设计阶段
软件设计阶段也是软件⼯程⾥的⼀个中重要问题,我把它分为三部分,软件设计阶段、软件编码阶段和软件测试阶段。
⼀、软件设计阶段
根据⽤信息域表⽰的软件需求,以及功能和性能需求分析,软件设计阶段的⽬标有数据设计、系统结构设计和过程设计,这是从技术的观点出发得到的。从⼯程管理的⾓度来看,软件设计分两步完,即概要设计和详细设计,这也就是软件设计的任务。
软件设计过程分为七个步骤:
手机加密锁
1、制定规范;
形容秋天的四字词语2、软件系统结构的总体设计;人教版三年级下册语文期末试卷
3、处理⽅式设计;
4、数据结构设计;
打黑除恶5、可靠性设计;
6、编写概要设计阶段的⽂档;
7、概要设计评审
软件设计基础也有七个:
1、 ⾃顶向下,逐步细化。将软件的体系结构按⾃顶向下⽅式,对各个层次的过程细节和数据细节逐层细化。最悲伤的歌曲
2、软件结构。软件结构包括两部分。程序的模块结构和数据的结构。
3、程序结构。分为树状结构和⽹状结构。
4、结构图
5、模块化。模块的命名有两种⽅式,⼀种是以功能做模块名,另⼀种是以功能的缩写做模块名。模块的调⽤关系和接⼝容易出现问题,当我们编写程序的时候应该多注意这些问题。模块具有独⽴性,指软件系统中每个模块只涉及软件要求的具体的⼦功能,⼀般⽤模块间耦合和模块内聚这两个准则来度量模块独⽴性。模块具有三个基本属性,功能(描述该模块实现什么功能),逻辑(描述模块内部怎么做),状态(该模块使⽤时的环境和条件)。
6、抽象化。对事物的分析。
7、信息隐蔽。
⼆、编码阶段。
⾸先是程序设计语⾔,程序设计语⾔分为汇编语⾔和⾼级语⾔两⼤类。语⾔选择,应⽤领域的不同决定选择的语⾔,也有根据系统⽤户的要求决定,在运⾏⽬标系统的环境中可以提供的编译程序往往限制了对语⾔的选择,程序员的经验和知识也决定了语⾔的选择,软件可移植性要求等条件都有可能限制语⾔的选择。⽽选择语⾔的原则有,最少的⼯作量原则,最少技巧性原则,最少错误原则,最少维护原则,减少记忆原则。根据以上的分析,可得出以下总原则,想求正确后求快,先求清晰后求快,求快不忘保持程序正确,保持程序整洁⼀求快,不要引效率⽽牺牲清晰。
其次是程序化程序设计。在编写程序是,强调使⽤⼏种基本控制结构。在程序设计过程中,尽量采⽤⾃顶向下和逐步细化的原则,由粗到细,⼀步步展开。结构化程序设计的主要原则是:
1、使⽤语⾔中的顺序、选择、重复等有限的基本控制结构表⽰程序逻辑
2、选⽤的控制结构只准许有⼀个⼊⼝个⼀个出⼝
3、复杂结构应该⽤基本控制结构进⾏组合嵌套来实现。
在编码阶段时也应采取详细设计是的⾃顶向下,逐步求精的⽅法。
再者就是程序设计风格。程序实际上也是⼀种供⼈阅读的⽂章,有⼀个⽂章的风格的问题。因此程序应具有以下良好的风格:
1、源程序⽂档化。标识符的命名应该规范,清晰明了。要有⼀定的安排注释,别⼈能够读懂你的代码。程序看起来不让⼈觉得很难看,也就是程序的视觉组织。
2、数据说明。为了使程序中的数据说明更易于理解和维护,必须注意的是,数据说明的次序应当规范化,说明语句中变量安排有序化,使⽤注释说明复杂数据结构。
3、语句结构。语句构造⼒求简单,直接,不能为了⽚⾯追求效率⽽使语句复杂化。如:⼀⾏内只写⼀条语句,程序编写⾸先应当考虑清晰性,程序要能直截了当地说明程序员的⽤意等。
4、输⼊/输出⽅法输⼊和输出信息是与⽤户的使⽤直接相关的,输⼊和输出的⽅式和格式应当尽可能⽅便⽤户的使⽤。
最后是程序的复杂性度量。程序复杂性主要指模块内程序的复杂性,代码⾏度量的⽅法基本考虑是统计⼀个程序模块的源代码⾏数⽬,并以源代码⾏数做为程序复杂性的度量。McCabe度量法,⼜称环路复杂性度量,是⼀种基于程序控制流的复杂性度量⽅法。
三、软件测试
软件测试是程序的执⾏过程,主要⽬的就是发现问题。软件测试的原则有,尽早地和不断地进⾏软件测试,测试⽤例应由测试输⼊数据和对应的预期输出结果这两部分组成,程序员应避免检查⾃⼰的程序,在设计测试⽤例是,应担包括合理的输⼊条件和不合理的输⼊条件。我们在敲机房收费系统的时候,都是⼀边敲⼀边错,敲完之后让⾝边的同学帮忙错,师⽗验收的时候也是输⼊⼀些合理的条件和不合理的条件,我觉得这些属于软件测试的⼀部分吧。
测试⽤例设计,测试⽤例设计有⿊盒测试盒⽩盒测试两种⽅法。⿊盒测试是把测试对象看做⼀个⿊盒⼦,检查程序的功能是否符合它的功能说明。⿊盒测试的测试⽤例设计有等价类划分,边界值分析,错误推测法和因果图。⽩盒测试是把测试对象看做⼀个透明的盒⼦,对程序所有逻辑路径进⾏测试。在⽩盒测试中,需要使⽤逻辑覆盖着技术,逻辑覆盖是以程序内部的逻辑结构为基础的设计测试⽤例的技术,包括了语句覆盖,判定覆盖,条件覆盖,判定⼀条件覆盖,条件组合覆盖和路径覆盖。
软件测试的策略有:
1、单元测试。单元测试⼜称模块测试,是针对软件设计的最⼩单位——程序模块进⾏正确性检验的测试⼯作。它的内容包括,模块接⼝,出错处理,独⽴路径,边界条件和局部数据结构。
2、组装测试。分为⼀次性组装⽅式和增殖式组装⽅式。增殖式组装⽅式有⾃顶向下的增殖⽅式、⾃底向上的增殖⽅式和混合增殖式测试。
3、确认测试。确认测试⼜称有效性测试。任务是验证软件的功能和性能及其它特性是否与⽤户的要求⼀致。
4、验收测试。验收测试是以⽤户为主的测试。软件开发⼈员和QA(质量保证)⼈员也应参加。由⽤户参加设计测试⽤例,使⽤⽣产中的实际数据进⾏测试。
生日文案高级简短
5、系统测试。将通过确认测试的软件,作为整个基于计算机系统的⼀个元素,与计算机硬件、外设、某些⽀持软件、数据和⼈员等其它系统元素结合在⼀起,在实际运⾏环境下,对计算机系统进⾏⼀系列的组装测试盒确认测试。
软件测试的种类分为多种,有功能测试,可靠性测试,性能测试,恢复测试,安全性测试,可使⽤性测试,过程测试,互连测试,兼容性测试,容量测试和⽂档测试。
软件调试是在进⾏了成功的测试之后才开始的⼯作,它与软件测试不同,调试的任务是进⼀步诊断和改正程序中潜在的错误。
调试的步骤:
1、从错误的外部表现形式⼊⼿,确定程序中出错位置;
2、研究有关部分的程序,出错误的内在原因;
3、修改设计和代码,以排除这个错误;
4、重复进⾏暴露了这个错误的原始测试或某些有关测试。
调试的关键在于推断程序内部的错误位置及原因,可采⽤强⾏排错、回溯法调试(⽐较适合⼩程序中的调试)、归纳法调试(从错误征兆⼊⼿)、演绎法调试(从原理或前提出发)
四、总结
软件⼯程的设计阶段这三个部分缺⼀不可,有⼀个合理的软件设计才能⼜好⼜快的编写代码部分,代码部分肯定是有或多或少的错误,所以就少不了测试,出错误,解决问题,有了这三个步骤才能保证程序的正常运⾏。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。