软件工程期末复习知识点整理

合集下载

软件工程知识点总结

软件工程知识点总结

软件工程知识点总结软件工程知识点总结1.软件工程概述1.1 软件工程定义1.2 软件工程的重要性1.3 软件生命周期2.需求分析与规格说明2.1 需求分析过程2.2 需求获取方法2.3 需求规格说明的要素2.4 需求跟踪与变更管理3.软件设计3.1 软件设计原则3.2 结构化设计方法3.3 面向对象设计方法3.4 数据库设计3.5 用户界面设计4.软件开发4.1 编码规范4.2 编程语言选择4.3 软件构建工具4.4 软件测试4.5 版本控制5.软件项目管理5.1 项目计划与进度管理 5.2 软件开发过程模型 5.3 团队协作与沟通5.4 风险管理6.质量保证与软件维护6.1 质量保证方法6.2 软件维护类型6.3 软件维护活动6.4 软件退役与替换附件:________本文档涉及的附件(请附上相关文档、图表等)法律名词及注释:________1.软件工程:________指将系统化的、规范化的、可量化的方法应用于软件的开发、运行和维护的工程学科。

2.需求分析:________确定用户对软件系统需要的功能、性能和约束等方面的要求,并以此为基础进行系统的分析和设计。

3.软件设计:________根据需求分析的结果,制定软件系统的总体结构和各组成部分的详细设计方案。

4.软件开发:________根据软件设计的方案,进行编码和调试,最终可执行的软件系统。

5.软件项目管理:________对整个软件项目进行计划、协调、控制和有效地管理,确保项目顺利完成。

6.质量保证:________通过不同的方法和技术,提高软件产品的质量,确保其满足用户的需求和要求。

7.软件维护:________对已投入使用的软件进行修复性、适应性、完善性和预防性等各方面的修改和改进。

软件工程期末复习重点

软件工程期末复习重点

1.软件危机的介绍在计算机软件的开发和维护过程中所遇到的一系列严重问题。

2.产生软件危机的原因与软件本身特点有关:软件开发与维护的方法不正确有关:3.消除软件危机的途径4.软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。

5.软件定义时期的任务是:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。

这个时期的工作通常又称为系统分析,由系统分析员负责完成。

软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。

6.开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。

其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。

7.维护时期的主要任务是使软件持久地满足用户的需要。

8.软件生命周期每个阶段的基本任务:问题定义、可行性研究,需求分析,总体设计,详细设计,编码和单元测试,综合测试。

9.常用软件模型区别原理:(1)瀑布模型:按照传统的瀑布模型开发软件,有下述的几个特点。

a)阶段间具有顺序性和依赖性:两重含义:段的输出文档正确,后一阶段的工作才能获得正确的结果。

①必须等前一阶段的工作完成之后,才能开始后一阶段的工作;②前一阶段的输出文档就是后一阶段的输入文档,因此,只有前一阶b) 推迟实现的观点瀑布模型在编码之前设置了系统分析与系统设计的各个阶段,分析与设计阶段的基本任务规定,在这两个阶段主要考虑目标系统的逻辑模型,不涉及软件的物理实现。

c)质量保证的观点:软件工程的基本目标是优质、高产。

为了保证所开发的软件的质量,在瀑布模型的每个阶段都应坚持两个重要做法。

每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。

每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。

软件工程期末考试重点

软件工程期末考试重点

《软件工程》期末复习重点第一章软件工程1.什么是软件工程。

A.把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;b.研究a中提到的途径。

2. 软件工程的三要素:方法、工具和过程。

第二章软件过程1.软件生命周期分为哪几个阶段?每个阶段的基本任务是什么?a.软件定义:确定软件开发工程必须完成的总目标问题定义:要解决的问题是什么可行性研究:上阶段所确定的问题是否有可行的解决办法?需求分析:目标系统必须做什么b.软件开发:具体设计和实现在前一个时期定义的软件。

概要设计:怎样宏观地解决问题详细设计:应如何具体地实现这个系统编码和单元测试:写出正确的、易理解、易维护的程序综合测试:通过各类型测试使达到预定要求。

c.运行维护:修正错误,使软件持久地满足用户需要。

改正性维护:诊断和改正使用中的错误适应性维护:修改以适应环境变化完善性维护:根据用户的要求改进和扩充以完善预防性维护:修改以为将来的维护作准备2.常用的过程模型有哪些?各自的特点及不足。

