当前位置: 首页 > news >正文

[软件工程导论(第六版)]第2章 可行性研究(复习笔记)

文章目录

    • 2.1 可行性研究的任务
    • 2.2 可行性研究过程
    • 2.3 系统流程图
    • 2.4 数据流图概念
    • 2.5 数据字典
    • 2.6 成本/效益分析


2.1 可行性研究的任务

  • 可行性研究的目的
    • 用最小的代价在尽可能短的时间内确定问题是否能够解决。
  • 可行性研究的3个方面
    • (1)技术可行性;
    • (2)经济可行性;
    • (3)操作可行性。
  • 可行性研究的任务
    • (1)对以后的行动方针提出建议。(可行性研究最根本的任务)
    • (2)分析几种主要的候选解法的利弊,研究其可行性。

2.2 可行性研究过程

  • 典型的可行性研究过程为:
    1. 复查系统规模和目标;
    2. 研究目前正在使用的系统;
    3. 导出新系统的高层逻辑模型;
    4. 进一步定义问题;
    5. 导出并评价供选择的解法;
    6. 推荐行动方针;
    7. 草拟开发计划;
    8. 书写文档提交审查。

2.3 系统流程图

  • 定义
    • 系统流程图是概括地描绘物理系统的传统工具。系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程。因此尽管系统流程图的符号形式相同,但是它却是物理数据流程图而不是程序流程图。
  • 基本思想
    • 用图形符号以黑盒子形式描绘组成系统的每个部件(程序、文档、数据库、人工过程等)。
    • 【注意】系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程。
  • 符号
    • (1)以概括的方式抽象地描绘实际系统时,使用图2-1中列出的基本符号就足够了。
      • 在这里插入图片描述
      • 【注意】这5种基本符号是常考点。
    • (2)需要更具体地描绘一个物理系统时,还需要使用图2-2中列出的系统符号。
      • 在这里插入图片描述

      • 【注意】系统流程图的习惯画法是使信息在图中从顶向下或从左向右流动。

  • 在这里插入图片描述

2.4 数据流图概念

  • (1)定义
    • 数据流图(DFD)是一种图形化技术。它描绘信息流和数据从输入移动到输出的过程中所经受的变换。
  • (2)特点
    • ① 数据流图中没有具体的物理部件,只是描绘数据在软件中流动和被处理的逻辑过程。
    • ② 数据流图是系统逻辑功能的图形表示,是分析员与用户之间极好的通信工具。
    • ③ 设计时只需考虑系统必须完成的基本逻辑功能,不考虑怎样具体地实现这些功能。
  • 符号
    • 如图(a)所示,数据流图有4种基本符号;图(b)给出了附加符号的含义。其中星号(*)表示数据流之间是“与”关系;加号(+)表示“或”关系;⊕号表示只能从中选一个(互斥的关系)。
    • 在这里插入图片描述
    • 数据流图有4种成分,源点或终点、处理、数据存储、数据流
    • 【注意】数据流中用箭头表示数据流,第5章的程序流程图中用箭头表示的控制流。
  • 数据存储和数据流都是数据,数据存储是处于静止状态的数据,数据流是处理运动中的数据
  • 例子
    • 在这里插入图片描述

    • 在这里插入图片描述

    • 在这里插入图片描述

    • 在这里插入图片描述

  • 数据流图的基本目的,利用数据流图作为交流信息的工具
  • 数据流图也可用于作为分析和设计的工具

2.5 数据字典

  • 概念
    • (1)定义
      • 数据字典是关于数据的信息的集合,是对数据流图中包含的所有元素的定义的集合。
    • (2)数据字典的作用
      • 在软件分析和设计的过程中给人提供关于数据的描述信息
    • (3)意义
      • 数据流图和数据字典共同构成系统的逻辑模型。
  • 数据字典的组成元素
    • ① 数据流;
    • ② 数据流分量,即数据元素;
    • ③ 数据存储;
    • ④ 处理。
  • 定义数据的方法
    • 由数据元素组成的数据的方式3种基本类型:
      • 顺序(3种基本类型)
      • 选择(3种基本类型)
      • 重复(3种基本类型)
      • 可选
    • 描述由数据元素组成数据的关系
      • ① = 等价于(定义为)
      • ② + 和(连接两个分量)
      • ③ [] 或(从方括号中的分量选择一个),通常用“|”号隔开供选择的分量
      • ④ { } 重复(重复花括号中的分量),字母数字串=0{字母或数字}7,允许字母或数字的长度为0-7
      • ⑤ ( ) 选择(括号中的分量可有可无)
  • 数据字典的用途
    • (1)作为分析阶段的工具(最重要)。
    • (2)数据字典中包含的每个数据元素的控制信息是很有价值的。
    • (3)数据字典是开发数据库的第一步,而且是很有价值的一步。
  • 数据字典的实现
    • (1)开发大型软件系统时建议使用数据字典处理程序。
    • (2)在开发小型软件系统时建议采用卡片形式书写数据字典,如图
      • 在这里插入图片描述

