网络兼职招聘系统.ppt
网络兼职招聘系统,大纲,可行性分析报告 需求规格说明书 总体设计报告 详细设计说明书 总结,一、可行性分析报告,软件项目管理的任务 制定项目计划和工程进度安排 监督和检查项目实施过程 保证工程满足要求的质量标准 分析确定并排除风险 在规定的期限和预算成本内完成项目,进度,质量,风险,成本,什么是软件项目管理 为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。 软件项目管理的对象是软件工程项目,它所涉及的范围覆盖了整个软件工程过程。,用分阶段生命周期计划严格管理,二、需求规格说明书,项目计划 是一个软件项目进入系统实施的启动阶段 项目计划是一个反复的过程,只有当项目完成时计划才告一段落。,1.常用概念,检查点 (Check Point) 在规定的时间间隔内对项目进行的检查与复审工作 频度不能太高或太低,一般一周一次 目的 比较实际进展与计划进度的差异,并对项目进行调整 如:周报、周例会 学生例:每周的班会、测验、月考等,项目的里程碑(milestone) 一个项目里程碑就是一个软件过程活动的终结。在每个里程碑都应该有一个正式的可以提交给管理层的输出结果。 里程碑应代表该项目的一个特定的逻辑意义上的阶段的终结。 里程碑的两个必要特征: 与软件开发进展相关联; 在完成时必须非常明显。,基线 基线其实是一些重要的里程碑(产物) 交付产品通过正式评审后才能成为基线 基线一旦建立后,任何更改都要受到控制(基线之前的更改可以没有严格控制) 学生例:小考、中考、高考(成绩经主管部门评审后,变更受控),重要的检查点是里程碑,重要的需要客户确认的里程碑,就是基线。在我们实际的项目中,周例会是检查点的表现形式,高层的阶段汇报会是基线的表现形式,2.项目进度,项目进度 管理人员必须估算完成各项活动所需要的时间和资源,并按照一定的顺序把他们紧密组织起来。 项目进度安排通常是将复杂的整体项目分解成许多可以准确描述、度量、可独立操作的相对简单的任务,然后安排这些任务的执行顺序,确定每个任务的完成期限、开始时间和结束时间。,需要考虑的主要问题 生存周期各个阶段工作量的划分 工程进展如何度量 项目的关键路径 各个阶段任务完成标志 如何自然过渡到下一阶段的任务等。 项目可以支配的人力及资源,2.1 工作分解,工作分解的原因 可以根据细分的工作包之间的逻辑关系来实施项目 让项目组各个成员明确自己的职责,减少繁琐的协调 每个组员可以清晰地理解任务的性质和各自的目标 准确把握项目所需要的技术、人力、资金、风险,为项目计划提供基线 分解的方法 自上而下的分解 工作任务,即工作包,是项目中最小的可控制单元,2.1 工作分解,工作分解和进度管理 正常情况,各活动应至少持续1周; 对所有活动安排一个最高的时间限制(810周左右),如一项活动持续时间超过限制,就应该再次细分; 估算进度时,管理者不能想当然认为项目的每个阶段都不会出问题; 除时间外,还必须估算完成每项任务所需的资源:人力资源和其他可能的资源。,项目,可交付的成果,可交付的子成果,最低层的可交付子成果,工作任务,工作分解结构的一个例子,2.2 进度管理工具,进度管理工具 项目进度通常用一系列的图表表示,通过这些图表可以了解任务分解、活动依赖关系和人员分配情况。 常用的项目进度表示法 甘特图(Gantt) 活动网络图(PERT) 常用软件管理工具软件 MS-Project,甘特图 特点 形象地描绘了任务的分解,及每个作业的开始和结束时间,优点是直观简明、容易掌握和绘制 线段的水平线表示完成任务所需的时间 优点 表明了各任务的计划进度和当前进度,能动态反应项目的进展情况。 缺点 难以反映多个任务之间的复杂逻辑关系。,甘特图实例,任务列表,进度条,日期,PERT图 对于某事件,箭头进入表示此作业结束,箭头离开表示此作业的开始; 实线箭头表示具体存在的作业; 虚线箭头表示虚拟作业,只为了表示作业之间的依赖关系。,三、总体设计报告,背景 质量是产品的生命线,不论任何产品,质量都是极端重要的。 软件产品开发周期长,需耗费巨大的人力、物力,更必须特别注意保证产品质量。,软件质量定义 软件与明确的和隐含定义的需求相一致的程度 与明确描述的功能和性能需求相一致的程度 与文档中明确描述的开发标准相一致的程度 与任何专业开发的软件产品都应该具有的隐含特征相一致的程度,坚持进行阶段评审,3.1 软件质量管理种类,事后检验 事后检验的方式是在产品生产的最后环节进行质量检查,合格的产品准许出厂,不合格的产品作为次品处理。 全面质量管理 运用质量管理的科学理论、技术、方法,建立起贯穿于产品质量形成全过程的质量保证体系,使企业全体职工树立质量观点,提高工作质量,经济地生产用户满意的产品。 它要求从影响软件产品质量的各个方面加强对软件质量的全面管理。 权威认证 认证已经成为一个组织资质的证明,也成为买方选择合格供应方的首要考虑。 例如,CMM认证和ISO9000认证,3.2 软件质量模型,软件质量与软件的内部特性及其组合有关。要度量软件质量,就应根据这些内部特性(即软件属性)建立起软件度量模型,进而构建软件质量度量体系。,可理解性 可维护性 灵活性 可测试性,可移植性 可重用性 互运行性 轻便性,正确性、健壮性、效率、完整性、可用性、风险,(1)软件质量模型,从管理角度对软件质量进行度量的McCall软件质量模型 上述模型反映了用户在使用软件产品时的三种不同的倾向:产品运行、产品修改和产品转移。,(2)软件质量的属性,产品运行时的属性 正确性 系统满足规格说明和用户目标的程度,在预定环境下能正确完成预期功能的程度。 健壮性 在硬件发生故障、输入数据无效、操作错误等意外环境下,系统能做出适当响应的程度。 效率 为了完成预定功能,系统需要的计算资源的多少。 完整性 对未经授权的软件使用请求或数据访问的企图,系统能够控制(或禁止)的程度。 可用性 系统在完成预定功能时令用户满意的程度。 风险 按预定的成本和进度开发系统,并且使得用户满意的概率,产品修改时的质量属性 可理解性 理解和使用软件的容易程度。 可维护性 诊断和改正在运行现场发现的错误所需要的工作量大小。 适应性 修改或改进正在运行的系统需要的工作量大小 可测试性 软件容易测试的程度。,产品转移时的质量属性 可移植性 把软件从一软硬件环境移植到另一配置环境时,需要的工作量大小。 可重用性 在其他应用中该软件可以被使用的程度或范围。 互运行性 把该软件系统和另一软件系统结合起来所需要的工作量大小。 轻便性 允许软件能够从一台计算机很容易地传输到另一台需要运行的计算机上的能力。,四、详细设计说明书,对利益相关者的承诺,我们的定位,我们要做什么,我们的目标是什么,使 命,系统定位,愿 景,我们的定位,我们的使命,我们的愿景,实现虚拟的网上兼职招聘系统,确定应该如何具体的实现所要求的系统,人才潜力的发挥和知识的传播,三大模块的联系,企业,求职者,招聘网,三位一体 相互支撑,企业发布,查询岗位,共享愿景,程序界面结构,主要类的实现,程序,程序描述,整体结构,功能,性能,存储分配,注释设计,限制条件,是关键,A、客户端窗体: 尽量友好的设计,让用户尽可能地关注信息的内容主体。 B、服务器端设计: 该窗体在设计上尽量的符合人们的使用习惯,并且在出现非法操作的情况下,有相应的提示信息输出。,程序(标识符)设计说明,主程序员组 主程序员组使用经验丰富、技术好、能力强的程序员作为主程序员。同时,利用人和计算机在事务性工作方面给主程序员提供充分支持,而且保证所有通讯都通过一两个人进行。,后备程序员 后备程序员也应该技术熟练而且富于经验,他协助主程序员工作并且在必要时(主程序员生病、出差或跳槽)接替主程序员的工作。所以后备程序员必须和主程序一样优秀,一样深入了解项目。 主程序员 主程序员既是成功的管理人员,又是经验丰富、技术好、能力强的高级程序员,负责体系结构设计和关键部分的详细设计,并且负责指导其他程序员完成详细设计和编码工作 编程秘书 编程秘书负责完成与项目有关的全部事务性工作,如,维护项目资料库和项目文档,编译、连接、执行源程序和测试用例。,虽然主程序员组有很多优点,但是,我们还应看到这种组织方式固有的不切实际的地方: 主程序员既是高级程序员又是优秀管理者,但现实中这种人才很难见到。 后备程序员更难找。人们希望后备程序员像主程序员一样优秀,但他们必须坐在“替补席”上,拿着较低的工资等待接替主程序员。 编程秘书也很难找。专业的软件技术人员一般都厌烦日常的事务性工作。,现代程序员组 特点 将“主程序员组”中的主程序员的职则划为两个人来承担: 一个技术负责人,负责小组的技术活动 一个行政负责人,负责所有的非技术的决策活动,现代程序员组,大型项目的技术管理组织结构,现代程序员组,包含分散决策的组织方式,现代程序员组,优点 将管理和行政分开,有助于调动组员的积极性 行政组长和技术组长分工明确 避免了“主程序员组”中,全才主程序员难找的问题 缺点 有时行政组长和技术组长的管理权限界限不明,选择软件工程小组结构时应考虑的7个因素 待解决问题的困难程度 要开发程序的规模 小组成员在一起工作的时间 问题能够被模块化的程度 对待开发的系统的质量和可靠性的要求 交付日期的严格程度 项目要求的社交(通信)程度,软件企业的组织架构,软件企业的职位概况,五、总结,定义 “风险”是指对项目有利或不利的不确定因素 。 分类 按照风险的影响范围分类 项目风险:预算、进度、人力、资源、客户及需求等方面 技术风险:设计、实现、接口、验证和维护等方面 商业风险:无人真正需要的“优秀产品”,不符合商业策略的产品等,1.风险管理的内容,风险管理的内容,风险评估 风险识别提出一个潜在破坏项目进度的风险列表。评价风险变成现实的可能性或概率。 风险分析评估每一个风险出现的可能性及其变成现实时所造成的后果,判定风险的级别。 风险优先级按风险影响大小排出一个风险优先级,这个风险列表将作为风险控制的基础。,评估过程 评估风险后果 建立风险表,风险控制 风险管理计划制定一个应对每个重要风险的方案,同时确保每一个单独的风险管理计划之间以及与整体项目计划之间相一致。 风险化解每个重要风险所对应计划的执行。 风险监控对解决风险的过程进行监控,还可以包括识别新的风险并将其反馈到正在进行的风险管理进程中。,风险的识别 产品规模风险 与软件的总体规模相关的风险,即对于软件的总体规模预测是否准确。 需求风险 是否与用户进行了充分的交流,是否了解用户使用软件所处理的问题域,是否充分理解用户的需求,书面形式的需求分析是否得到用户的认可。 过程定义风险 与软件过程定义相关的风险 开发环境风险 与开发工具的可用性及质量相关的风险。 技术风险 采用的技术对于解决项目所涉及的问题是否是最适当的技术,技术是否成熟,是否会被淘汰等。 人员数目及经验带来的风险。 与参与工作的软件工程师的总体技术水平及项目经验相关的风险。,2.应对风险的程序和方法,规避 通过变更项目计划,消除风险或者风险的触发条件,使目标免受风险事件发生的影响。这是一种事前的风险应对策略。例如,采用更加熟悉的工作方法,澄清不明确的需求,增加资源和时间,减少项目的工作范围,尽量避免与不熟悉的分包商签约等。 转移 这种策略不消除风险,而是将项目风险的结果连同应对的权力转移给第三方(第三方应该知道这是风险并具有承受能力)。这也是一种事前的应对策略,例如,签订不同种类的合同,或者签定补偿性合同等。 弱化 将风险事件的概率或者结果降低到一个可以接受的程度,当然降低风险发生的概率更为有效。例如,选择更简单的流程,进行更多的实验,建造原型系统,增加备份设计等。 接受 指不改变项目计划或者没有合适的策略能有效地在事前应对风险,而考虑风险发生后如何应对的问题。例如,制定应急计划,进行应急储备和监控,等待风险事件发生时再随机应变。,软件配置管理(SCM) 是人们在软件工程实践过程中总结出的一套管理办法和原则。是在软件整个生命周期内管理变化的一组活动。是对工作成果的一种有效保护。 软件配置管理将伴随整个软件生存周期。 软件配置管理是在软件项目启动时就开始,并且一直持续到软件软件退役才终止的一组追踪和控制软件变动的保护性活动。 目标 使变化更准确且容易被适应,在必须变化时减少所需要花费的工作量。,配置库的结构,本章知识点总结,项目管理的任务 项目计划 项目计划的内容和方法 质量管理 软件质量模型和软件质量的属性 组织管理 项目组的组织方式及其特点 风险管理 风险管理中识别和应对风险的方法 配置管理 配置管理的内容和目的,