如:瀑布模型的不足是不能适应需求的动态变更。

A.瀑布模型特点:可强迫开发人员采用规范化的方法。

严格地规定了每个阶段必须提交的文档。

要求每个阶段交出的所有产品都必须是经过验证(评审)的。

缺点:太理想化,由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。

如果需求规格与用户需求之间有差异,就会发生这种情况。

只适用于项目开始时需求已确定的情况。

B.快速原型模型特点:快速软件产品开发基本上是线性顺序进行。

降低了规格说明文档变化的可能性。

减少了后续阶段错误的可能性。

c.增量模型优点:人员分配灵活,刚开始不用投入大量人力资源。

当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。

增量能够有计划地管理技术风险。

缺点:要求构件具备开放式的体系结构。

易退化为边做边改模型,从而使软件过程的控制失去整体性。

软件工程知识点汇总

软件工程知识点汇总

软件工程知识点汇总软件工程知识点汇总
1、软件需求
1.1 需求概述
1.2 需求分类
1.3 需求获取与分析
1.4 需求规格说明
2、软件设计
2.1 面向对象设计
2.2 结构化设计
2.3 数据库设计
2.4 用户界面设计
2.5 系统架构设计
3、软件编码
3.1 编程语言选择与使用
3.2 编码规范
3.3 软件开发环境
3.4 编码工具和技术
3.5 调试和测试
4、软件测试
4.1 测试基础知识
4.2 测试方法与策略
4.3 白盒测试
4.4 黑盒测试
4.5 功能性测试
4.6 性能测试
4.7 集成测试
4.8系统测试
4.9用户验收测试
5、软件项目管理
5.1 项目计划与进度管理 5.2 风险管理
5.3 人员管理
5.4 项目质量管理
5.5 变更管理
5.6 项目交付与部署
6、软件维护与升级
6.1 软件维护分类
6.2 软件维护流程
6.3 软件升级策略
6.4 软件版本控制
7、软件安全
7.1 信息安全基础知识
7.2 软件安全需求与设计
7.3 安全测试与评估
7.4 安全漏洞修复与更新
附件:
法律名词及注释:
1、版权: 对一种表达形式的独特创造进行保护的法律概念。

2、商标: 表示和区分特定商品或服务来源的标识符。

3、专利: 对于新发明的独特权利,使得发明人可以禁止他人在专利权期限内使用该发明。

4、法律责任: 违反法律规定而应承担的法律后果。

软件工程期末考试知识概括

软件工程期末考试知识概括

一、名词解释1、软件:是计算机程序及其有关的数据和文档的完整集合。

2、软件工程:软件工程采用工程的概念、原理、技术和方法来开发与维护软件。

3、软件生命周期:是从设计软件产品开始到产品不能使用为止的时间周期。

4、模块:是能够单独命名,由边界元素限定的程序元素的序列。

在软件的体系结构中,模块能独立地完成一定的功能,是可以组合、分解和更换的单元。

5、模块化:是指把系统分割成能完成独立功能的模块。

6、软件维护:就是指在软件产品交付之后对其进行修改,以排除故障,或改进性能和其他属性,或使产品适应改变了的环境。

7、软件的可维护性:是指软件功能被理解、改正、适应和增强的难易程度,可维护性时维护人员对该软件进行维护的难易程度。

可维护性是指导软件工程各阶段的一条基本原则,提高可维护性是软件工程追求的目标之一。

8、数据流图:是用来描绘软件系统逻辑模型的图形工具,是描绘信息在系统中流动和处理的情况的。

9、数据字典:是对数据流图中出现的所有数据元素、数据流、文件、处理的定义的集合。

二、1、比较瀑布模型、快速原型模型、螺旋模型的特点。

2、尽可能推迟软件的编码3、保证质量(2)快速原型模型快速原型模型:是指快速开发一个可以运行的原型系统,该原型系统所能完成的功能往往是最终产品能完成的功能的一个子集。

(3)螺旋模型每一个螺旋周期由下列六个步骤组成:1) 确定任务 2) 选择对象 3) 分析约束条件 4) 风险分析5) 制定消除风险的方法 6) 制定下一周期的工作计划确定目标、方案、约束 复审需求计划生命周期计划开发计划集成测试计划计划下一阶段工作开发验证下一级产品需求确认设计验证与确软件需求产品设计详细设计编码单元测试集成测试验收测试运行、维护2、耦合的种类:(耦合度越低模块的独立性越强、划分的质量好)数据耦合、控制耦合、特征耦合、公共环境耦合、内容耦合(耦合度最大)为了降低模块间的耦合程度,应采用以下设计原则:●在传递信息时尽量使用数据耦合,少用控制耦合和特征耦合。

