首页 > 编程知识 正文

软考难不难,软考报名条件

时间:2023-05-04 04:17:51 阅读:20230 作者:3494

软件开发模型软件工程的任务是根据需求分析的结果,建立各种设计模型,提供问题的解决方案。 分为概要设计和详细设计两个阶段。概要设计:软件体系结构设计、模块划分、数据设计和接口设计。详细设计阶段:数据结构和算法设计。

瀑布模型:

每个活动被规定为线性顺序连接的几个阶段的模型。 是缺乏灵活性,无法理解软件需求不明确或不正确的问题的理想现象开发模式。 适合需求明确的项目。

快速原型模型:

在项目开发的初期阶段构建简单的系统,逐渐演化为最终产品。 往往只是应用和需求分析的阶段。

演化模型:从早期原型发展到最终软件产品,特别适用于对软件需求缺乏准确认识的情况。

增量模型:软件作品作为一系列增量组件进行设计、编码、集成和测试,首先提供给用户核心模块,通过增量开发逐步了解和改善需求。 可以尽早发现问题。螺旋模型:瀑布模型与快速原始模型相结合的进化软件开发过程模型。 它兼顾了快速原型迭代、瀑布模型系统化和严格监控,引入了两种模型都忽略的风险分析,适用于复杂的大规模软件。

V模型:strong调提前进行测试,强调测试要贯彻开发。

喷泉模型:适用于面向对象开发

RAD(快速开发模型):SDLC CBSD

构件组装模型(CBSD):

将软件开发中的各模块创建为标准部件,组装部件即可得到所需的软件。 的软件开发可大大提高重用性,大大缩短软件开发的总时间,降低软件成本,提高可靠性。

统一过程模型UP:这是一个以用例和风险导向体系结构为中心的反复、渐进的开发过程,受UML方法和工具的支持。 UP过程定义了五个阶段:开始阶段、精炼阶段、构建阶段、移交阶段和生成阶段。 开发过程包括多个迭代,每个迭代包括规划、分析、设计、构建、集成测试以及内部和外部发布。 每个迭代有五个核心工作流。 在了解3358www.Sina.com/项目初始化活动起始阶段:第一个领域范围后,进行需求分析和框架演进精化阶段:关注系统的构建,实现模型http://生成关注软件增量构建阶段:运行软件,检测软件的持续使用,提供运行环境支持,提出并评估缺陷报告和更改请求。

3358 www.Sina.com/http://www.Sina.com /代码的所有权属于整个开发团队,激发开发人员的创造力。 其中的成对编程是代码的审计过程,我们认为每个http://www.Sina.com/http://www.Sina.com /项目都需要不同的策略、约定和方法。 如何使用移交阶段:迭代。 其中,以每30天的迭代为冲刺,按照需求的优先顺序实现产品。产生阶段:ASD的六项基本原则

由3358 www.Sina.com/http://www.Sina.com /结构化分析、结构化设计、结构化编程组成,是一种面向数据流的开发方法。 的指导思想为敏捷开发方法:适用于小型项目。,基本原则是功能的分解和抽象。 它特别适用于数据处理领域的问题,但不适合解决大型复杂项目,难以适应需求的变化。

极限编程XP:这是一种面向数据结构的开发方法。 重视数据结构,适合小型项目。 如果输入数据结构和输出数据结构之间没有对应关系,则很难应用该方法。

XP主要解决代码质量低的问题,不影响编码速度适合用户需求不清晰、业务理论不确定、需求经常变化的情况。 适用于系统规模不是很大,也不是很复杂的情况。

水晶法Crystal:包括面向对象分析、面向对象设计、面向对象实现,采用统一建模语言(UML )。

并列争球法Scrum:数据流图、实体联系图、状态转移图、数据字典

3358 www.Sina.com/http://www.Sina.com /软件开发的

整个生存期中工作量有特定的分布。
COCOMO:
基本COCOMO:静态单变量模型,对整个软件系统进行估算
中级COCOMO:静态多变量模型,将软件系统模型分为系统和部件两个层次,系统又部件构成
详细COCOMO:将软件分为系统、子系统、模块三层,除包括中级模型所考虑因素外,还要考虑需求分析、软件设计等每一步成本驱动属性的影响。
COCOMO II: 以模板作为成本的主要因素,考虑多个成本驱动因子。该方法包括应用组装模型、早期设计阶段模型、体系结构阶段模型三个阶段。估算选择有:对象点、功能点、代码行
专家评估: 依靠专家的背景和经验进行评估。
Wolverton: 基于成本矩阵,定义不同的软件类型和难易成本,基于此计算软件开发的成本。

软件能力成熟度模型集成(CMMI):


CMMI提供两种标识方法:阶段式模型、连续式模型

连续式模型包括六个过程域能力等级(CL):
CL0:未完成的,未执行或未达到CL1定义的所有目标。
CL1:已执行的,共形目标是过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标。
CL2:已管理的,共性目标集中与已管理的过程的制度化。
CL3:已定义的,共性目标集中与已定义的过程的制度化
CL4:定量管理的,共性目标集中可定量管理的过程的制度化,
CL5:优化的使用量化手段改变和优化过程域,以对付客户要求的该百年或持续改进计划中的过程域功效。

