软工视频总结(二)

前言

       上边是程序编码这一部分的导图,视频信息量很大,很多都是我们没有接触过的知识,全部吸收是不可能的,全部总结一下也很困难,但是对于自己感兴趣的或者说现阶段的自己感觉有用的知识,小小总结一下,还是可以的,下面我找几个点总结一下,若有错误,请大家指正,谢谢微笑


一,程序设计语言

1、第一代语言-机器语言:机器语言由二进制的1、0指令代码组成的字符串构成,属于低级语言。

优点:二进制代码不需翻译,占用内存少,执行效率高

缺点:语言不直观,难编写,难修改,需要用户直接对存储控件进行分配,编程效率极低,而且移植性差。


2、第二代语言-汇编语言:又称符号语言,它把计算机所能识别的机器指令用符号表示出来。

优点:直观,方便阅读和排错,比机器语言易理解,易记忆。

缺点:难掌握,容易出错,维护困难。


3、第三代语言-高级语言:也称算法语言,较前两代语言有显著进步,接近人类的自然语言,运算符和运算表达式也与数学中的形式差不多。

优点:容易掌握和理解,通用性强,可以在不同的机器上运行,便于维护,效率和可靠性较高。

缺点:过程化语言,编码时,要详细描述问题求解的过程,告诉计算机每一步应该怎么做,所以程序员编码繁重。


4、第四代语言-4GL语言:第四代语言是面向应用的,只需说明做什么就可以,不用关系怎么做。有一下几种类型:查询语言,程序生成器,其他4

GL(判定支持语言,原型语言等)

优点:更类似自然语言,删除了很多第三代语言中出现的严格的语法规则,将程序员从繁重的编码中解放了出来。


5、第五代语言-面向对象语言:面向对象的语言的形成借鉴了很多程序语言的特点,例如c++,VB,vb.NET,Java等。


二、程序设计质量评价

    1、正确性

         1>程序中没有语法错误

         2>程序运行时没有发现明确的运行错误

         3>程序中没有不适当的语句

         4>用有效的测试数据,得到程序的正确结果

         5>用无效的测试数据,得到程序的正确结果

         6>用任何可能的数据,使程序在运行时得到正确的结果

    2、结构清晰性

        1>是否用三种结构化格式表示程序的控制逻辑

        2>是否有一个入口,一个出口

        3>是否严格控制GOTO语句

   3、易修改性

   4、易读性

   5、简单性


  下边附一副鱼骨刺图,集合了各阶段,各个部分的错误。



三、程序复杂性度量

1、代码行度量法:统计程序的源代码行数。

     两前提:程序复杂性随着程序规模的增加不均衡的增长

                     控制程序规模的方法最好是采用化繁为简,分而治之的办法,将一个大程序分解成若干个简单的可理解的程序段。

    方法:统计一个程序模块的源代码行目数,并以源代码行数作为程序复杂性的度量。

    出错率:程序出错率的估算范围是从0.04%-7%之间,即每100行源程序中可能存在0.04-7个错误。


2、McCabe度量法:

解释:又称环路复杂性度量,是一种基于成语控制流的复杂性度量方法。


3、HalStead方法:Halstead软件科学研究确定计算机软件开发中的一些定量规律,它采用(程序长度,实际Halstead长度,程序的词汇表)等基本的度量值,这些度量值通常在程序产生之后得出,或者在设计完成后估算出。


四、小结

        McCabe方法和Halstead方法很不理解,但是觉得挺有用。但是相信在后续的学习中还会碰到,暂时先做一个基本的了解,理解后再来完善。另外,希望大家在评论中多多指点,谢谢喽。

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木子松的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值