1、 软件生命周期
软件定义时期(问题定义阶段、可行性研究阶段、需求分析)、软件开发时期(摘要、详细、编码、测试)、运行维护时期
2、 软件过程模型定义
(1) 软件过程:
规定了完成各项任务的工作步骤,完成一系列任务的框架。
(2)模型:
没有通用性,要根据实际情况而定。
3、软件工程过程模型
(1)瀑布模型
举例:
工作清单:功能(需求分析)
其他说明(例如:结合用户的实际情况,界面简洁、易操作等)(需求分析)
开发工具(概要设计)
开发环境(概要设计)
工作量(如何具体工作)(概要设计)
写代码思考(详细设计)
写代码(实现)
检测(测试)
(交付)
(维护)
特点:
每个阶段之间有顺序性、依赖性(实际的瀑布模型是有“反馈环”的,在完成后面的内容的时候,前面有问题可以及时处理)
推迟实现的观点:注重前期的准备工作
质量保证的观点:每个过程有文档并进行审核
优点:
强迫开发人员采用规范的方法
文档驱动模型
缺点:
个阶段之间反馈较少
项目的生命周期后期才鞥看到结果
灵活性不够
早期的错误可能会在后面暴露,后果比较严重
(2)快速原型模型:获取用户的主要需求后,快速建立一个原型系统。
类型:
探索型原型:需求分析阶段,弄清用户的需求
实验型原型:设计阶段,考核设计方案是否合理
演化型原型:得到用户认可后不断扩充为目标系统
步骤:
快速分析:与用户配合确定需求
构造原型
运行原型:发现问题、消除误解
评价原型:提出修改意见
修改
优点:克服瀑布模型的缺点(最后才能看到效果)减少由于需求不明确带来的缺点
缺点:连续的修改可能会降低软件的质量
(3)增量模型
特点:一个构件一个构件地完成(构建之间无联系),逐步向用户提交产品。
优点:用户有足够的时间适应新产品。
缺点:加入构件不能破坏以前的系统
需求的改变,可能演化为边做边改的模型
适用范围:适用于模块化、分批次交付、一次性开发难度大的项目
(4)螺旋模型:在每一个阶段之前加上风险分析
(5)喷泉模型:迭代的方式进行
(6)RUP(统一过程)
阶段:
初始阶段(确定项目边界)
细化阶段(分析问题)
构建阶段(开发)
交付(满足用户需求)
4、软件开发过程的建模与文档
(1)项目前期:
现状分析(目标单位硬件软件两方面)、收集需求、粗略设计(高层的抽象模型)、可行性分析(技术、经济、社会等)
需求说明书:用户关于未来软件系统的功能性和非功能性需求
技术应答书:用户关心的技术问题以及未来拟应对的策略
软件任务立项报告:项目的名称、性质、目标、意义和规模等
可行性研究报告:涵盖软件立项报告,增加了可行性分析的相关信息
(2)需求分析
以用户需求为基本依据,从功能、性能、数据、操作等多个方面,对软件给出完整、准确、具体的描述,用于确定软件的规格
(3)概要设计
要把ER模型转换为逻辑模型
(4)详细设计和实现
目的、背景、定义和参考资料
程序系统的结构
每个模块的设计说明
(5)编码
(6)测试
(7)项目结束
项目开发总结报告