系统分析与设计复习

系统分析与设计复习

系统分析首节

  1. 需求的本质?

  2. kano模型的用户需求分解?

  3. 用户基本需求处于哪一个阶段?

  4. 产品功能需求和用户需求

  5. 基本型、期望型、魅力型、无差异性、逆向型;

  6. 系统分析阶段;

本节思维导图

系统分析与设计概述

  1. 系统的特性:

  2. 软件危机的定义;

  3. 系统分析的过程/步骤:

  4. 软件没有银弹的含义是什么?

  5. 现代软件系统的特点?

  6. devops的五个要素?

  7. 瀑布模型是谁提出的。

  8. 整体性、目的性、层次性、环境适应性、相关性;

  9. 延时性、超出成本、新的技术和工具不能成熟地使用;

  10. 明确问题,设立目标;收集材料,制定方案;分析计算,评价比较;检验核实,做出决策;

  11. 软件工程中的根本问题和次要问题划分;

  12. 复杂性(状态多)、一致性(接口)、可变性(需求的不断变化)和不可见性(无法直接感受);

  13. 文化、自动化、精益(持续改善,持续交付)、度量(有效地监控与度量手段)、分享(不同职能和产品之间分享经验);

  14. 1970 年温斯顿·罗伊斯(Winston Royce)提出了著名的“瀑布模型”,直到20 世纪80 年代早期,它一直是唯一被广泛采用的软件开发模型,瀑布模型是由瀑布开发模型演变而来的。

  • devops是敏捷理念从开发领域向运维领域的延伸;
  • devops关键模式与时间:
    • 人:自治团队、全栈工程师、融合团队、服务式管理者;
    • 流程:MVP,CI/CD,TDD;
    • 技术:开发者自服务,基础设施即代码,集成工具链;
    • 文化:合作文化、持续体验;

重要的图表

devops生命周期过程:

系统规划

  1. 系统开发生命周期的各个阶段组成是怎样的?

  2. 系统开发和系统规划之间的关系?

  3. 系统规划的组成成分是什么?

  4. 系统规划的原则是什么?

  5. 总体规划准备阶段需要干什么?

  6. 谁是系统所有者?

  7. 系统用户的构成?

  8. 什么是组织机构调查?

  9. 什么是定义管理目标?

  10. 资源的生命周期有几个阶段?分别是什么?

  11. 定义数据类的方法有哪些?

  12. 如何定义信息系统结构?

  13. 计算机逻辑配置中的网络设计构成有哪些?

  14. 诺兰的阶段模型构成?

  15. 能力成熟度模型的作用?构成?

  16. 什么是关键成功因素法?

  17. 如何分析出关键的成功因素?

  18. 系统规划、系统分析、系统设计、系统实施、系统运行维护;

  19. 系统规划是系统开发的前提条件、是系统验收评价的标准;

  20. 在总体上确定系统开发的优先顺序,进行计算机的逻辑配置;

  21. 支持组织的总目标,着眼高层和企业过程,整体性,便于实施;

  22. 组织队伍,收集数据,准备调查表,开动员会;

  23. 客户,对于信息系统而言一般是经理或者主管;

  24. 内部用户、远程和移动用户、外部用户;

  25. 各部分之间的隶属关系和联系(资金流动、物资流动);

  26. 对总目标进行细分,标明经营方针和实现目标的约束条件;

  27. 产生阶段、获得阶段、服务阶段和归宿阶段;

  28. 实体法和功能法;

  29. 构建数据类矩阵,排列数据类一行,使得矩阵中C靠近对角线,然后再对角线上划分功能组,让C尽量被圈入方框中。

  30. C/S模式;B/S模式;综合模式

  31. 初装、蔓延、控制、集成、数据管理和成熟;

  32. 评估组织的信息系统开发以及管理过程和产品成熟度的框架;初始级、可重复级、已定义级、已管理级、优化级

  33. 在一个组织中的若干能够决定组织在竞争中能否获胜的因素。

  34. 头脑风暴;

  • 系统规划指根据组织的战略目标和用户提出的需求,从用户现状出发。
  • 实体法:
    • 可以独立考虑的变为实体;
    • 计划型、统计型、文档型、业务型;
  • 功能法:
    • 在系统中每个功能都有相应的输入和输出的数据类;

重要的图表

总体规划的步骤:

组织功能矩阵:

网络设计中的综合模式:

鱼骨图的绘制:

基本u/c矩阵:

其中C表示功能的产生,U表示功能的使用。

