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