【备考-网络工程师】PART3-系统开发和项目管理基础

 目录

一、软件生命周期与开发模型

        1、软件生命周期

                软件生命周期

                各个阶段主要任务描述

                考法

                        【考法1】软件生命周期各阶段任务

        2、软件开发模型

                常见的软件开发模型

                        ①瀑布模型(软件生命周期法)

                        ②V模型

                        ③原型化模型

                        ④螺旋模型

                        ⑤喷泉模型

                考法

                        【考法1】开发模型使用项目的总结

二、软件开发与测试

        1、软件设计

                软件设计的标准

                        高内聚

                        低耦合

                考法

                        【考法1】软件设计的标准

        2、程序编码

                程序设计语言(编程)

                程序设计语言的分类

                编译或解释程序

                考法

                        【考法1】解释程序(翻译)和编译程序的区别

        3、软件测试

                软件测试的目标

                软件测试方法

                测试策略

                回归测试(退化测试)

                考法

                        【考法1】白盒和黑盒测试的区别

                        【考法2】各测试策略的特点

三、项目管理基础

        1、时间管理(进度管理)

                进度管理的常用图形描述方法

                        ①Ganntt图

                        ②PERT图(计划评审图)

                        PERT图相关概念

                考法

                        【考法1】Gantt图和PERT图的特点

                        【考法2】PERT图中相关时间的计算


