8:系统开发基础--8.1:软件工程概述、8.2:软件开发方法 、8.3:软件开发模型、8.4:系统分析

news2024/11/18 2:25:19

转上一节:

http://t.csdnimg.cn/G7lfmicon-default.png?t=N7T8http://t.csdnimg.cn/G7lfm

课程内容提要:

8:知识点考点详解

8.1:软件工程概述

1.软件的生存周期

2.软件过程改进—CMM

Capability Maturity Model能力成熟度模型

3.软件过程改进—CMMI—阶段式模型

4.软件过程改进—CMMI—连续式模型

8.2:软件开发方法 

结构化方法
  • 用户至上
  • 严格区分工作阶段,每阶段有任务和结果
  • 强调系统开发过程的整体性和全局性
  •  系统开发过程工程化,文档资料标准化
  • 自顶向下,逐步分解(求精)

原型法

面向对象方法
  • 更好的复用性
  • 关键在于建立一个全面、合理、统一的模型
  • 分析、设计、实现三个阶段,界限不明确

面向服务的方法

抽象级别:操作、服务、业务流程

8.3:软件开发模型

1:瀑布模型

特点:以文档作为驱动、适给于软件需求很明确的软件项目。

2:V模型 

特点:将验证确认活动应用于早期软件工程工作中,测试贯穿始终。


3:增量模型 

特点:第1个增量往往是核心产品。将需求分段为一系列增量产品,每增量可以分别开发。

4:演化模型

        演化模型是迭代的过程模型,使得软件开发人员能够逐步开发出更完整的软件版本。演化模型特别适用于对软件需求缺乏准确认识的情况。

(1)原型模型 

(2)螺旋模型

 

特点:瀑布模型和演化模型结合,加入了风险分析。特别适用于庞大、复杂并且具有高风险的系统。

5:喷泉模型 

特点:迭代无间隙。以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。

6:统一过程UP 

7.敏捷方法

(1)敏捷方法的基本原则和思想

总体目标是通过尽可能早地、持续地对有价值的软件的交付,使喜户满意。

适用于:小步快跑的思想,适合小项目小团队。 

(2)极限编程XP

 

(3)常见敏捷开发方法特点对比

 

8.4:系统分析 

考点1:需求分析相关概念

需求分析的任务:找出系统要实现什么功能。

需求的任务和需求的过程:

  1. 问题识别,定位当前问题;
  2. 分析与综合,确定大致解决方案、功能方案;
  3. 编制需求分析文档,把功能方案记下来;
  4. 需求分析与评审,确保功能方案的可行性。

        结构化分析的结果:一纷层的数据流图, 一本数据词典,一组小说明 (也称加工逻辑说明),补充材料。

考点2:需求的分类

考点3:需求分析的工具
  1. 应用的工具
  • 数据流图(DFD)
  • 数据字典(DD)
  • 判定表
  • 判定树

(1)数据流图基本概念 

 

        数据字典有以下4类条目:数据流、数据项、数据存储和基本加工。(源点、终点【外部实体】不在系统之内,故一般不在字典中说明。) 

  • 数据流条目:数据流条目给出了DFD中数据流的定义,通常列出该数据流的各组成数据项。
  • 数据存储条目:数据存储条目是对数据存储的定义。
  • 数据项条目:数据项条目是不可再分的数据单位。
  • 基本加工条目:加工条目是用来说明DFD中基本加工的处理逻辑的,由于下层的基本加工是由上层的加工分解而来,只要有了基本加工的说明,就可理解其他加工。

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

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

相关文章

Niobe开发板OpenHarmony内核编程开发——事件标志

本示例将演示如何在Niobe Wifi IoT开发板上使用cmsis 2.0 接口使用事件标志同步线程 EventFlags API分析 osEventFlagsNew() /// Create and Initialize an Event Flags object./// \param[in] attr event flags attributes; NULL: default values./// \return e…

【C++]C/C++的内存管理

这篇博客将会带着大家解决以下几个问题 1. C/C内存分布 2. C语言中动态内存管理方式 3. C中动态内存管理 4. operator new与operator delete函数 5. new和delete的实现原理 6. 定位new表达式(placement-new) 1. C/C内存分布 我们先来看下面的一段代码和相关问题 int global…

Java代码基础算法练习-拆分一个三位数的个位、十位、百位-2024.04.14

