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