软件工程-系统架构师(四十一)

软件开发生命周期

软件定义时期:包括可行性分析和详细需求分析过程。具体分为 问题定义、可行性研究、需求分析等。

软件开发时期:软件的设计与实现。概要设计,详细设计,编码,测试等。

软件运行和维护时期:把软件产品移交给用户使用

软件系统文档:

分为 用户文档 和系统文档。用户文档则是系统功能和使用方法。系统文档描述 系统设计实现和测试各方面的内容。

软件工程包含四个方面活动:

1 P(plan):软件规则说明。软件计划。

2 D(Do):软件开发。开始做。

3C(check):软件确定。确定,验证。

4 A(action):软件演进。演进开发。

软件系统工具

软件开发工具:需求分析工具、设计工具、编码与排错工具、测试工具等。

软件维护工具:版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具。

软件管理和软件支持工具:项目管理工具、配置管理工具、软件评价工具、软件开发工具的评价与选择。

软件设计四个活动

数据设计、架构设计、人机界面(接口)设计、过程设计

数据设计:数据库,数据字典设计。

CMM和CMMI

能力成熟度模型CMM

1初始级:杂乱无章,依赖个人努力。

2可重复级:基本的项目管理和实践,有必要的过程准则来重复。

3已定义级:定义了行业规则,软件过程文档化

4已管理级:定量管理,制定了产品质量详细度量标准

5优化级:提升系统不断改进。

CMMI

阶段式

1初始级:过程不可以预测。

2已管理级:过程为项目服务。

3已定义级:过程为组织服务。

4定量管理:度量。

5优化级:不断改进。

软件过程模型

瀑布模型,需求明确,全部做完才做下一个。

原型模型则刚好和瀑布模型相反。适合需求不明确。

螺旋模型,可以风险分析。所以非常适合庞大,复杂,高风险项目。四个过程:制定计划、风险分析、实施工程和客户评估

V模型:需求分析,概要设计,详细设计,编码,(v模型),单元测试,集成测试,系统测试,验收测试

增量模型:首先开发核心功能优先级高的优先交付每一个增量都是可交付的产品,和原型不同。

喷泉模型:面向对象就是,以用户需求为动力。

构件开发模型CBSD:利用预先包装的构件来构造应用程序复用性

形式化方法模型:建立严格数学基础上。

敏捷开发

四大价值观:沟通、简单、反馈、勇气

两个特点:

1适应性 非 预设性。

2面向人 非 面向过程。

核心思想:

1适应性。

2以人为本。

3迭代增量。

敏捷开发几个方法:

1极限编程法XP:交流、朴素、反馈和 勇气。加强交流,从简单开始做起。

近螺旋式,将复杂过程分解成一个个小周期。提倡 测试先行

2水晶系列法:以人为中心,每个都有独特的角色,过程模式,工作产品和实践。(水晶独一无二)

3并列争球法:按需求优先级别来,以每段时间(如30天)为周期,一次冲刺。

4特性驱动开发方法(FDD):三要素,人,过程和技术。五个核心过程:开发整体对象模型,构造特征列表,计划特征开发,特征计划和特征构件

统一过程模型RUP

Rational Unified Process

描述 如何有效利用商业的、可靠的方法开发和部署软件,是一个重量级过程。 类似在线指导者,它可以为所有方面和层次的程序开发提供指导方针、模版以及事例支持

9个核心工作流

业务建模:高层次业务分析。

需求:确定系统功能需求。

分析与设计:分析需求,设计模型。

实现:实现需求,编码。单元测试

测试:集成测试,系统测试,验收测试。

部署:打包部署上线。

配置与变更管理:所有制品的完整性和一致性。

项目管理:为开发提供计划,为软件提供环境。

环境:提供开发环境,管理和工具支持。

RUP把软件生命周期划分为四个阶段:

初始阶段:类似需求分析,确定系统范围

细化阶段:确定系统体系结构

构造阶段:构造产品并继续演进需求

移交阶段:把产品给用户使用。

RUP核心概念:

角色:who的问题。各个角色的职责。

活动:how 的问题。明确目的的工作单元,怎么去做。

制品:what的问题。活动生成,修改的一段信息。

工作流:when的问题。活动做的时间,一系列流程。

RUP特点:

1用例驱动:需求分析、设计、实现和测试都是用例驱动。

2以体系结构为中心:包括总体组织全局控制和通信协议。

典型的4+1视图模型

分析人员和测试人员关系系统的行为,侧重用例视图。

最终用户 关注系统功能,逻辑视图。

程序员 关注系统配置开发,实现视图。

系统集成人员 关注系统性能,伸缩,吞吐。进程视图。

系统工程师 关注系统发布,安装。侧重部署视图。

3迭代和增量。

逆向工程

软件复用

早期是代码级别,现在扩大到 领域知识、开发经验、设计决定、体系结构、需求、设计、代码和文档等一切有关方面。

逆向工程

分为四个级别

实现级:包括抽象语法树、符号表、过程的设计表现。

结构级:反映程序相互依赖关系的信息。例如调用图、结构图、程序和数据结构。

功能级:反映程序功能及程序段之间的信息。例如数据和控制流模型。

领域级:包括反映程序分量或程序领域概念对应关系的信息。如E-R图。

领域级别抽象最高,完备性低。实现级别抽象最低,完备性最高

与逆向工程有关的概念 重构、设计恢复、再工程和正向工程

重构:同一抽象级别转换系统描述。

设计恢复:从已有的程序中抽象出有关数据设计。

再工程:在逆向工程基础上,对系统进行重构,产生新版本。

正向工程:从现有系统恢复设计信息,使用该信息去改变现有系统。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

后端从入门到精通

你的鼓励是我最大的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值