系统架构13 - 软件工程(1)

软件工程

  • 软件开发生命周期
    • 软件定义时期
    • 软件开发时期
    • 软件运行和维护
    • 文档
  • 软件工程过程
  • 软件系统工具
  • 软件设计四个活动:
  • 能力成熟度模型CMM
    • CMM
    • CMMI
      • 两种表示方法

软件开发生命周期

软件定义时期

包括可行性研究和详细需求分析过程,任务是确定软件开发工程必须完成的总目标。具体可分成问题定义、可行性研究、需求分析等。

软件开发时期

就是软件的设计与实现,可分成概要设计、详细设计、编码、测试等。

软件运行和维护

就是把软件产品移交给用户使用。

文档

软件系统的文档可以分为用户文档系统文档两类。

  • 用户文档。主要描述系统功能和使用方法,并不关心这些功能是怎样实现的。
  • 系统文档。描述系统设计、实现和测试等各方面的内容。

软件工程过程

是指为获得软件产品包括以下4个方面活动:

  • P(Plan): 软件规格说明。规定软件的功能及其运行时的限制
  • D(Do): 软件开发。开发出满足规格说明的软件。
  • C(Check): 软件确认。确认开发的软件能够满足用户的需求。
  • A(Action): 软件演进。软件在运行过程中不断改进以满足客户新的需求。

软件系统工具

通常可以按照软件过程活动分为:
软件开发工具:需求分析工具、设计工具、编程与排错工具、测试工具等。
软件维护工具:版本控制、文档分析工具、开发信息库工具、逆向工程工具、再工程工具等。
软件管理和软件支持工具:项目管理工具、配置管理工具、软件评价工具、软件开发工具的评价和选择。

软件设计四个活动:

(1)数据设计。
(2)架构(体系结构)设计。
(3)人机界面(接口)设计。
(4)过程(功能)设计。

能力成熟度模型CMM

CMM

软件能力成熟度模型 (Capability Maturity Model for Software,CMM) 是一个概念模型,模型框架和表示是刚性的,不能随意改变,但模型的解释和实现有一定弹性

能力等级特点关键过程区域
初始级过程通常是杂乱无章的,几乎没有明确定义的步骤个人努力、英雄主义
可重复级建立了基本的项目管理过程和实践来跟踪项目费用、进度和功能特性。存在必要的过程准则来重复以往的成功案例软件配置管理、软件质量保证、软件子合同管理、软件项目跟踪与监督、软件项目策划、软件需求管理
已定义级管理和工程两方面的软件过程已经文档化、标准化,并综合成整个组织的标准软件过程。所有项目都据此过程来开发和维护软件同行评审、组间协调、软件产品工程、集成软件管理、培训大纲、组织过程定义
已管理级制定了软件过程和产品质量的详细度量标准软件质量管理和定量过程管理
优化级加强了定量分析,通过来自过程质量的反馈和来自新观念、新技术的反馈使过程能不断持续地改进过程更改管理、技术改革管理和缺陷预防

CMMI

CMMI(Capability Maturity Model Integration for Software, 软件能力成熟度模型集成) 是在 CMM 的基础上发展而来的。
CMMI提供了一个软件能力成熟度的框架,它将软件过程改进的步骤组织成5个成熟度等级,共包括18个关键过程域,52个过程目标,3168种关键时间,它为软件过程不断改进奠定了一个循序渐进的基础。
CMMI是若干个过程模型的综合和改进,不仅限于软件,也包括多个工程学科和领域的、系统的、一致的过程改进框架,能适应现代工程特点和需要,能提高过程质量和效率

两种表示方法

(1)连续式模型:关注每个过程域的能力,一个组织对不同过程域可以达到不同的过程域能力等级。
(2)阶段式模型:类似于CMM,关注组织的成熟度,五个成熟度模型如下:

能力等级特点关键过程区域
初始级过程通常是随意且混乱组织的成功依赖于组织内人员的能力与英雄主义。也常常能产出能用的产品与服务,但它们经常超出在计划中记录的预算与成本。
已管理级过程为项目服务确保策划、文档化、执行、监督和控制项目级的过程。为过程建立明确的目标,并能实现成本、进度和质量目标等
已定义级过程为组织服务企业能够根据自身的特殊情况定义适合自己企业和项目的标准流程,将这套管理体系与流程予以制度化,同时企业开始进行项目积累,企业资产的收集。
量化管理级过程已度量和控制组织建立了产品质量、服务质量以及过程性能的定量目标。成熟度级别与上一级的关键区别在于对过程性能的可预测
优化级集中于过程改进和优化企业的项目管理达到了最高的境界。关注于通过增量式的与创新式的过程与技术改进,不断地改进过程性能。组织使用从多个项目收集来的数据对整体的组织级绩效进行关注。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/637430.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【实操】基于 GitHub Pages + Hexo 搭建个人博客

《开发工具系列》 【实操】基于 GitHub Pages Hexo 搭建个人博客 一、引言二、接入 Node.js2.1 下载并安装 Node.js2.2 环境变量配置 三、接入 Git3.1 下载并安装 Git3.2 环境变量配置 四、接入 Hexo4.1 安装 Hexo4.2 建站4.3 本地启动服务器 五、接入 GitHub Pages5.1 初识 G…

Java--类继承

文章目录 主要内容一.学生类1.源代码代码如下(示例): 2.结果 二.交通工具类1.源代码代码如下(示例): 2.结果 三.圆类1.源代码代码如下(示例): 2.结果 总结 主要内容 学生类交通工具类圆类 一.学生类 具有…

C 练习实例33 - 质数(素数)判断

题目:判断一个数字是否为质数。 程序分析:质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除。 这题做过很多遍了,懂得都懂。 代码…

Raft算法详解(一):介绍

简单介绍 Raft是一种一致性算法,它包含了几个部分分别是领导者选举、日志复制、日志压缩和安全性。 角色 在Raft算法执行时存在着三种角色,分别是领导者(Leader)、追随者(Follower)以及竞选者&#xff0…

ChatGLM vs ChatGPT

所有的NLP大模型 都是transformer结构 1.Mask attention 的策略不同 2.训练任务目标不同 国内大模型nb公司:百度、清华智谱 一、主流大模型 粉色:Encoder-only。 绿色:Encoder-Decoder,尽头智谱ChatGLM。 蓝色:…

【MongoDB】下载安装、指令操作

目录 1.下载安装 2.指令 2.1.基础操作指令 2.2.增加 2.3.查询 2.4.修改 2.5.删除 前言: 关于MongoDB的核心概念请移步: 【文档数据库】ES和MongoDB的对比-CSDN博客 1.下载安装 本文以安装Windows版本的mongodb为例,Linux版本的其实…

三、arcgispro二次开发创建第一个工程

忙了几天,总算可以创建第一工程了。 步骤一: 步骤二: 工具介绍: 项目创建成功:项目目录在解决方案资源管理器中,整个工具都是动态可调整的,如下图: 想把窗口放哪里就把鼠标移到红…

Linux重定向:深入理解与实践

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:晴る—ヨルシカ 0:20━━━━━━️💟──────── 4:30 🔄 ◀️ ⏸ ▶️ ☰ &…

DFA有穷自动机敏感词过滤算法

1.EndType package com.example.utils.wordfilter;/*** 结束类型定义*/ public enum EndType {/*** 有下一个,结束*/HAS_NEXT, IS_END } 2.WordType package com.example.utils.wordfilter;/*** 词汇类型*/ public enum WordType {/*** 黑名单/白名单*/BLACK, WHITE } 3.F…

RHEL - 更新升级软件或系统

《OpenShift / RHEL / DevSecOps 汇总目录》 文章目录 小版本软件更新yum update 和 yum upgrade 的区别升级软件和升级系统检查软件包是否可升级指定升级软件使用的发行版本方法1方法2方法3方法4 查看软件升级类型更新升级指定的 RHSA/RHBA/RHEA更新升级指定的 CVE更新升级指定…

