把软件开发工程化,科学化,现代化;
软件工程适用于大型软件开发;
开发软件所需要的高成本同产品的低质量之间有
着尖锐的矛盾,叫做软件危机(Crisis);
桌面程序一个人构思了编就行了,但是企业程序
就不那么简单了;
桌面程序的特点是一般宁愿丢掉它重写;
而企业程序耗费太大,一般总是在原来基础上进行
修改,这对软件的架构,软件的模式,代码的可修改
提出了很高的要求;
工程化的思想很重要,也许你在用IDE时对new Project
还不够深刻,因为你的project简直算不上工程;
就象建筑学一样,软件工程就是指导软件开发的一个
科学理论;
软件包括程序以及开发,使用和维护程序所需要的文档;
软件生命期模型:称为瀑布模型;
可行性研究与计划,需求分析,设计,编程,测试,运行和维护;
每个阶段都要为下一个阶段提供指导下一个阶段工作的文档;
可行性研究的结果有三个:
开发;
暂时开发;
不开发;
这就类似于你怎么样说服一个商店辞退几个雇员,来购买我们
的买卖软件一样;商店的老板一定会在我们的劝说下进行依次
未来一段时间内的算帐,比如开发软件的花费会在多长时间里
从节省的雇员工资里赚回来;
需求分析是已经假定了商店老板已经决定购买我们开发管理软件
的前提下,老板和我们共同对软件的功能做一个描述;
设计阶段就是按照需求说明书的功能(人为的语言描述)来
建立软件的结构(也许是UML,也许是其他的专业文档),我们也许
会在这个阶段设计客户端到底是胖还是瘦,瘦客户的信息确认到底
放在客户端还是在web端,根据软件的具体特点做出取舍;
编程阶段就象按图纸砌墙一样;
测试就是检查编程得到的程序是不是有问题,是不是符合需求分析
的功能;
运行和维护阶段就象一栋楼在检查过关之后住了人,
平时还需要防止有人乱挖,管理水管,等等伴随这个楼一辈子的
事情;软件也会在它的一辈子里得到维护;
桌面程序的评价:正确性,效率;
企业程序的评价:可维护性,可靠性,可理解行,效率;
当然我们认为桌面程序的效率强调代码效率,
而企业程序的效率强调开发效率;
软件工具就是一个程序,可以做重复的复杂的自动工作;