当前位置: 首页 > news >正文

请问软件设计初期有什么辅助工具?

 
软件的设计阶段是相当重要的。一般来说,都不建议接到项目后第一时间就去考虑什么编码,怎么实现细节,而是有一个规划设计的过程。
 
设计过程本身又有很多个过程,比如类设计,就是后期的,什么UML之类的,都是关注设计的后期,而不是前期准备。
 
作为设计的最初状态,各位有什么好用的设计工具?我自己就是用txt来写思路而已,不知道这样是不是有点太落后了?
 
就算是txt写思路,也有一些框架,可以用来衡量设计的进度到达哪一步了。我自己没有一个很好的想法,就是随便乱写,谁有更好的建议?
 
-------------------------------
 
第一步是需求的分析。需求分析是从宏观上去认识产品。不管你这个产品具体怎么做,人们希望他具有哪些功能,好处。大概就是这样子。
 
这一步并不是软件开发的专业技术,而是产品营销的内容,因为一个卖得出去的产品,必须要具备竞争力,竞争力分析一般都是产品营销的一项最基本的内容。
 
第二步是制定达到需求的产品策略。这个需要检查技术上是否能够实现既定的目标。
 
第三步需要规划软件的构成。一个软件系统,必然需要各种各样的组件,将系统化为各个小组件,就能把问题细化,更利于编码实现。
 
第四步是建立开发环境。这个环境并不是说IDE而已,而是包含了测试,度量等指标的一套检验体系。
 
第五步是建立多级原型。因为开发有一个漫长的过程,这个过程如果一步到位是相当容易出现问题的。建立多个中间阶段的原型,会有助缓解开发的压力,建立更加有秩序的开发流程。
 
然后就进去正常的编码阶段。
 
第一,二步是建立宏观概念。
第三步,是分解。
 
如何把一个宏观认识转化为具体的组件?
一。面向对象法。
二。功能模块法。
 
面向对象的设计是听起来容易,却没有严格的一套策略。
因此我认为建立一套行之有效的设计策略是有意义的。
 
策略一:实体对应。比如图书管理员,对应一个编程对象。
策略二:实体部分对应,比如车子由车轮,方向盘等组合而成。
策略三:界面模型。比如操作员需要进货,出账这两个操作,把操作作为一个虚拟的物体来对应。
 
略。
 
小议对象和算法 的鸿沟:
对象是外部性质,和内部操作的有机构成。
算法是单纯的操作。
需不需要对象,在于是否需要对象提供的封装。从对象的角度,算法只是一种对象间的通信行为。
而在算法的角度,对象只是局部步骤的封装行为。
如何建立高效的算法,首先要从算法的固有特性考虑。如果局部的封装导致整体算法被迫采用一种低效率的实现模式,这么建立相关对象就是很没必要的。
如果有一个高效算法,不需要一群过度封装的对象,那么必然会需要一个简单而直接的对象。
 
 
 
 

转载于:https://www.cnblogs.com/Nobel/archive/2011/03/19/1989057.html

相关文章:

  • Global.asax.cs防注入处理
  • 26句实用英语
  • 向工作表添加 Chart 控件
  • 一些不常用的html代码
  • 关于ListView 设置OwnerData 为 True时 Items删除节点不起作用
  • 避免回车键导致的页面无意义刷新
  • sqlserver插入测试数据语句
  • 缓存各种方式
  • sharepoint 2010:关闭 list 的modal dialogs(对话框)
  • 兼容FF 加入收藏夹和设为首页
  • .NET 动态调用WebService + WSE + UsernameToken
  • WebService 简单介绍
  • hadoop: could only be replicated to 0 nodes, instead of 1
  • c 语言指针的用法 (1)
  • 新浪11,搜狐3,网易0---还是新浪博客访问量高呀
  • [数据结构]链表的实现在PHP中
  • 10个确保微服务与容器安全的最佳实践
  • CentOS 7 防火墙操作
  • HTML5新特性总结
  • JavaScript类型识别
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • SwizzleMethod 黑魔法
  • vue.js框架原理浅析
  • vue数据传递--我有特殊的实现技巧
  • webgl (原生)基础入门指南【一】
  • 测试开发系类之接口自动化测试
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 入手阿里云新服务器的部署NODE
  • 实现简单的正则表达式引擎
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​业务双活的数据切换思路设计(下)
  • #{}和${}的区别?
  • #define,static,const,三种常量的区别
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (黑马C++)L06 重载与继承
  • (六)Hibernate的二级缓存
  • (一)RocketMQ初步认识
  • (转)http协议
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .NET Core 2.1路线图
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .NET实现之(自动更新)
  • .net项目IIS、VS 附加进程调试
  • @Builder用法
  • [2016.7 test.5] T1
  • [Android]How to use FFmpeg to decode Android f...
  • [C#7] 1.Tuples(元组)
  • [Django ]Django 的数据库操作