程序设计和软件工程概论

一、算法

1、概念

算法是一种逐步解决问题或完成任务的方法。算法接收一组输入数据,同时产生一组输出数据。算法是一组明确步骤的有序集合,它产生结果并在有限的时间内终止

2、三种结构

  • 顺序结构:顺序执行;
  • 判断:检测条件是否满足,结果为真,顺序执行,否则转到另一分支;
  • 循环:完成相同指令序列。

3、算法的表示

  • UML(统一建模语言):表现为流程图形式。
  • 伪代码:顺序,判断(if…else…),循环(while…)。

4、基本算法

求和,乘积,最大和最小,选择和排序,查找。

6、递归和迭代

  • 迭代:结果经历多重循环,算法定义不涉及算法本身即调用不含本身。
  • 递归:算法出现在本身的定义中即自己调用自己。

二、程序设计语言

1、演化

  • 机器语言:是计算机硬件唯一能识别的语言,由两种状态的电子开关构成以表示01。
  • 汇编语言:用带符号或驻基辅的指令和地址代替二进制码,每条指令单独编码,汇编程序将汇编语言翻译成机器语言。
  • 高级语言:不用在意底层细节,面向过程程序设计和面向对象程序设计。

2、翻译

  • 高级语言程序称为源程序,被翻译成的机器语言程序称为目标程序
  • 编译:把整个源程序翻译成目标程序后执行,如C语言等
  • 解释:逐行解释随即执行,如BASIC等;JAVA中编译后(JAAVA虚拟机的目标代码)解释成目标代码后执行。
  • 翻译过程:词法分析器(一个符号一个符号的读源代码,创建源语言中的助记符表,如标志符,数字,保留字等)-> 语法分析器(分析一组助记符,找出指令,如赋值语句等)-> 语义分析器(检查指令,确保其无二义性)-> 代码生成器(将每条指令转化为机器语言)。

3、编程模式

  • 过程式模式:程序作为主体,数据或数据项作为被动对象。为了操纵数据,程序发出动作,称为过程。
  • 面向对象模式:处理活动对象,程序仅仅向对象发出请求。类(相同类型的对象),方法(对象能完成的事),继承性(一个对象能从另一个对象继承),多态性(具有相同名字的操作可以在相关类中做不同的事情)
  • 函数式模式:把一组输入映射到一组输出。
  • 说明式模式:依照逻辑推理的原则响应查询。

4、共同概念

  • 标识符:对象的唯一名称代表数据的位置;
  • 数据类型:整数类型,实数类型,字符型,布尔型,数组,记录等;
  • 变量:存储单元的名字,变量的数据只值在程序执行过程中可能改变;
  • 字面值:程序中使用的预定义的值;
  • 常量:在程序中不会改变的值;
  • 输入和输出
  • 表达式:操作数和运算符;
  • 语句:赋值语句,复合语句,控制语句等;
  • 子程序:局部变量只属于子程序;使用传值或者传引用(地址)来为子程序传参数;返回值有一个或几个(返回调用处)。

三、软件工程

1、软件生命周期

分析,设计,实现,测试。

  • 瀑布模型:前一阶段不结束,后一阶段不开始。
  • 增量模型:先完成整个系统的简化版本,后逐渐完善各阶段细节。

2、分析阶段

此阶段生成规格说明文档:软件要做什么。利用多种建模工具

3、设计阶段

  • 面向过程设计:结构图的使用;模块化;模块间的耦合(模块绑定)必须最小化,内聚(处理过程相关紧密程度)必须最大化。
  • 面向对象设计:详细描述类的细节来完成。

4、实现阶段

  • 语言的选择
  • 软件可操作性:高质量软件:准确性,高效性,可靠性,安全性,及时性和适用性。
  • 软件可维护性:保持系统正常运行并及时更新,可变性和可修正性。
  • 软件可迁移性:把数据或系统从一个平台转移到另一个平台并重用代码的能力。

5、测试阶段

  • 基本路径测试:软件中每条语句至少被执行一次;
  • 控制结构测试:条件测试,数据流测试,循环测试;
  • 黑盒测试:穷尽测试(输入域的所有可能),随机测试,边界值测试。

6、文档

系统文档:让除原始开发者之外的人能维护和修改软件包;

技术文档:描述软件系统的安装和服务。

文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览34037 人正在系统学习中

来源:叫你皮

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月7日
下一篇 2022年9月7日

相关推荐