共计 1571 个字符,预计需要花费 4 分钟才能阅读完成。
软件项目管理
流动图 — 如估算我的项目实现工夫,计算要害门路和要害流动。
- 最短实现工夫
- 最多能够多晚开始不受影响
结构化分析
结构化分析模型
需要分析阶段输入
- 数据流图、实体分割图、状态迁徙图和数据字典
软件设计阶段进行
- 软件体系结构图
数据流图
- 形容数据在零碎中如何被传送或变换,以及形容如何对数据流进行变换的性能,用于性能建模
四个因素:
- 内部实体,也称为数据源或数据汇点,示意要解决的数据的输出起源或处理结果要送往何处,不属于指标零碎的一部分,通常为组织、部门、人、相干的软件系统或者硬件设施;
- 数据流示意数据沿箭头方向的流动;
- 加工是对数据对象的解决或变换;
- 数据贮存在数据流中起保留数据的作用,能够是数据库文件或者任何模式的数据组织。
程序语言基础知识
编译和解释
- 解释程序也称为解释器,它或者间接解释执行源程序,或者将源程序翻译成某种中间代码后再加以执行;
- 编译器则将源程序翻译成目标语言程序,而后再计算机上运行目标程序。
- 这两种语言处理程序的基本区别是:在编译形式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不参加目标程序的执行过程;
- 而在解释形式下,解释程序和源程序(或者某种等价示意)要参加到程序的运行过程中,运行程序的控制权在解释程序。简略来说,在解释形式下,翻译源程序时不生成独立的目标程序,而编译器则将源程序翻译成独立保留的目标程序。
脚本语言
- 为了缩短传统的编写 - 编译 - 链接 - 运行过程而创立的计算机编程语言。
- 脚本语言个别运行在解释器或虚拟机中,便于移植,开发效率较高。
将高级语言源程序转化为一种中间代码
- 中间代码有四元式、后綴式、三地址码、树等
- 操作系统
软件设计
- 模块独立性是创立良好设计的一个重要准则,个别采纳模块间的耦合和模块的内聚两个准则来进行度量。耦合程序越低,内聚水平越高,则模块的独立性越好。存在多种模块之间的耦合类型,从低到高顺次为非间接耦合、数据耦合、标记耦合、管制耦合、内部耦合、公共耦合和内容耦合。
- 公共耦合是指一组模块都能拜访的同一公共数据环境;
- 管制耦合是指一个模块通过传送开关、标记、名字等管制信息,显著地管制抉择另一个模块的性能;
- 标记耦合是一组模块通过参数表传递记录信息;
- 数据耦合是一个模块拜访另一个模块时,彼此之间通过数据参数(而不是控制参数、公共数据结构或内部变量)来替换输入输出信息。
开发过程模型
增量开发模型
- 将软件产品分解成一系列的增量构件,在增量开发中逐渐退出。其长处次要有: 能在较短的工夫内交付能够应用的局部产品;逐渐减少的产品性能能够使用户有富余的工夫学习和适应新产品;优先级最高的性能首先交付, 这意味着最重要的性能通过最多的测试。然而要求对要开发的零碎进行精心的剖析和设计。
软件体系结构
- 仓库格调是一种软件体系结构,其中蕴含一个数据仓库和若干个其余构件。数据仓库位于该体系的构造核心,其余构件拜访该数据仓库并对其中的数据进行增、删、改等操作。数据库系统、超文本零碎和黑板零碎都属于仓库格调。
该体系结构的长处包含:
- 对可更改性和可维护性的反对:
- 可复用的常识源;
- 反对容错性和健壮性。
毛病包含:
- 测试艰难;
- 不能保障有好的解决方案;
- 难以建设好的控制策略;
- 低效;
- 低廉的开发工作;
- 短少对并行机制的反对。
软件测试
- 软件测试按阶段分为单元测试、集成测试和零碎测试。在单元测试的根底上,将所有模块依照设计要求组装为零碎;此时进行的测试称为集成测试。
集成测试有多种策略:
- 自底向上: 从零碎档次中的最底层的构件开始,逐渐向上。须要设计驱动模块来辅助测试。
- 自顶向上: 与自底向上相同,从最顶层的构件开始,逐渐向下。须要设计桩模块来辅助测试。
- 三明治: 联合自底向上和自顶向下两种测试策略。
- 一次性: 对所有的构件一次性测试,而后集成。
软件复杂性常识
- McCabe 度量法是一种基于程序控制流的复杂性度量办法,环路复杂性为 V(G)=m-n+2 m 是弧的个数,n 是节点数
正文完