霍尔三维结构
逻辑维:解决问题的逻辑过程
过程有明确问题、确立目标、系统综合、系统分析、优化、系统决策、实施计划
时间维:工作进度
这个纬度则是做工作计划的输出
有 规划阶段、拟定方案、研制阶段、生产阶段、安装阶段、运行阶段、更新阶段
知识维
需要使用的专业科学知识
比如 工程、医药、建筑等。。
逆向工程
逆向工程是设计恢复的过程
逆向工程也是属于软件维护工具
逆向工程有四个恢复级
实现级---包含程序的抽象语法树,符号表,过程的设计
结构级--包含程序分量之间相互依赖的关系,例如调用图、结构图、程序和数据结构
功能级---程序段功能及程序段之间的信息,例如数据和控制流模型
领域级--程序分量或程序诸实体与应用领域概念之间对应关系的信息。
四个级别分别从具体实现到业务越来越重要的抽象级别
分别为函数过程(具体操作)---->程序过程(函数调用)--->程序段过程-->(功能实现)-->业务功能实现(领域级)(个人理解)
相关概念
- 重构\重组----同一抽象级别
- 设计恢复--- 从已有程序抽象出数据设计、总体结构设计和过程设计等信息
- 逆向工程--分析程序力图在比源代码更高抽象层次上建立程序的表示过程
- 正向工程--使用现有系统恢复的设计信息,去改变或者重构现有系统,以改善整体质量
- 在工程\重构工程 ---对现有系统重新开发的工程,包括逆向工程、新需求的考虑过程和正向工程三个步骤。
需求工程阶段划分
需求获取 |
需求分析 |
形成需求规格(形成SRS--软件需求规范 ) |
需求确认与验证(形成需求基线) |
需求管理【变更控制、版本控制、需求跟踪、需求状态跟踪】 |
需求管理是对需求基线进行管理
需求分析
结构化需求分析
功能模型 用数据流图描述
行为模型用 状态转换图描述
数据模型用 ER图描述
数据字典记录 数据元素、数据结构、数据流、数据存储、加工逻辑、外部实体
面向对象需求分析
分为静态图和动态图
通过名字能很好的确认是动态图还是静态图,对象图稍微特殊,它是类实例化的一个快照,所以也作为静态图。
类图:描述一组类、接口、协作和它们之间的关系,类图和对象图的区别类图名称上只有类名对象图会写出对象名:类名
类总共有三种关系
实体类:映射需求中的每个实体,保存需要存储在永久存储体中的信息。
控制类:用于控制用例工作的类。
边界类:封住在用例内、外流动信息或者数据流。
对象图:描述一组对象以及他们之间的关系、是类实例化的静态快照。
部署图:运行时处理节点及在其中生存的构建配置,给出了架构的静态部署视图, 软硬件之间的映射
包图:由模型本身分解而成的组织单元,以及他们之间的依赖关系,类似将共同工作的元素放在一个文件夹中
循序图:是一种交互图强调对象之间消息发送的循序,同时显示对象之间的交互。强调按时间循序
对于对应位置挖空要知道可以填什么 上面只能填对象,简单消息上智能填消息发送,返回消息上则是填返回消息,或者返回状态。
通信图:强调对象之间的存在的消息收发关系,和循序图的区别是不强调时间循序
定时图:用于展示交互过程中的真实时间信息
状态图:描述一个状态机,强调事件调至的对象行为
活动图 是一种特殊的状态图,活动图描述一个操作中要进行的各项活动那个的执行流程,同时也常用来描述一个操作中要进行的各项活动的执行流程。强调对象之间的控制流程,并且可以用用掉的方式描述多个参与者的状态(多线程)