博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
软件工程-乱弹
阅读量:6829 次
发布时间:2019-06-26

本文共 963 字,大约阅读时间需要 3 分钟。

  hot3.png

   本人软件工程毕业,虽说有2年工作经验,但也没用上啥软件工程方法,文档都是代码干出来再补,可能文章的观点纯属虚构,大概说说软件设计,至于软件管理 没有。

   设计过程来说,需求、分析、设计、编码、测试,当然按照RUP讲得,这些阶段是贯穿整个软件过程,而且不断增量迭代;
   大概分开说说,需求收集,用例图,流程图,数据字典啥的;分析阶段,领域模型,数据流图,ER图,时序图,状态图;设计阶段,逻辑架构、物理架构、运行架构、数据架构、开发架构,编码阶段、测试阶段体会不深,请参照《RUP-统一软件过程》。
   设计的各个阶段,每个阶段的建模都是阶段产品,然后输入下个阶段再搞;建模本身而言,是一种思维工具,而且不限于哪个阶段,你在需求阶段,也会做原型,画数据流图,编码的时候,也可以画状态转换图。|
  来张图:
  
   本人除了做了几个企业项目,还写了一个框架,一个中间件,先声明:下面观点纯属虚构。
   作为小程序员,具体的实施没辣么复杂,你把数据流图、领域模型做完,需求跟设计阶段就差不多完了;然后设计阶段, 把逻辑、物理、数据、开发架构做完,基本就搞完了。
   换个角度来讲,面向对象来说,对象-对象协作-组件-组件协作-系统,当然面向服务本文没有;再简单点说,确定了对象和线程,不就好了嘛 -- 你有了职责(需求),搞出对象来,对象协作应用点设计模式(其实一般用不上);然后推导出算法流程,确定线程模型,把你的对象跟线程结合,收工。
   稀里哗啦说了半天,其实你去看看ThreadPoolExecutor,辣个东西就是对象+线程,简单又好理解;要是想再了解下子,也可以瞅瞅tomcat,当然别忘了zookeeper,这两不是一个线程模型。
   来张图:
 
   最后来总结下子,确定职责、推导对象,确定算法、推导线程,这地方的算法不是数据结构+算法模式,而是解决问题的步骤,技术点来说网络IO、磁盘IO、各种计算。
  不好意思还没编完,设计就是组件+协作,线程就是充分利用cpu,其实设计里面包含线程(运行架构),但是线程模型实在太重要,如果对象设计的不好,可以慢慢重构,线程模型选择错误,就得推倒重来,当然这是基于咱小程序员来讲,最后一句,我们web开发一般不会自己处理线程模型。

转载于:https://my.oschina.net/lobo/blog/850172

你可能感兴趣的文章
CenOS5 x86下配置Nginx+keepalived主从负载均衡
查看>>
named启动脚本修改
查看>>
RHEL6.5的安装过程
查看>>
通过vftps和虚拟帐号增强ftp的安全性
查看>>
创客集结号:3D打印的材料
查看>>
Ceph
查看>>
架构的“一小步”,业务的一大步
查看>>
迭代器,生成器
查看>>
如何用二分法在有序数组中找到你想要的数字
查看>>
单向ospf
查看>>
深蓝串口调试工具2017冬季版(2.14.11)
查看>>
linux ssh_config和sshd_config配置文件
查看>>
Oracle教程之管理索引(六)--Oracle重建索引
查看>>
ubuntu编译最简环境
查看>>
回顾一个考务系统的开发
查看>>
何为云计算
查看>>
nginx安装手册
查看>>
【NetApp】snapvault 配置
查看>>
python对象-多态
查看>>
mysql 数据库导入导出方法总结
查看>>