任务描述:输入一个三位数,逆序输出这个三位数的个位、十位、百位对应的数字,用空格分开。 任务要求: 代码示例: package April_2024;import java.util.Scanner; public class a240414 {public static void main(Strin…

Guava里一些比较常用的工具

随着java版本的更新提供了越来越多的语法和工具来简化日常开发,但是我们一般用的比较早的版本所以体验不到。这时就用到了guava这个包。guava提供了很多方便的工具方法,solar框架就依赖了guava的16.0.1版本,这里稍微介绍下。 一、集合工具类…

从零全面认识 多线程

目录 1.基本概念 2.创建线程方式 2.1直接建立线程 2.2实现Runnable接口 3.3实现Callable接口 3.4 了解Future接口 Future模式主要角色及其作用 3.5实例化FutureTask类 3.实现线程安全 3.1定义 3.2不安全原因 3.3解决方案 3.4volatile与synchronized区别 3.5Lock与…

二百三十、MySQL——MySQL表的索引

1 目的 梳理一下目前MySQL维度表的索引情况,当然网上也有其他博客专门讲MySQL索引的,我这边只是梳理一下目前的索引状况而已 2单列索引 2.1 索引截图 2.2 建表语句 3 联合索引 3.1 索引截图 3.2 建表语句 4 参考的优秀博客 http://t.csdnimg.cn/ZF7…

使用LangChain和GPT-4,创建Pandas DataFrame智能体

大家好,数据分析和数据处理是数据科学领域每天都在进行的基本任务。高效和快速的数据转换对于提取有意义的见解和基于数据做出明智决策至关重要。其中最受欢迎的工具之一是Python库Pandas,它提供了一个功能强大的DataFrame工具,使用灵活直观的…

并发编程之ThreadLocal使用及原理

ThreadLocal主要是为了解决线程安全性问题的 非线程安全举例 public class ThreadLocalDemo {// 非线程安全的private static final SimpleDateFormat sdf new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");public static Date parse(String strDate) throws ParseExc…

力扣2- 两数相加

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 …

Linux配置程序后台运行(前后台来回切换)

Linux配置程序后台运行 在日常开发过程中,会遇到我们在前台运行程序,此时我们临时有事,但不能关闭终端,否则程序就会在电脑熄屏(终端session断开后)停止运行。 那么作为一个合格的开发,就必须要…

Redis-更新策略,缓存穿透,缓存雪崩,缓存击穿

Redis-更新策略,缓存穿透,缓存雪崩,缓存击穿 1.缓存更新 策略 淘汰策略超时剔除主动更新 更新策略:先修改数据库还是先删除缓存 结论:先修改数据库,因为缓存的操作比较快,容易产生数据不一致更新缓存还是删除缓存? …

字符串转换为List<String>时候抛出异常:com.alibaba.fastjson2.JSONException: TODO : s

前言: 一个字符串想要能够转换为 List,其本身必须是具备 List 属性的字符串。 问题现象: 项目中需要对第三方接口返回的字符串转换为 List,就想到了使用 fastjson 来处理。 代码如下: Object obj data.get(SignC…

Canal介绍原理及安装

Canal 扩展篇 1.Canal介绍、 链接: https://github.com/alibaba/canal Canal 主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费,工作原理如下: Canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave &am…

启动nginx时报错:signal process started

解决方案,直接使用该命令启动,指向nginx.conf配置文件: nginx -c /www/wdlinux/nginx/conf/nginx.conf 启动成功:

JD抓包 | 安卓app抓包

去年11月份左右搞过一次安卓抓包, 搞了很久试了很多方法, 才弄好. 时隔半年, 安卓抓包依然是令我头疼的问题 这次简单记录一下过程(细节太多我也说不清) JD的有效信息接口通常是以下这样的, 其他的接口并没有返回太多"有用"的信息 https://api.m.jd.com/client.act…

使用 Prometheus 在 KubeSphere 上监控 KubeEdge 边缘节点(Jetson) CPU、GPU 状态

作者:朱亚光,之江实验室工程师,云原生/开源爱好者。 KubeSphere 边缘节点的可观测性 在边缘计算场景下,KubeSphere 基于 KubeEdge 实现应用与工作负载在云端与边缘节点的统一分发与管理,解决在海量边、端设备上完成应…

AI来了,Spring还会远吗?(Spring AI初体验)

目录 一、创建项目二、first demo1、application.properties2、ChatController3、结果 三、个人思考 一、创建项目 官方文档的Getting Started 最低要求:JDK17 阿里云的Server URL(https://start.aliyun.com/)搜不到Spring AI,…

『VUE』17. Dom与模板引用(详细图文注释)

目录 回顾之前的操作ref 属性借助dom使用原生js总结 欢迎关注 『VUE』 专栏,持续更新中 欢迎关注 『VUE』 专栏,持续更新中 回顾之前的操作 之前的这些操作都是我们使用vue为我们渲染的对象,再来操作dom 内容改变{{ 模板语法 }}属性改变 v-bind:添加事…

稀碎从零算法笔记Day49-LeetCode:设计哈希集合

题型:模拟 链接:705. 设计哈希集合 - 力扣(LeetCode) 来源:LeetCode 题目描述 不使用任何内建的哈希表库设计一个哈希集合(HashSet)。 实现 MyHashSet 类: void add(key) 向哈…

LangChain入门:14.LLMChain:最简单的链的使用

摘要 本文将介绍LangChain库中LLMChain工具的使用方法。LLMChain将提示模板、语言模型(LLM)和输出解析器整合在一起,形成一个连贯的处理链,简化了与语言模型的交互过程。我们将探讨LLMChain的技术特点、应用场景以及它解决的问题…