注:本文来自深圳万博培训资料,请勿转载
1.1 系统开发和运行基础知识
n软件:程序、数据及其相关文档的集合
n软件危机:软件开发和维护中遇到的一系列严重问题
1.2 软件生存周期
n软件定义:问题定义、可行性研究、需求分析
n软件开发V模型: 需求分析、概要设计、详细设计、编码
对应:(验收测试、系统测试、集成测试、单元测试)
1.3 软件开发方法
n系统分析和设计方法:结构化方法、面向对象方法
n过程方法:瀑布模型、螺旋模型、原型法、迭代法
快速原型模型
n用原型过程来代替全部开发阶段
n需要强有力开发工具和环境支持
n很快给客户演示,适合做产品生命周期模型
瀑布模型
n需求明确、不需二次开发,也适合做产品生命周期模型
喷泉模型
n无明显边界各阶段可交叉进行,反映软件并行性
n模型强调增量开发,分析一点,设计一点,并不要求一个阶段彻底完成,整个过程是一个迭代的逐步提炼的过程
n不能完整定义所有需求、计划多期开发
n适用于面向对象开发
RUP(软件统一过程)是一种过程方法
n信息系统项目生命周期的一种
n属于迭代模型,分为初始、细化、构建和交代四个阶段
极限编程技术XP
n开发软件的螺旋式轻量级方法,将复杂开发过程分解为一个个简单小周期
n适合小型或中型软件开发团队,客户需求模糊或多变
1.4 风险定义
n风险同人们有目的的活动有关,同未来的活动有关,同人们变化的行为方式有关。风险具有两大属性:可能性和损失,
1.5 面向对象的基本概念
n面向对象=对象(object)+类(classification) +继承(inheritance)+通信(communication with messages)
n对象(object)对象是指一组属性以及这组属性上的专用操作的封装体。
n属性(attribute)通常是一些数据,有时它也可以是另一个对象。每个对象都有它自己的属性值,表示该对象的状态。对象中的属性只能通过该对象所提供的操作来存取或修改。
n操作(operation)(也称方法或服务)规定了对象的行为,表示对象所能提供的服务。
n封装(encapsulation)是一种信息隐蔽技术,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。
n类(class)类是一组具有相同属性和相同操作的对象的集合。一个类中的每个对象都是这个类的一个实例(instance)。
n继承(inheritance) 继承是类间的基本关系,父类中定义了其所有子类的公共属性和操作,在子类中除了定义自己特有的属性和操作外,可以继承其父类(或祖先类)的属性和操作意义:实现代码的重用。
n消息(message)消息传递是对象间通信的手段
n多态性:多态性(polymorphism)是指同一个操作作用于不同的对象上可以有不同的解释,并产生不同的执行结果。
1.6 UML概述:
n是一种标准化的图形建模语言,它是面向对象分析与设计的一种标准表示。由以下几个部分构成:视图(views)、图(Diagrams)、模型元素(Model elements)、通用机制(general mechanism)
1.7 软件测试
n白盒测试(又称结构测试)把测试对象看作一个透明的盒子,测试人员根据程序内部的逻辑结构及有关信息设计测试用例,检查程序中所有逻辑路径是否都按预定的要求正确地工作。
n黑盒测试(又称功能测试)把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能需求。
1.8 单元测试 (Unit Testing)
n单元测试又称模块测试,它着重对软件设计的最小单元(软件构件或模块)进行验证
n单元测试根据设计描述,对重要的控制路径进行测试,以发现构件或模块内部的错误
n单元测试通常采用白盒测试,并且多个构件或模块可以并行进行测试
1.9 集成测试(Integrated Testing)
n集成测试 也称组装测试、联合测试
n经单元测试后,每个模块都能独立工作,但把它们放在一起往往不能正常工作。
1.10 测试策略
n测试策略就是将测试分为单元测试、集成测试、确认测试和系统测试。
n单元测试是针对程序中的模块或构件,主要揭露编码阶段产生的错误。
n集成测试针对集成的软件系统,主要揭露设计阶段产生的错误。
n确认测试是根据软件需求规约对集成的软件进行确认,主要揭露不符合需求规约的错误。
n系统测试是对于基于计算机系统中的软件,将它集成到基于计算机系统中,以揭露不符合系统工程中对软件要求的错误。
1.11 软件项目管理
n对软件项目开发过程中所涉及的过程、人员、产品、成本和进度等要素进行度量、分析、规划、组织和控制的过程,以确保软件项目按照预定的成本、进度、质量要求顺利完成
nCMM (Capability Maturity Model) 持续过程能力的不断改进和提高
nISO 9001 软件开发可接受的质量体系的标准
1.12 软件(过程)能力成熟度等级
nCMM将软件能力成熟度划分为5个等级
n初始级:对过程没有定义,不可重复的
n可重复级:有纪律的过程
n已定义级:标准一致的过程
n已管理级:可预测量化的过程
n优化级:持续改进的过程
1.13 软件工程
n总体设计阶段两个阶段:1.系统设计阶段:确定系统的具体实现方案;2.结构设计阶段:确定软件结构
n三层结构:表达层(表达逻辑)<---->业务层(业务逻辑)<---->数据层(数据存储)<--->数据库
n软件工程文档:1.系统说明 2.用户手册 3.测试计划 4.详细的实现计划 5.数据库设计结果
n软件工程结构设计要求:体系结构设计简单明确,减少不必要的中间层次和模块,同时注意除去多余的联系和耦合。数据结构做到精简,成员变量意义明确,提高算法,效率高,减少功能作用类似的局部变量。
n有关耦合:尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。
n内聚要求:高内聚,低耦合
n软件结构设计的启发式规则:改进软件结构提高模块独立性,模块规模应该适中,模块的作用域应该在控制域之内,力争降低模块接口的复杂程度,设计单入口单出口的模块,早期阶段尽量对软件结构进行精化
项目的时间管理
n系统分析方法是通过计算出所有项目活动的最早、最晚开始和结束日期。考虑多种因素的影响,编制项目工期计划的方法。例如:关键路径法(CPM)、图形评审技术(GERT)和计划评审技术(PERT)。
n在面向数据流的设计中,一般把数据流图中的数据流图中的数据流划分为变换流和事务流两种
n代码行技术是定量估算软件规模的方法,由估算值(最大,最小,可能)进行加权平均算出
n数据仓库(DW)是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策
n商业智能(BI)的核心技术是逐成熟的数据仓库(DW)和数据挖掘(DM)技术
1.14 标准化和知识产权
n我国标准代号及编号由标准代号、标准发布顺序号和标准发布年号构成。
n国家标准的代号为GB,推荐性代号为GB/T。
n知识产权可分为工业产权和著作权。
n著作权(也称为版权)是指作者对其创作的作品享有的人身权和财产权。
n人身权包括发表权、署名权、修改权和保护作品完整权等。
n财产权包括作品的使用权和获得报酬权。
n发明专利的保护期为20年,实用新型专利权和外观设计专利权的期限为10年,均自专利申请日起计算。
n我国公民的作品发表权的保护期为作者终生及其死亡后50年.我国商标权的保护期限自核准注册之日起10年,可以续。
n计算机软件著作权的权利自软件开发完成之日起产生,公民的软件著作权,保护期为公民终生及其死亡之后50年,法人或其他组织的软件著作权,保护期为50年。
1.15 软件经济权利的许可使用
n独占许可使用:权利人不得将软件使用权授予第三方,权利人自己不能使用该软件。
n独家许可使用:权利人不得将软件使用权授予第三方,权利人自己可以使用该软件。
n普通许可使用:权利人可以将软件使用权授予第三方,权利人自己可以使用该软件。
n法定许可使用和强制许可使用:在法律特定的条款下,不经软件著作权人许可,使用其软件。