2.6 成本/效益分析

  • 目的
    • 帮助客户组织负责人从经济角度判断是否继续投资于这项工程。
  • 成本估计的方法
    • (1)代码行技术;
      • 每行代码的平均成本乘以行数
      • 每行代码的平均成本取决于软件的复杂程度和工资水平
    • (2)任务分解技术;
      • 总成本 = 每个任务成本之和
      • 每个任务的成本 = 人力(以人月为单位) X 每人每月平均工资
    • (3)自动估计成本技术。
      • 采用自动估计成本的软件工具
  • 成本效益分析
    • 成本与收益比较要相同时间的进行比较,现在与现在比较。

    • 计算P元钱在n年后的价值:F=P(1+i)nF=P(1+i)^nF=P(1+i)n,其中年利率为i。
    • n年后能收入F元钱,计算这些钱的现在价值:P=F/(1+i)nP=F/(1+i)^nP=F/(1+i)n
      • 在这里插入图片描述
    • 投资回收期:使累计的经济效益等于最初投资所需的时间
      • 在这里插入图片描述
    • 纯收入
      • 在这里插入图片描述
    • 计算投资回收率:P=F1/(1+j)+F2/(1+j)2+…+Fn/(1+j)nP=F1/(1+j)+F2/(1+j)^2+…+Fn/(1+j)^nP=F1/(1+j)+F2/(1+j)2++Fn/(1+j)n
      • 其中,P是现在的投资额;Fi是第i年年底的效益(i=1,2,…,n);n 是系统的使用寿命;j是投资回收率。

相关文章:

[软件工程导论(第六版)]第2章 可行性研究(复习笔记)

文章目录2.1 可行性研究的任务2.2 可行性研究过程2.3 系统流程图2.4 数据流图概念2.5 数据字典2.6 成本/效益分析2.1 可行性研究的任务 可行性研究的目的 用最小的代价在尽可能短的时间内确定问题是否能够解决。 可行性研究的3个方面 (1)技术可行性&…...

Mac下安装Tomcat以及IDEA中的配置

安装brew 打开终端输入以下命令: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 搜索tomcat版本,输入以下命令: brew search tomcat 安装自己想要的版本,例…...

【Linux详解】——文件基础(I/O、文件描述符、重定向、缓冲区)

📖 前言:本期介绍文件基础I/O。 目录🕒 1. 文件回顾🕘 1.1 基本概念🕘 1.2 C语言文件操作🕤 1.2.1 概述🕤 1.2.2 实操🕤 1.2.3 OS接口open的使用(比特位标记)…...

HomMat2d

1.affine_trans_region(区域的任意变换) 2.hom_mat2d_identity(创建二位变换矩阵) 3.hom_mat2d_translate(平移) 4.hom_mat2d_scale(缩放) 5.hom_mat2d_rotate(旋转 &…...

Python3 JSON 数据解析

Python3 JSON 数据解析 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。 Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个函数: json.dumps(): 对数据进行编码。json.loads(): 对数据进行解码。 在 json 的编解码…...

Homebrew 安装遇到的问题

Homebrew 安装遇到的问题 例如:第一章 Python 机器学习入门之pandas的使用 文章目录Homebrew 安装遇到的问题前言一、安装二、遇到的问题1.提示 zsh: command not found: brew三、解决问题前言 使用 Homebrew 能够 安装 Apple(或您的 Linux 系统&#…...

Metasploit框架基础(二)

文章目录前言一、Meatsplooit的架构二、目录结构datadocumentationlibmodulesplugins三、Measploit模块四、Metasploit的使用前言 Metasploit是用ruby语言开发的,所以你打开软件目录,会发现很多.rb结尾的文件。ruby是一门OOP的语言。 一、Meatsplooit的…...

c++容器

1、vector容器 1.1性质 a)该容器的数据结构和数组相似,被称为单端数组。 b)在存储数据时不是在原有空间上往后拓展,而是找到一个新的空间,将原数据深拷贝到新空间,释放原空间。该过程被称为动态拓展。 vec…...

Vue.js如何实现对一千张图片进行分页加载?

目录 vue处理一千张图片进行分页加载 分页加载、懒加载---概念介绍: 思路: 开发过程中,如果后端一次性返回你1000多条图片或数据,那我们前端应该怎么用什么思路去更好的渲染呢? 第一种:我们可以使用分页…...

计算机网络复习(六)

考点:MIME及其编码(base64,quoted-printable)网络协议http是基于什么协议,应用层到网络层基于什么协议6-27.试将数据 11001100 10000001 00111000 进行 base64 编码,并得到最后传输的 ASCII 数据。答:先将 24 比特的二…...

