《软件项目_开发流程1》由会员分享,可在线阅读,更多相关《软件项目_开发流程1(26页珍藏版)》请在金锄头文库上搜索。
1、软件开发流程计算机科学系软件教研室 钱 立软件项目开发与管理复 习v软件工程:3要素,目标v软件开发模型 瀑布模型 快速原型模型 增量模型v软件开发方法:SD,OO(OOA/OOD )vRUP开发模型(自学)本节提纲v软件项目开发流程v实行软件项目工程管理及项目组职能v软件项目开发阶段v管理软件开发过程v团队角色具体职责及要求软件设计思路和方法v一般过程,包括: 设计软件的功能和实现的算法和方法、 软件的总体结构设计和模块设计、 编程和调试、程序联调、测试 以及编写文档、提交程序。 软件项目开发流程v软件开发流程(Software development process)v需求分析(确认)概要
2、设计详细设计编 码单元测试集成测试系统测试维护 v需求分析(确认):需求规格说明书 v概要设计:系统用例图,用例场景 v详细设计:系统设计报告,数据库设计报告 v测试:测试用例报告 开发流程说明v1 相关系统分析员和用户初步了解需求,然后用 WORD列出要开发的系统的大功能模块,每个大 功能模块有哪些小功能模块,对于有些需求比较 明确相关的界面时,在这一步里面可以初步定义 好少量的界面。 v2 系统分析员深入了解和分析需求,根据自己的 经验和需求用WORD或相关的工具再做出一份文 档系统的功能需求文档。这次的文档会清楚例用 系统大致的大功能模块,大功能模块有哪些小功 能模块,并且还例出相关的界
3、面和界面功能。开发流程说明v3 系统分析员和用户再次确认需求。 v4 系统分析员根据确认的需求文档所例用的界面 和功能需求,用迭代的方式对每个界面或功能做 系统的概要设计。 v5 系统分析员把写好的概要设计文档给程序员进 行详细设计,程序员根据所例出的功能一个一个 的编写。 v6 测试编写好的系统。交给用户使用,用户使用 后一个一个的确认每个功能,然后验收。 实行软件工程项目管理v项目经理(负责人):项目经理(负责人)对整 个项目负完全责任,是指导、控制、管理和规范 某个软件和软/硬件系统建设的人,项目经理(负 责人)是最终对客户负责的人。v软件项目经理(负责人):软件项目经理(负责 人)对一
4、个项目的所有软件活动负完全责任,控 制一个项目的所有软件资源,按照软件约定与项 目经理(负责人)打交道。v软件工程组: 软件工程组是负责一个项目的软件 开发和维护活动(例如:需求分析、设计、编程 和测试)的团队(包括管理人员和技术人员)。软件工程项目组v系统工程组:系统工程组是负责下列工作的人( 既有经理也有技术人员)的团队:规定系统需求 ;将系统需求分配给硬件、软件和其它成分;规 定硬件、软件和其它成分之间的界面;以及监控 这些成分的设计和开发以保证它们符合其规格说 明。v系统测试组:系统测试组是一些负责策划和完成 独立的软件系统测试的个人(既有经理又有技术 人员)的团队,测试的目的是为了确
5、定软件产品 是否满足对它的要求。软件工程项目组v软件质量保证组SQA:软件质量保证组是一些计 划和实施项目的质量保证活动的个人(既有经理 又有技术人员)的集团,其工作的目的是保证软 件过程的步骤和标准得到遵守。v软件配置管理组SCM:软件配置管理组是一些负 责策划、协调和实施软件项目的正式配置管理活 动的个人(既有经理又有技术人员)的集团。软件项目阶段v项目计划阶段需求分析阶段软件开发阶段测试阶段部署运行阶段完成一、项目计划阶段v项目计划草案和风险管理计划作为第一步,当有 一个商业机会后,根据公司高层负责制定的初步 商业计划书来完成项目的计划草案,确定、分析 项目风险并确定其优先级,还要制定风
6、险解决方 案。v本阶段的目的是确立产品开发的经济理由。v当确定开发之后则制定软件开发计划、人员组织 结构定义及配备、过程控制计划。1.1项目具体计划v(1)项目计划草案项目计划草案应包括产品简介、产品 目标及功能说明、开发所需的资源、开发 时间和里程碑。v(2)风险管理计划就是把有可能出错或现在还不能确定 的东西列出来,并制定出相应的解决方案 。风险发现得越早对项目越有利。1.2项目具体计划v(3) 软件开发计划 软件开发计划的目的是收集控制项目时所需的 所有信息,项目经理根据项目计划来安排资源需 求并根据时间表跟踪项目进度。项目团队成员根 据项目计划以了解他们的工作任务、工作时间以 及他们所
7、依赖的其他活动。可将计划分成总体计划和详细计划,总体计 划中每个任务为一个里程碑,详细计划中必须将 任务落实到个人。软件开发计划还应包括产品的应收标准及应 收任务(包括确定需要制订的测试用例)。1.3项目具体计划v(4)人员组织结构定义及配备常见的人员组织结构有垂直方案、水平方案 、混合方案。垂直方案中每个成员充当多重角色 。水平方案中每个成员充当一到两个角色。混合 方案则包括了经验丰富的人员与新手相互融合。 具体选择根据人员实际技能情况进行选择。v(5)过程控制计划过程控制计划的目的是收集项目计划正常执 行所需的所有信息,用来指导项目进度的监控、 计划的调整,确保项目按时完成。二、需求分析阶
8、段v需求分析阶段的目的是在系统工作方面与 用户达成一致。 (1)软件需求规约详细说明系统将要实现的所有功能。 (2) 用户界面原型可以有三种表示方法: 图纸(在纸上)、 位图(绘图工具)、 可执行文件(交互式)。 三、软件开发阶段 v本阶段从物理上实现目标系统。一般采用了面向对象方法 。v(1)软件架构设计说明软件的组织结构、部署结构及运行环境。v(2)类设计定义类之间的关联和类的属性、方法。v(3)数据库设计定义数据库表之间的关联和各个表的字段。v(4)编码和单元测试按照设计文档进行编码,每完成一个模块应进行单 元测试。v(5)集成系统按软件组织结构的要求将各个子系统组合起来。四、测试阶段v
9、测试的目的是在发布之前找出程序的错误。包括 :核实每个模块是否正常运行(参考设计文档) 、核实需求是否被正确实施(参考需求文档)。v(1)测试计划收集和组织测试信息,为测试工作提供指导v(2)测试数据尽量使用真实数据。v(3)测试报告记录测试结果,详细描述问题,提出解决办法 。v(4)帮助文件和用户操作手册五、管理软件开发过程v有以下几方面地工作: (1)组织会议讨论会议、总结会议等。 (2)评审程序对各个阶段的工作结果进行审核。 (3)协调人员 (4)配置管理使用一些配置管理工具进行开发文档管理,如:visual sourcesafe(VSS),teamsouce等 。六、各参与角色具体职责
10、及对要求v(1) 项目经理 职责: 1、制定产品的目标。 2、制定各个工作的详细任务表,跟踪这些任务的执行 情况,进行控制。 3、组织会议对程序进行评审。 4、综合具体情况,对各种不同方案进行取舍并做出决 定。 5、协调各项目参与人员之间的关系。 人员要求: 对产品有激情,具有领导才能。 对问题能正确而迅速地做出确定。 能充分利用各种渠道和方法来解决问题。 能跟踪任务,有很好地日程观念。 能在压力下工作。六、各参与角色具体职责及对要求v(2)系统分析员 职责: 1、了解用户需求,写出软件需求规约。 2、建立用户界面原型。 人员要求:担任系统分析员的人员应该善于协 调,并且具有良好的沟通技巧。担
11、任此角色的 人员中必须要有具备业务和技术领域知识的人 才。六、各参与角色具体职责及对要求v(3)系统设计员 职责: 1、定义类的方法和属性以及各个类之间的关 联,画出类图。 2、进行数据库设计。 人员要求:掌握面向对象分析与设计技术,统 一建模语言(uml)。六、各参与角色具体职责及要求v(4)程序员 职责:按项目的要求进行编码和单元测试。 人员要求:良好的编程技能和测试技术。v(5)测试员 职责:执行测试,描述测试结果,提出问题解 决方案。 人员要求:了解被测试的系统,具备诊断和解 决问题的技能,编程技能 课后作业v一般的软件开发流程是什么?v软件项目阶段有哪几个?v软件开发组团队有哪些成员,各成员职责 是什么?小 结v软件开发流程v软件项目管理v软件项目各阶段v软件开发组团队成员职责及人员要 求Q&A