软件的定义:是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需
要的数据,以及有关描述程序操作和使用的文档。总之就是“软件=程序+文档+数据”
软件的特征:1. 软件是一种逻辑实体,不是具体的物理实体,2.软件的生产不同于硬件的制造,3.软件的维护不同于硬件的维修
软件生存周期的主要活动:
1.需求分析:主要弄清用户用计算机来解决什么问题2.软件分析:在系统需求模型的基础上,对需求模型分析,建立与需求模型一致的、与实现无关的软件分析模型3.软件设计:将软件分析模型转变为考虑具体实现技术和平台的软件设计模型4.编码:按照选定的程序设计语言和可复用软件构件包,把设计文档翻译为源程序5.软件测试:提高软件质量的重要手段6.运行维护:做好软件维护,使软件在整个生存周期都能满足用户的需求,延长使用寿命
瀑布模型的特点:
1.阶段性的顺序性和依赖性 2.推迟实现的观点 3.保证质量的观点 4.存在的问题
快速原型模型的优越性是逼真、快速。原型开发的方法:1原型系统只包括未来系统的主要功能及系统的重要接口2应尽量使用能缩短开发周期的语言和工具3.把原型系统作基础,通过补充和修改获得最终的实际系统
原型模型的启示就是通过对软件过程的重新安排,使之更适合于待开发的软件系统
瀑布模型特点是线性模型,每一阶段必须完成规定的文档,适用于需求明确的中、小型软件开发。快速原型模型特点是用户介入早,通过迭代完善用户需求,应用快速开发工具,适用于需求模糊的小型软件开发。增量模型特点是每次迭代完成一个增量,可用于OO开发,适用于容易分块的大型软件开发。螺旋模型特点是典型迭代模型,重视风险分析,可用于OO开发,适用具有不确定性的大型软件开发。构件集成模型特点是软件开发与构件开发平行进行,主要用于OO开发,适用领域工程、行业的中型软件开发。转换模型特点是形式化的需求规格说明书,自动的程序变换系统,适用理想化模型,尚无成熟工具支持。净室模型特点是形式化的增量开发模型,在洁净状态下实现软件制作,适用开发团队熟悉形式化方法,中小软件开发。
可行性研究的步骤:1.对当前系统进行调查和研究 2.导出新系统的洁净方案 3.提出推荐的方
案 4.编写可行性论证报告
结构化分析的基本任务是建立系统分析模型和编写软件需求规格说明书,其指导思想是抽象和分解。细化的实质就是分解。
实体联系图(E-R)可用数据对象说明来描述,数据流图(DFD)可在加工规格说明中描述,状态转换图(STD)可用控制规格说明来描述,而数据字典(DD)是三者的核心。
SD模型的组成包含数据设计,体系结构设计,接口设计,过程设计。
实体联系图和数据字典转换为数据设计,数据流图转换为体系结构设计和接口设计,状态转换图和控制规格说明、加工规格说明转换为过程设计。
模块设计的原则与方法:1.清晰第一的设计风格2.结构化的控制结构3.逐步细化的实现方法。
软件需求的定义指一个软件系统必须遵循的条件或具备的能力;一是用户解决问题或达到目标所需的条件或能力,系统的外部行为;二是系统为了满足合同、规范或其它规定文档所需具有的条件或能力,系统的内部特性。
软件需求三个不同层次:1.业务需求,这谁客户或市场对软件的高层次目标要求;2.用户需求,从用户使用的角度来描述软件产品必须完成的任务;3.功能的需求,定义软件开发人员必须实现的软件功能,完成用户的任务,满足业务功能需求。
需求分析的步骤:需求获取,需求建模,需求描述,需求验证。
常规的需求获取方法:1.建立联合分析小组2.用户访谈3.问题分析与确认
面向对象的需求建模步骤:
1.画用例图 1)确定参与者2)确定用例3)绘制和检查用例图
2.写用例规约1)用例规约的内容2)用例规约示例3)用例规约的检查
3.描述补偿规约 4.编写术语 5.调整用例模型
以用例模型为主体的需求模型为核心,外围是类/对象模型、对象-关系模型、对象-行为模型,类/对象模型描述系统涉及的全部类和对象,对象-关系模型描述对象之间的静态关系,定义了系统中对象间所有重要的消息路径,他们两者都可通过属性、操作和协作者来描述。
软件设计的目标是细化解决方案的可视化设计模型,确保设计模型最终能平滑的过度到程序代码。其中分为1.模块与构件2.抽象与细化3.信息隐藏4.软件复用
模块的独立性即模块本身的内聚和模块之间的耦合。内聚是功能角度对模块内部聚合能力的量度,耦合是对软件内部快间联系的度量。获得良好设计的关键是坚持模块的独立性。
面向对象设计任务:系统构件设计、系统元素设计
确定网络拓扑配置:1.网络物理布局2.网络节点及节点的配置与性能3.网络中的各网段宽带4.网络中的冗余路径5.节点的分类
系统元素分配到节点:1.节点容量2.通信介质宽带3.硬件与通信链路的可用性、重选路由4.对冗余与容错能力的要求5.响应时间的要求6.吞吐量要求
设计分布处理机制:引入可直接利用的类库2.建立一些带有“<<role>>”标识的类,代表实际设计元素3.描述分布机制的静态结构
测试的特性:挑剔性,复杂性,不彻底性
测试的种类:静态分析(程序不执行),动态测试(程序执行)。静态分析包括代码评审(人工方式),静态分析器分析(自动方式)。代码评审分为代码会审、走查、办公桌检查。
动态测试分为黑盒测试(测试程序功能),白盒测试(测试程序结构)。
黑盒测试技术:1.等价分类法,就是把输入数据的可能值划分为若干等价类,使每类中的任何一个测试用例,都能代表同一等价类中的其他测试用例。2.边界值分析法3.错误猜测法,就是猜测被测程序哪些地方容易出错,有针对可能的薄弱环节来设计测试用例。
白盒测试分为逻辑覆盖测试,路径测试。
对象模型是什么逻辑覆盖测试法:1.对引例作逻辑覆盖测试
路径测试法:程序图,是一种简化的流程图。
路径测试的特征:1.满足结构测试的最低要求2.有利于安排循环测试。
选择路径测试的原则:1.选择具有功能含义的路径2.尽量用短路径代替长路径3.从上一条测
试路径到下一条测试路径,应尽量减少变动的部分4.由间入繁5.除非不得已,不要选取没有明显功能含义的复杂路径。
测试的层次分为单元测试,集成测试,高级测试;高级测试又分为确认测试,系统测试。
第一层为单元测试(模块测试)应该在编码阶段完成。集成测试是一个逐步组装的过程。确认测试是整个程序的测试,用于确认组装完毕的程序确能满足用户的需求。系统测试目的检查当被测试程序安装的系统上以后,能与系统其他软、硬件协调工作,并完成说明书规定的任务,是整个程序的测试。
软件维护的目的是满足用户对已开发产品的性能与运行环境不断提高的需要,进而延长软件的寿命。软件维护的分类:完善性维护,适应性维护,纠错性维护
软件的可维护性是衡量维护容易程度的一种软件属性,它取决于软件的可理解性、可修改性、可测试性。提高可维护性的途径是提供完整和一致的文档以及采用现代化的开发方法。
软件复用的定义:在构造新的软件系统过程中,对已存在的软件人工制品的使用技术。包括制造软件构件的技术;使用软件构件的技术。软件复用的目的是更快、更好、成本更低的生
产软件产品。
管理的目的是为了按照预定的时间和费用,成功的完成软件的计划、开发和维护的任务,项目管理最终目标就是要以合理的费用和进度,圆满完成计划所规定的软件项目。包括费用管理、质量管理(配置管理是质量管理的重要组成部分)、项目管理。
资源估算模型:静态单变量资源模型,Putnam资源模型。
Cocomo模型按照软件的应用领域和复杂程度,分为组织型,半独立型,嵌入型。Rayleigh-Norden曲线,发现在软件生存周期内各个阶段需要的人力分配。其曲线像一座钟。人员-时间权衡定律指出开发工作量与开关时间的4次方成反比。Brooks定律指出向一个已经延迟的项目追加开发人员,可能是它完成得更晚。项目进度安排:计划评审技术,Gantt图计划评审技术: 1.建立PERT图,采用从后向前建立PERT图的方法,常常比较容易。2.出关键路径,其方法是从起点到终点,在每个活动框的上方标出该项活动的起始时间。3.标出最迟开始时间 4.PERT图的使用。
Gantt图是安排软件进度计划的有用的工具,它简单、易用,也易修改。一般,对简单的软
件项目使用Gantt图。但对于内部任务的依赖关系复杂的项目,应使用PERT图及关键路径来安排进度。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论