软件设计基本流程-阿里云开发者社区

开发者社区> 黄军雷@数字化> 正文

软件设计基本流程

简介: 随着信息化和数字化的持续推进,越来越多企业和人员会涉及到软件开发业务中。了解软件设计流程成为了IT和OT、业务之间有效协作的关键基础背景知识。本文旨在让产业界的朋友对软件设计的基本流程有所了解,一是鉴别合作方的业务能力,二是便于和合作方有效协作。
+关注继续查看
The only way to do great work is to love what you do. If you haven't found it yet, keep looking. Don't settle.

随着信息化和数字化的持续推进,越来越多企业和人员会涉及到软件开发业务中。了解软件设计流程成为了IT和OT、业务之间有效协作的关键基础背景知识。本文旨在让产业界的朋友对软件设计的基本流程有所了解,一是鉴别合作方的业务能力,二是便于和合作方有效协作。

01 软件设计的静态视角

好的软件设计需要三个阶段递进,我们先讲第一个阶段:静态视角或者蓝图视角。
很多软件设计是从功能讨论开始,期望有亮点、有特色,结果很有可能是可汇报,不可使用。还有一些软件设计是从对标参考对象开始,期望有更多的功能,结果很有可能是功能比哪个都多,但员工抱怨不断。第三类常见的软件设计着手点是单个问题的拆解,结果很有可能是某个上帝可以正常使用,但在推广时各方阻力很大。建议软件设计先从人入手。

第一步:梳理业务的相关角色

  • 角色的基本信息
  • 角色的代表人员的简要信息
  • 角色的诉求

第二步:梳理角色的工作

用一句话(10 个字以内)描述每个工作。然后描述每个工作的流程,流程中的节点具有几个特性:a、有外界的信息输入;b、向其角色、系统输出信息、文件;c、与其他角色、系统有交互。

第三步:基于 IT技术的能力重新设计流程

这个环节即使选做,也是必做。选做是因为变革需要契机,有时只能把一步拆成两步,先把线下搬到线上,之后再逐渐优化。必竟是这是一次难得机会,有可能让既有的工作有质的飞跃。

第四步:整理功能列表并分类组合形成系统逻辑架构图

此时的功能需求相对清晰,将耦合性强的功能组合到一起,将独立性强的功能隔离开。整体思路与企业组织设计的思路相似。低耦合高内聚是一种追求和目标。

第五步:将逻辑架构落实为真正的软件模块架构

这时要考虑软件工程的技术问题,属于纯软件的技术领域。包括微服务、队列、数据库、缓存、容器等等软件成型组件都会被考虑进来,一起为系统添砖加瓦。

第六步:设计出部署架构、物理架构

将软件与实物部署相结合,包括网络规划、服务器规划、数据库规划、容灾备份等等。

至此,软件的静态视角设计完成,我们就拥有了软件的宏伟蓝图,就可以撸起袖子开发了。产品、UI、前端、后端、硬件、质控、质保等等一群人不亦乐乎地忙乎起来。

02 为软件降生而设计

在获得了软件蓝图之后,还需要为软件降生而设计。也就是要为软件交付、部署、上线等进行设计。包括但不限于要解决的问题如下:

  • 如何将软件分发到需要它的地方?
  • 如何让实施人员更高效地完成安装调试?
  • 如何将初始数据导入到系统中,包括用户账号、组织架构、业务流程、基础业务数据、老系统中的数据?
  • 如何提供培训让用户真正能把软件用起来?
  • ……

只有这些问题得到提前设计与做好应对设计和开发,才不至于让软件姗姗来迟,甚至错过了降生的机会。

03 为软件生存发展而设计

软件所处的环境是持续变化的。所以行业内一般认为一套业务系统用几年被淘汰掉是正常的。为什么?因为之前交付的软件是静态的!

为了让软件发展,需要让它能像孩子一样,不断了解世界,不断学习,不断改造升级自己,才能跟上企业的发展。需要做的设计包括但不限于:

  • 对既有功能测量、跟踪的能力
  • 适应访问压力增长的能力
  • 适应数据量不断增加而不被拖累的能力
  • 适应新业务变化发展的适配、扩展能力
  • 将数字化的思想引入到软件设计中
  • ……

04 总结

好的软件设计刚开始会感觉有些慢。因为一开始并没有噼里啪啦的敲代码。好的软件设计在开始阶段会不断深入谈论业务。因为失之毫厘谬以千里。软件后期修改的成本极高,包括人力成本、工期延期的风险、质量下滑的成本等。

建议

  • 让业务骨干来参与到软件的需求调研和业务设计,与供应商软件架构师们一起设计;而不是让一些“闲人”来凑热闹。
  • 主动帮助供应商了解业务,因为即使再老练的供应商也不会懂多少你企业的水深水浅。
  • 软件前期多听听阶段汇报,将上线时的一次性验收拆解成很多个小验收。将压力提前分解,让软件质量更健康。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Checksum软件的简单设计
相信大家平时在测试一些bin文件的时候,经常都会要求计算checksum值,其实就是校验和,非常的简单,比如下图这个软件: 我传入一个.bin文件,读出来的Checksum值就是0x0AD8B8。
813 0
[软考考点解析]软件设计师--常用加密与摘要算法
1. 题目 以下加密算法中,适合对大量的明文消息进行加密传输的是____。 A RSA B SHA-1 C MD5 D RC5
7 0
[软考考点解析]软件设计师--计算机常用端口号
1. 题目 若1台服务器只开放了25和110端口,则该服务器可提供____服务。 A email B WEB C DNS D FTP
9 0
《团队软件过程(修订版)》—第1章1.4节TSPi的结构和流程
TSPi从团队制定开发策略开始。首先确定在第一个周期中要开发的最小合理产品,然后,估算在每个后续周期中要增加的产品功能的规模。这种方式基本可以保证你能完成最终产品的可运行的前期版本。
1134 0
9、web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解
封装模块 #!/usr/bin/env python # -*- coding: utf-8 -*- import urllib from urllib import request import json import random import re import urllib.
2539 0
[软考考点解析]软件设计师--主存与Cache地址映射方式
1. 题目 主存与Cache的地址映射方式中,____方式可以实现任意主存的任意一块装入Cache中任意位置,只有装满才需要替换。 A 全相联 B 直接映射 C 组相联 D 串并联
8 0
[软考考点解析]软件设计师--校验码纠错
1.题目 已知数据信息为16位,最少应附加____位校验位,才能实现海明码纠错。 A 3 B 4 C 5 D 6
4 0
99
文章
5
问答
文章排行榜
最热
最新
相关电子书
更多
《Nacos架构&原理》
立即下载
《看见新力量:二》电子书
立即下载
云上自动化运维(CloudOps)白皮书
立即下载