软件工程 单选多选补充 复刻
原文
软件的主要特性:无形、高成本、包括程序和文档
软件工程三要素:方法、工具、过程
螺旋模型包含风险分析
软件工程的主要目标:风险分析
面向对象开发:Booch、UML、Coad、OMT
软件危机的主要表现:软件成本太高、软件产品质量低、软件生产率低
软件开发模型:螺旋模型、瀑布模型
软件工程的目的: 易于维护、低的开发成本、高性能
软件工程学的目的和意义:应用科学的方法和工程化的规范管理来指导软件开发、以较低的成本开发出高质量的软件
结构化方法和JSP方法都不适合大型软件的开发
面向对象达开发方法包括:面向对象分析、面向对象设计、面对象程序设计
需求分析的主要目的:进一步确定用户的需求、解决系统是“做什么”的问题
需求分析的主要方法:结构化分析(SA)、OOA
面向对象分析方法:对象模型、动态模型、功能模型
SA(结构化分析)的主要描述手段:DFD(数据流)、数据字典、加工说明
分层DFD的基本原则:数据守恒原则、子父图平衡原则、数据流封闭原则
E-R:实体、联系、属性
DFD的目的:作为需求分析阶段用户与开发者之间交流信息工具、作为分析和设计的工具
数据字典:数据源、数据流、数据处理、数据文件 / 数据源、数据项、数据存储、数据处理
模块的基本特征:外部特征(输入/输出、功能)、内部特征(局部数据、代码)
SD的设计总则:模块内聚性强、耦合度低
软件设计的主要任务:将数据分析阶段获得的需求说明转换为计算机中可实现的系统、完成系统的数据结构和程序结构设计、对模块内部过程设计
设计阶段的目标:提高可靠性和可维护性、提高可理解性和效率
工程管理:概要设计、详细设计
模块独立性准则的指标:耦合度、内聚性
用户界面设计的任务:确定用户界面类型、建立任务模型、建立用户模型
程序设计语言:机器语言、汇编语言、高级语言
程序效率:代码、存储、I/O
SP(结构化程序设计)的基本控制结构:顺序、选择、重复
注释语言:序言性、描述性、功能性、状态性
数据说明的次序规范化
一个语句说明多个变量时,各变量名按字母排序
对复杂的数据结构,要加注释、说明在程序实现时的特点
源程序的效率在 详细设计 阶段确定的算法的效率直接有关
算法效率反映为程序的存储容量、执行速度
提高程序效率的根本途径:选择良好的设计方法、程序最大的简洁
信息隐藏有利于提高模块内聚性
结构冲突:输入数据和输出数据之间很少或没有结构上的对应关系,解决的办法:构造一个或多个中间结构,在输入和输出结构之间进行转换
项目的应用领域是选择语言的关键
面向对象程序设计的基本机制:继承、消息、方法
面向对象的要素:抽象、共享、封装
面向对象开发方式:Booch、Coad、OMT
Coad方法中面向对象的分析模型的层次:主题层、对象层
一个类的属性依照其特征划分:描述、定义、派生、参考
面向对象模型:对象模型、动态模型、功能模型
状态的性质:时间性、持续性
数据流图中处理必须用对象中的操作来实现常见的操作有:查询、动作、活动、访问
建立继承关系时采用的方法:自顶向下、自底向上
对象类型:有形实体、作用、事件、性能说明
类是具有相同或相似的性质对象的抽象,对象是抽象的类,类的具化是对象
面向对象分析:抽取和整理用户需求并建立问题域精确模型的过程
面向对象的设计的目标:提高生产效率,提高质量和提高可维护性
对象模型表示了静态的、结构化的系统数据性质、描述了系统的静态结构,从观察世界实体的对象关系角度来描述,表示了对象的相互关系
面向对象的分析是用面向对象的方法对目标系统的问题空间进行理解、分析、反映,通过对象层次结构的组织确定解空间中应存在的对象和对象层次结构
类的设计过程:确定类、确定关联类、确定属性、识别继承关系
复用也叫再用/重用,面向对象技术中的类,是比较理想的可重用软构件,有三种重用方式:实例、继承、多态
UML有扩展性,常用的扩展机制:版类、加标签值、约束
UML语言支持的建模方式:静态、动态、功能
动态建模:状态图、序列图、活动图
状态的组成部分:名称、活动
UML的事件:条件为真、收到另一对象的信号、收到操作调用、时间表达式
属性的可见性:公有的、私有的、保护的
用例之间的关系:扩展、使用、组合
应用于通用化约束的方式:完整、不相交、不完整、覆盖
消息的类型:同步、异步、简单
UML由视图、图、模型元素和通用机制构成的层次关系来描述
类图中的角色是用于描述该类在关联中所扮演的角色和职责
软件维护的类型 :完善性、纠错性、适应性、预测性,最重要的是完善性
完善性:客户新需求
纠错性:未发生的错误
适应性:适应环境/API
预防性:明天
静态测试:人工的、非形式化
静态测试方法:桌面检查、代码会审、数据流分析图、调用图
集成过程:尽早测试包含I/O的模块、尽早测试关键模块
白盒测试:
语句覆盖:每条语句至少执行一次
判定覆盖:每次判定至少获得一次“真”值和一次“假”值
软件测试的基本原则:关键是注重选择高效的测试用例、尽量不由程序设计者进行测试、充分注意测试中的群集现象、尽可能少的测试样例,尽可能多的错误
等价分类法的关键:划分等价类
单元测试先"人工走查",以白盒法为主,辅以黑盒法进行动态测试
功能测试是系统测试的主要内容,检查系统的功能,性能是否与需求规格说明相同
白盒测试:静态测试、用于单元测试
等价分类法:一个测试用例只能覆盖一个无效等价类
发现错误多的模块,残留在模块中的错误也多
在分析规范(因、果)的基础上画出因果图,再将其转化为有限项判断表,得出测试用例
系统测试的主要方法:白盒法,主要进行功能测试、性能测试、安全测试、可靠性测试
完善性测试:增加联机求助命令、为软件的运行增加监控设施
维护的副作用:修改数据、代码的副作用、文档资料的副作用
确定可维护性的因素:可理解性、可修改性、可测试性
软件维护阶段的文档:软件问题报告、软件修改报告
表达计划安排的主要工具:PERT图、甘特图、进度表
简明性的程序出错率低
用面向对象开发,可维护性好
软件工程管理的对象:软件工程项目
明确软件开发项目的工作范围、可能遇到的风险、需要的资源
明确软件开发中要实现的任务和需要经历的里程碑
明确所需要的工作量和进度安排
软件管理资源中最重要:人力资源
开发软件工程的第一步:可行性研究
可行性研究不包括人力的可行性
影响软件开发成本估计的因素不包括:硬件资源
自底向上的估计法:精度高、缺少子任务(模块)间的联系
编码工作占总工作量的百分比最大
软件质量度量方法:精确度量、全面度量、简易度量
CMM:软件过程成熟度模型,非面向对象
软件工程管理对软件项目的开发管理,对整个软件生存期的所有活动进行管理
直接影响软件开发风险的因素是成本估算
CMM的五个级别:初始、可重复、已定义、已处理、优化
CMM的基本要求:“有章可循、有章必循”
相关文章:
软件工程 单选多选补充 复刻
原文 软件的主要特性:无形、高成本、包括程序和文档 软件工程三要素:方法、工具、过程 螺旋模型包含风险分析 软件工程的主要目标:风险分析 面向对象开发:Booch、UML、Coad、OMT 软件危机的主要表现:软件成本太高…...
微前端个人理解与简单总结
最近一段时间在学习微前端,一开始是看各种博客了解微前端含义、对比多种微前端框架优劣,最后选择了qiankun、micro-app、wujie这三种微前端框架进行深入研究、对比。 微前端框架 推出时间 官方文档易读性 社区讨论活跃度 配置难度 Qiankunÿ…...
PC端企业微信hook协议开发,获取要群发的客户群id
产品说明 一、 hook版本:企业微信hook接口是指将企业微信的功能封装成dll,并提供简易的接口给程序调用。通过hook技术,可以在不修改企业微信客户端源代码的情况下,实现对企业微信客户端的功能进行扩展和定制化。企业微信hook接口…...
RabbitMQ安装说明
注意: 本次安装以 CentOS 7为例 1、 准备软件 erlang 18.3 1.el7.centos.x86_64.rpm socat 1.7.3.2 5.el7.lux.x86_64.rpm rabbitmq server 3.6.5 1.noarch.rpm 2、安装Erlang rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm 3.、安装RabbitMQ 安装 rpm -ivh socat-1.7.3.2-…...
scrapy的建模及管道的使用
一、数据建模 通常在做项目的过程中,在items.py中进行数据建模 为什么建模 定义item即提前规划好哪些字段需要抓,防止手误,因为定义好之后,在运行过程中,系统会自动检查,配合注释一起可以清晰的知道要抓…...
Hadoop学习笔记(HDP)-Part.04 基础环境配置
目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …...
【Linux】进程控制--进程创建/进程终止/进程等待/进程程序替换/简易shell实现
文章目录 一、进程创建1.fork函数2.fork函数返回值3.写时拷贝4.fork常规用法5.fork调用失败的原因 二、进程终止1.进程退出码2.进程退出场景3.进程常见退出方法 三、进程等待1.为什么要进行进程等待2.如何进行进程等待1.wait方法2.waitpid方法3.获取子进程status4.进程的阻塞等…...
用pip更新、安装python的包
查看pip的版本:python -m pip --version 例如,查看下pip的版本,在cmd下输入命令python -m pip --version,可以发现当前安装的pip的版本是23.2.1: 查看一个包的详情:python -m pip show 例如,…...
spring boot 事件机制
目录 概述实践监听spring boot ready事件代码 源码初始化流程调用流程 结束 概述 spring boot 版本为 2.7.17 。 整体看一下spring及spring boot 相关事件。 根据下文所给的源码关键处,打上断点,可以进行快速调试。降低源码阅读难度。 实践 spring…...
分布式版本管理系统---->Git(Linux---centos(保姆式)讲解1)
文章目录: 1:什么是Git以及作用 2.Git的基本操作过程(创建git仓库,配置仓库的配置) 3.git的工作区,暂存区,版本库的关系 4.将文件添加到版本库:git add 与git commit -m命令 5.git log查看日志的引入 6.查看.git文件中的内容 7.修改文件内容查…...
B树你需要了解一下
介绍B树的度数主要特点应用场景时间复杂度代码示例拓展 介绍 B树(B-tree)是一种自平衡的树,能够保持数据有序,常被用于数据库和文件系统的实现。 B树可以看作是一般化的二叉查找树,它允许拥有多于2个子节点。与自平衡…...
MFC设置状态栏文本导致崩溃的原因
文章目录 问题和原因解决办法1.消息机制2.定时器问题和原因 本人在类A使用多线程执行操作并且调用了类B的设置状态栏文本的函数,导致崩溃 类A void A::distribute_n_start_msg(){((B*)m_parent)->received_msg_n_start...
配置typroa上传图片到gitee
一、gitee相关配置 到gitee官网创建一个新的仓库并获取其token gitee配置时候一定要新建仓库之后初始化好仓库 比如:创建出README.md文档 出现master这个显示界面,刚开始未初始化的时候是会报错的 二、typora相关配置 在typora这个位置下载插件 在p…...
java并发-线程生命周期
文章目录 前言状态图状态变化说明补充说明 前言 线程的生命周期指的是线程从创建出来到最终消亡的整个过程,以及过程中的状态变化。 状态图 以下图用mermaid语法绘制: #mermaid-svg-32vKT6KmFdlYvCnr {font-family:"trebuchet ms",verdana,…...
Javaweb之Vue路由的详细解析
5 Vue路由 5.1 路由介绍 将资代码/vue-project(路由)/vue-project/src/views/tlias/DeptView.vue拷贝到我们当前EmpView.vue同级,其结构如下: 此时我们希望基于4.4案例中的功能,实现点击侧边栏的部门管理,显示部门管理的信息&am…...
力扣:196. 删除重复的电子邮箱(Python3)
题目: 表: Person ---------------------- | Column Name | Type | ---------------------- | id | int | | email | varchar | ---------------------- id 是该表的主键列(具有唯一值的列)。 该表的每一行包含一封电子邮件。电子邮件将不包含…...
Ruby和HTTParty库下载代码示例
ruby require httparty require nokogiri # 设置服务器 proxy_host "" proxy_port "" # 定义URL url "" # 创建HTTParty对象,并设置服务器 httparty HTTParty.new( :proxy > "#{proxy_host}:#{proxy_port}" ) …...
Unity 使用Horizontal Layout Group和Toggle制作多个水平开关按钮实现自动排列和单个点击放大后的自动排列。
Unity的布局组件Horizontal Layout Group是很好用的,当然也包括其它布局组件也一样好用。 比如要实现多按钮开关自动水平排列,那么就可以使用它了。 首先我们为按钮创建个父物体(我这里使用了Scroll View中的Content作为父物体)…...
Python实现FA萤火虫优化算法优化BP神经网络回归模型(BP神经网络回归算法)项目实战
说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 萤火虫算法(Fire-fly algorithm,FA)由剑桥大学Yang于2009年提出 , …...
灯塔ARL-NPoC全面教程
灯塔ARL-NPoC全面教程 1.ARL-NPoC2.安装3.参数解析4.ARL-NPoC编写指南标准POC模板`__init()__`verifyexploit_cmd5.将指纹同步到远程Web服务器1.ARL-NPoC 最新版的arl增加了poc编写与探测的功能,ARL-NPoC是一个集漏洞验证和任务运行的一个框架 2.安装 ARL-NPoC下载地址 下载…...
λ表达式、智能指针
lambda 表达式 1、C11标准支持,实现匿名函数的功能; 2、通常用于实现轻量级的函数 格式 mutable->返回值{函数体}; // 返回值即使是 void 也必须得写 [] 内,可以填外部数据; () 内,可以带有参数列表。 lambda 表达…...
PHP基础知识和操作
PHP在线运行 https://c.runoob.com/compile/1/ https://www.sotool.net/php80 将驼峰字符串转化为蛇形字符串 <?phpfunction CamelToSnake($camelValue) {$initValue preg_replace(/\s/u, , $camelValue);$snakeValue strtolower(preg_replace(/(.)(?[A-Z])/u, &quo…...
系列十三、SpringBoot的自动配置原理分析
一、概述 我们知道Java发展到现在功能十分的强大,生态异常的丰富,这里面离开不了Spring及其家族产品的支持,而作为Spring生态的明星产品Spring Boot可以说像王者一般的存在,那么的耀眼,那么的光彩夺目!那么…...
soapui报错: CXF directory must be set in global preferences
文章目录 下载官网下载网盘下载 配置 soapui生成代码时报错 CXF directory must be set in global preferences 下载 需要下载apache-cxf。 官网下载 官网地址: https://www.apache.org/dyn/closer.lua/cxf/3.5.4/apache-cxf-3.5.4.zip 点如下地址即可。 The obj…...
Netty02-基础概念
什么是netty Netty是一个基于Java NIO的异步事件驱动网络应用程序框架。它提供了简单易用的API,用于快速开发可维护的高性能网络应用程序。Netty的设计目标是提供一种高度可扩展的、高性能的网络应用程序框架,使得开发人员能够轻松地构建各种类型的网…...
计算机毕业设计 基于SpringBoot的敬老院管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...
精调llama模型
github地址:https://github.com/facebookresearch/llama-recipes github:https://github.com/facebookresearch/llama import torch from transformers import LlamaForCausalLM, LlamaTokenizer#model_id"./models_hf/7B" # 可以从huggingface上面下载模…...
【C语言】深入理解C语言中的数学运算和类型转换
文章目录 引言取负运算的奥秘源码探索分析与解读 浮点数运算的精细差异源码分析精度损失与隐式类型转换 精度和除零运算探究float类型和double类型的精度各是多少(即十进制有效位的位数)?在你的机器上,“负数开方”是如何处理的&a…...
基于javaweb的宠物服务商城系统设计与开发
摘 要 最近几年以来,宠物在人们的日常生活中所占的地位越来越重要了,它们不仅仅是我们的朋友,也成为了我们家庭中的一份子。21世纪,信息技术飞速发展,计算机行业日新月异,极大地带动了信息的流动ÿ…...
LeetCode-470. 用 Rand7() 实现 Rand10()【数学 拒绝采样 概率与统计 随机化】
LeetCode-470. 用 Rand7 实现 Rand10【数学 拒绝采样 概率与统计 随机化】 题目描述:解题思路一:首先说一个结论就是(rand_X() - 1) Y rand_Y() > [1,X*Y],即可以等概率的生成[1, X * Y]范围的随机数,其实就像军训的时候报数…...
做网站常规语言/seo推广网络
大家好,我是小马老师。 本文介绍lammps计算CNA的方法。 CNA(公共邻居分析)可用来分析原子周围局部晶体结构,如FCC、BCC、HCP以及晶体缺陷。 在ovito后处理软件中有CNA的计算,但这个计算在单个原子的体系比较准…...
建个网站要多少钱/百度的总部在哪里
文章目录前言连续控制DPGDPG的优化目标On-Policy DPGOff-Policy DPG随机高斯策略前言 本文总结《深度强化学习》中连续控制章节的内容,如有错误,欢迎指出。 连续控制 前面几篇博客总结的强化学习方法,动作空间都是离散有限的。但动作空间不…...
个人网站icp备案网/百度一下点击搜索
题目背景 学生在我们USACO的竞赛中的得分越多我们越高兴。 我们试着设计我们的竞赛以便人们能尽可能的多得分,这需要你的帮助 题目描述 我们可以从几个种类中选取竞赛的题目,这里的一个"种类"是指一个竞赛题目的集合,解决集合中的题目需要相同多的时间并且能得到相同…...
网站制作论文致谢/推广代理登录页面
实体造型 计算机造型:如何在计算机中建立模型表示不同图形对象。 图形对象的描述包括图形信息和非图形信息。 (1)图形信息又分为几何信息和拓扑信息。几何信息包括形体位置和大小,拓扑信息包括形体点、边、面的数量及相互之间的连…...
wordpress自己发文章/怎样把自己的产品放到网上销售
2014 4 北 京 邮 电 大 学 学 报 Apr. 2014年 月37 增刊 Journal of Beijing University of Posts and Telecommunications Vol. 37 Sup.第 卷:1007-5321 (2014) -0104-04文章编号 增Android 恶意程序行为分析系统设计李 , &#…...
在线建设房屋设计网站/360搜索引擎首页
2019独角兽企业重金招聘Python工程师标准>>> 如果说用“永存、曲折、已死、重生”来形容Java,笔者以为一点也不为过。 1991年,James Gosling带领着名为“Green Team”的团队着手研发一种新的语言以及专为下一代数字设备和计算机使用的网络系统…...