软件工程总结2

上传人:cl****1 文档编号:548037641 上传时间:2022-08-21 格式:DOCX 页数:7 大小:53.19KB
返回 下载 相关 举报
软件工程总结2_第1页
第1页 / 共7页
软件工程总结2_第2页
第2页 / 共7页
软件工程总结2_第3页
第3页 / 共7页
软件工程总结2_第4页
第4页 / 共7页
软件工程总结2_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《软件工程总结2》由会员分享,可在线阅读,更多相关《软件工程总结2(7页珍藏版)》请在金锄头文库上搜索。

1、早在我选择软件专业的时候,我一直认为软件工程无非是努力的敲代码,从 敲代码的过程中去体会各行代码的意思和用处,在没学软件工程时我一直都是努 力的敲代码去学习软件开发这门专业。学了软件工程以后,我就感觉我以前的学 习方法是错误的。以前我只注重于代码,而不注重理论知识以及编程的思路,程 序的架构。以至于在些程序时没有写程序的思路,不能形成程序的架构。下面是 我对软件工程这门课知识点的概括:软件:软件是能够完成预定功能和性能的可执行的计算机程序和使程序正常执行所需要的数据,加上描述程序的操作和使用的文档。软件的特征:(1)软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。(2) 软件是通过

2、人们的智力活动,把知识与技术转化成信息的一种产品(3)软件成为产品后,其生产只是简单的拷贝,不同于硬件制造。(4)维护过程比硬件复杂的多,甚至会引发新的错误。软件危机:指的是软件开发和维护过程中遇到的一系列严重问题。出现软件危机的原因:(1) 软件维护费用急剧上升,直接威胁计算机应用的扩大。(2) 软件生产技术进步缓慢软件工程:是指导计算机软件开发和维护的工程学科。软件生存周期:一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。软件生存周期一般可分为以下阶段:1. 问题定义 2.可行性研究。3 需求分析 4.总体(概要)设计。5

3、.详细设计。6.编码与单元测试。7.综合测试。8.软件维护软件开发模型(software process models):软件开发模型是软件开发全过程、软件开发活动以及它们之间关系的结构框架。瀑布模型(Waterfall model)即生存周期模型,由B.M.Boehm提出,是软件工程的基础模型。其核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作。采用结构化的分析与设计方法,将逻辑实现与物理实现分开。瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。快速原型模型(Prototypingmodel):实现客户或未来的用户与系统的交互。增量模型(Phased developmen

4、t) : increments and iterations (反复递增)螺旋模型(Spiral model):将瀑布模型和快速原型模型结合起来,强调了其他模型 所忽视的风险分析,特别适合于大型复杂的系统。敏捷开发(Agile methods):敏捷开发是一种以人为核心、迭代、循序渐进的开发 方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果 都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相 互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使 用状态。可行性研究 :压缩简化了的系统分析和设计的过程,也就是说在较高层次上以较抽象的方式

5、进行设计的过程。不是解决问题,而是确定问题是否可解和是否值得解系统流程图是概括地描绘物理系统的传统工具。它表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程。结构化的分析方法使用数据流图DFD与数据字典DD来描述。其核心思想是分解化简问题,将物理与逻辑表示分开,对系统进行数据与逻辑的抽象。概括一下,结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。数据流图(DFD):描绘信息流和数据从输入移动到输出的过程中所经受的变换。数据字典(DD)作用:对软件中的每个数据规定一个定义条目,以保持数据在 系统中的一致性。27.ER diagram have three

6、core constructs(P-158)ER 图表有三个核心构造An entity: depicted asa rectangle, represents a collection of real-world objects thathave common properties and behaviors 描述为一个的矩形表示一个实际 的对象的集合 具有公共属性和行为A relationship: depicted as an edge between two entities, with diamond in the middle of the edge specifying (指定)t

7、he type of relationship 描述为一个两个实 体之间的边缘An attribute: an annotation(注解)on an entity that describes data or properties associated with the entity 描述数据或与该实体相关联的属性的实体上的 注释需求分析(requirements analysis)的任务: 需求分析所要做的工作是深入描述软 件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义 软件的其它有效性需求。一般说来,需求分析阶段的任务及工作:1、确定对系统的综合要求 功能要求(f

8、unctional requirement) 性能要求 运彳丁要求 未来可能 的扩充要求 (5) 可靠性和可用性需求 (6) 出错处理与安全需求 (7) 接口 需求(8)约束因素(Design constraint)等2、分析系统的数据要求建立概念模型:形象描绘数据结构 数据结构规范化3、导出逻辑模型4、修正计划:重估成本、进度等5、开发原型系统以检验方案的正确性及系统是否满足需求需求分析(requirements analysis)的原则:其基本原则可概括为:(1)必须能够 表达和理解问题的数据域和功能域;(2)按自顶向下、逐层分解问题;( 3)要给 出系统的逻辑视图和物理视图。26. Re

