2020-2021-1 20211312信息安全专业导论第8周作业
作业信息
| 这个作业属于哪个课程 | 2020-2021-1信息安全专业导论 |
|---|---|
| 这个作业要求在哪里 | 2020-2021-1信息安全专业导论第8周作业 |
| 这个作业的目标 | 功能设计与面向对象设计,面向对象设计过程,面向对象语言三要素,汇编、编译、解释、执行 |
| 作业正文 | https://i.cnblogs.com/posts/edit |
教材学习内容总结
-
1、功能分解法(function decomposition)
以系统需要提供的功能为中心来组织系统。首先定义各种功能,然后把功能分解为子功能,同时定义功能之间的接口。对较大的子功能进一步分解,直到可给出明确的定义。根据功能/子功能的需要设计数据结构和算法。其优缺点如下:
优点:
-
当时的计算机应用还不是很普及,只是特定的用户按自己的需要,对软件系统做出了功能性的要求,有据可寻。
-
在相当大的程度上,解决了以前存在的问题。特别是与模块化编程结合使用,效率更高。
-
删除GOTO语句,使得软件能得到有效的维护。
-
与模块化编程相结合,使得软件能得到有效的维护
-
适用于功能稳定的应用领域,如某些科学计算。
-
直接地反映用户的需求,所以工作很容易开始。
缺点: -
开头容易,结束难。
-
结构化分析和设计注重处理功能,对所处理的数据放于次要的位置。
-
对于众多的领域而言,其功能是易变的,如企业管理和商业管理。对需求变化的适应能力很差。
-
局部的错误和局部的修改很容易产生全局性的影响。
-
很难检验分析结果的正确性。
二、面向对象基本概念
面向对象方法的解决问题的思路是从现实世界中的客观对象(如人和事物)入手,尽量运用人类的自然思维方式来构造软件系统,这与传统的结构化方法从功能入手和信息工程化方法从信息入手是不一样的。在面向对象方法中,把一切都看成是对象。
1、面向对象的定义
从程序设计方法的角度看,面向对象是一种新的程序设计范型(paradigm),其基本思想是使用对象、类、继承、封装、聚合、关联、消息、多态性等基本概念来进行程序设计。是一种运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统的软件开发方法。
2、面向对象的基本思想
- 从现实世界中客观存在的事物出发来建立软件系统,强调直接以问题域(现实世界)中的事物为中心来思考问题、认识问题,并根据这些事物的本质特征,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。这可以使系统直接映射问题域,保持问题域中事物及其相互关系的本来面貌(对象)
- 用对象的属性表示事物的性质;用对象的操作表示事物的行为。(属性与操作)
- 对象的属性与操作结合为一体,成为一个独立的、不可分的实体,对外屏蔽其内部细节。(对象的封装)
- 对事物进行分类。把具有相同属性和相同操作的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例。 (分类)
- 复杂的对象可以用简单的对象作为其构成部分。(聚合)
- 通过在不同程度上运用抽象的原则,可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与操作,从而简化系统的构造过程及其文档。(继承)
- 类具有封闭性,把内部的属性和操作隐藏起来,只有公共的操作对外是可见的。 (类的封闭性)
- 对象之间通过消息进行通讯,以实现对象之间的动态联系。 (消息)
- 通过关联表达类(一组对象)之间的静态关系。(关联)
面向对象的设计过程
-
面向对象三要素是:封装 继承 多态
-
中间代码:复杂性介于源程序语言和机器语言的一种表示形式。对于可执行语句,需要翻译成中间代码或目标代码。
特点:- 1、一种简单且含义明确的记号系统,与具体的机器无关,可以有若干种形式。
- 2、可将不同的高级程序语言翻译成同一种中间代码。
- 3、使用中间代码有利于进行与机器无关的优化处理,以及提高编译程序的可移植性。
-
编译程序锁使用的中间代码有多种形式,常有的有:树、后缀式、逆波兰式、三元式、四元式、树形表示。四元式或称“三地址代码”是一种普遍采用的中间代码形式,很类似三地址指令,可看作是一种虚拟三地址机的通用汇编码,每条指令包含操作符和三个地址两个为运算对象,一个为结果。
-
解释器:不生成独立的目标程序。
-
编译器:将原程序翻译成独立保存的目标程序。目标代码生成阶段分配寄存器。
编译过程为变量分配存储单元所用的地址是逻辑地址,程序运行时再映射为物理地址。
编译是将高级语言源程序翻译成机器语言程序(汇编形式或机器代码形式),反编译是编译的逆过程。反编译不能把可执行文件还原成高级语言源代码,只能转换成功能上等价的汇编程序。
- 符号表:记录源程序中各个符号的必要信息,以辅助语义的正确性检查和代码生成,再编译过程中需要堆符号表进行快速有效的查找、插入、修改和删除等操作。符号表的建立可以始于词法分析阶段,也可以放到语法分析和语义分析阶段,但符号表的使用有时会延续到目标代码的运行阶段。对于声明语句,需要记录所遇到的符号的符号信息,进行符号表的填查工作。
- 动态的语义错误:发生在程序运行时,例如:变量取0作除数、引用数组元素下表错误,运行时陷入死循环。
- 静态的语义错误:编译时发现的语义错误。运算符与运算对象类型不合法。
- 汇编语言程序中每条指令语句在源程序汇编时都要产生可供计算机执行的指令代码(目标代码)。汇编语言源程序中的指令将被翻译成机器代码。汇编程序以汇编语言源程序为输入,以机器语言表示的目标程序为输出。汇编语言的指令语句必须具有操作码字段,可以没有操作数字段。
- 伪指令用于指示汇编程序如何汇编源程序。
代码托管





上周考试错题总结
- 无
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 20/20 | 2/2 | 20/20 | |
| 第二周 | 20/40 | 1/3 | 18/38 | |
| 第三周 | 100/140 | 1/4 | 22/60 | 克服对代码的恐惧 |
| 第四周 | 310/450 | 1/5 | 30/90 | 在学长的帮助下学会了利用CSDN |
| 第五周 | 350/800 | 1/5 | 30/120 | |
| 第六周 | 200/1000 | 1/6 | 10/130 | |
| 第七周 | 200/1200 | 1/7 | 10/140 | |
| 第八周 | 200/1400 | 1/8 | 10/150 |
-
计划学习时间:10小时
-
实际学习时间:10小时
参考资料
- 《计算机科学概论》
- 《看漫画学Python》
- 《Python零基础从入门到精通》
浙公网安备 33010602011771号