软件工程期末考知识点归纳(自制)

软件工程期末考知识点归纳(自制)

需求分析工具,任务,内容需求分析也称为需求工程,是一个非常重要而有很复杂的,需要交替进行,反复迭代的过程。

需求分析过程通过执行初步沟通、需求导出、分析与精化、可行性研究、协商和沟通、规格说明、验证和变更管理八个不同的活动来完成。

非形式技术主要包括会谈、调查表和场景技术,用于获取用户需求和系统需求。

排错调试(debug)又称排错或纠错调试的任务就是根据测试时所发现的错误,找出原因和具体的位置,进行改正调试工作:对错误进行定位并分析原因,即诊断;对于错误部分重新编码以改正错误;重新测试软件项目管理计划的重要方面项目是指一系列独特的、复杂的并相互关联的活动。

项目参数包括项目范围、质量、成本、时间、资源。

项目三维管理:时间维:即把整个项目的生命周期划分为若干个阶段,从而进行阶段管理。

知识维:即针对项目生命周期的各个不同阶段,采用和研究不同的管理技术方法。

保障维:即对项目人力、财力、物力、信息等后勤保障管理。

特点项目管理是一项比较复杂的工作项目管理具有创造性项目管理的对象是项目或被当作项目来处理的作业项目负责人(或项目经理)在项目管理中起着非常重要的作用项目管理需要集权领导和建立专门的项目组织项目管理的方法、工具和手段具有先进性、开放性五个阶段启动阶段:用户提出需求,开发人员进行需求分析,确定可行性,编写项目实施计划。

计划阶段:创建项目范围文档和项目计划,项目范围详细描述项目范围。

实施阶段:实施阶段意味着项目正在进一步设计、编码、测试,小组成员正在创造项目需要的可交付产品。

控制阶段:项目经理开始监督小组成员的工作,将项目的进度、任务和预算控制在正常的范围内。

收尾阶段:项目负责人和用户批准和签署项目,交付产品。

项目的收尾阶段标志着项目的正式结束。

测试目标,执行过程没找到Sa(结构化分析)结果结构化分析方法是一种自顶向下,逐步分解的面向数据和数据流的建模方法。

结构化分析(SA,Structured Analysis)方法是20世纪70年代,由E.Yourdon等人倡导的一种适用于大型数据处理系统的、面向数据流的需求分析方法。

软件工程期末复习必备知识点

软件工程期末复习必备知识点

一、概念解释1.软件:是程序,数据结构和文档的集合,用于实现系统所需要的逻辑方法、过程和控制。

2.软件危机:是软件开发和维护过程中所遇到的一系列严重的问题。

3.软件周期:是从软件从定义,开发,运行维护到废弃时经历的一个漫长的时期。

4.需求分析:是发现,求精,建模,规格说明和复审的过程。

5,概要设计:通过仔细分析需求规格说明,确定完成系统的模块以及各模块之间的关系,设计出完成预定功能的模块(软件结构),并建立借口。

详细设计:设计完成系统的模块内的算法和数据结构。

6.模块化:将软件划分成可以独立命名的且可以独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能来满足用户的需求。

信息隐藏:一个模块内包含的信息对于一个不需要这些的模块来说是不可访问的。

7.耦合:是一个软件结构内的每个模块互连程度的度量。

内聚:一个模块间各个元素之间的紧密的程度。

8.类:是对有相同数据和相同操作的一组相似对象的抽象描述。

对象:是客观世界中事物的抽象表示,其属性(状态、数据)和相关操作(行为、方法或服务)的封装体;对象之间靠消息传递相互作用。

9.消息:是对象之间相互通信的机制,是某个对象执行其操作的规格说明。

消息传递:一个对象向另一个对象发送消息时,接收消息的对象经过解释、给予响应,这种对象之间进行通信的机制成为消息传递。

10.继承:继承是子类(新类)自动的共享父类(已有类)中定义的数据的操作的机制。

子类可以继承父类的属性和操作;同时子类可以定义自己独有的属性和操作。

子类复用父类的定义,而不修改父类。

继承具有传递性。

多态性:在一个类层次中,不同对象对相同消息做出不同的响应。

