Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
楼主: bili

软件架构应该做些什么

  [复制链接]

该用户从未签到

发表于 2012-5-12 15:42:18 | 显示全部楼层 |阅读模式

    软件架构是在软件需求出来之后,软件构建开始之前的工作,架构师应该确定的事情有:
1、程序组织
架构应该定义程序中的主要构造块。根据程序规模不同,各个构造块可能是单个类,也可能是由多个类组成的系统。每个构造块实现一个高层功能。并且每个需求都至少有一个构造块覆盖它。
定义各个构造块之间的通信规则和依赖规则
2、主要的类
架构应该详细定义或写出所用的主要的类。并指出该类如何与其他类交互。
架构不需要对所有类进行说明,使用82法则:对构成系统80%功能的20%类进行说明
3、数据设计
架构应该说明清楚用到的数据表的设计,并且描述为何做出这样的选择
4、业务规则
对特定的业务规则(比如:客户信息的更新时间不能超过30秒)要有架构方面的描述(比如30秒内对客户端进行信息同步)
5、用户界面设计
架构应该有详细的用户界面,好的用户界面直接关系到功能的实现和软件的最终效果
6、资源管理
架构应该对稀缺资源有管理计划。比如数据库连接,线程,句柄等的使用。有可能需要设计一个“资源管理器”的模块
7、安全性
架构应该描述用户据输入数据,cookie,配置文件等的安全性说明
8性能
应该根据需求文档中对性能的描述来提供估计的性能数据,并且说明为什么架构师相信能达到性能目的。或者为什么有的性能指标无法达到
9、可伸缩性
架构应该说明系统如何应对以后用户数量,服务器数量,网络节点数量,数据库记录数,数据库记录长度,交易量等增长的需求。
10、互用性
如果系统与其他软件或硬件有共享资源,架构应该说明如何完成这项功能
11、国际化/本地化
系统式是否支持国际化,如何在与用户交互的模块中实现国际化
12、输入输出
架构应该详细定义读取策略
13、错误处理
有人估计程序中高达90%的代码是用来处理异常和错误的,意味只有10%的代码是用来处理常规情况的。
14、容错性
容错是增强系统可靠性的技术,如果出现了错误是转入“部分运转”还是“功能退化”?
15、架构的可行性
架构师应该论证自己这个系统设计的可行性
16过度工程
即健壮性。架构应该指出哪些类哪些模块需要进行过度工程(健壮性测试),哪些类或模块只需要做出最简单的工作性能
17、关于买还是造
一些软件,开源代码,处理程序,是使用现货采购还是自己定制开发
18、关于复用
如果使用业界已经存在的软件,开源代码等资源,应该说明清楚如何对这些东西进行加工。
19、变更策略
架构应该清楚描述处理变更的策略。架构应该列出已经考虑过的可能会有变更的需求或者可能增强的功能。并提供处理情况,比如使用版本号进行控制,或者将代码设计成可动态添加新数据
20、架构的总体质量
架构应该清楚描述其做的所有主要决策的动机明确指出有风险的地方
转自:疯狂软件
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-3-29 06:12 , Processed in 0.294890 second(s), 35 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表