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

软件工程

  • 软件开发生命周期
    • 软件定义时期:包括可行性研究和详细需求分析过程,任务是确定软件开发工程必须完成的总目标,具体可分成问题定义、可行性研究、需求分析等。
    • 软件开发时期:就是软件的设计与实现,可分成概要设计、详细设计、编码、测试等。
    • 软件运行和维护:就是把软件产品移交给用户使用。
  • 软件系统的文档可以分为用户文档系统文档两类,用户文档主要描述系统功能使用方法,并不关系这些功能是怎样实现的;系统文档描述系统设计实现和测试等各方面的内容。
  • 软件工程过程是指为获得软件产品,在软件工具的支持下由软件工程师完成的一系列软件工程
  • 活动,包括以下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.…

JSP执行过程及其与Servlet执行效率的比较

JSP(Java Server Pages)和Servlet都是Java Web开发中常用的技术,它们都用于动态生成Web页面。然而,JSP和Servlet在执行过程和效率上存在一些差异。本文将详细探讨JSP的执行过程,并比较JSP与Servlet的执行效率。 一、J…

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…

计算机低能儿从0刷leetcode | 38.外观数列

题目:38. 外观数列 思路:这一题感觉仅仅难在了阅读理解上,搬了评论里一位朋友的中译中: 1 11 21 1211 111221 一步一步来 给一个数,这个数是1描述上一步的数,这个数是 1 即一个1,故写作11…

iSCSI 和SCSI的概述

一、定义与基础 SCSI 定义:SCSI是一种并行接口标准,用于连接高性能设备,如硬盘驱动器、磁带机和光驱等。基础:SCSI设备通过控制器与计算机系统通信,具有很高的数据传输速率和可靠性。 iSCSI 定义:iSCSI是一…

关于 Oracle Database Express Edition 的功能和安装

Oracle Database Express Edition,简称 Oracle Database XE。是一个免费的版本,主要用于培训和一些功能要求比较简单,又需要免费分发的场景。 看看官方的说明: Whether you are a developer, a DBA, a data scientist, an educat…

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

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

day57 图论章节刷题Part08(拓扑排序、dijkstra(朴素版))

拓扑排序-117. 软件构建 思路:拓扑排序是经典的图论问题。给出一个有向图,把有向图转成线性的排序就叫拓扑排序,拓扑排序也要检测有向图是否有环,即存在循环依赖的情况,因为这种情况是不能做线性排序的,所…

同局域网ssh连接wsl2

同局域网ssh连接wsl2 简介 如果在Windows使用Ubuntu系统而不想使用虚拟机,wsl是一种不错的选择,提供了一个相对传统虚拟机还不错的功能,但是如果我们想远程这个wsl则是比较麻烦,这里主要介绍一下如何在同一个局域网下使用ssh连接…

Vue.插槽使用指南,实现高复用组件

前言 在现代前端开发中,组件化开发已经成为主流,其中 Vue.js 的插槽(slots)特性为我们构建灵活、可复用的组件提供了强有力的支持。本文将深入探讨 Vue.js 插槽特性,包括基础插槽、具名插槽、作用域插槽、动态插槽名和…

在C++上实现反射用法

0. 简介 最近看很多端到端的工作,发现大多数都是基于mmdet3d来做的,而这个里面用的比较多的形式就是反射机制,这样其实可以比较好的通过类似plugin的形式完成模型模块的插入。当然我们这里不是来分析python的反射机制的。我们这篇文章主要来…

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

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

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

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

SpringMVC全面复习

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