绪论:1 软件的定义 :软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需的数据,以及有关描述程序操作和使用的文档(R. S. Pressman)2 软件的特征:软件与硬件的不同软件开发不同于硬件设计软件生产与硬件制造不同软件维护不同于硬件维修软件是逻辑的,而不是物理的软件开发与人关系密切软件开发成本大软件生产是简单的拷贝软件不会磨损和老化软件受环境影响大软件维护易产生新的问题3 出现软件危机的原因:客观:软件本身特点逻辑部件规模庞大、复杂度高主观:不正确的开发方法忽视需求分析个人化方式:软件开发=程序编写轻视软件维护4 北大西洋公约组织(NATO ) 联邦德国第一章1 软件生存周期的主要活动需求分析明确需要解决的问题(从用户的视角)建立需求模型:功能、性能、约束、接口等软件分析从开发人员的视角对软件进行分析建立分析模型:软件的逻辑模型软件设计确定软件的总体结构和各部件的数据结构和操作建立软件设计模型:考虑实现技术和平台编码用程序设计语言将设计文档翻译成源程序建立软件实现模型:包含现有软件构件包软件测试发现程序中的错误、提高软件质量单元测试、集成测试、确认测试、系统测试运行维护2 什么是过程?围绕软件开发所进行的一系列活动3 瀑布模型特点:特点1 阶段的顺序性和依赖性2 推迟实现的观点3 质量保证的观点4 快速原型模式特点:特点1“逼真 ”的原型可以使用户迅速作出反馈2 循环回溯和迭代:非线性模型3使用快速开发工具5 基本的软件模型:增量模型 (incremental model )螺旋模型 (spiral model )构件集成模型 (component integration model)6 敏捷开发应循的12 条原则尽早、不断地提交有价值的软件允许改变需求,利用变化来为客户创造优势尽快、不断地提交可运行的软件在业务人员和开发人员必须天天都在一起工作以积极向上的员工为中心建立项目组,提供环境和支持,并信任他们的工作在团队内部重视面对面的交流依据可运行软件来评估项目的进展提倡可持续的开发时刻关注技术上的精益求精和好的设计,以增强敏捷能力简单是最根本的最好的构架、需求和设计出于自组织团队每隔一定时间,要反省如何才能更有效地工作,然后作相应调整7 可行性研究内容,步骤:内容:经济可行性技术可行性运行可行性法律可行性1 对当前系统进行调查和研究1 弄清当前系统2 导出新系统逻辑模型2 导出新系统的解决方案1设计不同的解决方案3 提出推荐的...