架构师备考-概念背诵(软件工程)

软件工程

  • 软件开发生命周期
    • 软件定义时期:包括可行性研究和详细需求分析过程,任务是确定软件开发工程必须完成的总目标,具体可分成问题定义、可行性研究、需求分析等。
    • 软件开发时期:就是软件的设计与实现,可分成概要设计、详细设计、编码、测试等。
    • 软件运行和维护:就是把软件产品移交给用户使用。
  • 软件系统的文档可以分为用户文档系统文档两类,用户文档主要描述系统功能使用方法,并不关系这些功能是怎样实现的;系统文档描述系统设计实现和测试等各方面的内容。
  • 软件工程过程是指为获得软件产品,在软件工具的支持下由软件工程师完成的一系列软件工程
  • 活动,包括以下4个方面。
    • (1)P(Plan)——软件规格说明。规定软件的功能及其运行时的限制。
    • (2)D(Do)——软件开发。开发出满足规格说明的软件。
    • (3)C(Check)——软件确认。确认开发的软件能够满足用户的需求。
    • (4)A(Action)——软件演进。软件在运行过程中不断改进以满足客户新的需求。
  • 软件系统工具通常可以按软件过程活动将软件工具分为软件开发工具软件维护工具软件管软件支持工具
    • 软件开发工具需求分析工具设计工具编码与排错工具测试工具等。
    • 软件维护工具版本控制工具文档分析工具开发信息库工具逆向工程工具再工程工具
    • 软件管理和软件支持工具项目管理工具配置管理工具软件评价工具软件开发工具的评价和选择
  • 软件设计包括四个既独立又相互联系的活动,即数据设计架构(体系结构)设计人机界面(接口)设计过程设计,这四个活动完成以后就得到了全面的软件设计模型。

需求工程

软件需求

        软件需求是指用户对系统在功能、行为、性能、设计约束等方面的期望。是指用户解决问题或达到目标所需的条件或能力,是系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力,以及反映这些条件或能力的文档说明分为需求开发和需求管理两大过程,如下所示:

  • 业务需求:反映企业客户对系统高层次的目标要求,通常来自项目投资人客户市场营销部门产品策划部门。通过业务需求可以确定目视图范围
  • 用户需求:描述的是用户的具体目标,或用户要求系统必须能完成的任务。即描述了用户能使用系统来做什么。通常采取用户访谈问卷调查等方式,对用户使用的场景进行整理,从而建立用户需求。
  • 系统需求:从系统的角度来说明软件的需求,包括功能需求非功能需求设计约束等。
    • 功能需求:也称为行为需求,规定了开发人员必须在系统中实现的软件功能,用户利用这些功能来完成任务,满足业务需要。
    • 非功能需求:指系统必须具备的属性或品质,又可以细分为软件质量属性(如可维护性、可靠性、效率等)和其他非功能需求。
    • 设计约束:也称为限制条件或补充规约,通常是对系统的一些约束说明,例如必须采用国有自主知识产权的数据库系统,必须运行在UNIX操作系统之下等。

需求获取

  • 需求获取是一个确定和理解不同的项目干系人的需求和约束的过程
  • 常见的需求获取法包括:
    • 用户访谈:1对1-3,有代表性的用户。其形式包括结构化和非结构化两种。
    • 问卷调查:用户多,无法一一访谈。
    • 采样:从种群中系统地选出有代表性的样本集的过程。样本数量=0.25*(可信度因子/错误率)2
    • 情节串联板:一系列图片,通过这些图片来讲故事。
    • 联合需求计划(JRP):通过联合各个关键用户代表、系统分析师、开发团队代表一起,通过有组织的会议来讨论需求。
    • 需求记录技术:任务卡片、场景说明、用户故事、Volere白卡。

需求分析

  • 一个好的需求应该具有无二义性完整性一致性可测试性确定性可跟踪性正确性必要性等特性,因此,需要分析人员把杂乱无章的用户要求和期望转化为用户需求,这就是需求分析的工作。
  • 需求分析的任务:
    • 绘制系统上下文范围关系图
    • 创建用户界面原型
    • 分析需求的可行性
    • 确定需求的优先级
    • 为需求建立模型
    • 创建数据字典
    • 使用QFD(质量功能部署)
  • 结构化的需求分析的结构化特点自顶向下逐步分解面向数据
  • 结构化的需求分析的三大模型:功能模型(数据流图)、行为模型(状态转换图)、数据模型(E-R图)以及数据字典

  • 数据流图DFD基本图形元素:外部实体加工数据存储数据流

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

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

相关文章

刷题强训(day06) -- 大数加法、链表相加、大数乘法

目录 1、大数加法 1.1 题目 1.2 思路 1.3 代码实现 2、链表相加(二) 2.1 题目 2.2 思路 2.3 代码实现 3、大数乘法 3.1 题目 3.2 思路 3.3 代码实现 1、大数加法 1.1 题目 1.2 思路 这道题可以模拟列竖式相加解答, 将每一位都转…

Java多线程编程(四)- 阻塞队列,生产者消费者模型,线程池

目录: 一.阻塞队列 二.线程池 一.阻塞队列 1.阻塞队列是⼀种特殊的队列. 也遵守 "先进先出" 的原则 阻塞队列能是⼀种线程安全的数据结构, 并且具有以下特性: 1.1.当队列满的时候, 继续入队列就会阻塞, 直到有其他线程从队列中取走元素 1.…

open3d

open3d open3d用于 3D 数据处理的现代库。 简介 Open3D 是一个开源库,支持快速开发处理 3D 数据的软件。Open3D 前端公开了一组精心挑选的 C 和 Python 数据结构和算法。后端经过高度优化,并设置为并行化。Open3D 是从零开始开发的,具有一更…

