首页 > 其他分享 >软件工程基础知识

软件工程基础知识

时间:2023-10-27 11:26:19浏览次数:30  
标签:风险 COCOMO -- 基础知识 软件工程 设计 软件 过程

1、软件生存周期

可行性分析与项目开发计划--生成可行性分析报告与项目开发计划;

需求分析--生成软件需求说明书;

概要设计--主要设计软件的结构--生成概要设计说明书;

详细设计--生成详细设计文档;

编码;

测试--生成软件测试计划、测试用例、软件测试报告;

维护--软件生存周期中时间最长;

2、软件开发方法

结构化方法--自顶向下,逐层分解(面向数据流);

Jackson方法--适用于小规模开发(面向数据结构);

原型化方法--需求经常变化,且规模不大;

面向对象开发方法;

3、成本估算

成本估算方法--自顶向下、自底向上、差别、专家、类推、算式;

成本估算模型--

1、Putnam模型--是一种动态多变量的模型;

2、COCOMO模型--

--基本COCOMO是一种静态单变量的模型,对整个软件系统进行估算;

--中级COCOMO是一种静态多变量的模型,划分为系统+部件,系统中也包含了部件;

--详细COCOMO划分为系统、子系统和模块;

4、风险分析

1、风险识别--它的一个方法是风险条目检查表;

2、风险预测--从两方面评估一个风险:风险发生的可能性或概率,以及如果风险发生所产生的后果;

3、风险评估--定义风险参照标准;

4、风险控制--需要考虑三个问题:风险避免、风险监控、风险管理及意外事件计划;

如果软件项目组对于风险采取主动的方法,则避免是最好的策略;

5、进度安排

1、Gantt图--横向表示时间、纵向表示任务;不能很好地表示出各任务之间的依赖关系;

2、PERT图--不能很好地表示出各任务之间的并行关系;

6、软件组织的过程能力

分为5个成熟度级别:

1、初始级--软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力;

2、可重复级--建立了基本的项目管理过程来跟踪费用、进度和功能特性;制定了必要的过程纪律,能重复早先类似应用项目取得的成功;

3、已定义级--已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件;

4、已管理级--收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解和控制;

5、优化级--过程的量化反馈和先进的新思想、新技术促使过程不断改进。

7、统一过程UP

1、初始阶段--生命周期目标

2、精化阶段--生命周期架构

3、构建阶段--生命周期功能

4、移交阶段--产品发布

8、敏捷方法

1、极限编程XP--贯穿整个生命周期;

4个价值观--沟通、简单性、反馈和勇气;

5个原则--快速反馈、简单性假设、逐步修改、提倡更改和优质工作;

12个最佳实践--

--计划游戏(快速制定计划、随着细节的不断变化而完善);

--小型发布(系统的设计要能够尽可能地早交付);

--隐喻(找到合适的比喻传达信息);

--简单设计(只处理当前的需求,使设计保持简单);

--测试先行(先写测试代码,然后再编写程序);

--重构(重新审视需求和设计,重新明确地描述它们以符合新的和现有的需求);

--结队编程;

--集体代码所有制;

--持续集成(可以按日甚至按小时为客户提供可运行的版本);

--每周工作40个小时;

--现场客户;

--编码标准;

2、水晶法--不同策略;

3、并列争求法--冲刺、迭代;

4、自适应软件开发;

标签:风险,COCOMO,--,基础知识,软件工程,设计,软件,过程
From: https://www.cnblogs.com/liuzijin/p/17791258.html

相关文章

  • Linux基础知识与命令 三
    目录和文件管理cat 查看文件格式:cat [选项] [文件]cat可以支持标准输入命令-A 显示隐藏字符 -n显示行号 -b跳过空行 -s压缩 (相当于把连空行压缩到一个空行)重定向:> >>>> 表示追加   tac 反方向查看 rev 同一行内容逆向显示 h......
  • LINUX基础知识和命令 二
    LINUXalias(别名)自定义命令=原始命令原始命令中有特殊符@#%()请打上引号,单双无所谓例:vim/etc/sysconfig/network-scripts/ifcfg-ens33aliasmyvim=“vim/etc/sysconfig/network-scripts/ifcfg-ens33”下次可以直接打myvim  alias直接打显示当前系统所有的别名在Li......
  • bilibili B站:【文档向】CMake基础知识 - 原作者笔记Markdown风格
    视频摘自B站:https://www.bilibili.com/video/BV1hz4y1H7YA笔记摘自:https://gitee.com/yanmu_ym/cpp[TOC]#预备知识##CMake是什么CMake是一个管理代码构建的工具。与平台和构建系统无关。最初CMake只用于生成不同版本的Makefile。现在CMake可以生成不同构建工具构建文件,也可......
  • bilibili B站:【文档向】CMake基础知识 - 原作者笔记
    视频摘自B站:https://www.bilibili.com/video/BV1hz4y1H7YA笔记摘自:https://gitee.com/yanmu_ym/cpp目录预备知识CMake是什么环境搭建与学习准备前置条件Ubuntu安装CMakeWindows安装CMake学习材料CMakeTutorial第一步起点练习1最简单的CMake项目练习2指定C++标准练习3添加版本......
  • Flask后端开发(一)-基础知识和前期准备
    目录1.背景介绍1.1.项目背景1.2.项目难点1.3.项目环境2.flask后端开发实现的功能3.flask部署和前后端对接3.1.flask运行配置和服务器部署3.2.flask前后端传参4.后端测试工具4.1.工具介绍4.2.工具使用后记1.背景介绍1.1.项目背景就是前几个月临时接手了一个后端项......
  • C语言基础知识
    导言:C语言是一种广泛应用于系统开发、嵌入式系统和游戏开发等领域的高级编程语言。在学习C语言之前,了解其基础知识是至关重要的。一、HelloWorld程序HelloWorld是C语言程序员的入门示例。它是一个简单的程序,输出“HelloWorld”到终端。下面是一段典型的HelloWorld程序的代码:```......
  • 01-蓝牙基础知识
    目录一.蓝牙广播1.蓝牙信道一.蓝牙广播1.蓝牙信道低功耗蓝牙一共有40个信道,范围从2402MHz-2480MHz每2MHz一个信道.......
  • JdbcTemplate基础【项目demo】【基础知识】【简单明了,一眼就会】
    jdbcTemplateDemo以便更好的应用。注意:实际大型项目中service层为复杂的逻辑处理,请自行编写。JdbcTemplate例子源码(含sql):http://www.shicishu.com/down/JdbcTemplate_Demo.rar第一部分:层级关系说明:1、controller层:对外接口层。(一般调用service层。)2、service层:逻辑处理层、(审核......
  • 软件工程知识总结梳理
    1.软件与软件组成?软件工程常用的8个质量要素的定义?计算机科学对软件的定义:软件是在计算机系统支持下,能够完成特定功能和性能的程序、数据和相关的文档。软件可形式化表示为:软件=知识+程序+数据+文档用户关注软件质量的外部属性,如软件的正确性、可靠性、有效性、安全性、可用性、可......
  • 区块链安全技术全方位掌握:从基础知识到公链开发和智能合约实战
    区块链安全技术全方位掌握:从基础知识到公链开发和智能合约实战0x00 前言区块链的安全需求越来越多,下面就将这些需求一一拆分,看看区块链安全需求到底是个什么样子。0x01 拆分目前针对安全服务行业的区块链安全需求,更多的是基于其上层应用(红色箭头指向)比如数字货币交易平台......