敏捷项目管理

  • 敏捷宣言:
    • 个体和交互胜过过程和工具;
    • 可以工作的软件胜过面面俱到的文档;
    • 客户合作胜过合同谈判;
    • 响应变化胜过遵循计划;
  • 软件开发中的浪费:
    • 部分完成的工作;
    • 未应用的特性;
    • 过度作业;
    • 传递;
    • 任务切换;
    • 等待;
    • 缺陷;
  • 敏捷团队的三个核心角色:
    • 产品拥有者、敏捷教练和开发团队;

系统需求分析

  1. 需求如何进行分类?

  2. 什么是需求分析?

  3. 需求分析的三个步骤有哪些?

  4. 什么是SWOT分析,组成部分是什么?

  5. 价值曲线评价法的过程是怎样的?

  6. 竞争的分级?

  7. 竞品分析的步骤?

  8. 竞品分析的结果?

  9. kano模型分析的三种类型?

  10. 什么是用户画像的主要思路?

  11. 用户画像的过程是怎样的?

  12. 需求管理的方法是什么?

  13. 大众和小众、强需求和弱需求、高频需求和低频需求;

  14. 深度理解用户的需求,挖掘用户的深层次需求;

  15. 获取需求、用户画像、分析整合;

  16. 对组织的优势、劣势、机会和威胁进行分析;

  17. 确定关键因素、用户打分、绘制、评价价值曲线、监控价值曲线;

  18. 直接竞争、间接竞争、行业领先者/不同行业竞争;

  19. 明确背景的目的、找到竞争对手、产品定位分析、产品设计分析、核心策略分析、竞品数据分析、分析报告撰写;

  20. 竞品分析报告;

  21. 基本型、期望型、兴奋型;

  22. 谁+在什么场景下+做什么,针对目标群体真实特征进行勾勒,是深刻理解真实数据的基础上得出的一个虚拟用户。

  23. 定性研究、定量研究、聚类分析、角色描述;

  24. 需求池管理;

  • 刚需:某一类人的必要要求,注意实操工具和刚需之间的区别;
  • 需求分析的步骤:
    • 用户研究:定性分析(大概有什么需求)和定量分析(不同需求用户占比);
    • 市场分析;SWOT分析、价值曲线评价法;
    • 数据分析;
    • 用户反馈;
  • 价值曲线评价法的注意事项:
    • 各行业的服务质量关键要素不同;
    • 打分的准则:期望、重要/非重要、开放性;
    • 可以通过减少属性从而提高价值曲线;
  • 四象限分析法:将事务的两个重要指标作为分析的依据,进行分类关联分析,找出研究问题。
  • 需求减法的核心要点是产品定位;
  • 最小化可行产品:最小化的验证,方便客户反馈和迭代的进行;

重要的图表

SWOT分析得到的图表:

产品价值曲线:

四象限分析法:

KANO模型的实现:

项目管理

  1. 什么是信息系统项目管理?

  2. 项目管理分类是怎样的?

  3. 什么是工作分解结构?交付物是什么?

  4. 可行性分析的三个组成:

  5. 甘特图的横轴和纵轴分别代表什么?

  6. 在指定时间内用最少的费用开发可以接受的系统的管理过程,具体内容包括确定范围、计划、人员安排、组织、指导和控制;

  7. 单纯型项目组织、职能型项目组织、矩阵型项目组织;

  8. 根据项目特点,选择合适的方式将项目总体工作范围逐步分解为合适的粒度;交付物是工作包;

  9. 操作、经济、技术;

  10. 横轴代表人物,纵轴代表经历的任务数量;

  • wbs分解原则:
    • 一个工作包只能一个人负责;
    • 一个具体任务对应一个工作包;
    • 应当合理且适应性强;
    • 文档化显著;
  • 项目管理的具体过程:
    • 项目启动:
      • 发现问题;
      • 定义问题;
      • 制定项目;
    • 确定可行性:
      • 定义目标:可行性影响表格;
      • 确定资源:三方面分析;
      • 判断可行性:
    • 估计所需的时间;
    • 项目进度管理;
  • 网络图:
    • 开始节点和结束节点均是惟一的;
    • 在相邻的两个时间节点之间,最多只能由一条相连;

重要的图表

工作分解结构图:

成本效益

  1. 什么是pieces框架?

  2. 系统收益的分类?

  3. 吞吐量和响应时间(put out)、information,economy,control,effective,service

  4. 有形收益和无形收益;

社会成本=内在成本+外在成本
社会效益=内在效益+外在效益
社会净效益=社会效益-社会成本

流程建模——业务流程图

  1. 模型的类型有哪些?

  2. 系统分析设计阶段创建的模型?

  3. 数学模型(精确的公式和数学符号)、描述模型(备忘录和报表)和图形模型(化解较难表达的关系);

  4. 逻辑模型(数据流图、类图、用例图、顺序图、状态图、活动图)和物理模型(系统流程图、结构图、部署图);

