软件工程基础
软件工程的基础知识

软件工程的基础知识软件工程是一门综合性的学科,旨在通过系统化的方法和工具,对软件开发过程进行管理和控制,以提高软件的质量和效率。
下面将介绍软件工程的基础知识,包括软件生命周期、需求工程、软件设计和软件测试等方面。
1. 软件生命周期软件生命周期指软件从构思、开发、维护到废弃的整个过程。
通常包括以下几个阶段:- 计划阶段:确定需求、制定软件开发计划和预算。
- 需求分析阶段:分析用户需求、制定需求规格说明书。
- 设计阶段:制定系统设计方案、编写概要设计和详细设计文档。
- 编码阶段:根据设计文档编写源代码。
- 测试和验证阶段:进行单元测试、集成测试和系统测试,确保软件质量。
- 维护阶段:修复软件缺陷、进行功能扩展和性能优化。
在软件生命周期中,不同的阶段具有不同的目标和任务,需要进行严格的管理和控制。
2. 需求工程需求工程是软件工程的重要组成部分,旨在确定用户需求,并将其转化为明确、可靠的需求规格说明书。
需求工程包括以下几个关键步骤:- 需求获取:与用户沟通、收集需求,并进行需求分析和整理。
- 需求建模:使用UML等工具建立需求模型,包括用例图、活动图、类图等。
- 需求验证:与用户确认需求的正确性和完整性,并进行需求评审和验证。
- 需求管理:对需求进行版本控制、变更管理和跟踪,确保需求的准确性和一致性。
3. 软件设计软件设计是将需求规格转化为软件结构的过程,旨在确定软件的整体架构和详细设计方案。
软件设计包括以下几个主要方面: - 结构设计:确定软件的模块划分、接口设计和数据结构设计。
- 行为设计:设计软件的算法和逻辑处理流程,确定软件的具体功能。
- 用户界面设计:设计用户界面的布局、交互方式和视觉效果,提高用户体验。
- 数据库设计:设计软件所需的数据库结构和数据存储方案。
软件设计需要综合考虑软件的功能需求、性能需求和可维护性等因素,以确保设计的准确性和可靠性。
4. 软件测试软件测试是保证软件质量的重要手段,通过检测和验证软件的功能、性能和稳定性等来发现和修复缺陷。
软件工程基础全部课程

软件工程基础全部课程一、教学内容本节课的主题是软件工程基础,我们将使用教材《软件工程导论》来进行讲解。
本节课的主要内容是第一章:软件工程基本概念。
本章主要介绍了软件工程的定义、目的、历史和发展,以及软件工程的基本原则和方法。
二、教学目标1. 让学生了解软件工程的定义、目的和发展历程。
2. 让学生掌握软件工程的基本原则和方法。
3. 培养学生对软件工程的兴趣和认识。
三、教学难点与重点重点:软件工程的定义、目的、基本原则和方法。
难点:软件工程的实践应用和案例分析。
四、教具与学具准备教具:PPT、投影仪、电脑。
学具:教材《软件工程导论》、笔记本、笔。
五、教学过程1. 引入:通过简单的例子,如手机APP的开发,引出软件工程的定义和重要性。
2. 讲解:讲解软件工程的定义、目的和发展历程。
介绍软件工程的基本原则和方法,如模块化、抽象化、测试等。
3. 案例分析:分析一些成功的软件工程案例,如、淘宝等,让学生了解软件工程在实际中的应用。
4. 讨论:让学生分组讨论软件工程在实际开发中的作用和意义。
5. 练习:让学生通过教材中的练习题,巩固所学的内容。
六、板书设计板书设计如下:软件工程的定义:定义:通过工程化的方法和技术,系统地开发、维护和管理软件的过程。
目的:提高软件的质量、效率和可维护性。
发展历程:从程序设计到软件工程。
软件工程的基本原则:模块化:将软件划分为独立的模块,降低复杂性。
抽象化:忽略无关因素,关注核心问题。
测试:通过测试来验证软件的正确性和可靠性。
软件工程的方法:需求分析:明确软件的功能和性能要求。
设计:制定软件的结构和界面设计。
实现:编写代码,实现软件的功能。
测试:对软件进行测试,发现和修复错误。
七、作业设计作业题目:1. 请简述软件工程的定义、目的和发展历程。
2. 请阐述软件工程的基本原则和方法。
3. 请分析一个你熟悉的软件,如、淘宝等,说明软件工程在其中的应用。
答案:1. 软件工程的定义是通过工程化的方法和技术,系统地开发、维护和管理软件的过程。
软件工程的基础知识

