《软件开发的基本流程PPT.ppt》由会员分享,可在线阅读,更多相关《软件开发的基本流程PPT.ppt(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件开发的基本流程软件开发的基本流程杨少波杨少波软件开发的基本流程软件开发的基本流程在本讲中的主要知识点在本讲中的主要知识点q软件工程软件工程q软件生命周期的六个阶段软件生命周期的六个阶段q各个阶段的工作重点各个阶段的工作重点q各个阶段中人员的角色各个阶段中人员的角色qWebWeb网站开发的一般过程网站开发的一般过程1 1、软件工程、软件工程(1 1)什么是软件工程)什么是软件工程q它是一套关于软件开发各阶段的定义、任务分配、职责描述它是一套关于软件开发各阶段的定义、任务分配、职责描述的一门工程学科。的一门工程学科。q它对解决软件危机,指导人们利用科学、有效的方法来开发它对解决软件危机,指导人
2、们利用科学、有效的方法来开发软件,提高及保证软件开发的效率和质量起到了一定的作用。软件,提高及保证软件开发的效率和质量起到了一定的作用。(2 2)为什么要应用软件工程:软件业一直在探讨,如何使)为什么要应用软件工程:软件业一直在探讨,如何使软件开发实现如同传统的工业产业一样地大规模地生产软件开发实现如同传统的工业产业一样地大规模地生产 2 2、软件生命周期的、软件生命周期的6 6个阶段个阶段(1 1)制订计划阶段()制订计划阶段(PlanPlan)(2 2)需求分析()需求分析(Requirements CaptureRequirements Capture)阶段)阶段(3 3)系统分析与设计
3、()系统分析与设计(System Analysis and DesignSystem Analysis and Design)(4 4)系统实现()系统实现(ImplementationImplementation)(5 5)测试()测试(TestingTesting)(6 6)维护()维护(MaintenanceMaintenance)体现为是反复迭代,体现为是反复迭代,不断完善的开发过程不断完善的开发过程从系统的需求、总体从系统的需求、总体架构到系统中的各个架构到系统中的各个模块的具体实现模块的具体实现(3 3)在软件工程中所涉及的各个学科内容)在软件工程中所涉及的各个学科内容 软软件件工
4、工程程学学中中包包括括计计算算机机科科学学、数数学学、工工程程科科学学和管理科学等方面的知识和管理科学等方面的知识p其中的计算机科学和数学用于构造模型和算法其中的计算机科学和数学用于构造模型和算法p而而工工程程科科学学用用于于制制定定规规范范、设设计计范范型型、评评估估成成本本及及确确定权衡定权衡p而管理科学则用于计划、资源、质量和成本的管理。而管理科学则用于计划、资源、质量和成本的管理。(1 1)系统需求)系统需求p确定本系统应该具有什么功能(功能性确定本系统应该具有什么功能(功能性 非功能性以及非功能性以及环境要求)。环境要求)。p主要涉及如何获得用户的需求、描述需求和评审需求主要涉及如何
5、获得用户的需求、描述需求和评审需求(2 2)系统分析与设计)系统分析与设计q主要包括主要包括分析需求和系统设计分析需求和系统设计两个阶段,而这两个阶两个阶段,而这两个阶段是相辅相成、不可分割的。段是相辅相成、不可分割的。q一般系统设计是在需求分析之后实施的,其中的一般系统设计是在需求分析之后实施的,其中的系统系统分析分析则主要是明确应该解决什么问题,重点在于理解则主要是明确应该解决什么问题,重点在于理解问题并对理解的结果加以分析问题并对理解的结果加以分析-涉及对所实现的系涉及对所实现的系统的结构和行为两方面进行分析和理解。统的结构和行为两方面进行分析和理解。q而而系统设计系统设计则是通过某种特
6、定的平台,而达到完成整则是通过某种特定的平台,而达到完成整体软件的功能。主要包括概要设计(静态结构)和详体软件的功能。主要包括概要设计(静态结构)和详细设计(动态结构)细设计(动态结构)3 3、各个阶段的工作重点、各个阶段的工作重点这样才能使得系统设计是理性的、这样才能使得系统设计是理性的、切合应用需要的切合应用需要的(3 3)系统实现)系统实现重点在于明确所要解决的问题并采用什么技术和手段(语重点在于明确所要解决的问题并采用什么技术和手段(语言、工具、开发平台等)来实现前面的设计方案以满足用户的言、工具、开发平台等)来实现前面的设计方案以满足用户的需求(也即通常的编程阶段)。需求(也即通常的
7、编程阶段)。(4 4)系统测试(功能、性能和接口、界面等方面)系统测试(功能、性能和接口、界面等方面)q在此阶段主要是通过各种测试思想、方法和工具的具体应用,在此阶段主要是通过各种测试思想、方法和工具的具体应用,从而找出系统中各种隐藏的缺陷,最后使软件的从而找出系统中各种隐藏的缺陷,最后使软件的BugBug降低到降低到最低。最低。q一般包括单元测试和集成测试等形式(测试报告的格式:编一般包括单元测试和集成测试等形式(测试报告的格式:编号、功能名称、使用部门、使用岗位、功能描述、输入、期号、功能名称、使用部门、使用岗位、功能描述、输入、期望的输出)。望的输出)。(5 5)系统部署)系统部署(6
8、6)系统交付和维护)系统交付和维护此第五步和后面的第六步在此第五步和后面的第六步在应用中也可以应用中也可以“合二为一合二为一”4 4、开发过程中其它所应该考虑的问题、开发过程中其它所应该考虑的问题 (1 1)项目中所应该考虑的一些问题的技术实现)项目中所应该考虑的一些问题的技术实现p项目容量的项目容量的考量和评估考量和评估p相关风险评估:风险即是以下三个要素发生的机会(威相关风险评估:风险即是以下三个要素发生的机会(威胁胁-事件或行为,一般来自系统外部,可能在某些地方事件或行为,一般来自系统外部,可能在某些地方会影响系统中固有的弱点并最终造成一定的影响;弱点会影响系统中固有的弱点并最终造成一定
9、的影响;弱点-系统内部考虑之中的弱点,可能在某些地方受到威胁系统内部考虑之中的弱点,可能在某些地方受到威胁所利用;影响所利用;影响-短期与长期组织的影响,威胁碰巧利用短期与长期组织的影响,威胁碰巧利用到了弱点)到了弱点)q项目中的安全性技术的实现、项目中的安全性技术的实现、应用服务器选择应用服务器选择q异常等错误处理技术、中文处理的问题异常等错误处理技术、中文处理的问题q对数据库访问的优化和性能对数据库访问的优化和性能q项目开发中的编程规范项目开发中的编程规范-规范是对过程的约束,标准是规范是对过程的约束,标准是对产品的约束、制度是对行为的约束对产品的约束、制度是对行为的约束(2 2)项目开发
10、中团队的组建)项目开发中团队的组建因为,人员是项目成功和降低项目开发风险的主要因素,因为,人员是项目成功和降低项目开发风险的主要因素,必须加以重视。主要有两种形式的人员划分必须加以重视。主要有两种形式的人员划分(3 3)项目管理:项目管理流程和管理的主要内容)项目管理:项目管理流程和管理的主要内容5 5、了解各个阶段中的人员的角色、了解各个阶段中的人员的角色 当然,对这些具体的与当然,对这些具体的与IT项目管项目管理方面的管理理论、方法和技巧的内理方面的管理理论、方法和技巧的内容,我们目前可以不需要过多地了解容,我们目前可以不需要过多地了解!人员、管理和人员、管理和技术技术q按功能模块划分(按
11、照问题域进行拆分按功能模块划分(按照问题域进行拆分-纵向划分):纵向划分):人员之间的沟通相对比较少。人员之间的沟通相对比较少。q按组件的层次划分(按照实现过程进行拆分按组件的层次划分(按照实现过程进行拆分-横向划横向划分):人员之间的沟通相对比较多,此时项目的管理和分):人员之间的沟通相对比较多,此时项目的管理和协调工作比较大。但对人员的技术全面性要求比较低。协调工作比较大。但对人员的技术全面性要求比较低。6 6、WebWeb网站建设和开发过程网站建设和开发过程(1 1)网站建设的过程)网站建设的过程 一般将网站建设的整个过程共分为五个阶段进行,一般将网站建设的整个过程共分为五个阶段进行,即
12、即“网站策划阶段网站策划阶段”、“网站设计阶段网站设计阶段”、“网站制作网站制作阶段阶段”、“网站测试阶段网站测试阶段”和和“网站维护阶段网站维护阶段”。(2 2)每个阶段的工作内容和重点)每个阶段的工作内容和重点 请见文档说明请见文档说明 仍然为软件工程的仍然为软件工程的5 5个基个基本阶段本阶段-因为因为WebWeb网站只是网站只是软件开发中的某一特定类型软件开发中的某一特定类型(3 3)一般的制作流程)一般的制作流程请多关注网站架构请多关注网站架构分析和设计的内容分析和设计的内容 总结总结:软件开发中的软件开发中的“五个面向五个面向”-面向面向“流程流程”分析、面向分析、面向“数据数据”设计、面向设计、面向“对象对象”实现、面向实现、面向“功能功能”测试、面测试、面向向“过程过程”的管理。的管理。1 1、子曰:、子曰:“学而不思则罔,思而不学则殆。学而不思则罔,思而不学则殆。”“学而时习之学而时习之”2 2、子曰:子曰:“知之者不如好之者知之者不如好之者,好之者不如乐之者好之者不如乐之者”3 3、子曰:、子曰:“三人行三人行,必有我师焉必有我师焉”4 4、子曰:子曰:“我非生而知之者我非生而知之者,好古好古,敏以求之者也敏以求之者也”本讲的简要回顾本讲的简要回顾5 5、师者:师者:“传道、授业和解惑传道、授业和解惑”