重要的图表

业务流程图的常用符号:

类似泳道图的业务流程图(业务流程调查与分析):

数据流图和结构图

  1. 什么是数据流图?

  2. 系统部件的组成有哪些?

  3. 什么是数据字典?

  4. 数据字典的构成是什么?

  5. 结构图的组成模块有什么?

  6. 内聚的类型有哪些?(由低到高进行排序)

  7. 以图形的方式刻画业务系统中的数据处理过程和数据流;

  8. 系统的外部实体、处理过程、数据存储和系统中的数据流;

  9. 数据字典是一种关于数据的数据参考书;

  10. 数据流、数据结构、数据元素和数据存储;

  11. 输入和输出、逻辑功能、运行程序、内部数据;

  12. 偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚和功能内聚

  • 系统的外部实体构成源点和终点;
  • 系统处理从数据存储中提取数据,也将处理的数据返回数据存储;
  • 数据流图的分层表示:
    • 基本模型——系统的子功能——子功能的分解;
  • 数据流图的基本原则:
    • 所有的图形符号必须是前面所述的四种基本元素;
    • 数据流必须封闭在外部实体之间;
    • 处理过程至少有一个输入数据流和输出数据流;
    • 任何一个数据流子图必须与它的父图上的一个处理过程对应;
  • 内聚:
    • 偶然内聚:模块的各部分无联系;
    • 逻辑内聚:把几种相关功能组合在一个模块内;
    • 时间内聚:模块完成的功能必须在同一时间内执行;
    • 过程内聚:各部件相关且仅有控制联系;
    • 通信内聚:使用相同的输入和输出;
    • 顺序内聚:必须按顺序执行;
    • 功能内聚:模块所有成分完成一个功能;

重要的图表

数据流图的组成部分:

过程规范

  1. 什么是过程规范?

  2. 小说明,是整个项目规范的一部分;

过程规范和结构化图

用例图和活动图

重要的图表

活动图(泳道图):

面向对象设计——用例描述

用例描述的制作方法:

面向对象设计——类图和时序图

  1. uml中类的四种关系?

  2. 关联、聚合、组合和依赖(泛化和实现);

数据库设计

  1. 人工管理数据存在的弊端?

  2. 文件管理数据存在哪些弊端?

  3. 什么事数据实体?

  4. 数据库设计的完整流程?

  5. 什么事数据模型?数据模型的主要类型有哪些?

  6. 若两个实体类之间存在联系,如何确定他们的主键?

  7. 三大范式的定义?

  8. 程序不具有独立性,灵活性差;应用程序之间不能共享数据;数据不能永久保存;

  9. 数据冗杂和不一致;并发访问异常;缺乏灵活性;安全性差;

  10. 必须保存信息的人、地点、事务或者时间;

  11. 需求分析、概念模型 、逻辑模型、物理模型、实施、运行和维护;

  12. 描述数据与数据之间的关系、存储、处理特征的模型;关系模型、网状模型和层次模型;

  13. 若联系为1:1,则每个实体类的键均是该关系模式的候选键;若联系为1:n,则主键为n端实体类中的键;

  14. 确保每个属性具有原子性、除了主键以外的其他列都依赖于主键(涉及到关系的分解)、、

  • 设计初步er图的步骤:
    • 设计局部er图,即用户视图;
    • 综合生成总的er图;

重要的图表

ER图实例:

层次模型:

系统设计概述

  1. 系统设计的任务要求是什么?

  2. 评价信息系统的标准是什么?

  3. 良好的结构设计是怎样的?

  4. 软件设计常见的问题?

  5. 系统设计的组成部分?

  6. 如何理解MVC架构模式的组成?

  7. 制定信息系统的物理模型(一个逻辑模型可以延伸出多个物理模型);

  8. 信息系统的功能、系统的效率、系统的可靠性、系统的工作质量、系统的可变更性(最重要的指标)和系统的经济性。

  9. 结构简单和变动灵活;

  10. 僵化性、脆弱性、固化型、只粘性、不必要的复杂性、不必要的冲独行和晦涩性;

  11. 总体设计(体系结构、软件结构、接口和服务)和详细设计;

  12. 模型代表数据,适用对象及其属实现;控制器和视图

系统总体设计

  1. 什么是软件架构?

  2. 常见的软件架构模式有哪些?

  3. 三层架构的组成是什么?

  4. 什么是SOA架构?

  5. 一个应用程序或计算系统的软件架构是一个或一组结构,内部关系;

  6. 三层架构、MVC,SOA、微服务架构;

  7. 表示层、业务逻辑层和数据访问层;

  8. 面向服务为原则的分布式计算模式;

