关于设计思考:软件设计师考点

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

March 6, 2023 · 1 min · jiezi

关于设计思考:软件过程模型

软件过程模型是指将软件开发过程合成为一系列可治理的阶段或流动,并规定每个阶段或流动所需的输出、输入、角色和工作产品,以及相互之间的关系。通过采纳软件过程模型,能够帮忙团队更好地组织和治理软件开发流动,进步软件开发效率和品质。模型名称概括形容长处毛病实用面向次要内容瀑布模型开发过程有序、线性,每个阶段实现后能力进入下一阶段易于了解、施行和治理需要变更难以解决、不适宜大型项目、开发过程不足灵活性面向过程需要剖析、设计、实现、测试、保护原型模型疾速开发原型,让用户理解软件系统是否合乎需要能够疾速失去用户反馈、更好地了解用户需要原型开发可能会减少后续开发的难度面向用户疾速建设原型、原型迭代迭代开发模型将开发过程分成若干个迭代,每个迭代都蕴含残缺的开发流程能够在开发过程中依据用户反馈及时调整需要、灵活性高迭代之间须要进行沟通和协调、可能存在一些反复工作面向用户打算迭代、剖析需要、设计、实现、测试、评审螺旋模型采纳一直迭代的形式开发软件,每个迭代包含危险剖析、开发、评审和打算等过程能够及时进行危险评估和调整、灵活性高须要进行危险评估和剖析,开发周期较长面向危险危险辨认、危险剖析、危险解决方案、开发、评审、打算喷泉模型将软件开发过程看作一个继续一直的喷泉,每个开发阶段都会一直循环迭代支持软件重用、能够适应变动、可靠性高开发过程可能会比较复杂,须要较高的技能和教训面向重用技术可行性研究、软件需要剖析、软件设计、软件实现、软件测试、软件维护

March 5, 2023 · 1 min · jiezi