11.软件重用:是指同一事物不做修改或者稍加修改就可多次重复使用,软件重用是降低软件开发成本,提高软件开发生产率和质量的有效途径。

12.软件测试:根据软件开发的规格说明和程序的内部结构而设计的一个测试用例,利用这些测试用例去运行程序以发现设计和程序错误的过程。

软件工程期末考试复习重点

软件工程期末考试复习重点

第一章软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重的问题。

软件危机的主要表现:1、对软件开发成本和进度的估计常常很不准确。

2、用户对“已完成的”软件系统不满意的现象经常发生。

3、软件产品的质量往往靠不住。

4、软件常常是不可维护的5、软件通常没有适当的文档资料6、软件成本在计算机系统总成本中所占的比例逐年上升7、软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势软件工程:定义一:是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。

定义二:1.把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;2.研究1.中提到的途径。

软件工程方法学的三个要素:方法、工具和过程。

目前使用的最广泛的软件工程方法学:传统方法学、面向对象方法学。

软件的生命周期:软件生命周期有软件定义、软件开发和运行维护3个时期组成;定义时期分为:问题定义、可行性研究和需求分析阶段;开发时期分为:总体设计、详细设计、编码和单元测试、综合测试;维护时期的任务:是软件持久的满足用户的需求;瀑布模型:最广泛的过程模型;瀑布模型的特点:1、阶段间具有顺序性和依耐性;2、推迟实现的观点;3、质量保证的观点;Rational统一过程(RUP)四个阶段的工作目标:初始阶段:建立业务模型,定义最终产品视图,并且确定项目的范围;精化阶段:设计并确定系统的体系结构,制定项目计划,确定资源需求;构建阶段:开发出所有构件和应用程序,把他们集成为客户需要的产品,并且详尽地测试所有功能;移交阶段:把开发出的产品提交给用户使用;第二章可行性研究的目的是确定问题是否值得去解决;可行性研究的方面:技术可行性、经济可行性、操作可行性;系统流程图描述物理模型;P39(要求会做)数据流图描述逻辑模型;P40(要求会做)数据流图(DFD)描绘信息流和数据从移动到输出的过程中所经受的变换;数据字典有以下4类元素的定义组成:数据流、数据流分量(数据元素)、数据存储、处理;由数据元素组成的数据的方式三种基本类型:顺序、选择、重复;“=”是等价于(或者定义为),“+”是和(用来连接分量),“[ ]”是或(从其中选一),“{ }”是重复,“()”是可选;第三章:需求分析任务:功能需求是指定系统必须提供的服务,通过该分析划出该系统必须完成的所有功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

复习整理、绪论1. 软件的定义软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。

(软件=程序+文档)2.软件工程的定义是指导计算机软件开发和维护的一门工程学科;采用工程化的原理与方法对软件进行计划、开发和维护;把证明正确的管理技术和最好技术综合运用到软件开发中;研究经济地开发岀高质量的软件方法和技术;研究有效维护软件的方法和技术。

3.软件危机的概念,及出现的原因软件开发技术的进步未能满足发展的要求。

在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。

产生原因:⑴软件规模越来越大,结构越来越复杂⑵软件开发管理困难而复杂。

⑶软件开发费用不断增加。

⑷软件开发技术落后。

⑸生产方式落后,仍采用手工方式。

⑹开发工具落后,生产率提高缓慢。

4.三种编程范型的特点(1)过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构+算法;着眼于程序的过程和基本控制结构,粒度最小(2)面向对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对象,粒度比较大(3)基于构件技术的编程范型:构件是通用的、可复用的对象类;程序=构件+架构;眼于适合整个领域的类对象,粒度最大二、软件生存周期与软件过程1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期目的:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得较易控制和管理。

主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护( P19)2、软件生命周期划分为哪几个阶段软件生命周期分为三个时期八个阶段:软件定义:问题定义、可行性研究;软件开发:需求分析、概要设计、详细设计、编码、测试;软件运行:软件维护3、瀑布模型的特点和缺陷特点:线性模型,每一阶段必须完成规定的文档(阶段间的顺序性和依赖性)优点:可强迫开发人员采用规范化的方法。

严格地规定了每个阶段必须提交的文档。

要求每个阶段交岀的所有产品都必须是经过验证的缺点如果需求规格说明与用户需求之间有差异,很可能导致最终开发岀的软件产品不能真正满足用户的需要。