L1-069 胎压监测(Java)

小轿车中有一个系统随时监测四个车轮的胎压,如果四轮胎压不是很平衡,则可能对行车造成严重的影响。 让我们把四个车轮 —— 左前轮、右前轮、右后轮、左后轮 —— 顺次编号为 1、2、3、4。本题就请你编写一个监测程序,随时监测四轮的胎压&…

Java中的包、类、接口说明

写在开头 包、类、接口、方法、变量、参数、代码块,这些都是构成Java程序的核心部分,即便最简单的一段代码里都至少要包含里面的三四个内容,这两天花点时间梳理了一下,理解又深刻了几分。 Java中的包 Java 定义了一种名字空间,称之为包:package。一个类总是属于某个包…

Servlet系列:两种创建方式(xml,注解)

一、使用web.xml的方式配置(Servlet2.5之前使用) 在早期版本的Java EE中,可以使用XML配置文件来定义Servlet。在web.xml文件中,可以定义Servlet的名称、类名、初始化参数等。然后,在Java代码中实现Servlet接口&#x…

数据结构---数组

一、基本概念 1. 存放一组相同数据类型的集合 2.在内存中,分配连续的空间,数组创建时要指定大小 3. 定义 数据类型 [] 数组名 // 1.定义一个数组,里面的元素包含10, 20, 24, 17, 35, 58, 45, 74 int arr[] {10, 20, 24, 17, 35, 58, 45, 74}; 4. 获取数组的长度 int lengt…

wayland(xdg_wm_base) + egl + opengles 最简实例

文章目录 前言一、ubuntu 下相关环境准备1. 获取 xdg_wm_base 依赖的相关文件2. 查看 ubuntu 上安装的opengles 版本3. 查看 weston 所支持的 窗口shell 接口种类二、xdg_wm_base 介绍三、egl_wayland_demo1.egl_wayland_demo2_0.c2.egl_wayland_demo3_0.c3. xdg-shell-protoco…

Chatopera 云服务支持大语言模型对话(LLM),定制您的聊天机器人

2024 年,Chatopera 云服务继续不断完善,为开发者提供最好的定制聊天机器人的工具。在过去的一年,用户们反映最多的建议是 Chatopera 云服务内置大语言模型的对话,今天 Chatopera 云服务完成了产品升级,满足了这个诉求。…

HCIP-BGP选路实验

一.实验拓扑图 二.详细配置 R1 interface GigabitEthernet0/0/0 ip address 12.1.1.1 255.255.255.0interface LoopBack0 ip address 1.1.1.1 255.255.255.0interface LoopBack1 ip address 10.1.1.1 255.255.255.0bgp 1 router-id 1.1.1.1 peer 12.1.1.2 as-number 2ipv4-fa…

Python MySQL 数据库查询:选择数据、使用筛选条件、防止 SQL 注入

从表格中选择数据 要从MySQL中的表格中选择数据,请使用"SELECT"语句: 示例选择"customers"表格中的所有记录,并显示结果: import mysql.connectormydb mysql.connector.connect(host"localhost"…

模型服务网格:云原生下的模型服务管理

作者:王夕宁 模型服务网格(Model Service Mesh)是一种架构模式,用于在分布式环境中部署和管理机器学习模型服务。它提供了一个可扩展的、高性能的基础架构,用于将多个模型服务进行管理、部署和调度,以此更…

0基础开发EtherNet/IP:协议格式,JAVA、C#、C++处理

经过一阵倒腾,把CIP、Ethernet/ip协议搞到手 协议的概念和理论就不提及了,上网随便一搜索EtherNet/IP遍地都是。 直接将协议关键点列举出来吧。 更多协议资料 www.jngbus.com 通讯软件群 30806722 这里讲解的是TCP和UDP协议的格式,EtherN…