第一章 软件工程基础
1.1软件工程概述
1.1.1软件及软件工程概念
1.软件:软件(Software)是计算机及手机等终端设备运行的指令、数据和资料与服务的集合,包含指令程序、数据、相关文档和完善的售后服务的完整集合。可以表示为:软件=程序+数据+文档+服务。
2.特点:智能性、抽象性、人工方式、泛域性、智能复制性、非损及更新性。
3.软件工程:
1)概念:中国国家标准GB/T 11457—1995《软件工程术语》定义为“软件工程是软件开发、运行、维护和引退的系统方法,目的就是为软件全生存周期活动提供工程化的方法,从而提高软件的质量、降低成本和缩短开发周期等”。
2)特点:系统性、工程化、综合性、学科交叉性等特点。
3)常用方法:面向功能、数据、对象、问题、方面方法,基于构件的开发方法、可视化方法。
4)基本原理:
(1)开发小组的人员在研发团队构成中,应优化结合且少而精;
(2)利用分阶段的生存周期计划严格管理;
(3)坚持进行阶段评审;
(4)实行严格的产品控制;
(5)采用现代程序设计技术;
(6)可清楚地审查软件工程结果;
(7)承认不断改进软件工程实践的必要性。
1.1.2软件工程的发展
1.软件危机
1)概念
指20世纪60年代在计算机软件的研发、运行、维护和管理过程中,出现一系列严重问题的现象。
2)软件危机主要特征
(1) 软件运行经常出现功能、性能不满意或出现故障等现象。
(2) 软件产品的质量、可靠性和安全等方面时常达不到标准。软件产品质量难以保证,甚至在开发过程中就被迫中断。
(3) 软件开发管理差,对成本和进度难估计准确。
(4) 系统时常出现无法维护、升级或更新现象。
(5) 开发效率低,无法满足应用迅速发展与提高实际需要。
(6) 研发成本难控制,在总成本中所占的比例不断大幅上升。
(7) 软件开发没有一整 套规范文档资料和售后服务。
3)软件危机产生原因
软件开发规模、复杂度和需求量不断增加及变化;软件需求分析与设计不完善;开发过程无统一的标准和准则、规范方法;研发人员与用户或研发人员之间互相的交流沟通不够;软件测试调试不规范不细致;忽视软件运行过程中的正常维护和管理等影响因素。
2.软件工程发展过程
第一代:传统软件工程;第二代:对象工程;第三代:过程工程;第四代:构建工程。
1.2软件生存周期及任务
1.概念:指从开始研发软件到软件停止使用的整个过程。是指软件产品从用户提出开发需求开始,经过开发、使用和维护,直到最后淘汰的整个周期。
2.划分原则
1)各阶段任务相对独立。
2)同一阶段的工作任务性质尽量相同。
3.阶段组成及任务
1)开发策划:明确要解决的问题是什么;
2)需求分析:确定“必须做什么”及其他指标要求;
3)总体设计:主要设计软件系统的总体结构;
4)详细设计:对模块功能、性能、可靠性、接口、界面、 络和数据库等进行具体设计的技术描述,并转化为过程描述;
5)编写程序:将模块的控制结构转换成程序代码;
6)测试:对软件进行检测、调试、修改和完善等;
7)运行维护:对交付并投入使用的软件进行维护,并记录保存文档。
1.3常用软件开发模型
1.常用模型:瀑布型模型、快速原型模型、增量模型、螺旋模型、喷泉模型、基于面向对象的模型。
2.软件开发模型的选定:
1)面向过程方法:使用瀑布模型、增量模型、螺旋模型进行开发;
2)面向对象方法:快速模型、增量模型、喷泉模型和统一过程进行开发;
3)面向数据方法:瀑布模型、增量模型进行开发。
第二章 可行性分析及研发策划
2.1软件问题调研及定义
1.调研原则:自顶向下/自底向上逐步展开;坚持实事求是;工程化的工作方式;重点与全面结合的方法;主动沟通与友好交流。
2.软件问题定义:软件问题是指在初步调研的基础上,逐步搞清拟研发软件开发的具体问题,并以书面形式对所有问题作出确定性描述的过程。不同的软件具有不同的问题定义内容。
2.2可行性分析概述
1.概念:可行性分析也称可行性研究,是对拟研发软件项目(或称为申 的“拟研发立项问题”)分析论证可行性和必要性的过程。
2.任务:主要任务为决定软件项目“做还是不做(是否可行)”、及完成对可行项目的“初步方案”。
3.内容:技术可行性分析、经济可行性分析、 会可行性分析、开发方案可行性分析和运行可行性分析等
4.实施过程:明确系统规模和目标;认真研究现行系统;确定系统逻辑模型;制定并推荐技术方案;编写可行性分析 告;审查论证。
2.3项目立项、合同和任务书概述
软件项目特别是重大项目对IT企业关系到存亡与发展,其立项至关重要,也是对软件开发项目的重大决策,应按照科学和民主决策的程序进行。软件开发任务的下达,需要至少满足下列条件之一:软件企业已签订了“项目合同”;“立项申 表(建议书)”已通过项目评审和审批;经过审批的指令性软件研发项目计划或合作性项目。
2.4系统流程图概念、符 及画法
1.概念:系统流程图是可行性分析阶段对软件相关的物理系统处理顺序的描述表述方式。
2.符 (如下图所示):
3.画法:至上而下、分层进行,同层从左到右边顺序画出。
2.5软件开发计划及开发方案概述
1.概念:软件开发计划也称软件项目计划(Software Project Planning)是指在正式进行软件开发之前,制定的具体指导软件开发的实施计划,是指导软件开发工作的纲领。
2.内容:项目概述。实施计划。人员组织及分工。交付产品。其他内容。
3.制定:项目开发计划的制定科学应着重考虑项目规模、类型、特定、复杂度、熟悉程度等。
4.软件开发方案:软件可行性分析完成后,系统分析员要依据技术、工作量、时间、进度、人员组织、费用、软硬件开发及运行环境等因素选择最佳方案进行计划并撰写软件开发方案书。
第三章 软件需求分析
3.1软件需求分析综述
1.概念:IEEE的软件工作标准术语表(1990)将需求定义为:
1)用户解决问题或达到目标所需的条件或能力。
2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。
3)一种反映上面或所描述的条件或能力的文档说明。
2.需求分析的基本原则:
1)功能分解,逐层细化。
2)表达理解问题的数据域和功能域。
3)建立模型(业务模型、功能模型、性能模型、接口模型等)。
3.任务:
1)确定目标系统的具体要求;
2)建立目标系统的逻辑模型;
3)编写需求文档;
4)验证确认需求。
4.过程:需求获取、综合与描述、需求验证和编写文档。
5.方法:面向功能分析、面向对象分析、面向数据分析。
3.2结构化分析方法
1.指导思想:结构化方法总的指导思想是“自顶向下、逐步求精(如图3-2所示)”,其基本原则是抽象与分解。
2.组成:结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD法)及结构化程序设计方法(SP法)构成。
3.步骤:
1)构建原系统物理模型;
2)抽象原系统逻辑模型;
3)建立新系统逻辑模型;
4)进一步补充和优化。
4.工具:实体-联系图(E-R图)、数据流图(DFD)、数据字典(DD)、状态转换图(STD)。
3.3软件需求分析文档概述
在需求分析阶段内,由系统分析人员对新研发的软件系统进行需求分析,确定对该软件的各项功能、性能需求和设计约束,确定对文档编制的要求,作为本阶段工作的结果,需要编写出软件需求分析文档。软件需求分析文档包括:系统(子系统)需求规格说明(SSS) (对整个系统或子系统需求分析的说明性文档)、软件需求规格说明(SRS)、接口需求规格说明(IRS)、数据需求说明(DRD),软件需求相关说明书的评审记录表、需求变更管理表等。
第四章 软件设计
4.1软件设计
4.1.1总体设计
1.总原则及过程是:由宏观到微观、逐步求精的原则,定性定量分析相结合、分解与协调相结合和模型化方法,并要兼顾系统的通用性、关联性、整体性和层次性。根据系统的总体结构、功能、任务和目标的要求分解系统,使各子系统之间互相协调配合,实现系统的整体优化。
2.基本原则:模块化、抽象、内聚和耦合、子系统及模块划分、信息隐蔽等。
3.方法:结构化设计方法、面向数据结构的设计方法、原型法。
4.1.2详细设计
1.原则:
1)详细设计是为后续具体编程实现做准备;2)处理过程应简明易懂;3)选择恰当的描述工具表述模块算法。
2.工具:程序流程图、结构流程图、问题分析图(PAD)。
4.2几类常见设计
1.数据库设计;2. 络系统设计;3.用户界面设计;4.软件设计文档。
第五章 面向对象开发方法
5.1面向对象概述
1.面向对象(OO) 定义:
面向对象= 对象 + 类 + 继承 + 消息通信,具有这4个概念的软件开发方法称为OOM。
2.面向对象方法(OOM)组成:
面向对象分析(OOA)、面向对象设计(OOD)、面向对象编程(OOP)、面向对象测试(OOT)和面向对象维护等。
3.OOM特点:
1)符合人类分析解决问题的习惯思维方式;2)各阶段所使用的技术方法具有高度连续性;3)开发阶段有机集成有利系统稳定;4)重用性好。
4.开发过程:
1)分析阶段;2)高层设计;3)开发类;4)建立实例;5)组装测试;6)维护。
5.开发方法:
1)需求模型;2)分析模型;3)设计模型;4)实现模型;5) 测试模型。
5.2面向对象分析
1.原则:
建立信息域模型;描述功能;表达行为;划分功能、数据、行为模型,揭示更多的细节;以早期模型描述问题实质,以后期模型给出实现细节。
2.OOA中建造的模型:
对象模型、动态模型和功能模型3种。对象模型常由五个层次组成:类与对象层、属性层、服务层、结构层和主题层,其层次对应着OOA过程中建立对象模型的五项主要活动:发现对象、定义 类、定义属性、定义服务、划分结构。
5.3面向对象设计
1.原则:抽象、信息隐蔽、高内聚、低耦合、可重用。
2.任务:系统设计、对象设计、设计优化。
3.OOD过程:
1) 对象描述;2) 设计类中的服务;3) 设计类中的关联;4) 实现链属性;5) 优化设计。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!