软件工程的基础知识
软件工程的基础知识包括以下内容:
1. 软件开发生命周期:软件开发生命周期指的是软件从需求获取到维护和升级的整个过程。
常见的软件开发生命周期模型包括瀑布模型、迭代模型、增量模型等。
2. 软件需求工程:软件需求工程是明确用户需求并将其转化为可实现的软件系统的过程。
包括需求获取、需求分析、需求规格化和需求验证等阶段。
3. 软件设计:软件设计是确定软件系统结构和组件之间的关系,并描述其行为的过程。
包括结构设计、详细设计、接口设计、数据库设计等。
4. 编程与实现:根据软件设计的规范和要求,使用特定的编程语言开发软件系统,并进行测试和调试。
5. 软件配置管理:软件配置管理是对软件、文档和相关组件进行版本控制和配置管理的过程,包括变更控制、配置标识、配置状态管理等。
6. 软件测试与质量保证:软件测试是为了发现和修复软件中的缺陷和错误,确保软件质量符合预期要求的过程。
包括单元测试、集成测试、系统测试和验收测试等。
7. 软件维护:软件维护是在软件发布后对其进行更新、修复和
改进的过程。
常见的软件维护类型包括改正性维护、适应性维护、完善性维护和预防性维护等。
8. 软件项目管理:软件项目管理是为了有效地规划、组织和控制软件项目开发过程的活动。
包括项目计划、资源分配、进度控制、风险管理等。
9. 软件工程标准与规范:软件工程标准与规范是为了保证软件开发过程和软件质量的一致性和可重复性而制定的一套规则和指南,如ISO/IEC 12207、CMMI等。
以上是软件工程的基础知识,掌握这些知识可以帮助开发人员更好地理解和实践软件开发过程,提高软件质量和开发效率。
计算机二级【公共基础知识】软件工程基础

3.软件的分类
根据应用目标的不同,软件可分应用软件、系 统软件和支撑软件(或工具软件)。
(1)应用软件。它是在特定领域内开发,为特定目 的服务的一类软件。
(2)系统软件。它能与计算机硬件紧密配合在一起, 使计算机系统各个部分、相关的软件和数据协调、 高效的工作的软件。例如:操作系统、数据库管理 系统。
3.4软件测试
软件测试的指用人工或自动手段来运行或测定
某个系统的过程,其目的在于检验它是否满足 规定的需求或是弄清预期结果与实际结果之间
的差别。简单地说,软件测试的目的是尽可能 多地发现程序中的错误。
考点2:软件测试方法
按是否要执行被测试软件的角度分为:静态测 试和动态测试。
静态测试包括代码检查、静态结构分析、代码 质量度量。不实际运行软件,主要通过人工进 行。
1. 详细设计为软件结构图中的每一个模块确定
实现算法和局部数据结构,用某种选定的表 达工具表示算法和数据结构的细节。
详细设计常用工具:
1. 图形工具(程序流程图、 PAD图 、N-S图、 HIPO图)
2. 表格工具(判定表)
3. 语言工具(PDL )
开始 输入R S=3.14 * R*R
输出S
结束
答案:D
例题:
软件工程的出现是由于 A)程序设计方法学的影响 B)软件产业化的需要 C)软件危机的出现 D)计算机的发展
答案:C
例题:
软件设计中,有利于提高模块独立性的一个准 则是
A)低内聚低耦合 B)低内聚高耦合 C)高内聚低耦合 D)高内聚高耦合
答案:C
例题:
下列不属于结构化分析的常用工具的是 A)数据流图 B)数据字典 C)判定树 D)PAD图
第9课软件工程基础知识

