- 博客(7)
- 收藏
- 关注
原创 软件构造课程笔记(五)——健壮性的软件构建
即使因为意外终止执行了,也要向用户展示准确的错误信息。面向健壮性的编程要求封闭实现细节,以达到限定用户的恶意行为的目的,并且要考虑到各种各样大的极端情况,假设用户可以做任何事情。目的是让用户变得更容易:出错也可以容忍,因为程序内部已有容错机制。对自己的代码要保守,对用户的行为要开放。面向正确性的编程要求永不给用户错误的结果。目的是让开发者变得更容易:用户输入错误,直接结束。正确性倾向于直接报错(error),健壮性则倾向于容错(fault-tolerance)Error:与代码无关,程序员通常无能为力,一旦
2022-06-07 13:31:37
708
原创 软件构造课程笔记(三)——抽象数据类型与面向对象编程
在设计中,最重要的原则就是隔离,将ADT和client、将method和client通过spec都隔离开,确保内部的变化不会影响到client,而client也不知道我的内部的实现,这样的目的是为了便于未来的升级和维护,也可以最大限度的减少恶意者的攻击。一、数据类型及类型检查1. 编程语言的数据类型 在Java中,数据类型分为基本数据类型(int、boolean、char等)和对象数据类型(String、Integer等)。所有的基本数据类型都是Immutable的,而且在栈中分配内存,代价也
2022-05-29 21:08:50
263
原创 软件构造课程笔记(二)——软件构建过程与工具
软件生命周期和配置管理重点在于版本控制工具Git的学习与使用基本知识1. 软件开发生命周期:从无到有,从有到好2. 传统软件过程模型:基本类型有线性过程(Linear)和迭代过程(Iterative),目前存在的模型有瀑布过程(waterfall),增量过程(incremental),V字模型(V-model),原型过程(prototyping),螺旋模型(spiral)。3. 敏捷开发:Agile = 增量 + 迭代。将任务划分成一个个小规模的任务,因此较小的团队也能够适应大规模软件
2022-05-25 21:08:25
154
原创 2022计算机系统大作业——程序人生-Hello’s P2P
计算机系统大作业题 目 程序人生-Hello’s P2P 专 业 计算机 学 号 120L021716 班 级 2003005 学 生 蔡泽栋 指 导 教 师 吴锐 计算机科学与技术学院2021年5月 摘 要 本文介绍了hello.c文件编写完...
2022-05-17 16:36:48
1235
2
原创 软件构造课程笔记(一)软件构造的多维度视图和质量目标
知识要点一、多维软件视图1.按阶段划分:构造时、运行时视图2.按动态性划分:时刻、阶段视图3.按构造对象的层次划分:代码、构件视图4.每个视图的元素、关系和模型二、软件构造:视图之间的转换1.代码2.代码--组成部分3.构造时--运行时4.瞬时--阶段三、软件系统的质量属性1.外部与内部质量因素2.重要的外部质量因素3.质量因素之间的权衡四、软件构建的五个关键质量目标1.易于理解:优雅漂亮的代码/可理解性2.准备好变更:可维护性和适应性3.开发成本低:为重用/带重
2022-05-08 19:53:19
205
原创 C++链表实现多项式的加减乘除
#include <iostream>#include <Windows.h>using namespace std;struct polynode{ int coef; int exp; polynode* link;};typedef polynode* polypointer;void Attach(int c, int e, polypointer& d){ polypointer x; x = new polynode; x-&.
2021-10-01 14:49:33
2783
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人