洞察鸿蒙生态,把握开发新机遇

随着科技的不断进步,鸿蒙系统以其独特的分布式架构和跨设备协同能力,逐渐在智能手机、智能穿戴、车载、家居等多个领域崭露头角,与安卓、iOS形成三足鼎立之势。作为一名开发者,我对鸿蒙生态的认知和了解如下: 一、鸿蒙…

adb 如何通过wifi连接手机

1. 电脑通过USB线连接手机 1.1手机开启开发者模式 以小米手机为例:连续点击OS版本系统(设置–>我的设备–>全部参数) 1.2在开发者模式下,启动允许USB安装与USB调试 操作步骤:设置>更多设置>开发者选项&g…

【webrtc】 RTP 中的 MID(Media Stream Identifier)

RTP 中的 MID(Media Stream Identifier) RID及其与MID的区别 cname与mid的对比【webrtc】CNAME 是rtprtcp中的Canonical Name(规范化名称) 同样都是RTP头部扩展: 基于mediasoup的最新的代码,学习,发现mid在创建RtpSendStream时是必须传递的参数: 例如 D:\XTRANS\soup\…

brother:什么是兄弟,你悟了吗?

brother(兄弟)这个单词好奇怪哦,它为什么就会是兄弟呢?为什么这样书写、这些字母组合在一起,就是兄弟呢?而且,西方人的兄弟brother一词和姐妹sister一词,并不是像中国人所称呼明确指…

如何在谷歌浏览器中优化内存使用

在日常使用电脑的过程中,我们经常会遇到系统资源被大量占用的情况,尤其是内存。谷歌浏览器作为一个广泛使用的网络浏览器,其内存占用问题也备受关注。本文将详细介绍如何在谷歌浏览器中优化内存使用,以提升浏览体验和系统性能。&a…

谷歌浏览器支持的开发者工具详解

谷歌浏览器(Google Chrome)是全球最受欢迎的网页浏览器之一,它不仅提供了快速、安全的浏览体验,还为开发者提供了强大的开发者工具。本文将详细介绍如何使用谷歌浏览器的开发者工具,并解答一些常见问题。(本…

推荐一款多物理场模拟仿真软件:STAR-CCM+

Siemens STAR-CCM是一款功能强大的计算流体力学(CFD)软件,由西门子公司推出。它集成了现代软件工程技术、先进的连续介质力学数值技术和卓越的设计,为工程师提供了一个全面的多物理场仿真平台。主要特点与优势:多物理场仿真、自动化与高效、高…

无人机飞手考证,地面站培训技术详解

无人机飞手考证及地面站培训技术涉及多个关键方面,以下是对这些方面的详细解析: 一、无人机飞手考证流程与要求 1. 证书类型 民用无人机驾驶员证书:这是国家民航局颁发的无人机操作人员资质证书,分为视距内驾驶员、超视距驾驶员…

SpringMVC全面复习

Javaweb SpringMVC Spring MVC是Spring框架的一个模块,专门用于构建Web应用程序的模型-视图-控制器(MVC)架构。它通过清晰的分离关注点,简化了Web应用各部分的开发。Spring MVC提供了强大的绑定机制,能够将请求参数绑定…

python基础大杂烩

命令提示符程序,输入python,运行python程序 代码通过解释器程序翻译给计算机去执行 命令提示符输入的python本质上就是调用D:/dev/python/python3.12.5/python.exe这个解释器程序 有python程序将输入的代码翻译成二进制的0和1,去向计算机去运…

MathGPT的原理介绍,在中小学数学教学的应用场景,以及代码样例实现

大家好,我是微学AI,今天给大家介绍一下MathGPT的原理介绍,在中小学数学教学的应用场景,以及代码样例实现。MathGPT的核心架构是一个精心设计的多层次系统,旨在有效处理复杂的数学问题。其主要组成部分包括 数学知识图谱…

算法演练----24点游戏

给定4个整数,数字范围在1~13之间任意使用-*/(),构造出一个表达式,使得最终结果为24, 方法一 算法分析:加括号和取出重复表达式 # 导入精确除法模块,使得在Python2中除法运算的行为更…

关于指针p有关的3个值

1,他的类型是int*; 2,*p是解用,指向的是对象 3,&p指向的是p的地址,是指针的地址

《JavaEE进阶》----20.<基于Spring图书管理系统①(登录+添加图书)>

PS:关于接口定义 接口定义,通常由服务器提供方来定义。 1.路径:自己定义 2.参数:根据需求考虑,我们这个接口功能完成需要哪些信息。 3.返回结果:考虑我们能为对方提供什么。站在对方角度考虑。 我们使用到的…

Linux服务管理-iSCSI

iSCSI 基础知识 iSCSI(Internet Small Computer System Interface)协议是一种基于IP网络的存储协议,它允许主机(计算机或服务器)通过TCP/IP网络访问远程存储设备。该协议具有以下主要特点: 灵活性&#xf…

快速掌握——python类 封装[私有属性方法]、继承【python进阶】(内附代码)

1.类的定义 与 实例化对象 在python中使用class关键字创建一个类。 举例子 class Stu(object):id 1001name 张三def __init__(self):passdef fun1(self):pass# 实例化对象 s1 Stu() s2 Stu() print(s1.name) print(s2.name) 第一个方法 __init__是一种特殊的方法&#x…

HarmonyOS 如何实现传输中的数据加密

文章目录 摘要引言数据传输加密概述选择加密算法和传输协议加密实现方案与 Demo 代码配置 HTTPS/TLSAES 加密的实现代码详解RSA加密的实现代码详解 QA环节总结参考资料 摘要 本文将介绍在 HarmonyOS 应用中如何实现数据传输的加密策略。我们将讨论常见的加密算法(如…