(瀑布模型几乎完全依赖于书面的规格说明)由于多数用户不熟悉计算机,系统分析员对用户的专业也了解不深,因而很难在在开发的初始阶段彻底弄清软件需求。

(瀑布模型只适用于项目开始时需求已确定的情况)5、软件可行性研究的目的和内容目的:是弄清待开发的项目是不是可能实现和值得进行内容:经济可行性,技术可行性,运行可行性,法律可行性三、结构化分析(重点)P711、结构化分析SA模型的组成DFDffiI MASDD秋态■蚪鱼阎STD图拧制规格谜明CSFEC2、结构化分析的基本步骤1.了解当前系统的工作流程,获取当前系统的物理模型。

2.抽象岀当前系统的逻辑模型。

3.建立目标系统的逻辑模型。

4•作进一步补充和优化。

3、 绘制数据流图DFD 的注意点① 父图与子图的平衡,即父图的输入输岀数据流与子图的输入输岀数据流一致 ② 区分局部文件和局部外部项 ③ 分解的速度不宜过快 ④ 按规则命名加工编号⑤ 提高数据流图的易懂性,合理分解决策表、决策树的绘制|例题:邮寄包收费标准如下:若收件地点在 若收件地点在1000公里以外, 部分每分斤加收0 . 5元。

请绘制收费的原始决策表, 4、 1000公里以内,普通件每公斤 2元,挂号件每公斤3元。

普通件每公斤 2. 5元,挂号件每公斤3. 5元;若重量大于30公斤,超重 (重量用W 表示)决策表(判定表):决策规则号]士34 567 &条 件 普追件 Y NY NYNYNU ri30Y Y Y Y N N N N 1000公里且内YYNN1 Y YNN的 行2WXX3WXX2.5WX3 5WX2. □X3(R(W -3O}XO. 5X3. 5X 30^(K-30) X0. 5X决策树(判定树)2.5 W3 W3.5 W牡2.5X30^(^30)X0153, 5X30^(W>30)X{X55、 结构化的三种控制结构顺序、选择、循环 DO_WHILE6、 流程图、N-S 图和PDL 的特点,通过PDL 语言绘制流程图和N-S 图 例题:将三个数从小到大排序并对其进行优化,得到优化后的决策表,再绘制岀决策树2 W否流程图:7、 给定一个系统,用结构化分析方法进行分析,画出 DFD DD丿冃学与试报寫过程中荷卩“记求叔名算”的MIX*该加工上躍星根林枫名屋(蛉名、H 弓G 价证巧-■踝也林[和幵考课程常、JT^b ;河h 经杜檢,股久 圮可、WilllUk^证席报呂看,同刖记录到爭生霁也中〔准号低号、姓名、规程h 诗绘制谖拘1:的DFD 图.井写 用数制扫典中的竝据缺日離揺流词Ml 数据腕黑Sh加勒中亠姓桝-性别-片檢证寸T 磔胖名 斤占歸程-噸45 4斤芳讨间 考牛韶册=• 丫1笛』谍科四、 面向对象及UML 1、 面向对象的基本特征抽象、封装、继承、多态2、 静态、动态 UML 图例(P84)五、 需求工程与需求分析 1、 需求分析的任务与步骤任务:(1)通过对问题及其环境的理解、分析和综合建立分析模型,(2)在完全弄清用户对软件系统的确切要求的基础上,用“软件需求规格说明书”把用户的需求表达岀来。

需求分析 的认为就是为了明确要开发的是一个什么样的系统,而不是去实现这个系统。

步骤:需求获取、需求建模、需求描述(编写SRS 、需求验证2、 需求分析和需求工程的困难性客户说不清楚需求人口N-S 图:正式抠宕单君牛*旳E 式那号证.分析人员或客户理解有误需求自身经常变动3、面向对象需求模型组成用例图、用例规约、补充规约、术语表4、用例规约应该包含哪些内容?基本流和备选流的概念及区别(P117)简瞇说明:衢哋介紹该用例的柞用和日的. 1事件流;包括基本流和希选流'农小出浙冇对能的祜动阳L捏特陳石求:描述与像用力弟咲杓非功能杵需求和设il哟束前盍条件和肓遗条件v衣帛■流指谨川例最1E常时•种场最冷沖弘流中,系址执厅啄列活功来响应霽片占提川的昵务毎个歩骤都需竖川麴了编号’以请楚地标旳步骤的光心顺序.毎牛步骤的■徙内容川--何简朴的标題來概抵.使川读:职町通过浏览标趣快速的r解川關的I:密步戦个用捌模型皓木忌述z后+在针对擁牛步骤说酬描述翦与者和系统上间的篩选汇匕用于牺述用例扭讦过穆中的斤常成偶尔发牛的仙况,他和雄木流券I合起总能聘覆盖谨用机所冇训能发牛的场忠起点:谨备选流从爭件硫的娜一步开殆.条件:蛊朴么条件会哋发该帚选流.功作:系统在该务选流中会采取聊咗励作.恢复:该备选流结東乩该I】」例应加啊缆续执行”笛选谦的描述榕宜川j華木流槪.即需啖编匕井以标題槪述其内容•塢号前叩川前缀亠切,臥示与堆本流的区別*六、面向对象分析1、面向对象分析的主要任务(P138)首先要理解用户的需求,包括全面理解和分析用户需求,明确所开发的软件系统的职责,形成文件并规范地加以表述。

然后进行分析,提取类和对象,并结合分析进行建模。

其基本步骤是:标识类,定义属性和方法;刻画类的层次;表示对象以及对象与对象之间的关系;为对象的行为建模。

这些步骤肯反复进行,直至完成建模。

2、面向对象分析的模型组成3、软件设计的任务是什么?概要设计和详细设计的主要工作|任务:将软件分析模型转变为考虑具体实现技术和平台的软件设计模型。

概要设计(结构设计):把一个软件需求转换为软件表示时,首先设计岀软件总的体系结构。

基本任务:1)设计软件系统结构2)进行数据结构及数据库的设计3)编写概要设计的文档4)评审详细设计:为SC图中的每个模块确定采用的算法和块内数据结构,用选定的表达工具(流程图、N-S图、PAD图、伪代码)给出清晰的描述。

基本任务:1)为每个模块进行详细的算法设计2)为模块内的数据结构进行设计3)对数据库进行物理设计4)其他设计5)编写详细设计说明书6)评审七、软件设计1、模块的定义模块是一个拥有明确定义的、输岀和特性的程序实体。

