系统开发和运行基础(软件的分类、软件生存周期、软件开发模型、软件测试、软件项目管理)
软件的分类
系统软件,如操作系统。
支撑软件,如开发工具。
应用软件,如office。
实时处理软件,一般是工业软件。
软件生存周期
1、软件定义
问题定义,落实问题的性质、工程目标和规模,明白要解决什么问题可行性研究,估计系统的成本和效益需求分析,明确系统必须具备哪些功能,用数据字典和简要算法描述系统逻辑性。
2、软件开发
概要设计,确立总体结构和模块关系,定义模块之间的接口,设计全局数据结构,制定综合测试计划详细设计,设计模块内的细节,如算法、数据结构和接口信息编码和单元测试,使用程序设计语言实现模块内功能并测试该模块综合测试。
软件开发模型
瀑布模型,自顶到下的线性模型,开发后期的测试阶段才能发现问题,增加了开发的风险快速原型模型,增量模型,先开发核心模块,其他构件逐步附加螺旋模型,适合于大型复杂项目喷泉模型,面向对象的典型开发模型结构化设计、面向对象设计耦合度:做到高内聚(模块内)低耦合(模块间)是一个较科学的做法程序控制的三种结构,顺序、选择、循环面向对象方法(OO)=对象+类+继承+通过消息的通信对象是具有特殊属性(数据)和行为方式(方法)的实体类是具有相同属性和行为的一个或多个对象的描述实例是类所描述的一个具体的对象统一建模语言UML,是一种图示建模语言,UML表示法包括事务、关系和图三种构造块。
软件测试
人工测试,也叫代码审查,可调编码错和逻辑错机器测试——白盒测试,要完全理解程序结构和处理过程,测试逻辑路径,也称为结构测试,逻辑覆盖是白盒测试的常用方法机器测试——黑盒测试,测试程序的输入输出,也叫功能测试,黑盒白盒互为补充软件调试技术一般有蛮干法、原因排除法(对分查找法、归纳法、演绎法)、回溯法。
软件项目管理
软件编码规模=(最大规模+4最可能的规模+最小规模)/6
1、进度安排工具
关键日期表。
甘特图能直观表明每个任务的计划进度和当前进度。
网络图,PERT和CPM都采用网络图,网络图找工期要找最长路径。
软件过程能力评估,ISO9000:2000和CMM(软件成熟度模型),CMM五个级别,级别三为已定义级,CMM5(5级别)达到优化级。