7.4、系统设计知识
耦合是软件结构中各个模块之间相互关联程度的度量。 非直接耦合:如果两个模块没有没有直接关系,它们之间的联系完全是 通过主程序的控制和调用来实现的。 数据耦合:如果两个模块借助于参数表传递简单数据。 标志耦合:如果两个以上的模块都需要其余某一数据结构子结构时,不 使用全局变量的方式而是用记录传递的方式 控制耦合:如果一模块明显地把开关量、名字等信息送入另一模块,控 制另一模块的功能。 外部耦合:当模块与软件以个的环境有关时就发生外部耦合。例如:输 入输出把一个模块与特定的设备、格式、通信协议耦合在一起。 公共耦合:多个模块引用一全局数据区的模式。例如C语言中的external 数据类型、磁盘文件等都是全局数据区。 内容耦合:一个模块访问另一模块的内部数据;一个模块不通过正常入 口转到另一模块内部;两个模块有部分程序代码重叠;一个模块有多个 入口;
7.4、系统设计知识
内聚是一模块内部各个元素彼此结合的紧密程度的度量 偶然内聚:如果一个模块完成一组任务,这组任务彼此间即使有关系, 其关系也是松散的。 逻辑内聚:把几种逻辑上相关的功能组合在一起,每次被调用时,由传 送给的模块参数来确定该模块应完成哪一种功能。 时间内聚:如果一个模块所包含的任务必须在同一时间间隔内执行,这 个模块属于时间内聚,例如初始化模块。 过程内聚:如果一个模块的处理元素是相关的,而且必须按特定的次序 执行。 通信内聚:如果一个模块的所有功能都通过使用公用数据而发生关系。 顺序内聚:如果一个模块的处理元素是相关的,而且必须顺序执行,通 常一个处理元素的输出数据作为下一下处理元素的输入数据。 功能内聚:如果一个模块包括且仅包括为完成某一具体任务所必须的所 有成份,或者说模块中所有成分结合起来是为了完成一个具体的任务。
软件工程基础考试

