系统架构设计师学习之路(17)

第4章 系统开发基础知识

4.1 软件开发方法

4.1.1 软件开发生命周期
软件开发周期是指软件产品从形成概念(构思)开始,经过定义、开发、使用和维护,直到最后被废弃(不再使用)为止的全过程。
1.软件定义时期
(1)问题定义
(2)可行性研究
(3)需求分析
2.软件开发时期
概要设计
详细设计
编码
3.软件运行及维护
软件运行
软件维护

4.1.2 软件开发模型
软件生命周期模型又称软件开发模型或软件过程模型,它是从某一特定角度提出的软件过程的简化描述。
软件活动:软件描述、软件开发、软件有效性验证、软件进化。
软件开发模型:
(1)瀑布模型
问题定义、可行性分析、需求分析、总体设计、详细设计、编码与单元测试、综合测试、运行与维护。
(2)原型模型
原型开发阶段、目标软件开发阶段
(3)螺旋模型
目标设定、风险分析、开发和有效性验证、评审
(4)基于可重用构件的模型
软件需求-标识构件-检索构件库-开发构件/取出构件-集成目标系统
(5)基于面向对象的模型
软件需求
检索构件库-构件开发
需求开发
面向对象分析-OOA原型
面向对象设计-OOD原型-目标系统
系统实现与集成
(6)基于第四代技术的模型
四代语言是在大型数据库管理系统的基础上发展起来的程序设计语言。可分为:机器语言、汇编语言、高级语言、第四代语言、为人工智能领域设计的第五代语言。
4GL目前还没有统一的定义,描述定义:
用于快速开发应用软件的高产工具;
用于快速事务处理系统的高产工具。
其主要特征描述如下:
它是非过程化的语言,目的在于高效、直接地实现各种应用系统;
它与数据库的关系密切,能够对大型数据库进行高效处理。

4.1.3 敏捷方法
1.敏捷方法的特点
敏捷方法是“适应性”,而非“预设性”的,重型方法试图对一个软件开发项目在很长时间跨度内做出详细计划,然后依据计划进行开发。而敏捷型方法欢迎变化,目的是适应变化的过程,甚至允许改变自身来适应变化。
敏捷型方法是“面向人的”,而非“面向过程的”。它们试图使软件开发工作能够利用人的特点,发挥人的创造能力。
2.敏捷方法的核心思想
(1)敏捷方法是适应型,而非可预测型。
(2)敏捷方法是以人为本,而非以过程为本。
(3)迭代增量式的开发过程。
3.敏捷型方法的适用范围
敏捷方法比较适合需求变化比较大或者开发前期对需求不是很清晰的项目,以它的灵活性来适应需求的变化,有效地控制项目进度和成本。另外,敏捷方法对设计者、开发者、客户之间的有效沟通和及时反馈要求比较高,所以不易在开发团队比较庞大的项目中实施,当然这也不是绝对的。
4.敏捷方法的主要内容
四个核心价值观:沟通、简单、反馈、勇气。
十二条过程实施规则:简单设计、测试驱动、代码重构、结对编程、持续集成、现场客户、发行版本小型化、系统隐喻、代码集体所有制、规划策略、规范代码、40小时工作机制。
5.主要敏捷方法简介
(1)XP,极限编程
(2)Cockburn的水晶系列方法
(3)开放式源码
(4)SCRUM
(5)Coad的功用驱动开发方法FDD
(6)ASD方法

4.1.4 RUP
1.RUP概述:Rational、Unified、Process
2.RUP的生命周期
一种二维的软件开发模型,9个核心工作流。
(1)业务建模
(2)需求
(3)分析与设计
(4)实现
(5)测试
(6)部署
(7)配置与变更管理
(8)项目管理
(9)环境
RUP把软件开发周期划分为多个循环,每个循环依次由4个连续的阶段组成:初始阶段、细化阶段、构造阶段、移交阶段。
3.RUP中的核心概念
角色(Role)
活动(Activity)
制品(Artifact)
工作流(Workflow)
4.RUP的特点
用例驱动
以体系结构为中心
迭代与增量
5.RUP剪裁
确定本项目的软件开发过程需要哪些工作流,
确定每个工作流要产出哪些制品,
确定四个阶段(初始阶段、细化阶段、构造阶段、移交阶段)如何移交,
确定每个阶段内的迭代计划,
规划工作流内部结构。

4.1.5 软件系统工具
1.软件开发工具
需求分析工具
基于自然语言或图形描述的工具
基于形式化需求定义语言的工具
其他需求分析工具
2.设计工具
3.编码与排错工具
4.软件维护工具
版本控制工具
文档分析工具
开发信息库工具
逆向工程工具
再工程工具
5.软件管理和软件支持工具
(1)项目管理工具
(2)配置管理工具
(3)软件评价工具
(4)软件开发工具的评价和选择
功能
易用性
稳健性
硬件要求和性能
服务和支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值