文章 59
评论 4
浏览 18411
软件工程笔记

软件工程笔记

软件工程 软件的定义:软件是计算机系统中与硬件相辅相成的另一部分,它包括程序、相关数据以其说明文档。需要注意的是软件不等于程序。 软件的本质特性: 复杂性 一致性 可变性 不可见性 软件工程: 将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中 对 i.中所选方法的研究。 软件工程的主要内容: 技术方面:研究软件开发方法、软件开发过程、软件开发工具 管理方面:主要研究软件项目管理学、软件经济学、软件心理学 软件工程的三个基本要素: 过程 方法 工具 软件危机:计算机软件开发和维护过程中所遇到的一系列严重问题 已完成的软件不满足用户的需求 软件产品的质量没有保证 开发进度不能保障,交付时间一拖再拖,开发成本超出预算 软件没有适当的文档 软件的可维护程度低 软件开发方法: 结构化方法 面向对象方法 软件过程:软件过程是一系列开发活动,将用户的需求转化为用户满意的产品。主要包括:可行性分析、项目计划、需求分析、总体设计、详细设计、编码测试、运行维护等阶段。 软件过程有哪些经典模型:....

故障树分析(FTA)

故障树分析(FTA)

故障树分析,就是选择某一故障作为顶层事件,逐步拆解事件为中间事件,直到事件无法拆解变为底层事件。拆解事件的过程可以画成一棵树,这棵树也就称为故障树,利用故障树分析底层事件对故障发生影响的重要程度称为故障树分析。 建树符号 事件符号 逻辑符号 结构函数 底事件状态 顶事件状态 可用与底事件有关的函数表示 计算 或门 $ \phi( T ) = \sum _ { i = 1 } ^ { n } { x _ i } $ 与门 $ \phi( T ) = \prod_{i = 1 }^{ n }{ x_i } $ 化简 $ T = x_1 ( x_1 + x_4 ) x_3 = x_1 x_3 + x_1 x_4 x_3 = x_1 x_3 $ 最小割集 最小割集是指,是指让顶层事件发生的最少数量的底层事件集合 例: 顶层事件 T 可以表示为 化简为 根据表达式为或运算,则可知有 4 个最小割集,为: 路集:是割集的对偶集合,也即不触发发生顶层事件的底层事件集合 顶层事件概率的计算 将顶层事件表示为,最小割集的形式 $ ....

关于动态规划的一点小想法

关于动态规划的一点小想法

最近一直在做动态规划的题,也算有了一些自己的小感悟,暂时总结一下 首先看一道例题 题目链接 描述 X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。 地宫的入口在左上角,出口在右下角。 小明被带到地宫的入口,国王要求他只能向右或向下行走。 走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。 当小明走到出口时,如果他手中的宝贝恰好是 k 件,则这些宝贝就可以送给小明。 请你帮小明算一算,在给定的局面下,他有多少种不同的行动方案能获得这 k 件宝贝。 输入 输入一行 3 个整数,用空格分开:n m k (1<=n,m<=50, 1<=k<=12) 接下来有 n 行数据,每行有 m 个整数 Ci (0<=Ci<=12)代表这个格子上的宝物的价值 输出 要求输出一个整数,表示正好取 k 个宝贝的行动方案数。该数字可能很大,输出它对 1000000007 取模的结果。 输入样例1 2 2 2 1 2 2 1 输出样例1 2 输入样例2 2 3....

编译原理笔记(6)

编译原理笔记(6)

编译原理笔记——语义分析

编译原理笔记(5)

编译原理笔记(5)

编译原理第五章笔记

编译原理笔记(4)

编译原理笔记(4)

编译原理第四章笔记

谱聚类再次整理

谱聚类再次整理

常读常新啊,又更新一次,理解又加深一次!

编译原理笔记(3)

编译原理笔记(3)

编译原理第三章笔记

最小生成树算法

最小生成树算法

引入问题 首先来看这样一个问题 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。 输入格式: 输入数据包括城镇数目正整数 N(≤1000)和候选道路数目 M(≤3N);随后的 M 行对应 M 条道路,每行给出 3 个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从 1 到 N 编号。 输出格式: 输出村村通需要的最低成本。如果输入数据不足以保证畅通,则输出 −1,表示需要建设更多公路。 根据题目的描述,我们可以得知这是一道图论的题目,图为带权无向图,边上的权值即为题中描述的道路修建成本。 现在需要我们根据已有的图,求该图的最小(权值和最小)生成树。 这时候就需要引入解决问题的最小生成树算法了。 Prim 算法思路 首先读入所有的边,边的数据结构是一个结构体,主要包括:起点、终点、权值。 读入边之后按照边的权值由小到大排序。初始化一个数组记录边加入生成树的状态,初始时全部边为未加入。再初始化一个数组记录结点加入生成树的情况。 将某一个结点加入生成树(改变状态标志),因为所....

编译原理笔记(2)

编译原理笔记(2)

编译原理第二章笔记

闻道