软件工程基础考试(答案见尾页)一、选择题1. 软件工程的基础是什么?A. 程序设计B. 数据结构C. 计算机科学D. 需求分析2. 软件开发过程中,需求分析和系统设计的关系是什么?A. 需求分析是系统设计的依据B. 需求分析和系统设计同时进行C. 需求分析在系统设计之后进行D. 需求分析和系统设计没有必然联系3. 软件工程的三个层次及其在软件开发过程中的作用是什么?A. 应用层、系统层、理论层B. 物理层、数据层、逻辑层C. 需求层、设计层、实施层D. 开发层、测试层、维护层4. 软件开发生命周期(SDLC)的概念是什么?它包括哪几个阶段?A. 软件开发生命周期是指软件的开发过程B. SDLC包括需求分析、设计、编码、测试和维护C. SDLC是一个线性的过程D. SDLC各阶段按顺序进行,不具备迭代性5. 什么是敏捷开发方法?它与其他开发方法的区别是什么?A. 敏捷开发是一种快速开发的软件开发方法B. 敏捷开发强调团队合作和客户参与C. 敏捷开发适合大规模软件项目D. 敏捷开发与其他开发方法的区别在于流程管理6. 什么是面向对象编程(OOP)?请列举OOP的三个基本特征。
A. 封装、继承、多态B. 封装、继承、抽象C. 封装、多态、接口D. 继承、多态、接口7. 数据库管理系统(DBMS)在软件开发中的作用是什么?A. 存储和管理数据B. 提供数据查询和修改功能C. 数据库管理员(DBA)负责DBMS的管理和维护D. 所有选项都正确8. 什么是版本控制?请简述版本控制的两种主要策略。
A. 版本控制是一种软件配置管理技术B. 版本控制可以跟踪软件项目的变更C. 版本控制的主要策略有Git和SVND. 版本控制确保软件代码的安全性9. 什么是软件测试?它的目的和基本原则是什么?A. 软件测试是在软件投入运行后进行的活动B. 软件测试是为了发现软件中的错误和缺陷C. 软件测试的原则包括早期测试、缺陷倾向分布等D. 软件测试的目的是提高软件的质量和可靠性10. 什么是配置管理?它在软件开发中的作用是什么?A. 配置管理是指对软件配置项进行管理和控制的过程B. 配置管理可以确保软件配置的一致性和可追溯性C. 配置管理的主要活动包括配置标识、配置控制、配置审核等D. 配置管理有助于解决软件生命周期中的版本冲突问题11. 软件开发过程中,需求分析的主要任务是?A. 确定软件开发的功能B. 编写需求规格说明书C. 进行系统设计D. 进行程序设计12. 在软件开发中,迭代过程是为了更好地适应变化,它主要包括哪几个阶段?A. 需求分析B. 设计C. 编码D. 测试13. 软件工程中的“软件”指的是什么?A. 程序和数据B. 程序、数据和文档C. 程序和数据,可运行D. 程序、数据和用户手册14. 软件工程的发展历程中,第一个正式发布的软件开发标准是?A. ISO 9000B. CMMIC. PMBOKD.软件开发生命周期(SDLC)15. 在软件工程中,测试的目的是什么?A. 证明软件的正确性B. 找出软件中的错误C. 提高软件的质量D. 规范软件的开发过程16. 软件工程中的“软件生命周期”通常包括哪几个阶段?A. 开发B. 运行C. 维护17. 软件工程中,版本控制的主要作用是什么?A. 监控软件的修改历史B. 管理软件的版本C. 确保软件的一致性D. 保证软件的可靠性18. 软件工程中,敏捷开发方法是一种以人为核心、迭代、循序渐进的开发方法,它的核心价值包括:A. 个体和互动跨功能团队B. 可用的软件客户合作C. 响应变化随时间进化D. 面向结果19. 在软件工程中,UML(统一建模语言)是一种用于描述、构造和编写软件系统的图形化语言,它通常用于以下哪个阶段?A. 需求分析B. 设计C. 编码D. 测试20. 软件工程的定义是什么?A. 软件工程是一门研究用工程化方法构建和维护有效、实用和高质量的软件的学科。
软件工程基础

常见的数据库 系统:Oracle、 MySQL、SQL
Server、 SQLite等。
数据库系统的 基本组成:数 据库、数据库 管理系统和数 据库管理员等。
掌握数据库系统的基本原理和操作
添加 标题
数据库系统的基本概念:数据、数据库、数 据库管理系统
添加 标题
数据库系统的特点:数据结构化、数据共享 性、数据独立性、数据安全性
线性结构:线性结构是最基本的数据结构之一,它包括线性表、栈、队列等, 其特点是元素之间存在一对一的相互关系。
树形结构:树形结构是一种层次结构,它包括二叉树、多叉树、森林等,其 特点是每个节点可以包含多个子节点。
图形结构:图形结构是一种复杂的数据结构,它包括有向图、无向图、多重 图等,其特点是每个节点可以与多个节点相连。
添加 标题
数据库系统的基本模型:层次模型、网状模 型、关系模型
添加 标题
数据库系统的基本操作:创建、删除、修改、 查询数据,以及执行数据定义语言(DDL)、 数据操纵语言(DML)等操作
计算机网络
了解计算机网络的概念和分类
计算机网络定义: 将地理位置不同的 计算机通过通信线 路连接起来,实现 数据传输和资源共 享。
堆结构:堆结构是一种特殊的完全二叉树,它包括最大堆、最小堆等,其特 点是在任意一个非叶子节点上,其值都大于或等于其子节点的值。
学习常用的数据结构及其特点
数组:连续的存储空间,可 以动态调整大小
链表:节点之间通过指针相 互链接,可以动态添加和删 除节点
栈:后进先出(LIFO),只 能从顶部取元素,常用于处 理后进先出的操作序列
列、树等
掌握各种数据 结构的操作: 插入、删除、
查找等
熟悉常用的算 法:排序、查
软件工程基础

