EagleBear2002 的博客

这里必须根绝一切犹豫,这里任何怯懦都无济于事

摘要

本文整理自 重识社会:探析当今人生迷茫免费在线收听-喜马拉雅。原作者王生智。

序言

中国改革开放以来,社会经济以全球前所未有的速度连续发展,取得了令世界为之瞩目的骄人成就。不仅社会经济发展,伴随着经济发展而来的,还有各类思想观念,也一股脑拥挤着接踵而至,令人目不暇接、头晕目眩,由此也就带来了盲目接受、不求深解的后果。这也势必滋生出大批的“炒家”、“砖家”和“叫兽”,在他们为了各自利益的合力运作之下,社会中的芸芸众生更是被他们搅得不知所措。

世上的浮夸反映出人类的蒙昧。从今天回看过去的历史,从荷兰的天价郁金香,到中国的天价月饼,再到法国、意大利的天价神包,无不反映出人群与羊群并无差别的盲动与盲从。人类以理性做视其它动物,却原来仍未摆脱动物的愚昧。人类发展修饰的初衷,原本是为了用修饰帮助理性的进步,到如今修饰被无限放大,理性却被无情地淹没了。非修饰,无以接受。可悲,可叹。

阅读全文 »

$$
\def\Var{\mathsf{Var}}
\def\IG{\mathsf{IG}}
\def\T{\mathcal{T}}
\def\S{\mathcal{S}}
$$

摘要

在在线事务处理(OLTP)系统中,可序列化是事务执行的一个关键属性;如果没有它,由于并发活动,可能会违反数据的完整性约束。可以通过使用严格的两阶段锁定(S2PL)等可序列化并发控制机制来保证可序列化,而不考虑应用程序逻辑。然而,这种机制导致的并发性降低通常过于严重,因此数据库管理系统(DBMS)为数据库管理员(DBA)提供了使用不同并发控制机制的机会,前提是这样做是安全的。然而,此前几乎没有理论可以指导 DBA 判断何时是安全的!

在本文中,我们讨论了如何为一组事务分配适当的隔离级别(从而使用特定的并发控制机制),同时确保每次执行都是冲突可序列化的。当每个事务可以选择使用 S2PL 或快照隔离(SI)时,我们精确地描述了可接受的分配,并提供了一个简单的基于图的算法来确定最弱的可接受分配。

本文涉及的类别和主题描述包括:数据库管理系统中的事务处理。关键词包括:并发控制、可序列化、异常、一致性、快照隔离、两阶段锁定。

阅读全文 »

摘要

本文根据复习课录音和大模型总结了软件安全的期末考点。题目来自教材课后习题,仅提供简单题和阅读报告题,不提供实验题和复杂的阅读报告题。

如无特殊标注,本文的题目答案来源为 PPT 或教材。使用大模型生成的回答会有明确标注。

考试题型:只靠概念题,10 道简答;每章一道,来自书后概念习题(除去 3,9,10,11 章)。

本文参考了 南京大学软件学院-2023-软件安全(研究生)期末复习参考 - 知乎

阅读全文 »

摘要

本文总结了软件工程管理的期末考点。考虑到本课程为半开卷考试,本文只用有限的篇幅展示最重要的部分,读者自由复制打印。

点击链接下载:2024Fall-软件工程管理 v5 衬线字体带习题.docx

课程概念梳理:

$$
\text{敏捷} \left{\begin{matrix}
\text{Scrum 框架} \ \text{XP 实践}\left{\begin{matrix}
\text{简单设计} \
\text{(频繁)重构} \
\text{持续集成} \
\text{测试驱动开发} \
\text{结对编程} \
\end{matrix}\right.
\end{matrix}\right.
$$

阅读全文 »

摘要

课程目的

  • 阅读、思考软件工程历史中的经典书籍、论文,了解软件工程思想的来龙去脉。
  • 学习最新的软件工程管理方法论、实践、工具。
  • 知其然,知其所以然。
  • 学会自主的思考软件开发,自主判断
    • 需要广泛、深刻的知识学习;批判性思维习惯
    • “记忆”、“分析”这些相对低水平的认知
    • “综合”、“判断”和“运用”等深层次的学习

软件工程和其它相关学科关系

阅读全文 »

摘要

定义

看板方法,由 David Anderson 创立,它脱胎于大野耐一所创立的丰田生产方式(TPS),以及埃利亚胡·高德拉特(Eli Gol-dratt)的约束理论(TOC),并结合统计质量控制(SQC)、排队论(QT)、工业工程(IE)、软件成熟度模型(CMMI)等多个领域的知识,在软件开发社区中获得了极高的关注度,并迅速传播开来。

历史

大卫·J.安德森(David J. Anderson)

阅读全文 »

摘要

项目成功?

为什么敏捷与精益出现在软件开发行业?

  • 软件开发本质属性:复杂性、一致性、可变性、不可见性。
  • 敏捷与精益本质上是帮助我们处理软件开发的复杂性、可变性。
  • 敏捷的本质,是承认软件开发的复杂性。而且承认,这种复杂性,达到了这样一种程度:“无法通过足够充分的前期准备,而消除后续的风险。甚至于,前期准备得越是充分,后续的风险越大。”
  • 敏捷软件开发是当前应对模糊需求、快速变化需求的最佳方式。

敏捷软件开发很流行

阅读全文 »