需要明白的一些概念
项目管理需要做的事情主要就是对未来的工程进行的一些规划,主要需要规划的有需要做的事情的工作量和进度的把控以及项目进行中的各种分工。在项目开始时还没有和buyer签合同时需要先对项目有一个大概的构思,这个阶段称为inception phase,一般来说这个阶段vendor会吹点牛什么的来保证这个项目能够拿下来,但是实际情况可能不会那么理想。这个玩意确定了commercial proposal之后就可以签合同了。
接下来的步骤就是开发。在开发的过程中开发计划应该随着开发过程动态地调整,在开发完成后还需要对开发经验进行总结。
工程和项目的区别
工程是为了一个特定的目的而合作做出的东西。而项目是多个相关工程的合集。
软件工程的分类
- bespoke / commercial(COTS, commercial off the shelf)
bespoke是为了某一个特定用户定制的软件
COTS是为了多个用户开发的软件例如windows - Internal / external
Internal是给公司或者团体内部用户用的,例如办公平台之类的
external是开发给公司外部人员用的,而公司则作为服务的提供者 - as a service / ownership
当作为service的时候使用者不会下载到自己的机器上,而是给使用者的客户下载安装并且提供服务
ownership分为三种:- property:使用者拥有所有的包括源代码之类的一切关于这个软件的东西。
- copyright:使用者只有软件的使用权,下载的东西只是一个副本,一般我们用的都是这个
- copyleft:这个除了使用权,软件使用者还可以对软件进行一些功能上的修改
在现实的生产过程中这些demension可能都是杂糅在一起的,而不是说一定有一个明确的分界线。
软件工程的限制
一些软件的性能方面临界值需要考虑,另外应用的领域也需要考虑进去
milestone
软件开发过程中的关键事件
deliverable
软件开发需要交的材料
e.g.