软件工程基础软件工程是日新月异、发展迅速的一门学科,它把软件设计、编程、分析和测试等工作捆绑在一起,致力于提供解决问题的方法和技术。
软件工程的核心思想是建立系统和可靠的软件,以适应不断变化的需求,实现客户期望的目标。
软件工程的基础是一种具有基本原则和模式的统一的分析和设计方法。
它的基本原则是系统的分析、设计、实施和改进的科学过程,它强调以软件可扩展性、可维护性、可复用性和可持续性为准则,以满足客户期望为目的的软件开发流程。
软件工程的基本原则是:重视质量,促进工程化,实现可维护性,提高能力,满足需求,实现可行性,提供便利,确保安全性,实现可持续发展。
这些原则可以帮助软件开发者设计高质量的软件,尤其是对系统有较高要求的大型企业级软件开发时起到关键作用。
软件工程模型主要有瀑布模型、迭代模型、螺旋模型、V模型、快速原型模型等,它们的不同点在于它们的参与者、项目生命周期的长短、资源管理的方式和发展阶段的控制方法。
瀑布模型是传统的软件开发模型,它将项目分为几个阶段,并且每个阶段只能完成一次,因此在每个阶段都需要确定该阶段的输入和输出资源,以确保下一个阶段的成功运行。
迭代模型认为软件的开发是一个迭代的过程,它将每个阶段进行重复,以达到一定的质量,这样一来,可以确保每个阶段的质量,以及最终的质量和完成的成果。
螺旋模型是一种可行的软件开发模型,它将开发流程作为一个螺旋状的轨迹,每完成一次螺旋环节就会获得一些可用的软件产品。
它强调以客户满意为目标,每一轮迭代都应有一个清晰的评估准则来进行反复测试和修正。
V模型是一种结合瀑布模型和迭代模型的软件工程模型,它将整个软件开发流程抽象成一个V形模型,从开发计划到软件释放,可以清晰地描述出开发流程,它结合了瀑布模型和迭代模型的优点,能够满足复杂项目的需求。
快速原型模型侧重于快速获得一个非常简单的系统运行状态,它适用于需求变更频繁、时间紧迫的项目。
该模型可以快速生成一个粗略的模型,用于验证需求的可行性,确保项目的成功实施。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
考点2 软件工程过程与软件生命周期
4. 软件工程的目标和与原则
(3)软件工程原则: 3)模块化:模块是程序中相对独立的成分,
一个独立的编程单位,应有良好的接口定义。 模块的大小要适中,模块过大会使模块内部的
复杂性增加,不利于模块的理解和修改,也不利于 模块的调试和重用;模块太小会导致整个系统表示 过于复杂,不利于控制系统的复杂性。
的活动; 2.概要设计与详细设计的概念、模块独立性及其度
量的标准、详细设计常用的工具; 3.软件测试的目的、软件测试的4个步骤; 4.软件调试的任务。
考点1 软件定义与软件特点
11.1 软件工程基本概念
1. 软件的相关概念
软件,指的是计算机系统中与硬件相互依存的另一部分, 包括程序、数据和相关文档的完整集合。
程序,是软件开发人员根据用户需求开发的、用程序设 计语言描述的、适合计算机执行的指令序列。
数据,是使程序能正常操纵信息的数据结构。 文档,是与程序的开发、维护和使用有关的图文资料。 软件由两部分组成: (1)机器可执行的程序和数据; (2)机器不可执行的,与软件开发、运行、维护、使用 等有关的文档。
考点3 软件设计的基本概念
2. 结构化分析方法 下图是一个数据流图的示例:
ห้องสมุดไป่ตู้点3 软件设计的基本概念
2. 结构化分析方法
数据字典: 对所有与系统相关的数据元素的一个有组织的 列表,以及精确的、严格的定义,使得用户和系统 分析员对于输入、输出、存储成分和中间计算结果 有共同的理解。 *数据字典的作用,是对数据流图中出现的被命 名的图形元素的确切解释。 *数据字典是结构化分析方法的核心。
结构设计:定义软件系统各主要部件之间的 关系。
并给出详细的定义。
考点2 软件工程过程与软件生命周期
3. 软件生命周期
(2)软件开发阶段: 软件设计:分为概要设计和详细设计两个部分。 软件实现:把软件设计转换成计算机可以接受 的程序代码。 软件测试:在设计测试用例的基础上检验软件 的各个组成部分。 (3)软件运行维护阶段:软件投入运行,并在 使用中不断地维护,进行必要的扩充和删改。
考点2 软件工程过程与软件生命周期
2. 软件危机与软件工程
软件工程源自软件危机。 所谓软件危机,是泛指在计算机软件的开发和维护过 程中所遇到的一系列严重问题。具体的说,在软件开发和 维护过程中,软件危机主要表现在: (1)软件需求的增长得不到满足。用户对系统不满意 的情况经常发生。 (2)软件开发成本和进度无法控制。开发成本超出预 算,开发周期大大超过规定日期的情况经常发生。 (3)软件质量难以保证。 (4)软件不可维护或维护程度非常低。
考点2 软件工程过程与软件生命周期
2. 软件危机与软件工程 软件工程的主要思想,是将工程化原则运用到
软件开发过程,它包括3个要素: 方法、工具和过程。 方法,是完成软件工程项目的技术手段; 工具,是支持软件的开发、管理、文档生成; 过程,支持软件开发的各个环节的控制、管理。
软件工程过程是把输入转化为输出的一组彼此 相关的资源和活动。
(4) 需求评审:在需求分析的最后一步,对需求 分析阶段的工作进行复审,验证需求文档的一致性、 可行性、完整性和有效性。
考点3 软件设计的基本概念
11.2 软件需求分析
2. 结构化分析方法 结构化分析方法,是结构化程序设计理论在软
件需求分析阶段的应用。 结构化分析方法的实质:着眼于数据流,自顶
向下,逐层分解,建立系统的处理流程,以数据流 图和数据字典为主要工具,建立系统的逻辑模型。
考点3 软件设计的基本概念
11.2 软件需求分析
1. 需求分析 需求分析方法有:
(1)结构化需求分析方法; (2)面向对象的分析方法。 需求分析的任务,是导出目标系统的逻辑模型, 解决“做什么”的问题。
需求分析一般分为,需求获取、需求分析、编 写需求规格说明书和需求评审四个步骤进行。
考点3 软件设计的基本概念
例如,x=4{a}9,表示a可以在x中至少出现4次最多出 现9次
例如,x=(a)表示a可以在x中出现,也可以不出现
基本可选元素 例如,x=“a”,表示x为取值为a的数据元素
连接符 例如,x=3..9,表示x可以取3到9之间的任一值
考点3 软件设计的基本概念
3. 软件需求规格说明书(SRS) 软件需求规格说明书,是需求分析阶段的最
后成果,通过建立完整的信息描述、详细的功能 和行为描述、性能需求和设计约束的说明、合适 的验收标准,给出对目标软件的各种需求。
考点4 详细设计
11.3 软件设计
1. 软件设计的基础
需求分析主要解决“做什么”的问题,而软 件设计主要解决“怎么做”的问题。
从技术观点来看,软件设计包括软件结构设 计、数据设计、接口设计、过程设计。
考点1 软件定义与软件特点
1. 软件的相关概念
软件的特点: (1)软件是逻辑实体,而不是物理实体,具有抽象性; (2)没有明显的制作过程,可进行大量的复制; (3)使用期间不存在磨损、老化问题; (4)软件的开发、运行对计算机系统具有依赖性; (5)软件复杂性高,成本昂贵; (6)软件开发涉及诸多社会因素。
数据流图的基本图形元素:
加工
数据流
存储文件
源、潭
考点3 软件设计的基本概念
2. 结构化分析方法 加工(转换):输入数据经加工变换产生输出。 数据流:沿箭头方向传送数据的通道,一般在
旁边标注数据流名。 存储文件(数据源):表示处理过程中存放各
种数据的文件。 源,潭:表示系统和环境的接口,属系统之外
的实体。 画数据流图的基本步骤: 自外向内,自顶向下,逐层细化,完善求精。
(2) 需求分析:对获取的需求进行分析和综合, 最终给出系统的解决方案和目标系统的逻辑模型。
考点3 软件设计的基本概念
11.2 软件需求分析
1. 需求分析 需求分析阶段的工作,可以概括为4个方面:
(3) 编写需求规格说明书:需求规格说明书作为 需求分析的阶段成果,可为用户、分析人员和设计 人员之间的交流提供方便,可直接支持目标软件系 统的确认,还可以作为控制软件开发进程的依据。
《计算机基础与Access数据库程序设计》
第11章 软件工程基础
公共基础知识考试大纲
软件工程基础考试内容:
1. 软件工程基本概念,软件生命周期概念,软件工具与 软 件开发环境。
2. 结构化分析方法,数据流图,数据字典,软件需求规格 说明书。
3. 结构化设计方法,总体设计与详细设计。 4. 软件测试的方法,白盒测试与黑盒测试,测试用例设计,
完全实现系统所需的功能。 8)可验证性:应遵循容易检查、测评、评审
的原则,以确保系统的正确性。
考点2 软件工程过程与软件生命周期
5. 软件开发工具与软件开发环境
(1)软件开发工具
软件开发工具的完善和发展将促使软件开发方 法的进步和完善,促进软件开发的高速度和高质量。
软件开发工具的发展是从单项工具的开发逐步 向集成工具发展的,软件开发工具为软件工程方法 提供了自动的或半自动的软件支撑环境。同时,软 件开发方法的有效应用也必须得到相应工具的支持, 否则方法将难以有效的实施。
根据应用目标的不同,软件可分为: 应用软件、系统软件和支撑软件(或工具软件)。
考点1 软件定义与软件特点
1. 软件的相关概念
应用软件,是为解决特定领域的应用而开 发的软件;
系统软件,是计算机管理自身资源,提高 计算机使用效率并为计算机用户提供各种服务 的软件;
支撑软件,是介于两者之间,协助用户开 发软件的工具性软件。
结构化分析的常用工具:
(1)数据流图(Data Flow Diagram,DFD); (2)数据字典(Data Dictionary,DD); (3)判定树; (4)判定表。
考点3 软件设计的基本概念
2. 结构化分析方法 数据流图,以图形的方式描绘数据在系统中
流动和处理的过程,它反映了系统必须完成的逻 辑功能,是结构化分析方法中用于表示系统逻辑 模型的一种工具。
考点2 软件工程过程与软件生命周期
4. 软件工程的目标和与原则
(3)软件工程原则: 抽象、信息隐蔽、模块化、局部化、确定性、 一致性、完备性和可验证性。 1) 抽象:抽象是事物最基本的特性和行为,忽 略非本质细节,采用分层次抽象,自顶向下,逐层 细化的办法控制软件开发过程的复杂性。 2)信息隐蔽:采用封装技术,将程序模块的 实现细节隐蔽起来,使模块接口尽量简单。
11.2 软件需求分析
1. 需求分析
软件需求是指用户对目标软件系统在功能、行 为、性能、设计约束等方面的期望和要求。目的是 准确定义新系统的目标,形成软件需求规格说明书。 需求分析必须达到开发人员和用户完全一致的要求。
需求分析阶段的工作,可以概括为4个方面:
(1) 需求获取:需求获取的目的是确定对目标系 统的各方面需求。
考点3 软件设计的基本概念
表 数据字典定义方式中出现的符号
符号
含义
解释
=
定义为
+ […|…] […,…] {…} n{…}m
(…) “…”
..
与
例如 x=a+b,表示x由a和b组成
或
例如,x=[a,b],x=[a|b],表示x由a或由b组成
与,和 例如,x={a},表示x由0个或多个a组成
重复 可选
考点2 软件工程过程与软件生命周期
2. 软件危机与软件工程
软件工程,是应用于计算机软件的定义、开 发和维护的一整套方法、工具、文档、实践标准 和工序。
软件工程的目的,是要建造一个优良的软件 系统,它所包含的内容概括为以下两点:
(1)软件开发技术,主要有软件开发方法学、 软件工具、软件工程环境。
(2)软件工程管理,主要有软件管理、软件 工程经济学。