JOB竞博产品中心

JOB竞博·软件设计师-软件工程基础知识

发布时间:2024-04-16 00:30:04 来源:竞博jbo电竞 作者:竞博jbo在线客服| 分类:产品中心

  软件工程基本原理:(用分阶段的生命周期计划严格管理、坚持进行阶段评审、实现严格的产品控制、采用现代程序设计技术、结果应能清楚的审查、开发小组的人员应少而精、承认不断改进软件工程实践的必要性。

  UP的每一次迭代都是一次完整的软件开发过程,包括整个软件开发生命周期,有五个核心工作流(需求、分析 、设计 、实现、测试) 。

  瀑布模型(SDLC):结构化方法中的模型,是结构化的开发,开发流程如同瀑布一般,一步一步的走下去,直到最后完成项目开发,只适用于需求明确或者二次开发 (需求稳定) ,当需求不明确时,最终开发的项目会错误,有很大的缺陷.

  V模型:是瀑布模型的一个变体。特点是增加了很多轮测试,并且这些测试贯穿于软件开发的各个阶段,不像其他模型都是软件开发完再测试,很大程度上保证了项目的准确性。v模型开发和测试级别对应如图:

  原型:即快速原型开发,与瀑布模型相反,原型针对的就需求不明确的情况,首先快速构造一个功能模型,演示给用户看,并按用户要求及时修改,中间再通过不断的演示与用户沟通,最终设计出项目,就不会出现与用户要求不符合的情况,采用的是迭代的思想。

  螺旋模型:是多种模型的混合,针对需求不明确的项目,与原型类似,但是增加了风险分析,这也是其最大的特点。

  增量模型:首先开发核心模块功能,而后与用户确认,之后再开发次核心的功能,即每次开发一部分功能,并与用户需求确认,最终完成项目开发,优先级最高的服务最先交付。

  特点:但由于并不是从系统整体角度规划各个模块,因此不利于模块划分。难点在于如何将客户需求划分为多个增量。与原型不用的是增量模型的每一次增量版本都可作为独立可操作的作品,而原型的构造一般是为了演示。

  喷泉模型:是一种以用户需求为动力,以对象作为驱动的模型适合面向对象的开发方法。使开发过程具有迭代性和无间隙性。

  基于构件的开发模型CBSD:利用预先包装的构件来构造应用系统。构件可以是组织内部开发的构件,也可以是商品化成品软件构件。特点是增强了复用性,在系统开发过程中,会构建一个构件库,供其他系统复用,因此可以提高可靠性,节省时间和成本。

  形式化方法模型:建立在严格数学基础上的一种软件开发方法,主要活动是生成计算机软件形式化的数学规格说明。

  结构化方法:流程固定,针对需求明确的项目,自顶向下,逐层分解,面向数据流将数据流映射为软件系统的模块结构,数据流类型包括变换流型和事务流型,不同类型的数据流有不同的映射方法。以瀑布模型为代表,一旦开发完成,将难以修改不利于复用及后续版本的开发,现在被面向对象法给代替了。

  结构化方法的设计: 体系结构设计是宏观架构设计:数据设计是数据流的设计:接口设计关注模块间的连接设计: 过程设计是模块内的具体实现过程的数据结构和算法的设计。

  面向对象方法:强调复用性,构建全面合理的模型,供不同项目使用,方便修改,节省开发时间和效率,增强复用性,以构件组装模型为代表。

  针对小型项目,主要是为了给程序员减负,去掉一些不必要的会议和文档,代指一组模型(极限编程、自适应开发、水晶方法......)这些模型都具有相同的原则和价值观,具体如下图 :

  结对编程:一个程序员开发,另一个程序在一旁观察审查代码,能够有效的提高代码质量,在开发同时对代码进行初步审查,共同对代码负责。

  自适应开发:强调开发方法的适应性(Adaptive) 。不象其他方法那样有很多具体的实践做法,它更侧重为软件的重要性提供最根本的基础,并从更高的组织和管理层次来阐述开发方法为什么要具备适应性。

  特性驱动开发:是一套针对中小型软件开发项目的开发模式。是一个模型驱动的快速迭发过程,它强调的是简化、实用、易于被开发团队接受,适用于需求经常变动的项目

  极限编程XP:核心是沟通、简明、反馈和勇气。因为知道计划永远赶不上变化,XP无需开发人员在软件开始初期做出很多的文档。XP提倡测试先行,为了将以后出现bug的几率降到最低。

  并列争球法SCRUM:是一种迭代的增量化过程,把每段时间 (30天) 一次的选代称为一个“冲刺”,并按需求的优先级别来实现产品,多个自组织和自治的小组并行地递增实现产品。

  软件开发工具:对于于软件开发过程的各种活动包括需求分析工具、设计工具、编码与排错工具、测试工具。

  软件维护工具:辅助软件维护过程中活动的软件,辅助维护人员对软件代码及其文档进行各种维护活动。包括版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具。

  软件管理和软件支持工具:辅助管理人员和软件支持人员的管理活动和支持活动,以确保软件高质量的完成。包括项目管理工具、配置管理工具、软件评价工具。

  COCOMO模型:常见的软件规模估算方法。常用的代码行分析方法作为其中一种度量估计单位,以代码行数估算出每个程序员工作量,累加得软件成本。

  模型按其详细程度可以分为: 基本COCOMO模型,中间COCOMO模型,详细COCOMO模型。

  基本COCOMO模型是是一个静态单变量模型,它用一个以已估算出来的原代码行数(LOc)为自变量的经验函数计算软件开发工作量。

  中级COCOMO模型在基本COCOMO模型的基础上,再用涉及产品、硬件、人员、项目等方面的影响因素调整工作量的估算。

  详细COCOMO模型包括中间COCOMO模型的所有特性,但更进一步考虑了软件工程中每一步骤(如分析、设计) 的影响。

  COCOMOII模型:COCOMO的升级,也是以软件规模作为成本的主要因素,考虑多个成本驱动因子。该方法包括三个阶段性模型,即

  Putnam估算模型:一种动态多变量模型,假设在软件开发的整个生存周期中工作量有特定的分布。

  Gantt图:又称为横道图,横轴表示时间,纵轴表示活动,以时间顺序表示活动,能反应活动间的并行关系,但无法反应活动之间的依赖关系,因此也难以清晰的确定关键任务和关键路径。

  PERT图:类似于前趋图,是有向图,反应活动之间的依赖关系,有向边上标注活动运行的时间,但无法反应活动之间的并行关系。

  在AOE网中, 有些活动是可以并行进行的。从源点到汇点的有向路径可能有多条,并且这些路径长度可能不同。 完成不同路径上的活动所需的时间虽然不同,但是只有所有路径上的活动都已经完成,整个工程才能算结束。因此,从源点到汇点的所有路径中,具有最大路径长度的路径称为关键路径,而把关键路径上的活动称为关键活动。

  软件质量就是软件与用户需求相一致的程度。具体地说,软件质量是软件符合明确叙述的功能和性能需求、以及所有专业开发的软件都应具有的隐含特征的程度。

  五、维护性:是指软件产品可被修改的能力,修改可能包括修正,改进或软件适应环境、需求和功能规格说明中的变化。

  基线: 软件开发过程中特定的点,是项目生存期各开发阶段为特定点,又称为末尾里程碑,反应阶段性成果。

  项目风险威胁到项目计划,如果项目风险发生,有可能拖延项目的进度和增加项目的成本指预算、进度、人员、资源、利益相关者、需求等方面的潜在问题以及它们对软生项目的影响。项目复杂度、规模及结构不确定性也属于项目风险因素。技术风险威胁到要开发软件的质量和交付时间,如果技术风险发生,开发工作就变得很困难或者不可能,指设计、实现、接口、验证和维护等方面的潜在问题。此外规格说明的歧义性、技术的不确定性、技术陈旧以及“前沿”技术也是技术风险因。

  风险识别:识别出项目中已知和可预测的风险,确定风险的来源、产生的条件、描征以及哪些项目可以产生风险,形成一个风险列表。

  风险预测:又称为风险估计,从两个方面预测风险,即风险可能发生的概率和风险后果,因此有风险曝光度=风险发生的可能性 × 风险发生会带来的损失。

  风险控制:辅助项目组建立处理风险的策略,包括风险避免、风险监控、RMMM计划 (风险缓解、监控和管理计划)

  McCabe度量法又称为环路复杂度,假设有向图中有向边数为m,节点数为n,则此有向图的环路复杂度为m-n+2。

  注意m和n代表的含义不能混淆,可以用一个最简单的环路来做特殊值记忆此公式,另外,针对一个程序流程图,每一个分支边(连线) 就是一条有向边,每一条语句(语句框) 就是一个顶点。


JOB竞博 上一篇:Dreamweaver(DW)Adobe Dr 下一篇:C) 面试笔试题目收集