前言
由于笔记复制到CSDN样式失效,没有精力再重新完整的检查并设置一遍样式,有积分的可以前往下载word、pdf、有道云笔记版本。
需要说明的是,下载的内容与本篇分享内容一致,只有样式的区别【比如重点记忆、常考内容有颜色、字 、自重等样式,目录结构更完善,表格不是图片,等】
本章下载地址:
https://download.csdn.net/download/chengsw1993/85518857
如果发现文章存在阅读不同、显示异常等内容,请评论区告知以便修改,应该都是CSDN的markdown语法导致的。
系列文章
上一篇:【软考-软件设计师精华知识点笔记】第四章 操作系统知识
下一篇:【软考-软件设计师精华知识点笔记】第六章 系统开发与运行
软件工程概述
软件工程基本原理:用分阶段的生命周期计划严格管理、坚持进行阶段评审、实现严格的产品控制、采用现代程序设计技术、结果应能清楚的审查、开发小组的人员应少而精、承认不断改进软件工程实践的必要性。
软件工程的基本要素:方法、工具、过程。
软件生命周期:可行性分析与项目开发计划、需求分析、概要设计(选择系统解决方案,规划子系统)、详细设计(设计子系统内部具体实现)、编码、测试、维护。
软件过程模型/软件开发模型
能力成熟度模型CMM(Capability Maturity Model):对软件组织化阶段的描述,随着软件组织定义、实施、测量、控制和改进其软件过程,软件组织的能力经过这些阶段逐步提高。
1)初始级(Initial)
软件过程的特点是杂乱无章,有时甚至很混乱,几乎没有明确定义的步骤,项目的成功完全依赖个人的努力和英雄式核心人物的作用。
2)可重复级(Repeatable)
建立了基本的项目管理过程和实践来跟踪项目费用、进度和功能特性,有必要的过程准则来重复以前在同类项目中的成功。
3)已定义级(Defined) 【定性】
管理和工程两方面的软件过程已经文档化、标准化,并综合成整个软件开发组织的标准软件过程。所有项目都采用根据实际情况修改后得到的标准软件过程来开发和维护软件。
4)已管理级(Managed) 【定量】
制定了软件过程和产品质量的详细度量标准。
5)优化级(Optimized)
加强了定量分析,通过来自过程质量反馈和来自新观念、新技术的反馈使过程能不断持续改进。
软件过程
能力成熟度模型CMMl(Capability Maturity Model Integration):将已有的几个CMM模型结合在一起,使之构造成为“集成模型”。支持多个工程学科和领域的、系统的、一致的过程改进框架,能适应现代工程的特点和需要,能提高过程的质量和工作效率。
CMMI两种表示方法:
- 阶段式模型:类似于CMM,它关注组织的成熟度,五个成熟度模型如下:
初始的:过程不可预测且缺乏控制。
已管理的:过程为项目服务。
已定义的:过程为组织服务。
定量管理的:过程已度量和控制。
优化的:集中于过程改进。 - 连续式模型:关注每个过程域的能力,一个组织对不同的过程域可以达到不同的过程域能力等级。
统一过程UP(Unified Process)
统一过程模型:是一种开发过程,特性如下:
三大特点:用例和风险驱动、以架构为中心、迭代并且增量。
开发的四个阶段:起始(项目的初始活动,如确认需求和风险评估等)、精化(需求分析和架构设计等)、构建(系统的构建,产生实现模型等)、移交(软件提交方面的工作,产生软件增量,进行β测试,交付系统等)。
UP的每一次迭代都是一次完整的软件开发过程,包括整个软件开发生命周期,有五个核心工作流(需求、分析、设计、实现、测试)。
软件过程模型:
即软件开发模型,是软件开发全部过程、活动和任务的结构框架。
瀑布模型(SDLC)
瀑布模型(SDLC):结构化方法中的模型,是结构化的开发,开发流程如同瀑布一般,一步一步的走下去,直到最后完成项目开发,只适用于需求明确或者二次开发(需求稳定),当需求不明确时,最终开发的项目会错误,有很大的缺陷。
演化模型
原型:即快速原型开发,与瀑布模型相反,原型针对的就是需求不明确的情况,首先快速构造一个功能模型,演示给用户看,并按用户要求及时修改,中间再通过不断的演示与用户沟通,最终设计出项目,就不会出现与用户要求不符合的情况,采用的是迭代的思想。
增量模型
增量模型:首先开发核心模块功能,而后与用户确认,之后再开发次核心模块的功能,即每次开发一部分功能,并与用户需求确认,最终完成项目开发,优先级最高的服务最先交付。
特点:由于并不是从系统整体角度规划各个模块,因此不利于模块划分。难点在于如何将客户需求划分为多个增量。与原型不用的是增量模型的每一次增量版本都可作为独立可操作的作品,而原型的构造一般是为了演示。
结对编程:一个程序员开发,另一个程序在一旁观察审查代码,能够有效的提高代码质量,在开发同时对代码进行初步审查,共同对代码负责。
自适应开发:强调开发方法的适应性(Adaptive)。不像其他方法那样有很多具体的实践做法,它更侧重为软件的重要性提供最根本的基础,并从更高的组织和管理层次来阐述开发方法为什么要具备适应性。
水晶方法:每一个不同的项目都需要一套不同的策略、约定和方法论。
特性驱动开发:是一套针对中小型软件开发项目的开发模式。是一个模型驱动的快速迭代开发过程,它强调的是简化、实用、易于被开发团队接受,适用于需求经常变动的项目。
极限编程XP:核心是沟通、简明、反馈和勇气。因为知道计划永远赶不上变化,XP无需开发人员在软件开始初期做出很多的文档。XP提倡测试先行,为了将以后出现bug的几率降到最低。
并列争球法SCRUM:是一种迭代的增量化过程,把每段时间(30天)一次的迭代称为一个“冲刺”,并按需求的优先级别来实现产品,多个自组织和自治的小组并行地递增实现产品。
软件工具
软件开发工具:对于于软件开发过程的各种活动。包括需求分析工具、设计工具、编码与排错工具、测试工具。
软件维护工具:辅助软件维护过程中活动的软件,辅助维护人员对软件代码及其文档进行各种维护活动。包括版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具。
软件管理和软件支持工具:辅助管理人员和软件支持人员的管理活动和支持活动,以确保软件高质量的完成。包括项目管理工具、配置管理工具、软件评价工具。
- 需求分析工具主要了解两种:PowerDesigner【系统分析设计、数据库设计工具,创建UML图、数据库的概念模型和物理模型】和Rational Rose【UML建模CSAE工具之一】
- 数据库设计工具主要是两种:PowerDesigner和ERwin
- 项目管理工具(1)Microsoft Project【项目范围管理、项目时间管理、项目成本管理、人力资源管理等】,(2)Visual Source Safe(VSS),(3)CVS【版本控制】
- 程序设计工具:VS.Net,JBuilder,Eclipse,IDEA,Delphi
软件开发环境
软件开发环境:指支持软件产品开发的软件系统,由软件工具集和环境集成机制构成。
工具集用于支持软件开发的相关过程、活动和任务;环境集成机制为工具集成和软件开发、维护和管理提供统一的支持。
开发支持环境(环境信息库,过程控制和消息服务,用户界面规范)
图的关键路径
PERT图:是一个有向图,图中箭头表示任务,它可以标上完成该任务的时间,图中的节点表示流入节点的任务的结束,并开始流出结点任务,这里把结点称为事件。只有当流入该结点的所有任务都结束时,结点所表示的事件才出现。
特点:不仅给出了每个任务的开始时间、结束时间和完成该任务所需的时间,还给出了任务之间的关系。
McCall质量模型
三个方面,11个质量特性
给出了三层框架模型:质量特性、评价标准、度量指标
版本命名规则(了解):
处于草稿状态的配置项的版本 格式为:0.YZ,其中YZ数字范围为01~99。随着草稿的不断完善,YZ的取值应递增。YZ的初值和增幅由开发者自己把握。处于正式发布状态的配置项的版本 格式为:X.Y。其中x为主版本 ,取值范围为1 ~ 9;Y为次版本 ,取值范围为1-9。配置项第一次正式发布时,版本 为1.0。
如果配置项的版本升级幅度比较小,一般只增大Y值,X值保持不变。只有当配置项版本升级幅度比较大时,才允许增大值。
处于正在修改状态的配置项的版本 格式为:X.YZ。在修改配置项时,一般只增大Z值,X.Y值保持不变。
变更控制:软件开发过程中的每一次修改都要纳入变更,以防版本混乱,需要用到基线和配置数据库的概念。
配置数据库分为以下三种:
开发库。专供开发人员使用,其中的信息可能做频繁修改,对其控制相当宽松。
受控库。在生存期某一阶段工作结束时发布的阶段产品,这些是与软件开发工作相关的计算机可读信息和人工可读信息。软件配置管理正是对受控库中的各个软件项进行管理,受控库也称为软件配置库。
产品库。在开发的软件产品完成系统测试后,作为最终产品存入产品库,等待交付用户或现场安装。
软件风险管理
软件风险两个特性:不确定性(可能发生也可能不发生)、损失(发生会产生恶性后果)。
项目风险威胁到项目计划,如果项目风险发生,有可能拖延项目的进度和增加项目的成本。指预算、进度、人员、资源、利益相关者、需求等方面的潜在问题以及它们对软件项目的影响。项目复杂度、规模及结构不确定性也属于项目风险因素。
技术风险威胁到要开发软件的质量和交付时间,如果技术风险发生,开发工作就变得很困难或者不可能,指设计、实现、接口、验证和维护等方面的潜在问题。此外,规格说明的歧义性、技术的不确定性、技术陈旧以及“前沿”技术也是技术风险因商业风险威胁到要开发软件的生存能力,包括下面五种:
商业风险威胁到软件开发的生存能力,分为5种:
市场风险。开发了一个没有人真正需要的优良产品或系统。
策略风险。开发的产品不再符合公司的整体商业策略。
销售风险。开发了一个销售部门不知道如何去销售的产品。
管理风险。由于重点的转移或人员的变动而失去了高级管理层的支持。
预算风险。没有得到预算或人员的保证。
风险管理过程如下:
软件度量
软件的两种属性:外部属性指面向管理者和用户的属性,可直接测量,一般为性能指标。内部属性指软件产品本身的的属性,如可靠性等,只能间接测量。
McCabe度量法:又称为环路复杂度,假设有向图中有向边数为m,节点数为n,则此有向图的环路复杂度为m-n+2。注意m和n代表的含义不能混淆,可以用一个最简单的环路来做特殊值记忆此公式,另外,针对一个程序流程图,每一个分支边(连线)就是一条有向边(只有入度没有出度的边不算),每一条语句(语句框)就是一个顶点。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!