什么是项目开发项目开发过程软件开发系统分析系统设计系统测试与维护项目开发项目开发:项目开发就是依据软件系统功能的需求目标,按照软件工程化的开发方法,最终实现软件系统的功能的过程。中国的项目开发现状:由于中国从事软件开发的企业绝大多数都是小型企业,人数不多,按照项目小组来形成开发团队。每个团队负责一个软件项目的开发,从分析用户提出的需求,一直到最后编码完成,并测试安装交付,都是这个小组来完成。这个小组所作的工作就是软件项目的开发工作。项目开发过程也就是软件开发过程,通常按照以下步骤来完成,每个步骤完成后,都是一个里程碑阶段,经过确认之后才能进行后续步骤:1、软件立项(是否有必要开发)2、软件开发计划(是否有能力开发)3、软件质量计划4、软件需求(系统分析)5、软件设计(系统设计)6、软件实现7、软件测试和测试状态8、软件支持维护(系统升级)系统分析(systemsanalysis):是一种问题解决技术,他将一个系统分解成各个组成部分,目的是研究各个部分如何工作、如何交户、以实现其系统目标。可行性研究的任务可行性研究的步骤成本/效益分析需求分析的任务与步骤需求获取的常用方法分析建模软件需求说明结构化分析技术面向对象分析技术需求分析的任务◦建立分析模型◦编写需求说明需求分析的步骤◦需求获取◦需求提炼◦需求描述◦需求验证联合分析小组◦用户代表、领域专家和系统分析员客户访谈◦充分准备,寻找共同语言◦循循序渐进、逐步逼近问题分析与确认◦多个来回数据建模(ER图)过程建模(VISO图)数据字典数据字典的内容数据字典的内容(1)◦数据项类目:数据的最小单位,描述数据的静态特性。数据项编号:102-01数据项名称:学号别名:学生学号简述:某学生的代码类型及宽度:字符型,8位取值范围:00000001-99999999数据字典的内容(2)◦数据流类目:由一个或一组固定的数据项组成。数据流编号:F03-01数据流名称:学籍变动申请简述:学生提出的学籍变动申请来源:学生去向:各系、院组成:申请编号+申请名称+申请日期+申请院系数据库流量:高峰流量:数据字典的内容(3)◦文件类目:描述数据的逻辑存储结构。数据流编号:F03-01数据流名称:学籍变动申请简述:学生提出的学籍变动申请来源:学生去向:各系、院组成:申请编号+申请名称+申请日期+申请院系数据库流量:高峰流量:数据字典的内容(4)◦数据“加工”条目。数据字典的内容(5)◦“外部项”条目系统设计(systemsdesign):是一种互补的解决问题技术,他将系统的组成部分重新装配成一个完整的系统。这可能包括增加、删除和改变原是系统的某些部分。根据分析阶段的E-R图对数据库进行设计:建立一个数据模式,必须满足的几个条件:-符合用户的要求,即能正确地反映用户的工作环境-与所选用的DBMS所支持的数据模式相匹配。-数据组织合理,应易操作,易维护,易理解。数据的规范化形式-在任一列上,数据项应该具有同一个属性。-在这个表中所有的行都是不相同的,即不允许有重复的组项出现。-在一个表中,行的顺序是无关紧要的。-在一个表中,每一个列(属性)有不同的名称,列的顺序也无关紧要。模块:在软件系统设计中,模块(model)是指这样的一组程序语句,它包括输入与输出、逻辑处理功能、内部信息及其运行环境。输入与输出,模块的输入来源和输出去向在正常的情况下都是同一个调用者,即模块。从调用者处获得输入信息,经过模块本身的处理后,再把输出返送给调用者。逻辑功能,模块的逻辑功能描述了该模块能够做什么样的事情,具备什么样功能,即对于输入信息能够加工成什么样的输出信息。内部信息,模块的内部信息是指模块执行的指令和在模块运行时所需要的属于该模块自己的数据。运行环境,模块的运行环境说明了模块的调用与被调用的关系。输出设计-输出设计的主要职责和目标:由计算机对输入的原始信息进行加工处理,形成高质量的有效信息,并使之具有一定的格式,提供管理者使用。-输出设计主要涉及的内容(1)输出信息使用方面的内容(2)输出信息的内容(3)输出设备(4)输出介质子系统划分:学生StudentIDNameGenderBirthDepartmentClassNativePlaceRemarkVARCHAR(12)VARCHAR220)CHARACTERCHARVARYING(8)VARCHAR(40)VARCHAR(40)VARCHAR(100)VARCHAR(100)pk俱乐部CourseIDNameLevelFather_CIDPeriodCreditHourRemarkVARCHAR(10)VARCHAR(40)CHARACTERVARCHAR(10)INTINTVARCHAR(100)pk教师TeacherIDNameGenderBirthDepartmentSpecialityResumePhotoRemarkVARCHAR(10)VARCHAR(20)CHARACTERCHARVARCHAR(40)VARCHAR(40)IMAGEIMAGEVARCHAR(100)pk场地FieldIDNameRemarkVARCHAR(10)VARCHAR(60)VARCHAR(100)pk公告BulletinIDDateTimeContentFromToIssueTimeRemarkVARCHAR(20)DATEBLOBVARCHAR(20)VARCHAR(20)DATEVARCHAR(100)pk教学信息SemesterTeacherCourseFieldTimeRemarkCHAR(5)VARCHAR(10)VARCHAR(10)VARCHAR(10)DATEVARCHAR(100)pkpkpk科研加分ScoreIDTeacherDateReasonScoreRemarkVARCHAR(10)VARCHAR(10)DATEVARCHAR(255)DECIMAL(2)VARCHAR(100)pk选课信息SemesterStudentCourseScoreRemarkCHAR5)VARCHAR(12)VARCHAR(10)DECIMAL(2)VARCHAR(100)pkpkpk综合评价SemesterTeacherEstimateRemarkCHAR(5)VARCHAR(10)VARCHAR(255)VARCHAR(100)pkpk补退选记录SemesterStudentCourseDateActionRemarkVARCHAR(10)VARCHAR(12)VARCHAR(10)DATEVARCHAR(10)VARCHAR(100)pkpkpkpk参数表KeyNoteValueRemarkVARCHAR(20)VARCHAR(100)VARCHAR(40)VARCHAR(100)pk密码表UserIDPwdGroupVARCHAR(12)IMAGECHARpk数据库设计:教师基本信息管理小类详细信息测试是程序的执行过程,目的在于发现错误;一个好的测试用例在于能发现至今未发现的错误;一个成功的测试在于发现了至今未发现的错误。换言之,测试的目的是◦想以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。◦测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。◦实施测试收集到的测试结果数据为可靠性分析提供了依据。◦测试不能表明软件中不存在错误,它只能说明软件中存在错误。应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。测试用例应由测试输入数据和对应的预期输出结果这两部分组成。程序员应避免检查自己的程序。在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。根据软件定义,软件包括程序、数据和文档,所以软件测试并不仅仅是程序测试。软件测试不仅仅是软件开发的一个独立阶段,而应贯穿于整个软件生命周期中。在整个软件生命周期中,各阶段有不同的测试对象,形成了不同开发阶段的不同类型的测试。需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。由于计算机的普及以及网络的平民化,所企业的软件应用程度已经很高,大概有:◦财务软件◦金融软件◦管理软件◦业务软件◦病毒软件◦游戏软件◦驱动开发