含义
软件 = code + data + documents
也就是软件的代码, 软件相关的输入输出等数据, 和一切相关的文档
特点
抽象的, 无形的, 逻辑实体
不会被磨损
可以移植
软件是复杂的, 难设计难实现难维护
软件是昂贵的
软件危机
进度成本估算不准确
用户通常对完成的产品不满意
软件的质量通常是不可靠的
软件的可维护性差
没有可用文档
在计算机的比例越来雨大, 但是跟不上计算机的发展
软件工程
软件的实现是一个团队完成的, 这是一个工程项目
软件工程师应该具体8条基本原则
公众感
保证客户雇主最大的利益
保证产品达到较高的水准
公正和独立的判断力
管理
职业感
同事
自己, 一生学习专业知识
客户(client)
开发者(developer)
用户(user)
具体的工作流:
需求工作流, 确定用户需求, 技术可行性经济可行性 --> 需求文档
分析工作流, 更加详细的设定, 使得从面向客户的自然语言到面向开发人员转变 --> 规格说明文档(产品将要做什么)
设计工作流, 设计文档(如何实现产品)
1) 架构设计: 将目标产品分解为模块, 明确模块之间的接口
2) 详细设计: 界面设计+数据库设计+模型设计+数据结构和算法设计
实现与集成工作流, 相关程序的源代码和适量的注释 + 附加文档(测试用例)
测试工作流, 每个工作流都要测试
1) 基于执行测试
2) 基于非执行测试
修复和维护
纠错性维护, 完善性维护, 适应性维护
退役
测试贯穿于整个过程
测试应该有开发人员+软件质量保证人员共同完成SQA
基于非执行测试
测试软件而不运行测试用例
对象: 代码+文档
方式: 读代码+评审
基于执行测试
测试软件行为的测试
正确性+实用性+可靠性+健壮性+性能
当一个软件产品被放弃时, 测试工作才可以停止
原文:http://www.cnblogs.com/weihuchao/p/6799646.html