第一章软件制造工程的概念第一章软件制造工程的概念•软件制造工程在软件开发中的位置•软件制造工程的主要内容•软件制造工程的成果物•程序员与软件制作工程知识回顾•软件•软件的生命周期•软件工程程序+文档+数据采用工程化方法把软件作为工程产品按软件生命周期进行生产软件计划、需求分析、软件设计、软件编码、软件测试、运行维护软件工程项目流程•任务来源(项目立项、招标、中标)•建立团队•负责人制定计划(进度计划)•开发(需求-设计-编码-测试-运行维护)•上步需要反复•对小型项目流程简单1软件制造工程在软件开发中的位置•需求分析工程•设计工程(外部设计、内部设计)•制造工程(程序设计、程序编码、单元测试)•测试工程(组合测试、系统测试、运行测试)•运行与维护(应用安装、运行、维护)需求和设计工程属于上流工程制造工程属于中流工程测试和应用安装属于下流工程2软件开发过程的主要作业内容开发工程目的和处理内容需求分析工程需求分析系统计划•确定系统开发的目的,做出软件系统的开发计划。•在需求分析基础上明确系统构想模型和处理要求,作出系统功能概要说明,确定系统能够实现的范围。设计工程外部设计(概要设计)•系统功能概要处理的具体化,作出用户看得到的部分系统要件的基本设计(如系统窗体显示和外部接口等方面的设计)。内部设计(详细设计)•进行数据库及其文件系统的设计。•进行系统内部结构及其处理要求的详细设计(程序处理概要,模块功能说明等)。制造工程程序制造(程序设计、程序编制、单元测试)•按照各个程序的处理概要,做出程序单元设计说明书。•按照程序单元设计说明书,进行程序编码。•实施程序单元测试,验证各个程序单元的处理功能。测试工程软件测试(组合测试、系统测试、运行测试)•为提高软件质量,按以下顺序进行测试。•组合测试:各个子系统内的程序单元的组合测试。•系统测试:各个子系统连接起来,全系统的综合测试。•运行测试:在用户环境下进行实际运行环境的测试。应用安装移植安装运行评价•处理在用户环境中运行时所发现的问题。•对与新系统有关的所有人员(客户)进行新系统培训。•实施导入新系统作业,满足项目初期所确立的需求,使客户满意。外部设计的知识回顾外部设计:主要是从用户的立场出发,明确如何使用系统,他通过对用户和系统间的界面、作业流程的精心设计,达到可用和易用的目标;外部设计书所包含的内容:系统的硬件设备构成、网络结构图、系统使用的软件、数据流程图、外部代码表、屏幕设计、报表、外部接口、数据库表、数据定义、安全设计书、系统功能图、业务流程图、系统安装计划、系统应用计划、故障对应计划、开发计划等。外部设计的知识回顾结构化设计模型:过程设计接口设计体系结构设计数据设计内部设计的知识回顾内部设计:从开发者的立场出发,为实现需求和外部设计的目标,对系统内部的构造、功能、性能等方面进行的设计。内部设计书包含:共通程序模块设计书、共通用表设计书、出错处理设计书、程序设计书、物理数据库定义、数据库容量/系统性能分析、系统测试计划、命名规则、程序开发指南、开发环境、开发计划。程序设计是内部设计的部分。程序设计过程程序设计详细设计书理解程序设计作业实施程序设计书作成程序单元内的功能模块分割模块功能说明及处理内容说明程序功能层次图及模块关联说明定义公共变量和重要变量程序编制过程程序编制详细设计书或程序设计书的理解PCL作成(程序测试清单)程序编制单元测试•又称为“模块测试”•利用PCL确定程序的检测点•利用各种数据验证模块功能•通常由编码的程序员担任此工作3软件制造工程的成果物详细设计结果的确认确定从事制造工程作业的开发体制作出开发日程表作出开发计划并检查开发计划开发准备工作按阶段分析其作业内容及成果物3软件制造工程的成果物程序设计模块划分做出程序功能结构图做出程序处理追加功能说明书作出模块功能说明书程序设计结果的检查程序处理概要图程序概要说明书程序追加处理说明书程序功能结构图模块功能定义书工作缓冲区格式定义书3软件制造工程的成果物程序代码编制(程序编制)程序编码(按用户需求选择程序编制语言)程序编译程序代码的检查源程序清单3软件制造工程的成果物程序单元测试写出程序测试项目表(PCL)程序测试项目的检查做出测试数据实施每个程序的单元测试填写问题管理表程序检测清单(PCL)问题管理表(B票)3软件制造工程的成果物开发结束工作作程序单元测试报告程序员与软件制造工程•程序员的想像力与软件开发的质量•开发团队与协作精神•交流与沟通的重要性思考:•作为一个程序员应该怎样与开发小组的人员进行交流?•如何提高自己的团队协作意识?