重要的图表

MVC架构的示意图:

系统持续集成设计

  1. 版本控制系统的作用?

  2. 常见的版本控制系统有哪两类?

  3. 分支合并的类型有哪些?

  4. git的使用协议有哪些?

  5. 如何计算圈复杂度?

  6. 代码检查的分类?

  7. 减轻开发人员的负担,降低错误和冗杂;

  8. 集中式版本控制系统和分布式版本控制系统;

  9. 非快进式合并(两个分支的末端和共同祖先进行合并)、分支衍合;

  10. http,ssh,git

  11. V(G) = ****e ****– n + 2

  12. 静态分析和动态分析;

  • git是一款开源的分布式版本控制系统,而svn是一种集中式的版本控制系统工作模型;
    • git的分支功能更加强大、有更加灵活的发布控制、能够隔离开发、提交审核、对合并更好的支持,有更少的冲突和更好的解决冲突;
  • git的基本概念:
    • 工作拷贝:存放本地工作目录;
    • 索引:存放数据的缓存区;
    • 本地库:远程库的完整拷贝;
    • 远程库;
    • 中心库:远程库的一种;
    • 快照:版本库在某个时间点的所有文件的集合;
  • 圈复杂度在数量上表现为独立线性路径条数,程序的可能错误和高的圈复杂度有很大的关系;
git相关命令命令含义
git branch新建分支
git checkout切换到某一个分支
git commit提交
git branch --merged查询已经合并的分支
git branch --no-merged查询未合并的分支
git branch -d删除某个分支
分支名代表含义
master稳定分支
develop测试分支
topic开发分支

系统持续交付设计

  1. 蓝绿部署的过程是怎样的?

  2. 什么事灰度发布?

  3. devcloud应用自动化部署的流程?

  4. 什么是CLSAP?

  5. 准备两个相同的环境,平时在蓝老板环境通过负载运行业务。升级时:将负载切换到绿环境,蓝环境部署新版本并测试。测试完成后负载切换到蓝环境,更新绿环境;

  6. 灰度发布是在原有版本可用的情况下,同时部署新版本;

  7. 新建部署模板、添加授信机器】创建部署环境、选择部署模板、天街部署参数、运行任务、查看结果和日志;

  8. 综合的轻量应用安全过程;

软件开发安全设计

  1. 如何定义软件安全?

  2. 软件能力成熟度集成模型的构成是什么?

  3. 使伤害或损害的风险控制在可接受的水平内;

  4. 初始级、可重复级、定义级、定量管理级、优化级;

  • 在软件安全保障中,需要贯彻风险管理的思想;
  • 软件安全漏洞:
    • SQL注入:欺骗服务器执行恶意的SQL
    • 失效的验证和会话管理:攻击者通过手段获取用户凭证和session id;
    • 跨站脚本(XSS):向web中添加恶意html代码;(影响面最广的web安全漏洞)
    • 不安全的直接对象引用:暴露服务器上具体文件名;
    • 安全配置错误:服务器配置采用默认配置;
    • 敏感信息泄露:加密处理或者加密强度不够;
    • 功能级访问控制缺失:隐藏的url,管理员通过直接输入进入url;
    • 跨站请求伪造(CSRF):构造恶意url请求,然后诱骗合法用户访问url,达到获取权限的目的;
    • 使用含有已知漏洞的组件;
    • 未验证的重定向和跳转:未经验证的重定向目标进行钓鱼;
  • 常见编程安全问题:
    • 整数赋值错误问题;
    • 带符号和无符号整型比较问题;
    • size_t导致的死循环:size_t为无符号整数;
    • 临时变量溢出;
    • short的范围使用问题;
    • 定长字符串的越界问题;
    • 字符串截断问题;
    • 与函数无关的字符串错误问题;
    • 字符串比较错误;
    • 数组越界问题;
    • 数组定义、初始化出错;
    • 标量和数组的区分;
    • 二维数组内存泄露;

   转载规则


《系统分析与设计复习》 xhsioi 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
每日一题整理——2023.4 每日一题整理——2023.4
每日一题整理——2023.4 2023.4.1 Binary Search 二分查找,我老想当二分查找的狗了,但是二分查找说她喜欢的是sort 数据范围: 我的思路: 直接上代码,注意搜索空间的控制就好: class Solutio
2023-05-01
下一篇 
每日一题整理——2023.3 每日一题整理——2023.3
每日一题整理——2023.3 2023.1.3 矩阵中的局部最大值 数据范围: 我的思路:暴力模拟,做的依托答辩 class Solution { public: vector<vector<int>>
2023-04-17
  目录