CMM软件开发能力成熟度模型,给出了一个从个别的过程达到成熟的规范化过程的一个框架,分为五个阶段:
等级1:初始级,混乱不可预测
等级2:重复级,项目的到监控和追踪,有稳定的策划和产品基线。
等级3:确定级,通过软件过程定义和制度优化确保对产品质量的控制
等级4:管理级,产品质量得到策划,软件过程基于度量的追踪
等级5:优化级,持续的过程能力改进。

软件配置管理SCM: 用于整个软件工程的过程,其主要目标是标识变更、控制变更、确保变更正确实现,报告变更。
其主要内容包括:版本管理、配置支持、变更支持、过程支持、团队支持、变化报告、审计支持

ISO/IEC 9126软件质量模型: 定义了六个软件质量标准

需求的分类


功能需求:所开发软件必须具有什么样的功能
非功能需求:产品必须具有什么样的属性或品质,如可靠性、性能、响应时间、扩展性等
设计约束:对解决方案的一些列约束说明

结构化设计:

内聚与耦合:

内聚:
①功能内聚: 最强的内聚,指模块内的所有元素共同作用完成一个功能,缺一不可。
②顺序内聚: 指一个模块中的各个处理元素都密切相关于同一功能,且必须按顺序执行,前一功能元素的输出就是下一功能元素的输入。
③通信内聚: 指模块内的所有处理元素都在同一个数据结构上操作,或者各处理使用相同的输入数据或者产生相同的输出数据。
④过程内聚: 指一个模块完成多个任务,这些任务必须按指定的次序执行。
⑤瞬时内聚: 把需要同时执行的动作组合在一起形成的模块,所包含的任务必须在同一时间间隔内执行。
⑥逻辑内聚: 指模块内执行若干个逻辑上相似的功能。
⑦偶然内聚: 指一个模块内的各处理元素之间没有任何联系
内聚性:功能内聚>顺序内聚>通信内聚>过程内聚>时间内聚>逻辑内聚>偶然内聚(内聚性越高,模块独立性越强)

耦合:
①无直接耦合: 两个模块之间没有直接的关系,它们之间的联系完全是通过主模块的控制和调用来实现的。
②数据耦合: 指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。
③标记耦合: 指两个模块之间传递的是数据结构
④控制耦合: 指一个模块调用另一个模块时,传递的是控制变量,被调用模块通过该控制变量的值有选择地执行模块内的某一功能。
⑤外部耦合: 模块间通过软件之外的环境联结(如I/O将模块耦合到特定的设备、格式、通信协议上)。
⑥公共耦合: 指多个模块都访问同一个公共数据环境
⑦内容耦合: 当一个模块直接使用另一个模块的内部数据,或通过非正常入口转入另一个模块内部的耦合。
耦合性:无直接耦合<数据耦合<标记耦合<控制耦合<外部耦合<公共耦合<内容耦合(耦合性越低,模块独立性越强)

软件测试

测试原则与类型:

测试用例设计:

测试阶段:

McCabe复杂度:

环路复杂度:V(G)=m-n+2,m边,n点

系统运行与维护:

改正性维护: 改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。
适应性维护: 使应用软件适应信息技术变化和管理需求变化而进行的修改。
完善性维护: 为扩充功能和改善性能而进行的修改,主要是指对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。
预防性维护: 为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件环境的变化,应主动增加预防性的新的功能,以使应用系统适应各类变化而不被淘汰。

项目管理基础知识:

软件项目活动图:

Gantt图: 一种简单的水平条形图,以日历为基准描述项目任务。可以清晰的描述某个任务从何时开始,到何时结束,任务的进展情况以及各个任务之间的并行性。但是不能清晰反应各任务之间的依赖关系,难以确认整个项目的关键所在,也不能反映计划中有潜力的部分。
PERT图: 不仅给出了每个任务的开始时间、结束时间和完成该任务所需的时间,还给出了人物之间的依赖关系,即哪些任务完成后才能开始另外一些任务,以及如期完成整个工程的关键路径。但是它不能反映任务之间的并行关系。

例题:

答案:D,C(先正推每个节点的最长开始时间,然后从最后一个逆推最晚开始时间)

冗余

通常冗余附加技术分为四类:结构冗余、信息冗余、时间冗余、冗余附加

冗余附加技术: 实现其他类型冗余技术所需要的资源技术,包括程序指令、数据、存储和调用它们的空间通道等。
在屏蔽硬件错误的容错技术中,冗余附加技术包括:关键程序和数据的冗余存储及调用:检测、表决、切换、重构、纠错和报复的实现。
在屏蔽软件的冗余技术中,冗余附加技术包括:冗余备份程序的存储及调用;实现错误检测和错误恢复程序;实现错误软件所需要的固化程序。

风险评估

软件风险包括两个特性:不确定性和损失

风险的优先级通常是根据风险暴露(风险曝光度)设定的。风险暴露=风险影响*风险概率

项目的主要风险:
项目风险:涉及各 种的预算、进度、人员、资源以及和客户相关的问题;
技术风险:潜在的设计、实现、对阶、测试等维护问题
业务风险:建立一个无人想要的项目的风险、失去预算的风险等
商业风险:市场风险、策略风险、管理风险预算风险等

软考历年真题及B站相关视频课件:
链接:https://pan.baidu.com/s/1e4d1-HGOzcEVHSK8Q0j_xA
提取码:acij

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。