9、quirements definition:a complete listing of everything the customer wants to achieve 完整列表的客户希望 实现的一切Describing the entities in the environment where the system will be installed 描述在将安装在系统环境中的实体Requirements specification (需求规格): restates (重申)the requirements as a specification of how the proposed (提出

10、) system shall behave 软件设计的任务:把分析阶段产生的软件需求说明转换为用适当方法表示的软件设计文档。不管采用何种软件设计方法,软件设计一般都包括数据设计、体系结 构设计、接口设计和过程设计等内容。结构化设计方法:是一种面向数据流的设计方法,中心任务就是把用 DFD 图表示 的系统分析模型转换为软件结构的设计模型,确定软件的体系结构与接口。 数据流的类型:面向数据流的设计方法把信息流映射成软件结构,信息流的类型决定了映射 的方法。信息流有下述两种类型:变换流和事务流。结构化分析方法:模块:是一个拥有明确定义的输入、输出和特征的程序实体。模块的所有输入都 是实现功能必不可少

11、的,所有输出都有动作产生。模块化:就是把程序划分成若干个模块,每个模块具有一个子功能,把这些模块 集总起来组成一个整体,可以完成指定的功能,实现问题的要求。模块化设计:把大型软件按照规定的原则划分成一个个较小的、相对独立但又相 互关联的模块。分解和模块独立性,是实现模块化设计的重要指导思想。 抽象:就是抽出事物的本质特性而暂时不考虑它们的细节。 信息隐藏:模块中所包括的信息不允许其它不需要这些信息的模块调用。模块独立性:是软件系统中每个模块只涉及软件要求的具体子功能,而和软件系 统中其他的模块接口是简单的。内聚(Cohesion): 标志一个模块内各个元素彼此结合的紧密程度。耦合(Coupli

12、ng):是对一个软件结构内各个模块之间互连程度的度量。深度:表示软件结构中控制的层数,它往往能粗略地标志一个系统的大小和复杂 程度。宽度:是软件结构内同一个层次上的模块总数的最大值。 扇出:是一个模块直接控制(调用)的模块数目,扇出过大意味着模块过于复杂, 扇出过小(例如总是 1)也不好。扇入:表明有多少个上级模块直接调用它,扇入越大则共享该模块的上级模块数 目越多,这是有好处的,Characteristics of Good Design Coupling: Types of CouplingContent(内容)couplingCommon (公共) couplingControl (控制

13、) coupling Stamp (标记) coupling Data (数据) coupling软件设计的基本原理:(1)模块化(2) 抽象(3) 信息隐蔽(4)模块独立性软件设计的基本经验:模块独立性,低耦合,高内聚,公共模块。测试与调试:测试是为了发现程序中的错误而执行程序的过程。调试通过定 位和纠正错误,消除软件故障,保证程序的可靠运行。测试的种类:按照测试过程是否在实际应用环境中来分,有静态分析与动态 测试。测试方法(Testing Organization):黑盒测试法,根据程序的功能来设计测试用例; 白盒测试法,根据被测程序的内部结构设计测试用例。 通常的做法是,用黑盒法设计基本

14、的测试方案,再用白盒法补充一些方案。 测试用例的设计是软件测试的中心内容。测试一个程序要使用多个测试用 例,而每一个测试用例都应包括一组测试数据和一个相应的预期的测试结果。黑盒测试法中的 3 种常用技术:等价划分(等价分类:法、边界值分析法、 错误推测(猜测:法。白盒测试法:常用逻辑覆盖测试和路径测试法。测试的步骤:1.单兀测试(unit testing) 2集成测试(Integration testing) 3有效性测试4.系 统测试( System Testing: 5. 平行运行 软件可靠性(Software reliability):是程序在给定的时间间隔内,按照规格说明书 的规定成功

15、地运行的概率。软件维护:软件运行阶段对软件产品所进行的修改就是维护。 软件维护的种类:完善性维护;适应性维护;调试性维护;预防性维护。软件可维护性(Software maintainability):衡量软件维护容易程度的一种软件 属性。定性的说,可维护性取决于软件的下列属性:可理解性、可修改性与可测 试性。软件配置:软件在生存周期内,它的各种形式、各种版本的文档与程序的总称。软件再工程:运用逆向工程、重构等技术,在充分理解原有软件的基础上, 进行分解、综合,并重新构建软件,用以提高软件的可理解性、可维护性、可复 用性或演化性。1. UML图包含9类图:类图 (class diagram) 对象图 (object diagram) 用例图 (use case diagram) 顺序图(sequence diagram) 协作图(collaboration diagram)状态图(statechart diagram)活动图(activity diagram)组件图 (compone nt diagram)部署图(deploymen t diagram)2. 使用UML对需求建模:我们可以使用用例(use case)作为着手进行需求建模的 良好起点。用例按照系统的使用方式组织系统。以用例为起点进行需求建模,可 以使我们的关注焦点集中于客户身上。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号