Redis进阶:布隆过滤器(Bloom Filter)及误判率数学推导

1 缘起 有一次偶然间听到有同事在说某个项目中使用了布隆过滤器, 哎呦,我去,我竟然不知道啥是布隆过滤器, 这我哪能忍?其实,也可以忍,但是,可能有的面试官不能忍!&#…...

Java创建对象的方式

Java创建对象的五种方式: (1)使用new关键字 (2)使用Object类的clone方法 (3)使用Class类的newInstance方法 (4)使用Constructor类中的newInstance方法 (5&am…...

dom基本操作

1、style修改样式 基本语法&#xff1a; 元素.style.样式’值‘ 注意: 1.修改样式通过style属性引出 2.如果属性有-连接符&#xff0c;需要转换为小驼峰命名法 3.赋值的时候&#xff0c;需要的时候不要忘记加css单位 4.后面的值必须是字符串 <div></div> // 1、…...

如何将python训练的XGBoost模型部署在C++环境推理

当前环境&#xff1a;Ubuntu&#xff0c;xgboost1.7.4过程介绍&#xff1a;首先用python训练XGBoost模型&#xff0c;在训练完成后注意使用xgb_model.save_model(checkpoint.model)进行模型的保存。找到xgboost的动态链接库和头文件动态链接库&#xff1a;如果你在conda环境下面…...

About Oracle Database Performance Method

bottleneck&#xff08;瓶颈&#xff09;&#xff1a; a point where resource contention is highest throughput(吞吐量)&#xff1a; the amount of work that can be completed in a specified time. response time (响应时间)&#xff1a; the time to complete a spec…...

JavaScript 日期和时间的格式化大汇总(收集)

一、日期和时间的格式化 1、原生方法 1.1、使用 toLocaleString 方法 Date 对象有一个 toLocaleString 方法&#xff0c;该方法可以根据本地时间和地区设置格式化日期时间。例如&#xff1a; const date new Date(); console.log(date.toLocaleString(en-US, { timeZone: …...

【Python】缺失值可视化工具库:missingno

文章目录一、前言二、下载二、使用介绍2.1 绘制缺失值条形图2.2 绘制缺失值热力图2.3 缺失值树状图三、参考资料一、前言 在我们进行机器学习或者深度学习的时候&#xff0c;我们经常会遇到需要处理数据集缺失值的情况&#xff0c;那么如何可视化数据集的缺失情况呢&#xff1…...

【代码随想录二刷】Day18-二叉树-C++

代码随想录二刷Day18 今日任务 513.找树左下角的值 112.路径总和 113.路径总和ii 106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树 语言&#xff1a;C 513.找树左下角的值 链接&#xff1a;https://leetcode.cn/problems/find-bottom-left-tree-va…...

制造业的云ERP在外网怎么访问?内网服务器一步映射到公网

随着企业信息化、智能化时代的到来&#xff0c;很多制造业企业都在用云ERP。用友U 9cloud通过双版本公有云专属、私有云订阅、传统软件购买三种模式满足众多制造业企业的需求&#xff0c;成为一款适配中型及中大型制造业的云ERP&#xff0c;是企业数智制造的创新平台。 用友U 9…...

zookeeper 复习 ---- 练习

zookeeper 复习 ---- 练习在同一节点配置三个 zookeeper&#xff0c;配置正确的是&#xff1f; A&#xff1a; zoo1.cfg tickTime2000 initLimit5 syncLimit2 dataDir/var/lib/zookeeper/zoo1 clientPort2181 server.1localhost:2666:3666 server.2localhost:2667:3667 serv…...

2023年全国最新道路运输从业人员精选真题及答案1

百分百题库提供道路运输安全员考试试题、道路运输从业人员考试预测题、道路安全员考试真题、道路运输从业人员证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 11.在以下选项中关于安全生产管理方针描述正确的是&#xff08;…...

Java每日一练——Java简介与基础练习

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 例如&#xff1a;第一章 Python 机器学习入门之pandas的使用 文章目录 目录 系列文章目录 文章目录 前言 一、简述解释型语言与编译型语言 二、Java语言的执行流程 2.1、…...

解决Edge浏览器主页被篡改问题,或许可以帮你彻底解决

问题描述&#xff1a; 之前从一个第三方网站下载了一个不知名软件&#xff0c;接着电脑就各种下载360全家桶之类的软件&#xff0c;后来问题解决了&#xff0c;但是还残留了一些问题&#xff0c;前几天发现edge浏览器的主页被改成了360导航&#xff0c;就是那个该死的hao123&a…...

字符设备驱动基础(一)

目录 一、Linux内核对设备的分类 linux的文件种类&#xff1a; Linux内核按驱动程序实现模型框架的不同&#xff0c;将设备分为三类&#xff1a; 总体框架图&#xff1a; 二、设备号------内核中同类设备的区分 三、申请和注销设备号 四、函数指针复习 4.1、 内存四区 …...

将 Supabase 作为下一个后端服务

对于想快速实现一个产品而言&#xff0c;如果使用传统开发&#xff0c;又要兼顾前端开发&#xff0c;同时又要花费时间构建后端服务。然而有这么一个平台&#xff08;Baas Backend as a service&#xff09;后端即服务&#xff0c;能够让开发人员可以专注于前端开发&#xff0c…...

14:高级篇 - CTK 服务工厂 简述

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 一般情况下,服务对象在被注册之后,任何其它的 Plugin 在请求该服务时,CTK Plugin Framework 都返回的是同一个对象。倘若要为每一个 Plugin 消费者返回不同的服务对象,或者在真正需要该服务对象时才创建…...

Java中的链表实现介绍

Java中的链表实现介绍 学习数据结构的的链表和树时&#xff0c;会遇到节点&#xff08;node&#xff09;和链表&#xff08;linked list&#xff09;这两个术语&#xff0c;节点是处理数据结构的链表和树的基础。节点是一种数据元素&#xff0c;包括两个部分&#xff1a;一个是…...

演示Ansible中的角色使用方法(ansible roles)

文章目录一、ansible 角色简介二、roles目录结构三、role存放的路径&#xff1a;配置文件ansible.cfg中定义四、创建目录结构五、playbook中使用rolesplaybook变量会覆盖roles中的定义变量六、控制任务执行顺序七、ansible—galaxy命令工具八、安装选择的角色1.从网上下载&…...

Bash Shell 通过ls命令筛选文件

Bash Shell 通过ls命令及其管道根据大小名称筛选文件 最近参与的项目当中有需要用pyarmor加密项目的要求&#xff0c;听网上吹的pyarmor都那么神&#xff0c;用了一下感觉也一般&#xff0c;试用版普通模式下文件加密居然还有大小32KB的限制&#xff0c;加密到一半就失败了&am…...

2023-2-18 刷题情况

删列造序 III 题目描述 给定由 n 个小写字母字符串组成的数组 strs &#xff0c;其中每个字符串长度相等。 选取一个删除索引序列&#xff0c;对于 strs 中的每个字符串&#xff0c;删除对应每个索引处的字符。 比如&#xff0c;有 strs [“abcdef”,“uvwxyz”] &#xf…...

vps建立多个网站/广东又出现新病毒

研究了一下&#xff0c;并和开发这探讨了一下这个扩展&#xff0c;扩展会不断更新&#xff0c;作者也在努力出个windows版的啊 扩展开源地址&#xff1a;https://code.google.com/p/php-beast/downloads/detail?namebeast-v0.2.zip&can2&q转载于:https://www.cnblogs.…...

精通网站建设电子档/国内军事新闻最新消息

程序员如何表白&#xff0c;看了才知道程序员如何表白&#xff0c;看了才知道https://www.zhihu.com/video/1228451050107457536程序代码&#xff1a;import turtle import matht turtle.pen() t turtle t.up() t.goto(0, 150) t.down() t.color(red) t.begin_fill() t.fillc…...

wordpress会员发布文章/上海公司排名

设置定时任务很简单&#xff0c;用Timer类就搞定了。一、延时执行首先&#xff0c;我们定义一个类&#xff0c;给它取个名字叫TimeTask&#xff0c;我们的定时任务&#xff0c;就在这个类的main函数里执行。代码如下&#xff1a;package test;import java.util.Timer;public cl…...

临沂罗庄建设局网站/广州推广seo

usermod&#xff1a;usermod [options] user_nameusermod 命令修改系统帐户文件来反映通过命令行指定的变化选项(options)-a|--append ##把用户追加到某些组中&#xff0c;仅与-G选项一起使用 -c|--comment ##修改/etc/passwd文件第五段comment -d|--home ##修改用户的家目…...

oa系统的概念/谷歌seo外包

添加多台压力机1、前置条件1&#xff09;保证压力机上都安装了loadrunner Agent&#xff0c;并启动&#xff0c;状态栏中会有小卫星。2&#xff09;添加的压力机与controller所在机器是否在同一个网段&#xff0c;建议关闭防火墙。在controller压力机上 ping 下连接压力机&…...

兰州企业网站建设公司价格/营销活动策划方案

$(document) 是一个 JavaScript 库中的函数&#xff0c;用于在 HTML 文档中选择元素。它使用了 CSS 选择器语法来选择元素&#xff0c;返回一个 jQuery 对象&#xff0c;可以使用 jQuery 的方法来操作选择的元素。 如果你遇到了 $(document) 无法使用的问题&#xff0c;可能是因…...