模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。

每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。

模块化设计是把大型软件按照规定的原则划分成一个个较小的、相对独立但又相互关联的模块。

但又相互关联的模块。

2、什么是模块独立性?用什么来度量(低内聚高耦合)?模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。

模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。

独立性可以从两个方面来度量:模块本身的内聚性(Cohesion)和模块之间的耦合(Coupling)。

3、耦合、内聚的定义,几种类型(P171)内聚:从功能的角度对模块内部聚合能力的量度低内聚(偶然性内聚、逻辑性内聚、时间性内聚),中内聚(过程性内聚、通信性内聚),高内聚(顺序性内聚、功能性内聚)耦合:对软件内部块间联系得到度量弱耦合(非直接耦合、数据耦合、特征耦合),中耦合(控制耦合),较强耦合(外部耦合、公共耦合),强耦合(内容耦合)4、扇入、扇出的定义扇入:一个模块被其他模块调用的个数扇岀:一个模块调用其他模块的个数八、编码和测试1、四代语言的特点和典型代表第一代也称机器语言,是计算机能直接识别和执行的语言。

优点是无需翻译,占用内存少、执行速度快。

缺点是随机而异,通用性差,而且因指令和数据都是二进制代码形式,难于阅读和记忆,编码工作量大,难以维护。

第二代语言也叫汇编语言,是用助记符号来表示机器指令的符号指令的符号语言。

优点是比机器语言易记。

缺点同机器语言。

第三代语言还称高级语言,容易学习,通用性强,书写岀的程序比较短,便于推广和交流,是很理想的一种程序设计语言。

代表有C语言,C#语言。

第四代语言又叫面向应用的语言。

主要特点是:非过程性、采用图形窗口和人机对话形式、基于数据库和“面向对象”技术,易编程、易理解、易使用、易维护。

代表有SQL关系数据查询语言,UNIX系统的shell语言。

2、变量命名规则3、软件测试的基本任务程序测试的是为了发现错误而执行程序的过程。

目的:发现程序的错误任务:通过在计算机上执行程序,暴露程序中潜在的错误。

4、软件测试要经过哪些步骤(P254)?这些测试与软件开发各阶段之间有什么关系?软件测试要经过的步骤是:单元测试-集成测试-确认测试-系统测试。

相关文档
最新文档