初做系统设计,积累一些心得,大家一起讨论。
1、 关于需求:
初做系统设计,容易先入为主,收集需求的时候就考虑人力,技术等原因,在很前面的就把某些功能砍掉。
如果这样分析问题,整个系统就没有全貌,容易出现需求遗漏,设计不清楚,整个系统不完全,后续无法扩展。
A、 收集需求时,应该梳理系统全景图,业务场景,输入,输出,流程描述等。
B、 尽量用客户的语言,而不是抽象后的设计语言。用客户化的语言方便和客户做需求澄清,同时避免过早提炼设计导致需求变形。
C、 做需求排序。
D、 需求收集清楚后,映射到具体的系统架构/功能组件上,评估工作量。
E、 工作量评估出来之后,根据工作量和需求排序裁剪功能和需求。
2、 关于系统架构:
A、 需求澄清之后,抽象成系统架构,常用UML,0/1层架构图等工具。
B、 根据需求列出功能全景。
C、 列出关键技术点。
D、 做竞争分析,业界是否有开源项目分析。
E、 对业务在做系统架构时,对功能和技术要做足够的抽象,抽象层次不充分,后续考虑系统的扩展性会极大受限。
3、 技术选择:
选择合适的技术,这块需要经验积累。有经验积累才了解每种技术的优劣以及和业务的适合度。而同时因为设计师本身对某项技术有积累,而倾向于选择熟悉的技术。
这块建议重点参考业界经验。每项技术有优势,也必然有坑。
A、 编程语言方面:
对系统性能要求高,优先考虑C/C++。
企业级应用,优先考虑JAVA。
要求快速开发,可以考虑PYTHON。
B、 组件/框架:
各种开源框架很多Spring,OSGi,MVC,ESB等。
要充分考虑系统的扩展性,选用成熟的组件框架。这块对于JAVA程序员来说,比较容易理解,C/C++程序员需要转变思路。
C、 系统
选择比较少,一般就是windows/linux,而且往往根据系统的应用很早就确定了。如果要支持多系统,就要考虑代码移值性,越是高级预言,一般来说,移值性越好。
4、 编码:
业界这方面很多思想,如
A、 面向接口编程
B、 组件化/模块化
C、 设计模式
D、 开放封边原则
归根结低,就是要足够抽象,足够开放,足够易扩展。
另外一个原则是在系统设计的时候就要充分考虑编码问题,以及代码框架,风格等。
分享到:
相关推荐
系统设计心得体会 系统设计是电子商务系统的核心组成部分,对于电子商务系统的设计是必须会的。系统设计包括系统规划、系统分析和系统设计三部分内容。 一、系统规划内容包括: (1) 系统建设的背景、必要性和...
学籍管理系统设计心得 学籍管理系统设计心得是指在设计和实现学籍管理系统时所获得的经验和心得。这种系统的设计需要考虑到学校学籍管理实际需要和实际中所需功能,同时也需要结合相关调查和学生基本信息、学生成绩...
操作系统课程设计 操作系统课程设计 二级文件系统 操作系统课程设计 操作系统课程设计 二级文件系统 操作系统课程设计 操作系统课程设计 二级文件系统 操作系统课程设计 操作系统课程设计 二级文件系统
龙门刨床电气控制系统的设计课程设计
《仓库温湿度监测系统的设计》 仓库环境的温湿度对于储存物品的质量至关重要,尤其是在食品、药品、电子元件等对环境条件敏感的物资存储中。本文介绍了一种利用AT89S51单片机为核心的仓库温湿度监测系统,旨在提供...
一个简单的文件系统(操作系统课程设计)主要任务是对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。文件管理具有对文件存储空间的管理、目录管理、文件的读/写管理以及文件的共享与保护功能。...
微信小程序的架构与系统设计的心得.docx微信小程序的架构与系统设计的心得.docx微信小程序的架构与系统设计的心得.docx微信小程序的架构与系统设计的心得.docx微信小程序的架构与系统设计的心得.docx微信小程序的...
网上订餐系统课程设计系列文档之-项目总结和个人总结 MyEclipse开发,Spring-Struts-Hibernate框架,MySql数据库 特别声明:文档是项目总结和我个人的原创总结,个人总结,个人总结,个人总结哦~并不含团队其他成员...
#### 一、电商系统设计心得 在电商系统设计过程中,我们需要综合考虑业务需求、用户体验以及内部流程等多个方面。以下几点是从实际工作中总结出来的心得: 1. **权限分立与互相制约**: - **概念**:在系统设计时...
提出了一种采用改进的SOM神经网络对矿井突水水源进行判别的方法。该方法把水质中的Na+、K+、Ca2+、Mg2+、Cl-、SO24-和HCO-3等7种离子的含量作为判断因素,结合改进的SOM神经网络模型,对20个水源样品进行分类。...
Linux二级文件系统设计 【开发语言及实现平台或实验环境】 C++/VC++ 【设计要求】 理解Linux的文件系统的组织;掌握常用的数据结构;系统采用两级目录,其中第一级对应于用户账号,第二级对应于用户帐号下的文件;...
### r软件系统分析与设计心得 #### 一、前言:对软件开发的新认识 在正式进入软件系统分析与设计的学习之前,大多数人可能会认为编写代码是软件开发中最困难且核心的部分。然而,通过本课程的学习,我们会发现软件...
学校教务管理系统数据库课程设计心得【模版】.pdf学校教务管理系统数据库课程设计心得【模版】.pdf学校教务管理系统数据库课程设计心得【模版】.pdf学校教务管理系统数据库课程设计心得【模版】.pdf学校教务管理系统...
总结来说,嵌入式系统中的状态机设计心得涵盖了状态定义、事件处理、消息传递、任务调度和故障处理等多个方面。工程师通过精心设计的状态机能够有效地管理嵌入式系统的复杂性和动态性,并确保系统在各种工作条件和...
微信小程序的架构与系统设计的心得.pdf微信小程序的架构与系统设计的心得.pdf微信小程序的架构与系统设计的心得.pdf微信小程序的架构与系统设计的心得.pdf微信小程序的架构与系统设计的心得.pdf微信小程序的架构与...
七、设计心得 分享设计过程中的经验、挑战和解决问题的方法,为后续项目提供参考。 八、参考资料链接 列出在设计过程中参考的相关文献和技术资源,以便进一步学习和研究。 在整个设计过程中,开发人员可能会使用如...
操作系统是计算机科学中的核心组成部分,它是连接硬件与用户之间的桥梁,负责管理和协调计算机的各种资源,以提供高效、便捷的计算服务。在这个学期的学习过程中,通过对《操作系统教程》的深入研究,我对操作系统的...
地理信息系统(GIS)的学习是一个深度探索地理数据、空间分析和信息管理的过程。通过学习,我们可以理解GIS是如何将地理数据、计算机技术与各种领域的专业知识融合,为决策提供支持的。 首先,GIS的基础知识涵盖...
从给定的信息来看,主题是围绕“课程设计心得体会”展开的。下面将对这一主题进行深入探讨,并结合可能涉及的方面来阐述相关的知识点。 ### 一、课程设计概述 课程设计是指根据一定的教学目标和教育理念,对课程的...