tips:以下都是自己在网课学习整理的总结跟归纳~可能有自己偏向(就是详略啦~)ヾ(◍°∇°◍)ノ゙(嗯哼 因为大部分都是网课内容而已 主要是拿来自用而已~ 所以感兴趣可以自己去看同款希赛网课——

 99ddec6e2b3644c0a000bee48f987b67.jpg

一、软件生命周期与开发模型

        1、软件生命周期

          软件生命周期:指软件从开始计划到最终被淘汰所经历的各个阶段
计划时期问题定义
可行性研究
开发时期需求分析
总体设计
详细设计
编码
测试
运行时期维护

        计划时期+需求分析(开发时期):用户(甲方)、项目管理工程师、系统分析师参与

        总体设计(开发时期):系统分析师、软件分析师参与

        详细设计(开发时期):软件设计师参与

        编码(开发时期):程序员参与

        测试(开发时期):测试工程师参与

        维护(运行时期):运行管理维护工程师参与

        各个阶段主要任务描述
阶段主要任务描述
问题定义确定要解决的问题是什么?
可行性研究是否有可行的解决方案,是否值得解决?
需求分析为解决这个问题,目标系统应具备哪些功能、性能要求等
总体设计确定目标系统的主要功能如何完成,有哪些模块构成,以及模块之间的关系
详细设计具体解决各个模块的实现细则
编码编写程序代码
测试通过各种测试,使软件达到预定的要求
维护通过各种维护活动使系统持久地满足用户的需求

        需求分析:明确整个软件应该具备哪些功能,哪些性能方面的需求

        概要设计:把软件的功能按照模块去划分,明确模块与模块之间有什么样的关系

        详细设计:针对单个模块,做内部控制结构

        编码:把单个模块用程序代码的方式予以表达

        考法
        【考法1】软件生命周期各阶段任务

        2、软件开发模型

        常见的软件开发模型有:瀑布模型、V模型、原型化模型、螺旋模型、喷泉模型

        ①瀑布模型(软件生命周期法):各阶段工作室按固定顺序而连接的

        每个活动只强调做一次

        弊端:

        a、需求分析不好把握,如果是对于没有开发过的项目,在乙方捕捉甲方的需求时可能会把握不准,导致最后做出来的产品与甲方想要的效果不同,这个是瀑布模型最大的风险

        b、前期没有发现过的错误一旦传到后方,有可能导致整个软件项目开发失败

        只适用于需求非常明确的项目

        ②V模型:通过开发和测试同时进行的方式来缩短开发周期,提高开发效率

        刚好对应

        详细设计(单个模块)->单元测试:针对单个模块正确性的检查

        概要设计->集成测试:把通过单元测试的模块集成在一起,测试模块之间的协作性

        需求分析->系统测试:在实际运行的环境下来看软件是否正常

        用户需求->验收测试:站在用户的角度/站在需求分析合同的角度来看看有没有满足合同方面的要求

        ③原型化模型:指在软件开发者获取用户基本需求后,快速地建立一个目标系统的最初版本(可运行的系统),并把它交给用户试用、补充和修改,再进行新版本的开发(多轮迭代)。包括演化模型、增量模型

        演化模型:经过多轮的迭代

        增量模型:也经过多轮迭代,但强调每一次迭代均发布一个可操作的产品出来

        但无论哪个模型,最早期是不用投入过多的人员进行参与的

        适用于需求不够明确的项目

        ④螺旋模型:瀑布模型与原型模型的结果,同时引入其他模型所不具备的风险分析

        ⑤喷泉模型:典型的面向对象生命周期模型。“喷泉”这个词体现了面向对象软件开发过程迭代和无缝的特性

        在设计阶段之间可以形成这种迭代和无缝的特性(如 需求分析在没有完全完成的情况下 实际上是可以做部分的软件设计的 之间会有重叠 这样可以加快软件开发的效率 但不利于项目管理)

        优点:可以加快软件开发的效率

        缺点:但不利于项目管理

        考法
        【考法1】开发模型使用项目的总结
适用项目
瀑布模型

需求非常明确的项目

有成功开发模板的项目

原型化模型需求可能会发生变化的项目
螺旋模型对风险敏感的项目
喷泉模型面向对象的项目

二、软件开发与测试

1、软件设计

        软件设计的标准:划分软件系统模块时应做到高内聚、低耦合
        高内聚:指单个模块内各个元素之间的联系,一个好的内聚模块应当恰好只做一件事(即一个功能尽量在一个模块中去完成)
        低耦合:指模块与模块之间的直接依赖关系。模块与模块之间的调用关系由概要设计阶段完成(低耦合性是指 模块与模块之间的联系是约松散越好)

        考法
        【考法1】软件设计的标准

        软件设计的标准:应做到高内聚低耦合

2、程序编码

        程序设计语言(编程):用以书写计算机程序,即指计算任务的处理对象和处理规则的描述

        语言的基础是一组记号和一组规则,在程序设计语言中,这些记号串就是程序。包括三个方面的因素:语法、语义、语用

        语法指的是在编写程序的时候,这些符号之间呈现什么样的规则

        语义指的是程序起什么样的作用

        语用指的是这个程序使用之间是什么关系

        

        程序设计语言的分类:

        第一代:机器语言

        (指的是二进制代码来编写程序,可读性比较差,但计算机能够唯一识别的语言为机器语言,用户很难识别)

        第二代:汇编语言

        (属于符号化的机器语言,用了一些助记词,但也属于比较低级的语言)

        第三代:高级语言,面向用户的,分为面向过度语言和面向对象的语言

        (高级语言是用英文语法加上数学函数所构成的语言,面向于普通程序员,友好性会比较好,一致性也比较好;如果用高级语言来编写程序,计算机是不能够直接识别和执行的,需要通过编译或者说解释程序的处理)

        高级语言编写的程序要能在计算机中运行,需要经过编译或解释程序的处理

        解释程序(翻译):逐句翻译并执行,中间没有目标程序的生成

        编译型:中间有目标程序的生成

        (编译会形成等价的机器语言目标程序,而解释为逐句翻译并执行,输入一条翻译一条执行一条,中间没有目标程序,所以解释的交互性会比较好一点,但效率会更低)

        考法
        【考法1】解释程序(翻译)和编译程序的区别

        解释程序(翻译)和编译程序的最大区别:是否有目标代码的生成

3、软件测试

        软件测试的目标:尽可能多的发现错误
        软件测试方法:

        测试策略

        回归测试(退化测试):用于发现一些错误在被修正之后可能引起的其他代码出错

        考法
        【考法1】白盒和黑盒测试的区别

        白盒和黑盒测试的最大区别:是否关注程序实现的内部逻辑

        【考法2】各测试策略的特点
特点描述
单元测试测试单个模块
集成测试测试模块间的接口和通信
验收测试有效性测试、达标测试
回归测试发现纠正错误所引起的其他错误

三、项目管理基础

1、时间管理(进度管理)

        进度管理的常用图形描述方法有:Gantt(甘特)图PERT(计划评审)图

        ①Ganntt图:可以清楚地表示任务的持续时间和任务之间的并行,但是不能清晰地描述各个任务之间的依赖关系

        

        ②PERT图(计划评审图):PERT图是一种网络模型,描述一个项目任务之间的依赖关系

        PERT图相关概念
描述
关键路径PERT图中最长的一条路径;也反映了完成计划中完成此项目的最短时间
最早时刻表示在此时刻之前从该事件出发的任务不可能开始
最晚时刻表示从该事件出发的任务必须在此时刻之前开始
松弛时间

表示在不影响整个工期的前提下(关键路径),完成任务有多少弹性时间(最晚-最早)

        关键路径:如何判断一个项目的工期是由关键路径来判断,关键路径决定的事整个项目的最短工期;关键路径是最长的一条路径,指的是从开始的顶点到结束的顶点

        松弛时间:松弛时间不仅可以等于“最晚-最早”的时间,还可以等于“关键路径时间-包含某活动最长路径时间”(两种算法结果一样)

        特点:能清晰地反映出各任务的依赖关系,但不能反映各任务之间的并行关系

        考法
        【考法1】Gantt图和PERT图的特点
优点缺点
甘特图能清晰的描述每个任务从何时开始,到何时结束,以及任务之间的并行关系不能反映出各任务间的依赖关系
PERT图能清晰的反映出各任务的依赖关系不能反映出任务之间的并行关系

        【考法2】PERT图中相关时间的计算
描述
关键路径PERT图中最长的一条路径;也反映了完成计划中完成此项目的最短时间
最早时刻表示在此时刻之前从该事件出发的任务不可能开始
最晚时刻表示从该事件出发的任务必须在此时刻之前开始
松弛时间

表示在不影响整个工期的前提下(关键路径),完成任务有多少弹性时间(最晚-最早)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值