干软件有几年了,但基本是在技术层面,用到什么学什么,到头来零零碎碎不成体系。而且软件开发涉及到的东西也确实太多了,一直感觉象在云里雾里,看不到方向。最近看了csdn上的《四十年软件工程故事》一文,受益匪浅,觉得有必要梳理一下软件工程的知识体系结构,以便更有针对性的学习、工作。
目前认识到软件工程包括如下内容:
- 过程:规范、管理开发流程。
瀑布(Waterfall)、增量(Increment)、迭代(Iterative)、统一过程(Unified Process)、敏捷(Agile)、过程评估(CMM/CMMI); - 方法:进行架构设计、指导开发的思想。
功能分界、数据流、实体/关系、面向对象、UML、设计模式; - 技术:开发的平台、组件等开发的基础。
语言(C#、Java、Javascript...)、平台(.NET、J2EE...)、框架、数据库(设计、开发、管理)、标准(HTML、XML...)、协议(TCP/IP...)、算法; - 工具:开发的环境。
VSTS、TFS、PD、Visio等;
要学的东西真不少啊,先订个这样的方案好了:
-
方法为主;(面向对象+UML)
-
兼顾技术;(.NET2.0下的Web开发为主)
-
了解过程;(软件工程的基本概念)