软件开发模型、软件设计模式、软件架构风格

一、 软件开发模型
1. 瀑布模型: 结构化方法。开发阶段性、 需求明确、文档齐全、 风险控制弱 。前一步的错误会延申到后一步;
2. 原型开发模型: 迭代方法。 有两种开发方式,分别是原先开发和目标 软件 开发; 需求不明确;
3. 螺旋模型: 迭代方法。 在原型开发模型和瀑布模型基础上产生的,适合大型的、复杂的、有风险的项目;
4. 喷泉模型: 面向对象方法; 复用性好; 开发过程无间隙、节省时间;
5. V 模型:开发与测试结合;
6. 智能模型:基于规则系统的 专家系统
7. 变换模型: 适用于 形式化开发;
8. 快速开发模型(RAD):基于构件的开发方法,用户参与、 开发或复用构件、模块化要求高, 不适合新技术;
9. 统一开发方法(RUP):用例驱动、 架构为中心、迭代、增量;
10. 可重用构建模型:基于构件的开发方法。开发或复用构件;
11. 敏捷开发:以人为本,与用户紧密协作,面对面沟通,尽早发布增量,小而自主的开发团队。适用于规模小的
项目。
XP
高效、低风险、测试先行
Cockburn 水晶
强调不同的项目,采用不同策略
SCRUM 并列争球
迭代。30 天为一个迭代周期,按照需求优先级实现
FDD 功能驱动
将开发人员分类。分为指挥者(首席程序员)、类程序员
开放式源码
采用虚拟团队,开发成员分布各地
ASD 自适应
采用预测-协作-学习的方式进行开发
二、 软件设计模式
1. 创建型:单抽原件厂;用来创建对象。
2. 结构型:外侨组员戴配饰; 处理类或对象的组合。
3. 行为型:观摩对策、责令解放、戒忘台;描述 与对象之间 怎样 交互、 怎样分配职责
英文
Singleton、Abstract Factory、Builder、Factory Method、Prototype、Adapter、Bridge、Composite、Decorator、
Façade、Flyweight、Proxy、Chain of Responsi bility、Iterator、Mediator、Memento、Observer、State、
Strategy、Command、Interpreter、Template Method、Visitor
(一) 创建型
单例模式
Singleton
每次只实例化一个对象 (唯一实例)
抽象工厂模式
Abstract Factory
抽象接口
原型模式
Prototype
复用、拷贝原型
建造者模式
Builder
类与构造分离
工厂模式
Factory Method
子类实例化对象
(二) 结构型
外观模式
Façade
对外统一接口
桥接模式
Bridge
抽象实现分离
组合模式
Composite
部分与整体的关系、 树形结构
享元模式
Flyweight
细粒度复用、共享
代理模式
Proxy
代理控制
适配器模式
Adapter
接口转换、兼容
装饰器模式
Decorator
附加职责
(三) 行为型
观察者模式
Observer
通知、自动更新
模板方法
Template Method
算法结构不变,子类定义步骤
迭代模式
Iterator
顺序访问
策略模式
Strategy
算法 替换
责任链模式
Chain of Responsi bility
传递请求、职责、链接
命令模式
Command
参数化、日志记录
解释器模式
Interpreter
文法、解释
访问者模式
Visitor
类不变、新操作
中介者模式
Mediator
不直接引用
备忘录模式
Memento
保存、恢复
状态模式
State
状态 成类
三、 软件架构风格
定义 软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。
常用的软件架构风格有 :数据流风格、调用返回风格、独立构件风格、虚拟机、仓库风格、过程控制、C2 风格。
数据流风格
批处理序列
构件读入-内部处理-输出。以 整体 为单位。
管道/过滤器
构件读入 -内部处理-输出。 前一个输出是后一个的输入。传统
编译器。
调用返回风格
主程序/子程序
主程序直接调用子程序。显示调用。
面向对象
构件是对象,通过函数和过程的调用来交互。
层次结构风格
分层,层次越多效率越差。
独立构件风格
进程通信
独立消息传递有点对点、异步或同步方式,以及远程过程(方
法)调用。
事件驱动程序
隐式调用, 通过事件驱动。程序的语法高亮、语法错误提示。
虚拟机风格
解释器
自定义、灵活。 解释引擎、被解释的代码的存储区、记录工作
状态、进度的数据结构。
基于规则的系统
自定义、灵活。 规则集、规则解释器、规则/数据选择器和工
作状态、进度的数据结构。
仓库风格
数据库系统
中央共享数据源、独立处理单元。构件控制中央共享数据。
黑板系统
知识源、黑板和控制。语音识别、信号处理。中央数据结构状
态触发进程。
超文本系统
网状链接、互联网领域。
过程(闭环)控制
发出命令并接收反馈,设定参数不断调整。空调调温、汽车巡
航定速。
C2
连接件与构件都有顶部、底部。绑定连接件按规则运作。 四、 软件架构评估
定义:
(四) 质量属性
常用的质量属性有:性能、可用性、可修改性、安全性
性能
单位时间内能处理的工作量。 (处理任务所需时间或单位时间内的处理量)
可用性
两次故障之间间隔的时间比。 (正常运行的时间比例)
可修改性
能够快速的以较高的性价比对系统作出修改的能力。
安全性
系统给合法用户提供服务 阻止非法用户的能力。
可靠性
容错:出现错误后仍能保证系统正常运行,且自行修正错误;
健壮性:错误不对系统产生影响,按既定程序忽略错误。
功能性
需求的满足程度
可变性
原体系结构变更为新体系结构
互操作性
与其他系统互操作
主要质量属性的设计策略
性能
增加计算资源、资源调度、 优先级队列、减少计算开销、引入并发机制
可用性
Ping/echo、心跳、冗余、进程监视器
可修改性
抽象、信息隐藏、 限制通信路径、运行时注册
安全性
追踪/审计、用户 授权、用户认证、限制访问
(五) 敏感点、风险点、权衡点、非风险点
风险点
某些做法可能有些隐患会导致一些问题。
敏感点
为了实现某种特定的质量属性,一个或多个系统组件 所具有 的特性。
权衡点
是多个质量属性的敏感点。
非风险点
某些做法是可行的、 可接受的
(六) 特定领域软件体系结构 DSSA
特定领域软件架构是在一个特定应用领域中,为一组应用 提供组织结构参考的标准软件体系结构 。DSSA 通常
是一个具有三个层次的系统模型,包括 领域开发环境(领域架构师)、领域特定应用开发环境(应用工程师)和
应用执行环境(操作员) 。DSSA 的活动如下:
领域分析
获得领域模型 。领域模型描述领域中系统之间共同的需求,即领域需求。
领域设计
获得特定领域软件架构 。DSSA 描述领域模型中表示需求的解决方案。
领域实现
依据领域模型和 DSSA 开发和组织可重用信息,并对基础软件架构进行实现。
1. 架构评估方法
基于技术的手段来看,分为三类:基于调查问卷或检查表的方式、基于场景的方式和基于度量的方式。
(七) 基于调查问卷或检查表的方式
该方式的关键是要 设计好问卷或检查表 ,它充分利用 系统相关人员的经验和知识 ,获得对架构的评估。其
缺点 是在很大程度上 依赖于评估人员的主观推断
(八) 基于场景的方式
它是通过分析软件架构对场景的支持程度,从而判断该架构对这一场景所代表的 质量需求的满足程度 a)ATAM(架构权衡分析法)
是一种系统 架构评估方法 ,主要在系统开发之前,针对性能、可用性、安全性和可修改性等质量属性进
评价和折中 。ATAM 可以分为 4 个主要的活动阶段,包括 需求收集、架构视图描述、属性模型构造和分
析、架构决策与折中 ,整个评估过程强调以 属性 作为架构评估的 核心 概念。
b)SAAM(软件架构分析方法)
SAAM 是最早形成文档并得到广泛应用的 软件架构分析方法 。SAAM 的主要输入是 问题描述、需求说明
和架构描述 ,其分析过程主要包括场 景开发、架构描述、单个场景评估、场景交互和总体评估
(九) 基于度量的方式
制定一些 定量值 来度量架构,如代码行数等。要 制定质量属性和度量结果之间的映射
五、 微服务
(一) 微服务优点
1. 每个微服务都很小,这样能聚焦一个指定的业务功能或业务需求。
2. 微服务能够被小团队单独开发,这个小团队是 2 到 5 人的开发人员组成。
3. 微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的。
4. 微服务能使用不同的语言开发。
5. 去中心化。每个微服务都有自己的存储能力,可以有自己的数据库。也可以有统一数据库。
(二) 微服务缺点
1. 很难在不采用分布式事务的情况下跨服务实现功能
2. 测试工作更加困难
3. 跨服务实现要求功能要求团队之间的紧密协作
4. 部署复杂
(三) 在微服务中,应用网关 API 的作用
1. 提供统一入口
2. 可以进行权限身份认证等安全管理
3. 可以根据流量进行限流
4. 数据缓存
5. 性能监控等
6. 异常重试
7. 服务降级
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XXX航空移动化应用平台项目 1 投标书 13 2 规格偏离表 13 3 资格证明文件 13 3.1法人营业执照(三证合一) 13 3.2法定代表人授权书 13 3.3 投标人的资信证明 13 3.4 招标文件要求的其他资格证明文件 15 3.4.1投标单位资质证书及项目人员资格证书 15 3.4.1.1 CMMI等级登记证书 15 3.4.1.2 ISO9001质量管理体系认证证书 15 3.4.1.3 软件企业认证证书 15 3.4.1.4 计算机软件著作权登记书-SDK 15 3.4.1.5计算机软件著作权登记书-MAS 15 .4.1.6计算机软件著作权登记书-MMS 16 3.4.1.7计算机软件著作权登记书-EMM 16 3.4.1.8计算机软件著作权登记书-MDM 16 3.4.1.9 项目人员证书 16 3.4.2投标单位近3年内获国家及地方政府荣誉证书 18 3.4.2.1 2015年度中国移动互联网行业领军企业奖 18 3.4.2.2 2014-2015年度云计算应用优秀实践单位奖 18 3.4.2.3 2014年度中国最具影响力品牌奖 19 3.4.2.4 2013年度最佳技术服务提供商 19 3.4.2.5 2013年度中国移动应用平台最具影响力奖 19 3.4.2.6 2014移动生产力十大优秀案例奖 19 3.4.3投标单位综合情况审查表 19 3.4.4拟派项目经理资格审查表 20 3.4.5承担本项目主要技术人员和售后服务人员表 20 3.4.6最近两年主要开发实施同类型企业相同或类似系统的开发案例 21 3.4.6.1案例合同首尾页 21 3.4.6.2 系统开发主界面截图 22 4 项目解决方案 26 4.1 项目解决方案内容 26 4.1.1 系统总体目标、设计架构、系统详细设计方案 27 4.1.1.1 设计原则 27 1. 统一设计原则 27 2. 稳定性原则 27 3. 统一设计原则 27 4. 稳定性原则 27 5. 先进性原则 27 6. 高可靠/高安全性原则 27 7. 开放性原则 28 8. 适用性原则 28 9. 可扩展性原则 28 10. 操作/维护的易用性原则 28 11. 高可靠/高安全性原则 28 4.1.1.2 架构设计 29 4.1.1.2.1. 系统架构设计 29 4.1.1.2.2. 业务系统架构设计 31 4.1.1.2.3. 业务处理架构 32 4.1.1.2.4. 网络拓扑图 33 4.1.1.3 技术路线 35 4.1.1.3.1 统一的移动构建平台 35 4.1.1.3.2 Hybrid移动开发引擎 35 4.1.1.3.3 面向服务的SOA接口集成 35 4.1.1.3.4 高并发处理机制 36 4.1.1.3.5 高效的内存数据库 36 4.1.1.3.6 兼容多种集成模式 36 4.1.1.3.7 开放式的框架设计 36 4.1.1.3.8 数据库选型 36 4.1.1.4 应用工具 37 4.1.1.4.1. 开发工具 37 4.1.1.4.2. 分析设计工具 38 4.1.1.4.3. 项目管理辅助工具 38 4.1.1.4.4. 测试工具 39 4.1.1.4.5. 统计工具 40 4.1.1.4.6. 开发语言 42 4.1.1.4.7. 辅助软件工具及其效果 44 4.1.1.5 移动平台建设方案 45 4.1.1.5.1. 移动业务整合平台(APPCAN MAS) 45 4.1.1.5.2. 移动业务开发平台(APPCAN SDK) 53 1. 音频对象API 55 2. 电话对象API 55 3. 照相机对象API 55 4. 剪贴板对象API 55 5. 日期控件API 55 6. 联系人对象API 55 7. 数据库对象API 55 8. 设备信息对象API 55 9. 下载对象API 55 10. 邮件对象API 55 11. 文件管理对象API 55 12. 图片浏览对象API 56 13. Jabber对象API 56 14. 位置服务对象API 56 15. 日志log输出对象API 56 16. 彩信对象API 56 17. 支付宝API 56 18. 二维码扫描对象API 56 19. 传感器对象API 56 20. 短信对象API 57 21. Socket对象API 57 22. 上传对象API 57 23. 视频对象API 57 24. widget对象API 57 25. 平台对象API 57 26. 多窗口机制API 57 27. 跨域访问对象API 57 28. zip压缩解压缩API 57 29. 百度广告推广接口 57 30. 百度地图接口 57 31. 百度统计接口 58 32. 数据统计分析自定义事件接口 58 33. 微博分享接口 58 34. 自定义编辑框接口 58 35. 游戏引擎接口 58 (1) 插件扩展 58 AppCan IDE 启动画面 62 AppCan IDE 代码编辑界面 63 AppCan IDE模拟器与调试器 63 AppCan IDE 本地打包界面 64 AppCan UI框架控件 65 AppCan Player示意图 66 AppCan模拟器 67 Mac Mini服务器 68 AppCan SDK套装管理后台-项目列表 69 AppCan SDK套装管理后台-项目管理 69 AppCan SDK套装管理后台-引擎升级 70 4.1.1.5.3. 移动业务管理平台(APPCAN EMM) 71 4.1.1.6 前端应用建设方案 78 4.1.1.6.1. 机票预订 78 4.1.1.6.2. 订单管理 82 4.1.1.6.3. 航班动态 86 4.1.1.6.4. XXX商店 90 4.1.1.6.5. 会员注册\登录 93 4.1.1.6.6. 常用乘机人管理 95 4.1.1.6.7. 机票验真 97 4.1.1.6.8. 促销专区 98 4.1.1.6.9. 更多服务 99 4.1.1.6.10. 主页 103 1、 功能性:主页面集成APP中所有功能模块,用户可应用功能模块快速使用需求功能。 103 2、 经济性与宣传性:通过轮播图、广告、促销信息、资讯等展示形式满足XXX航空的宣传需求与广告需求,达到增加收益的目的。 103 3、 美观性:页面设计根据XXX航空整体UI设计思想为依据进行设计,使用户一目了然具备XXX航空的代表性和与其他航空公司的差异化,在此基础上进行深入设计,如根据季节设计清爽的界面、根据时下热播电影设计主题界面等。 103 4.1.1.7 后台管理系统建设方案 104 4.1.1.6.1. 移动平台业务管理系统 105 (1) 应用趋势统计 110 4.1.1.6.2. 移动平台会员管理中心 123 4.1.1.8 非功能性方案 126 4.1.1.7.1. 跨平台解决方案 126 AppCan应用引擎构成图 126 4.1.1.7.2. 消息推送解决方案 127 4.1.1.7.3. 消息/数据可靠性和即时性解决方案 129 4.1.1.7.4. 大数据推送解决方案 129 4.1.1.7.5. 用户操作行为分析解决方案 130 HTML5中国统计分析案例图 132 4.1.1.7.6. 业务系统整合解决方案 132 4.1.1.7.7. 大并发时保证后台业务系统可用性解决方案 136 4.1.1.7.8. 性能解决方案 137 4.1.1.7.9. 接口解决方案 139 4.1.1.7.10. 易用性解决方案 139 4.1.2 软件及硬件配置方案 141 1. 硬件配置 141 2. 软件配置 142 (1) 软件安装配置 142 (2) 软件版本要求 142 4.1.3 项目开发组组成及各成员职责分配方案 144 4.1.3.1. 项目工作方法 144 4.1.3.2. 项目组织结构 145 1. 项目实施领导小组 145 2. 项目经理 146 3. SQA组 146 4. 产品设计组 146 5. UI设计组 146 6. 手机端开发组 147 7. 后台系统开发组 147 8. 测试验收组 147 9. 角色和责任 147 4.1.3.3. 关键人员简历 150 4.1.4 项目管理方案 150 4.1.4.1. 项目例会 150 4.1.4.1.1. 项目协调会 150 4.1.4.1.2. 项目启动会 150 4.1.4.1.3. 现场安装前的工程协调会 150 4.1.4.1.4. 试运行前的工程协调会 151 4.1.4.2. 工作文档评审 151 4.1.4.2.1. 设计评审时机 151 4.1.4.2.2. 设计评审的形式 152 4.1.4.2.3. 设计评审的准备 153 4.1.4.2.4. 设计评审的实施 153 4.1.4.2.5. 对发现问题的处理和跟踪措施 153 4.1.4.2.6. 质量记录的控制 154 4.1.4.3. 项目风险控制 154 4.1.4.3.1. 管理风险 154 4.1.4.3.2. 技术风险 155 4.1.4.3.3. 人员风险 155 4.1.4.4. 项目质量管理 156 5.1.4.4.1. 质量管理过程 156 5.1.4.4.2. 质量管理组织 156 SQA组需参与的关键评审工作任务表 157 4.1.4.5. 变更管理 158 4.1.4.5.1. 需求分级管理 158 4.1.4.5.2. 全生命周期变更管理 159 4.1.4.5.3. 需求变更管理原则 160 4.1.4.5.4. 需求变更应对方法 161 4.1.5 项目实施方案 163 4.1.5.1. 实施计划日程表 165 4.1.5.2. 实施计划表 166 4.1.5.3. 阶段工作及成果 168 4.1.5.4. 项目进度保障措施与办法 170 1. 定义项目成功的标准 170 2. 识别项目的驱动、约束和自由程度 171 3. 定义产品发布标准 171 4. 沟通承诺 171 5. 计划中,在质量控制活动后应该有修改工作 171 6. 为过程改进安排时间 172 7. 管理项目的风险 172 8. 根据工作计划而不是日历来作估计 172 9. 不要为人员安排超过他们80%的时间 172 10. 记录你的估算和你是如何达到估算的 173 11. 记录估算并且使用估算工具 173 12. 遵守学习曲线 173 13. 考虑意外缓冲 173 14. 录实际情况与估算情况 173 15. 只有当任务100%完成时,才认为该任务完成 174 16. 公开、公正地跟踪项目状态 174 4.1.6 质量控制、质量保证方案 175 4.1.6.1. 项目质量管理的关键 175 4.1.6.2. 本项目质量保证措施 175 4.1.6.3. IT项目质量管理的目标和质量控制 177 4.1.7 系统安全性方案 179 4.1.7.1. 安全性设计原则 179 (9) 系统对内网服务及对外网服务功能要求独立发布,并提供安全、可靠的权限控制。 179 4.1.7.2. 服务器安全 179 4.1.7.3. 移动应用安全 179 4.1.7.4. 终端认证 180 4.1.7.5. 终端授权 181 4.1.7.6. 终端证书 181 4.1.7.7. 本地安全存储 181 4.1.7.8. 数据传输安全 181 4.1.7.9. 数据库安全机制 182 4.1.7.10. 容错机制 182 4.1.7.11. 数据同步 183 4.1.7.12. 服务器集群和负载均衡 183 4.1.7.13. 防火墙 184 4.1.8 项目交付定义 185 4.1.9 项目验收方案 186 4.1.9.1. 验收方案 186 1. 验收目的 186 2. 验收对象 186 3. 项目验收的前提条件 186 (1) 所有建设项目按照合同要求全部建成,并满足使用要求; 186 4. 验收方法 187 5. 验收步骤 187 6. 验收程序 188 7. 验收依据 189 8. 验收内容和标准 190 9. 验收结论 191 10. 项目交接 192 4.1.9.2. 测试方案 193 4.1.9.2.1. 测试内容设计 193 4.1.9.2.2. 测试阶段规划 198 V模型图 198 4.1.9.2.3. 测试工作流程 201 4.1.9.2.4. 测试结果评价与测试工具 208 (1) 项目汇报文件 210 (2) 测试方案 210 4.1.9.2.5. 测试人员名单 211 4.1.10 本期项目完成交付后,技术服务计划、维护、承诺及费用 212 4.1.10.1. 概述 212 4.1.10.2. 服务内容 213 1. 咨询服务 213 2. 应用系统的故障响应 213 3. 应用系统辅助操作 213 4. 应用系统的维护服务 213 5. 交流和培训 213 6. 应用系统业务调整 214 7. 应用系统软件升级 214 4.1.10.3. 支持机构 214 1. 咨询服务组 214 2. 咨询服务专家组 214 4.1.10.4. 支持方式 215 1. 现场维护 215 2. 热线电话咨询 215 3. 咨询服务网站 215 (1) 远程登录诊断维护 215 4.1.11 人员培训计划、技术转移方案 216 4.1.11.1. 培训方案 216 4.1.11.1.1. 培训对象和内容 216 4.1.11.1.2. 培训目的 217 4.1.11.1.3. 培训原则与培训质量保证体系 218 (1) 培训的师资力量 219 4.1.11.1.4. 培训方式 220 4.1.11.1.5. 培训大纲 220 4.1.11.1.6. 培训组织及技术力量安排 222 4.1.11.1.7. 培训组织方案 223 4.1.11.2. 技术转移方案 225 4.1.12 预期系统性能状况,后续升级扩展方案和计划建议 227 4.1.12.1. 移动端响应标准 227 4.1.12.2. 系统响应标准 227 4.1.12.3. 优化办法 227 4.1.12.4. 系统批处理效率 228 4.1.12.5. 并发用户下的系统性能 228 4.1.13 其他资料 229 4.1.13.1. 典型案例 229

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值