欢迎光临散文网 会员登陆 & 注册

系统架构设计师教程知识清单4

2023-02-01 14:21 作者:咸鱼翻花绳  | 我要投稿

第4章 系统开发基础知识

1 软件开发生命周期

软件开发生命周期分为为3个阶段:软件定义、软件开发、软件运行与维护

继续细分的话

软件定义可以分为问题定义、可行性研究、需求分析 3个阶段

软件开发可以分为概要设计、详细设计、编码、测试 4个阶段

(一般在工作中,软件定义的工作会高级经理和项目经理负责,其中需求分析会有行业专家和架构师参与,概要设计和详细设计会由架构师负责,编码主要由初级、中级软件工程师,测试由测试工程师负责,但如果你在一个Agile小组里的话。。。。。。)


2 软件开发模型

(1)瀑布模型

最早的软件开发模型之一,严格定义每一个过程,按阶段完成开发任务,又称软件生命期模型。

(比较笨重,用于大型项目开发)

(2)原型模型

又称为快速原型,包括两个阶段:原型开发阶段和目标软件开发阶段

当用户对需求不明确时,可以先开发一个没有实现真是功能的原型软件,帮助客户确定需求

(通常不适合大型软件开发)

(3)螺旋模型

快速原型的基础上拓展而成,是瀑布与原型模型的结合

整体开发流程分为多个阶段,每个阶段由4部分组成:目标设定+风险分析+开发和有效性验证+评审

每重复迭代一次以上4个步骤,螺旋久增加一周,软件系统就生成一个新的版本

(4)基于可重用构件的模型

需要有构件库

(5)基于面向对象的模型

需求开发 -> 面向对象分析 -> 面向对象设计 -> 系统实现与集成

(6)基于第四代技术的模型

利用生成器产生软件单元,程序员以对话的交互方式把源程序的生成任务交给系统生成器。

(看起来有一点类似于无代码/低代码开发)

(7)V模型


3 Agile(敏捷方法)

适合需求变化大或开发前期需求不明确的项目

核心思想:适应型而非可预测型;以人为本而非以过程为本;迭代增量式开发过程

几种典型敏捷方法:

(1)XP(极限编程)

(2)Cockburn水晶系列方法:最少纪律约束

(3)开放式源码:开发人员地域分布广,查错排障高度并行

(4)SCRUM

(5)FDD (功用驱动开发):两周一个迭代

(6)ASD:猜测、合作与学习

  

4 RUP(统一软件开发过程)

9个核心工作流:业务建模、需求、分析与设计、实现、测试、部署、配置与变更管理、项目管理、环境

RUP把软件开发生命期或分为多个循环(cycle),每个循环生成产品的一个新版本。每个循环由4个阶段(phase)组成:初始、构造、细化、移交。每一个阶段由一个或多个迭代(iteration)组成。迭代不是重复做相同的事,而是针对不同用例的细化和实现。每一个迭代都是一个完整的开发过程,需要对核心工作流进行适当的裁剪。每一个阶段结束前有一个里程碑(milestone)评估该阶段的工作。

4个核心概念:角色、活动、制品、工作流

特点:用例驱动;以体系结构为中心;迭代增量

使用 “4+1视图” 模型描述体系结构:4 = 逻辑模型、进程模型、实现模型、部署模型 + 1 = 用例模型


5 软件系统工具

分为开发工具、维护工具、软件管理与支持工具3大类

(1)开发工具包括:需求分析工具、设计工具、编码与排错工具(各种IDE)、测试工具(压力测试、性能测试工具等)

(2)维护工具包括:版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具

(3)软件管理与支持工具包括:项目管理工具、配置管理工具、软件评价工具


6 需求管理

需求管理内容包括:变更控制、版本控制、需求跟踪、需求状态跟踪

需求变更管理过程为:识别出问题 -> 问题分析和变更描述 -> 变更分析和成本计算 -> 变更实现 -> 修改后的需求


7 开发管理

(1)项目的范围、时间、成本

范围定义的输入包括项目章程、项目范围管理计划、组织过程资产、批准的变更申请

项目的时间管理过程包括:活动定义、活动排序、活动资源估算、活动历时估算、制定进度计划及进度控制

项目的成本管理包括:成本估算、成本预算、成本控制

(2)配置管理

产品配置:一个产品在其生命周期中各个阶段所产生的各种形式各种版本的文档、计算机程序、部件及数据的集合

配置项(CI)分为两类:

-产品组成部分的工作成果:如需求文档、设计文档、源代码和测试用例等

-项目管理和机构支撑过程产生的文档:如工作计划等

(3)文档管理

软件系统的文档分为系统文档和用户文档

用户文档包括:功能描述、安装文档、使用手册、参考手册、操作员指南

系统文档通常注重描述系统设计、实现和测试


8 设计方法

(1)结构化分析与设计

(教程中对此部分介绍非常简略,建议多参考其他资料与博客)

自顶向下、逐步求精

(2)面向对象的分析设计

OOA分析模型:顶层架构图、用例与用例图、领域概念模型

OOD设计模型:以包图表示的软件体系结构图、以交互图表示的用例实验图、完整精确的类图、针对复杂对象的状态图、描述流程化处理过程的活动图

面向对象的软件设计过程


9 软件重用

软件重用分类:横向重用(如标准函数库)、纵向重用(域分析)


10 逆向工程与再工程/重构工程

逆向工程:在软件生命周期内将软件某种形式的描述转换成更为抽象形式的活动

重构程:在逆向工程所获信息的基础上修改或重构已有的系统,产生系统的一个新版本


逆向工程的4个级别:

实现级(语法树、符号表

结构级(调用图、结构图等)

功能级(程序段功能及间关系

领域级(应用领域概念之间对应关系的信息)

4个级别从上至下依次抽象程度越来越高,恢复难度越来越大


恢复信息的方法:

(1)用户指导下的搜索和变换(导出实现级与结构级信息)

(2)铅板恢复法(恢复实现级和结构级信息)

(3)变换式方法(导出除领域以外所有级别信息)

(4)基于领域知识(恢复功能级和领域级信息)





系统架构设计师教程知识清单4的评论 (共 条)

分享到微博请遵守国家法律