1. 软件工程项目质量管理包括质量计划质量保证质量控制

质量计划:确定合适的质量标准,如何实施其质量方针。
质量保证:包括质量管理方法、采用的工程技术、测试技术和复审技术、对文档及其修改的控制、项目的标准及规格等。
质量控制:监控项目成果是否符合有关的标准,找出方法来解决质量问题。

  1. 程序调试的目的是诊断和改正程序中的错误;软件测试的目的是发现程序中的错误。
  2. 软件测试是保证软件质量的关键活动,实施软件测试的可行目标是尽量多地发现软件中的错误和缺陷
  3. 软件测试方法

软件测试方法 { 静态测试 { 人工检测 计算机辅助静态分析 动态测试 { 黑盒测试——功能测试,方法有:等价类划分、边值分析、错误猜测、因果图和 β 测试等。 白盒测试【检查软件内部的逻辑结构】——结构测试、透明盒测试、逻辑驱动测试或基于代码的测试,方法有:逻辑覆盖、循环覆盖和基本路径测试。 软件测试方法\begin{cases} 静态测试 \begin{cases} 人工检测\\ 计算机辅助静态分析\\ \end{cases}\\ 动态测试 \begin{cases} 黑盒测试——功能测试,方法有:等价类划分、边值分析、错误猜测、因果图和β测试等。\\ 白盒测试【检查软件内部的逻辑结构】——结构测试、透明盒测试、逻辑驱动测试或基于代码的测试,方法有:逻辑覆盖、循环覆盖和基本路径测试。\\ \end{cases} \end{cases} 软件测试方法 静态测试{人工检测计算机辅助静态分析动态测试{黑盒测试——功能测试,方法有:等价类划分、边值分析、错误猜测、因果图和β测试等。白盒测试【检查软件内部的逻辑结构】——结构测试、透明盒测试、逻辑驱动测试或基于代码的测试,方法有:逻辑覆盖、循环覆盖和基本路径测试。

  1. 在设计白盒测试用例时,语句覆盖是最弱的覆盖准则。
  2. 常用的软件生存周期模型有:瀑布模型、增量模型、演化模型、螺旋模型和喷泉模型等。

瀑布模型
瀑布模型适用于软件需求确定,开发过程能够采用线性方式完成的项目

  • 优点:容易理解、管理成本低;强调开发的阶段性早期计划及需求调查和产品测试。
  • 缺点:不适应需求不确定的软件开发
    客户必须能够完整、正确和清晰地表达他们的需要;在开始的两个或三个阶段中,很难评估真正的进度状态;当接近项目结束时,出现了大量的集成和测试工作;直到项目结束之前,都不能演示系统。在瀑布模型中,需求或设计中的错误往往只有到了项目后期才能够被发现,对于项目风险的控制能力较弱,从而导致项目常常延期完成,开发费用超出预算。

    在软件生存周期模型中,瀑布模型的突出缺点是难以适应用户需求的经常变动。

增量模型

  • 优点:具有瀑布模型的所有优点,此外还有:
    开发早期反馈及时和易于维护
    第一个可交付版本所需要的成本和时间很少;开发由增量表示的小系统所承担的风险不大;由于很快发布了第一个版本,因此可以减少用户需求的变更;运行增量投资,即在项目开始时可以仅对一个或两个增量投资。
  • 缺点:如果没有对用户的变更要求进行规划,那么产生的初始增量可能会造成后来增量的不稳定;如果需求不像早期思考的那样稳定和完整,那么一些增量就可能需要重新开发;管理发生的成本、进度和配置的复杂性,可能会超出组织的能力。

演化模型

  • 优点:任何功能一经开发就能进入测试,以便验证是否符合产品需求,可以帮助引导出高质量的产品需求。
  • 缺点:如果不加控制地让用户接触开发中尚未稳定的功能,可能对开发人员及用户都会产生负面影响。

螺旋模型
螺旋模型将瀑布模型和演化模型结合起来,加入了后两种模型均忽略的风险分析

  • 优点:支持用户需求的动态变化,为用户参与软件开发的所有关建决策提供了方便,有助于提高软件的适应能力,并且为项目管理人员及时调整管理决策提供了便利,从而降低了软件开发的风险。
  • 缺点:进行软件开发时,需要开发人员具有相当丰富的风险评估经验和专门知识。另外,过多的选代次数会增加开发成术,延迟提交时间。

喷泉模型

  • 是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发与方法。
  1. 欲开发一系统,如果客户不能完整描述他们的需求,则开发过程最适宜采用原型模型

原型模型以软件产品的样品为基础,通过用户与开发者双向沟通,不断改进,反复迭代,逐步得到正式交付的软件产品。此模型适用于用户需求模糊或随时间变化的系统。

  1. 原型化方法是动态确定软件需求的方法之一,该方法适应于需求不确定性高的系统。
  2. 软件质量特性

功能性(Functionality):与一组功能及其指定的性质的存在有关的一组属性。功能是指满足规定或隐含需求的那些功能。

  • 适应性 (Suitability):与对规定任务能否提供一组功能以及这组功能是否适合有关的软件属性。
  • 准确性 (Accurateness):与能够得到正确或相符的结果或效果有关的软件属性。
  • 互用性 (Interoperability):与同其他指定系统进行交互协作的能力相关的软件属性。
  • 依从性 (Compliance):使软件服从有关的标准、 约定、 法规及类似规定的软件属性。
  • 安全性 (Security):与避免对程序及数据的非授权故意或意外访问的能力有关的软件属性。

可靠性(Reliability):在规定的条件下和规定的时间间隔内,按设计要求,软件成功运行的特性。

  • 成熟性 (Maturity):与由软件故障引起失效的频度有关的软件属性。
  • 容错性 (Fault Tolerance):与在软件错误或违反指定接口的情况下,维持指定的性能水平的能力有关的软件属性。
  • 易恢复性 (Recoverability):与在故障发生后,重新建立其性能水平并恢复直接受影响数据的能力,以及为达到此目的所需的时间和努力有关的软件属性。

易使用性 (Usability):与为使用所需的努力和由一组规定或隐含的用户对这样使用所做的个别评价有关的一组属性。

  • 易理解性 (Understandability):与用户为理解逻辑概念及其应用所付出的劳动有关的软件属性。
  • 易学性 (Learnability):用户为学习其应用 (例如操作控制、输入、输出) 所付出的努力相关的软件属性。
  • 易操作性 (Operability):与用户为进行操作和操作控制所付出的努力有关的软件属性。

效率 (Efficiency):在规定条件下,软件的性能水平与所用资源量之间的关系有关软件属性。

  • 时间特性 (Time Behavior):与响应和处理时间以及软件执行其功能时的吞吐量有关的软件属性。
  • 资源特料 (Resource Behavior):与软件执行其功能时所使用的资源量以及使用资源的持续时间有关的软件属性。

可维护性 (Maintainability):与进行规定的修改所需要的努力有关的一组属性。

  • 易分析性 (Analyzability):与为诊断缺陷或失效原因,或为判定待修改的部分所需努力有关的软件属性。
  • 易改变性 (Changeability):与进行修改、排错或适应环境变换所需努力有关的软件属性。
  • 稳定性(Stability):与修改造成未预料效果的风险有关的软件属性。
  • 易测试性 (Testability):为确认经修改软件所需努力有关的软件属性。

可移植性 (Portability):与软件可从某一环境转移到另一环境的能力有关的一组属性。
兼容测试:主要是检查软件在不同的软\硬件平台上是否可以正常的运行,即软件可移植性。

  • 适应性 (Adaptability):与软件转移到不同环境时的处理或手段有关的软件属性。
  • 易安装性 (Installability):与在指定环境下安装软件所需努力有关的软件属性。
  • 一致性 (Conformance):与软件服从与可移植性有关的标准或约定的软件属性。
  • 易替换性 (Replaceability):与软件在该软件环境中用来替代指定的其他软件的可能和努力有关的软件属性。
  1. Mc Call软件质量模型

Mc Call软件质量模型从软件产品的运行、修正、转移三个方面确定了11个质量特性。

  1. 按照ISO/IEC 9126软件质量模型的规定,软件的适应性是指软件运行于不同环境中的能力
  2. 软件维护的类型

分类 { 维护目的的不同 { 正确性维护:改正在系统开发阶段已发生而系统测试阶段尚未发现的错误 适应性维护:使应用软件适应信息技术变化 / 随着软硬件环境变化和管理需求变化而进行的修改 完善性维护:为扩充功能和改善性能而进行的修改 预防性维护:为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件环境的变化 维护具体内容的不同 { 程序维护 数据维护 代码维护 设备维护 分类\begin{cases} 维护目的的不同 \begin{cases} 正确性维护:改正在系统开发阶段已发生而系统测试阶段尚未发现的错误\\ 适应性维护:使应用软件适应信息技术变化/随着软硬件环境变化和管理需求变化而进行的修改\\ 完善性维护:为扩充功能和改善性能而进行的修改\\ 预防性维护:为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件环境的变化\\ \end{cases}\\ 维护具体内容的不同 \begin{cases} 程序维护\\ 数据维护\\ 代码维护\\ 设备维护\\ \end{cases} \end{cases} 分类 维护目的的不同 正确性维护:改正在系统开发阶段已发生而系统测试阶段尚未发现的错误适应性维护:使应用软件适应信息技术变化/随着软硬件环境变化和管理需求变化而进行的修改完善性维护:为扩充功能和改善性能而进行的修改预防性维护:为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件环境的变化维护具体内容的不同 程序维护数据维护代码维护设备维护
为了改善系统硬件环境和运行环境而产生的系统更新换代需求而导致的软件维护属于适应性维护。
修改现有软件系统的设计文档和代码以增强可读性,这种行为属于完善性维护。

  1. 软件能力成熟度模型(CMM)

CMM将软件过程改进分为5个成熟度级别:
-初始级
-可重复级:建立了基本的项目管理过程和实践来跟踪项目费用、进度和功能特性。
-已定义级:所有项目都采用根据实际情况修改后得到的标准软件过程来开发和维护软件。
-已管理级:收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解与控制。
-优化级:过程的量化反馈和先进的新思想,新技术促使过程不断改进。

  1. 由于客户的需求往往不同,面对质量优先、交付时间优先和成本优先的不同需求,开发者宜分别采用CMMl(能力成熟度模型集成)、 Agile(敏捷开发)、Lean(精益开发)

  2. 统一过程的典型代表是RUP(Rational Unified Process)。

  3. 当一个企业的信息系统建成并正式投入运行后,该企业信息系统管理工作的主要任务是对该系统进行运行管理和维护

  4. 系统成本分为固定成本和运行成本。
    设备购置费用、设施费用、软件开发费用属于固定成本
    系统切换费用属于系统运行维护费用

  5. 通过程序设计活动求解问题时,通常可分为问题建模、算法设计、编写代码和编译调试四个阶段。编写代码和编译调试阶段的工作与所选择的程序语言密切相关。

  6. 根据维护的具体内容的不同,可对软件维护进行分类。数据维护是指对文件或数据库中的记录进行增加、修改和删除等操作,通常采用专用的程序模块。

软件维护涉及不同内容,主要包括硬件设备的维护、应用软件的维护和数据的维护。

  1. 系统测试时,一般需要进行兼容性测试。
  2. 系统测试包括可靠性、安全、安装测试等整体验证。
  3. XP 是一种轻量级(敏捷)、高效、低风险、柔性、可预测的、科学的软件开发方式,其四大价值观包括沟通、简单、反馈和勇气
  4. 伪代码来描述算法时,可以采用类似于程序设计语言的语法结构,也易于转换为程序。
  5. 软件的过分分解将导致模块独立性变差,模块接口复杂度增加和总的开发工作量增加。
  6. 网络集成、数据集成和应用集成分别用于解决系统的互连性、互通性和互操作性。
  7. 软件开发商对软件产品进行持续不断改进的动力主要来自用户的反馈意见
  8. 对应用软件产品所进行的β测试,是在应用环境下由部分用户进行的测试。
  9. 一个软件系统的生存周期包含可行性分析和项目开发计划、需求分析、设计(概要设计和详细设计)编码、测试和维护等活动,其中设计是软件工程的技术核心,其任务是确定如何实现软件系统。
  10. 计算机程序解决问题的过程:首先是需求–需求分析–总体设计–详细设计–编码–单元测试–集成测试–试运行–验收。
  11. 某项目计划20天完成,花费4万元。在项目开始后的前10天内遇到了偶发事件,到第10天末进行中期检查时,发现己花费2万元,但只完成了40%的工作量。如果此后不发生偶发事件,则该项目将推迟2天完工,需要增加费用4000元

工作量为1,正常速度为1/20,现在还剩0.6,因此还需要0.6/1/20=12天,因此要推迟2天完工。正常花费为4,现在还有60%未完成,因此还需要0.6*4=2.4万元,因此需要增加费用4000元。

  1. 内聚
  • 偶然内聚或巧合内聚:指一个模块内的各处理元素之间没有任何联系。
  • 逻辑内聚:指模块内执行若干个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
  • 时间内聚:把需要同时执行的动作组合在一起形成的模块。
  • 过程内聚:指一个模块完成多个任务,这些任务必须按指定的过程执行。
  • 通信内聚:指模块内的所有处理元素都在一个数据结构上操作,或者各处理使用相同的输入数据或产生相同的输出数据。
  • 顺序内聚:指一个模块中的各个处理元素都密切相关于同一个功能且必须顺序执行,前一个功能元素的输出就是下一功能元素的输入。
  • 功能内聚【最好!】:指模块内的所有元素共同作用完成一个功能,缺一不可。

如果模块A的三个处理都对同一数据结构操作,则模块A的内聚类型是通信内聚
在程序中有一个错误处理模块,它接收出错信号,对不同类型的错误打印出不同的出错信息,则该模块设计时内聚类型为功能内聚
为了避免重复,将在程序中多处出现的一组无关的语句放在一个模块中,则该模块的内聚类型是偶然内聚

  1. 耦合
  • 公共耦合:指通过一个公共数据环境相互作用的那些模块间的耦合。
  • 控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。
  • 标记耦合:一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。
    两个模块之间传递的是数据结构
  • 数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的。
    两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递
  • 内容耦合:一个模块直接修改或操作另一个模块的数据,或者直接转入另一个模块。

衡量软件设计模块独立性的一个标准是耦合性,其中两个模块之间传递数据结构的情况属于标记耦合

  1. 在软件正式运行后,一般来说,需求分析阶段引入的错误需要的维护代价最高。
    一般来说,软件开发中的错误越早发现,修改的成本越小。在维护阶段,发现越早期的错误,修改和维护的成本就越大。
    从结构化的瀑布模型看,在它的生命周期中八个阶段中,需求分析阶段环节出错,对软件的影响最大。
    在软件开发的各个阶段中,对软件开发成败影响最大的是需求分析

  2. 企业管理、电子政务、电子商务等具有弱计算、强流程、多交互的特点,宜采用云计算模式。

  3. 估计一个项目所需时间常有乐观估计时间、最可能时间和悲观估计时间。根据这三个时间的加权平均(权为常数)可以推算出这个项目的期望时间。下表中,项目3的期望时间大致是6.5天。

设计算期望时间的三个权分别为a、b、c,其中a+b+c=1,即期望时间=a乐观估计+b最可能估计+c悲观估计
由题中的项目1和2可知:a+3b+11c=4,a+1.5b+14c=3.5,由于a+b+c=1,所以a=1/6,b=4/6,c=1/6。从而,项目3的期望时间为3/6+6.25
4/6+11/6=6.5.

  1. 单元测试也称为模块测试,在模块编写完且无编译错误就可以进行。单元测试侧重于模块中的内部处理逻辑和数据结构。一般采用白盒法测试。主要检查模块的以下特征:模块接口、局部数据结构、重要的执行路径和边界条件。
  2. 在进行单元测试时,常用的方法是采用白盒测试,辅之以黑盒测试
  3. 为了检查对软件进行修改后是否引入新的错误,需要对软件进行的测试类型为回归测试。
  4. 使用独立测试团队的最主要原因是可以更彻底地进行软件测试
  5. 白盒测试中,判定覆盖是指设计若干个测试用例,运行被测程序,使得程序中的每个判断的取真分支和取假分支至少执行一次。

语句覆盖:设计若干测试用例,运行被测程序,使得每一个可执行语句至少执行一次。
判定覆盖:设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。
条件覆盖:设计若干测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。
路径覆盖:设计足够的测试用例,覆盖程序中所有可能的路径。

  1. 一组无逻辑关系的语句在程序中多处出现,为了节省存储空间,把这些语句放在一个模块中,该模块的内聚是偶然内聚

  2. 软件部件的内部实现与外部可访问性的分离,是指软件的封装性

  3. 需求分析阶段最重要的技术文档是需求规格说明书

  4. 模块间的耦合度越低,说明模块之间的关系越松散。

  5. 软件开发模型是指软件开发全部过程、活动和任务的框架。

  6. 集成的软件开发环境是指支持软件开发全过程的软件包

  7. 甘特图和网络图常用于软件项目管理中的进度管理

  8. 文档是软件开发人员、软件管理人员、软件测试人员、软件维护人员、用户以及其他相关人员之间的桥梁,是软件开发各阶段成果的体现,也是后续工作的基础。

  9. 画数据流图时,需要用数据字典对数据流图中各个元素进行定义。

  10. 互操作性是指系统之间交换数据和相互调用的难易程度。

  11. 数据库中常见的check(约束机制)是为了保证数据的完整性,防止合法用户使用数据库时向数据库加入不符合语义的数据。

  12. 软件模块的独立性由内聚度和耦合度高内聚、低耦合来衡量。

  13. 除了“高内聚、低耦合”的原则之外,在模块分解时还需要注意模块的作用范围应在控制范围之内

  14. MacCabe度量法公式为V(G)=m-n+2,V(G)是有向图G中环路数,m是图G中弧数,n是图G中节点数。

  15. 待开发软件的技术性能指标属于软件的性能需求

  16. 软件的结构化开发方法包括结构化分析、结构化设计和结构化编程。

  17. 软件文档大致可分为开发文档、管理文档和用户文档三类。
    项目开发计划和开发进度月报属于管理文档
    软件操作手册属于用户文档
    测试分析报告属于并发技术人员编写的开发文档

  18. 在软件生存周期中,能确定软件系统体系结构的阶段是总体设计

  19. 软件工程的基本目标是开发高质量的软件

  20. 如果程序模块中含有复杂的条件组合,则采用判定表和判定树能更清晰地表达各种条件与动作之间的对应关系。
    流程图、盒图适合流程控制,实体-关系图用于数据库设计。

  21. 在以用户界面(UI)层、系统交互(SI)层、问题领域(PD)层和数据管理(DM)层构成的软件架构中,业务实体和业务逻辑属PD

  22. 正确性(准确性):正确实现算法功能,最重要的指标,是能否得到正确或相符的结果或效果有关的软件。
    可用性:可用性是在某个考察时间,系统能够正常运行的概率或时间占有率期望值。系统的可用性取决于MTTF(平均无故障时间,表示系统的可靠性)及MTTR(平均修复故障时间,表示系统的可维护性)
    可靠性:元件、产品、系统在一定时间内、在一定条件下无故障地执行指定功能的能力或可能性。
    友好性:具有良好的使用性。
    可读性:可读的、可以理解的,方便分析、修改和移植。
    健壮性:对不合理的数据或非法的操作能进行检查,纠正。
    效率:对计算机资源的消耗,包括计算机内存和运行时间的消耗。

  23. 软件工程三要素:过程、方法、工具。

  24. 单元测试、集成测试、系统测试、验收测试、冒烟测试、回归测试
    软件测试的分类

  • 验收测试分为α测试和β测试。α测试通常在开发环境中由内部人员进行,β测试则是在实际用户环境中让部分用户参与测试,能收集到更真实的用户反馈,帮助发现软件在实际使用中的问题。
  • 回归测试在软件修改后进行,目的是确保修改没有引入新的缺陷或影响原有功能。
  1. 在软件开发项目中,关键路径是项目事件网络中源点和汇点间的最长路径,组成关键路径的活动称为关键活动。下图中的关键路径历时23个时间单位。
    关键路径
V1V2V3V4V5V6V7V8V9V10
ve(k)0346111314171923
max{V1,V2+3}max{V2+4,V4+5}max{V3+5,V4+2,V5+2}V5+a13max{V6+3,V7+3}max{V7+1,V8+2}max{V8+6,V9+3}
max{4,6}max{7,11}max{9,8,13}max{13,17}max{15,19}max{23,22}
vl(k)0396111414172023
min{V2-3,V3-4,V4-4}min{V4-3,V5-4}V6-a5min{V5-5,V6-2}min{V6-2,V7-3,V9-5}V10-a16min{V8-3,V9-1}min{V9-2,V10-6}V10-a16vl(k)=ve(k)
min{0,0,2}min{3,7}min{6,11}min{11,11,14}min{14,18}min{17,18}
a1a2a3a4a5a6a7a8a9a10a11a12a13a14a15a16a17
e(k)00034636111111141413171917
e(a4)=ve(V2)e(a5)=ve(V3)e(a6)=ve(V4)e(a7)=ve(V2)e(a8)=ve(V4)e(a9)=ve(V5)
l(k)052391276121115191414182017

在活动图中,结点表示项日中各个工作阶段的里程碑,连接各个结点的边表示活动,边上的数字表示活动持续的时间。在下面的活动图中,从A到J的关键路径是A-D-F-H-J,关键路径的长度是49,从E开始的活动启动的最早时间是13

V1V2V3V4V5V6V7V8V9V10
ve(k)03510131922394049
V2+a4max{V3+4,V4+9}max{V5+2,V6+3}V6+a9max{V6+4,V8+1}max{V7+7,V8+10,V9+1}
max{9,19}max{15,22}max{23,40}max{29,49,41}
vl(k)0301510401942394549
min{V2-3,V3-5,V4-10}V5-a4V6-a5V6-a6V7-a7min{V7-3,V8-20,V9-4}V10-a11V10-a12V10-a13
min{0,0,0}min{19,19,36}
a1a2a3a4a5a6a7a8a9a10a11a12a13a14
e(k)00035101319191922394039
e(a11)=ve(V7)e(a12)=ve(V8)e(a13)=ve(V9)e(a14)=ve(V8)
l(k)271003015104039194142394544

下图是一个软件项目的活动图,其中顶点表示项目里程碑,连接顶点的边表示活动,边的权重表示活动的持续时间。则里程碑A-B-D-I-J-L在关键路径上。活动GH的松弛时间是3

a1a2a3a4a5a6a7a8a9a10a11a12a13a14a15a16
e(k)000334581077810121214
e(a4)=ve(V2)e(a5)=ve(V2)e(a6)=ve(V5)e(a7)=ve(V3)e(a8)=ve(V4)e(a9)=ve(V9)
l(k)034347981010101213121517
V1V2V3V4V5V6V7V8V9V10V11V12
ve(k)03584871010121420
V2+a4V3+a7V5+a6max{V6+1,V7+3}max{V2+6,V4+2}max{V7+2,V9+2}max{V8+4,V10+2}max{V10+8,V11+3}
max{9,10}max{9,10}max{9,12}max{14,14}max{20,17}
vl(k)0398712101310121720
min{V2-3,V3-4,V5-5}min{V4-5,V9-6}V6-a7V9-a8V7-a16V8-a12min{V8-3,V10-2}V11-a13V10-a9min{V12-8,V11-2}V10-a16
min{0,5,2}min{3,4}min{10,10}min{12,16}

关键路径为A-B-D-I-J-L
GH活动最早开始时间是7;最晚开始时间是10,所以松弛时间是3。

【软件工程】过程设计的工具
N-S盒图、PAD图和程序流程图PFD主要用于表示软件模块的执行过程。而E-R图是在对系统进行数据建模时采用,用于表示实体和实体之间的联系。
N-S盒图
在这里插入图片描述
PAD图
在这里插入图片描述
E-R图

程序流程图PFD

甘特图

甘特图特点:能清晰的描述每个任务从何时开始,到何时结束,以及任务之间的并行关系。但是他不能清晰的反应出各任务的依赖关系。


PERT图

PERT图特点:不仅给出了每个任务的开始时间、结束时间和完成该任务所需的时间,还给出了任务之间的关系。

判定树:适用于加工的输入数据和输出数据之间的逻辑关系比较复杂的加工描述。

判定表:适用于加工的输入数据和输出数据之间的逻辑关系比较复杂的加工描述。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