软件工程概念

合集下载

软件工程简介及其应用领域

软件工程简介及其应用领域

软件工程简介及其应用领域软件工程是一门研究如何以系统化、规范化和可量化的方法开发、运行和维护软件的学科。

它旨在通过科学化的方法解决软件开发过程中的问题,确保软件质量、效率和可靠性。

本文将对软件工程的基本概念和应用领域进行介绍。

一、软件工程的基本概念1. 软件工程的定义软件工程是一门综合性学科,它借鉴了工程学的方法和原则,并应用于软件开发过程中。

其目的是通过系统化的方法,将软件开发过程转化为可管理和可控制的活动,从而实现高质量的软件产品。

2. 软件开发生命周期软件开发生命周期是指软件从创建到废弃的整个过程。

它包括需求分析、设计、编码、测试、部署和维护等阶段。

每个阶段都有特定的任务和产出物,通过这些阶段的有序进行,可以有效提高软件开发的效率和质量。

3. 软件工程的原则软件工程遵循一些基本原则,以确保开发出高质量的软件。

其中包括适应性原则、可管理性原则、可测量性原则、可靠性原则和可重复性原则等。

这些原则帮助开发团队规范开发过程,降低开发风险,提高软件的稳定性和可维护性。

二、软件工程的应用领域1. 软件开发软件工程的最主要应用领域是软件开发。

在这个领域中,软件工程师通过需求分析、系统设计、编码和测试等步骤,将用户需求转化为可运行的软件。

软件开发领域的不断发展使得软件工程师的需求量逐年增加。

2. 软件测试软件测试是软件工程中至关重要的一环,旨在保证软件的质量和稳定性。

软件测试工程师通过编写测试用例和执行测试,发现和修复软件中存在的问题。

他们努力确保软件在不同环境下正常运行,并具有预期的功能。

3. 软件项目管理软件项目管理涉及到对软件开发项目的计划、组织和控制。

软件工程师在此领域中承担着项目经理的角色,负责制定项目计划、分配任务、协调团队成员以及监控项目进度。

他们的目标是确保项目按时交付,并满足客户需求。

4. 软件需求工程软件需求工程是软件开发过程中重要的一环,旨在准确收集和分析用户的需求。

软件工程师在此领域中通过与客户的沟通和需求调研,确定软件的功能和性能要求,为后续的开发工作提供指导。

软件工程概念

软件工程概念

软件工程概念软件工程概念1. 软件工程的定义软件工程是一门涉及软件开发、维护和管理的学科,它利用系统化、规范化和量化的方法来开发和维护高质量的软件。

软件工程的目标是提高软件的质量、可靠性和可维护性,并确保软件项目在预定的时间和预算范围内完成。

2. 软件工程的特点软件工程具有以下几个特点:多学科综合:软件工程需要整合计算机科学、数学、工程学等多个学科的知识。

可量化和可测量性:软件工程使用度量和度量方法来评估软件的质量和进度。

工程化方法:软件工程采用工程化的方法,包括需求分析、设计、编码、测试和维护等环节。

团队合作:软件工程通常需要一个开发团队来合作完成项目,需要沟通和协调。

3. 软件工程的生命周期软件工程的生命周期包括以下几个阶段:需求分析:确定用户需求和系统要求,为后续的开发工作打下基础。

设计:根据需求分析得到的需求,设计软件的结构、功能和界面等。

编码:根据设计文件编写代码,实现软件的功能。

测试:测试软件的功能、性能和稳定性,发现并修复bug。

部署:将软件部署到目标系统中,让用户可以使用。

维护:随着时间的推移,软件可能需要更新和维护,以修复bug或添加新的功能。

4. 软件工程的原则软件工程有一些基本原则,包括:模块化:将系统划分为多个模块,每个模块负责一个特定的功能。

可复用性:设计和实现可复用的软件组件,提高开发效率和软件质量。

适应性:软件应该能够适应不断变化的需求和环境。

可测试性:软件应该易于测试,以便发现和解决问题。

文档化:软件应该有清晰的文档,方便开发者和用户理解和使用。

5. 软件工程的工具和技术软件工程使用各种工具和技术来支持开发过程,包括:集成开发环境(IDE):用于编写、调试和测试代码的集成开发环境,如Eclipse、Visual Studio等。

版本控制系统:用于管理和追踪代码版本的工具,如Git、SVN 等。

自动化测试工具:用于自动执行测试用例的工具,如JUnit、Selenium等。

软件工程基本概念

软件工程基本概念

软件工程基本概念:系统工程、软件开发方法、软件工具与软件开发环境软件工程基本概念1.系统工程系统工程是一种跨学科的工程方法,它强调在系统开发过程中采用全面的视角和思维方式,以系统性的方法和策略来解决各种问题。

在软件工程中,系统工程着重应用于大型、复杂系统的开发,如航天、军事、大型企业等。

系统工程强调对系统的整体性、结构性和功能性进行全面分析,包括系统需求分析、系统设计、系统实现、系统测试与验收等阶段。

在系统开发过程中,系统工程采用一系列工具和技术,如系统建模、系统架构设计、系统仿真等,以实现系统的优化和改进。

2.软件开发方法软件开发方法是一种用于指导软件开发过程的方法论,它提供了一组标准的步骤和原则,以指导开发者进行有效的软件开发。

常见的软件开发方法包括:结构化开发方法(SDM)、面向对象开发方法(ODM)、敏捷开发方法(ADM)、迭代开发方法(IDM)等。

这些方法在不同的软件开发场景和项目中具有不同的应用和优势。

软件开发方法的核心是提供一套完整的开发流程和规范,以指导开发者进行需求分析、设计、编码、测试和维护等软件开发活动。

此外,软件开发方法还强调对开发过程的管理和控制,以确保软件开发的质量和效率。

3.软件工具软件工具是用于辅助软件开发的软件或工具集,它们能够提高软件开发的效率和质量。

常见的软件工具包括:集成开发环境(IDE)、版本控制系统(VCS)、代码质量检测工具、调试工具、测试工具、需求管理工具等。

这些工具在不同的软件开发阶段和领域中具有广泛的应用和优势。

软件工具的目的是帮助开发者提高开发效率和质量,它们通过自动化、智能化和可视化等方式,减少了开发者的工作量和难度,同时提高了软件开发的精度和可靠性。

4.软件开发环境软件开发环境是指一系列软件工具和技术的集合,它们用于支持软件开发的整个生命周期。

常见的软件开发环境包括:软件开发平台(如Java平台、Python平台等)、软件开发框架(如Spring、Django等)、软件测试工具(如Junit、Selenium等)、版本控制系统(如Git、SVN等)、持续集成与持续部署(CI/CD)工具等。

软件工程基本概念

软件工程基本概念

软件工程基本概念一、基本概念:1、程序:是为了实现设计的功能和性能要求而编写的指令序列。

2、数据:是使指令能够正常操纵信息的数据结构。

3、文档:是与程序开发、维护和使用有关的图文资料。

4,软件(公认的解释):是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。

另一种定义:计算机程序,数据结构和描述所需逻辑方法、过程或控制的文档。

4-1.实时软件:管理、分析、控制现实世界中所发生的事件的软件。

4-2.嵌入式软件:驻留在专用的职能产品中,用于控制这些产品进行正常工作,完成很有限、很专业的功能的软件。

5,软件危机:就是指在软件开发和软件维护过程中所存在的一系列严重的问题。

5-1.软件的“生命周期”:软件产品从策划、定义、开发、使用和维护直到最后废弃,要经过以一个漫长的时期,这个时期称为软件的“生命周期”。

6,软件工程(Boehm)定义:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。

7,软件工程(IEEE)定义:是开发、运行、维护和修复的系统方法。

8,软件工程(Fritz Bauer)定义:建立并使用完善的工程化的原则,以较经济的手段获得能在实际机器上有效运行的可靠的软件的一系列方法。

9,软件工程过程:是用以开发和维护软件及其相关产品的一系列活动,包括软件工程活动和软件管理活动。

这些活动的执行可以使有序的、循环的、重复的、嵌套的、也可以是有条件引发的。

10,软件工程过程模型:在一个具体的实际工程活动中,软件工程师必须设计、提炼出一个工程开发策略,用以覆盖软件过程中的基本阶段,确定所涉及的过程、方法、工具。

11、过程性能:一个软件开发组织遵循其软件过程所得到的实际结果称之为该过程的“过程性能”。

12,过程能力:软件开发组织通过执行其软件过程能够实现预期结果的程度称之为该组织的“软件过程能力”13,过程成熟度:一个特定软件过程被明确和有效地定义、管理、测量和控制的程度称为此过程的成熟度。

软件工程概念

软件工程概念

软件工程概念什么是软件工程软件工程是一门研究如何以系统化、规范化、可靠和高效的方式开发和维护软件系统的学科。

它涵盖了软件开发的整个生命周期,包括需求分析、系统设计、编码、测试、部署和维护等阶段。

软件工程旨在提高软件质量、加速开发进程、降低开发成本,并且使软件系统符合用户需求。

软件工程的核心概念1. 需求工程需求工程是软件工程中非常重要的一部分,它涉及到理解和定义用户对软件系统的需求,并将其转化为可行的技术规格。

需求工程包括需求获取、需求分析、需求规格、需求验证等工作。

合理的需求工程能够保证软件系统能够满足用户的期望和需求。

2. 软件设计软件设计是软件工程中的核心环节之一,它涉及到将需求转化为可执行的软件系统。

软件设计包括结构设计、模块设计、接口设计等方面。

合理的软件设计能够提高软件的可维护性、可扩展性和可重用性,并且确保软件系统能够高效地实现用户需求。

3. 软件开发软件开发是软件工程的实施阶段,它涉及到软件编码、系统集成、单元测试、软件配置管理等工作。

软件开发过程中需要遵循一定的开发规范和方法,以保障代码的质量和可维护性。

4. 软件测试软件测试是为了验证软件系统的质量和正确性。

软件测试包括单元测试、集成测试、系统测试等方面。

合理的测试策略和测试方法能够有效地发现和解决软件中的错误和缺陷,保证软件系统的可靠性和稳定性。

5. 软件维护软件维护是软件工程的一个阶段,它涉及到对软件系统的修改、更新和维护工作。

软件维护包括改正错误、优化性能、适应新的环境和需求等方面。

合理的维护工作能够保证软件系统的长期稳定运行和不断满足用户需求。

软件工程的重要性软件工程在当今信息社会中显得尤为重要。

随着科技的发展和应用的普及,软件系统越来越高大上,需求日益复杂。

软件工程提供了一种组织、推动和管理软件开发的有效方法,使得软件开发过程更加可控和可预测。

软件工程能够提高软件系统的开发效率,减少开发成本,降低风险,提高软件质量,适应用户需求的变化。

软件工程的概念、目标及生命周期

软件工程的概念、目标及生命周期

软件工程的概念、目标及生命周期软件工程是指通过应用科学和数学的原则、方法和工具,采用系统化、规范化、可靠化等方式来开发和维护软件系统的学科。

本文将介绍软件工程的概念、目标以及生命周期。

一、软件工程的概念软件工程是一门综合性学科,旨在应用科学和数学原理来开发和维护软件系统。

软件工程的目的是通过采用一系列的原则、方法和工具,以系统化、规范化、可靠化的方式来提高软件开发过程中的效率和质量。

软件工程的主要特点包括以下几个方面:1. 技术导向:软件工程侧重于应用科学和数学原理,以技术为基础来解决软件开发和维护中的问题。

2. 系统化:软件工程将软件开发过程进行系统化管理,包括需求分析、设计、编码、测试和维护等各个阶段。

3. 规范化:软件工程强调规范化的开发过程,通过制定标准和规范,保证开发人员在开发过程中遵循统一的标准。

4. 可靠化:软件工程追求软件系统的可靠性和稳定性,通过测试和验证等手段,减少软件系统出现问题的概率。

二、软件工程的目标软件工程的目标是提高软件开发过程的效率和质量,确保开发出满足用户需求的高质量软件系统。

具体来说,软件工程的目标包括以下几个方面:1. 开发高质量软件:软件工程致力于通过系统化、规范化的开发过程,提高软件的质量和可靠性。

2. 提高开发效率:软件工程通过标准化和工具化的开发过程,提高开发效率,减少开发成本和时间。

3. 满足用户需求:软件工程注重需求分析阶段,确保软件系统符合用户的需求和期望。

4. 管理软件项目:软件工程提供项目管理方法和工具,帮助开发团队进行有效的沟通和协作。

5. 改进软件维护:软件工程关注软件系统的维护阶段,提供方法和工具,确保软件系统持续稳定运行。

三、软件工程的生命周期软件工程的生命周期指的是软件从需求分析到维护的整个开发过程。

一般包括以下几个阶段:1. 需求分析阶段:在这个阶段,开发团队与用户沟通、收集用户需求,并对需求进行分析和规划。

2. 设计阶段:在需求分析的基础上,进行软件系统的整体设计和详细设计,确定软件的架构和模块划分。

软件工程概念

软件工程概念

软件工程概念第一章:软件定义1.软件( Software):计算机系统中与硬件相互依存的另一部分,它是包括程序(Program),数据(D ata)及其相关文档( Document)的完整集合。

2.软件的特征:逻辑复杂,开发复杂,成本高,风险大,维护困难。

3.按软件功能分类:系统软件,支撑软件,应用软件。

系统软件:操作系统,数据库管理系统,设备驱动程序,通信处理程序等。

支撑软件:文本编辑程序,文件格式化程序,程序库系统等应用软件:商业数据处理软件,工程与科学计算软件,计算机辅助设计/制造软件,系统仿真软件,智能嵌入软件,医疗、制药软件,事务管理、办公自动化软件。

按软件规模分类:微型,小型,中型,大型,甚大型,极大型。

按软件工作方式分:实时处理软件,分时软件,交互式软件,批处理软件4.软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题5.软件危机主要是两个问题:1.如何开发软件,以满足对软件的日益增长的需求?2.如何维护数量不断膨胀的已有软件?5.软件危机的表现:1.成本高,开发成本估计不准确2.软件质量不高、可靠性差3.进度难以控制4.维护非常困难5.用户不满意6. 由于软件质量问题导致失败的软件项目非常多。

6.产生软件危机的原因:1.与软件本身的特点有关 2.与软件开发与维护的方法不正确有关.软件工程学的目的:以较低的成本研制具有较高质量的软件软件工程技术的两个明显特点:1.强调规范化2. 强调文档化软件工程的基本原理(7条):1.用分阶段的生命周期计划严格管理2.坚持进行阶段评审3.实严格的产品控制4.采用现代程序设计技术5.结果应能清楚地审查6.开发小组的人员应该少而精7.承认不断改进软件工程实践的必要性8.软件工程方法学包含3个要素:方法、工具和过程9.软件生命周期:软件定义(问题定义,可行性研究,需求分析),软件开发(总体设计,详细设计,编码和单元测试,集成测试),运行维护(持久满足用户需求)10.软件过程模型:瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型。

软件工程概念

软件工程概念

软件工程概念软件工程是指系统性、规范化地开发、运行和维护计算机软件的一门学科。

它涵盖了软件开发生命周期中的各个阶段,包括需求分析、设计、编码、测试、部署和维护等。

软件工程旨在提高软件开发过程的效率和质量,确保软件能够满足用户的需求,并且稳定可靠地运行。

一、软件工程的定义和特点软件工程是指通过系统化的、规范化的方法来开发、运行和维护软件的过程。

与传统的“编码”方式相比,软件工程更加注重整个开发过程中的规划、设计、测试和管理等环节。

软件工程的主要特点包括:1. 系统性:软件工程强调整个开发过程的系统性,即从需求分析到维护等各个阶段都应该有相应的方法和流程。

2. 规范化:软件工程倡导使用规范化、统一的方法和标准,旨在提高软件开发过程的可控性和可预测性。

3. 风险管理:软件工程注重对开发过程中的风险进行评估和管理,以降低项目失败的风险。

4. 团队合作:软件工程鼓励团队合作和沟通,倡导不同角色的专业人员参与软件开发过程。

二、软件工程的发展历程软件工程的发展可以分为以下几个阶段:1. 软件危机阶段:20世纪60年代和70年代初,由于软件开发过程的混乱和管理不善,导致了大量软件项目的失败和延期。

2. 软件工程的兴起:20世纪70年代末,随着软件工程的概念的提出和软件工程教育的开展,软件工程开始得到更多的关注和应用。

3. 软件工程的成熟:20世纪80年代和90年代,软件工程的理论和方法得到了进一步的完善和扩展。

各类软件开发工具和框架不断涌现,为软件开发提供了更多的支持和便利。

4. 敏捷开发与DevOps:21世纪初,随着互联网的快速发展和软件行业的不断进化,敏捷开发和DevOps等新的开发方法逐渐兴起,并成为软件工程领域的热点。

三、软件工程的重要性软件工程的重要性体现在以下几个方面:1. 提高软件质量:软件工程通过规范化的开发流程和测试方法,可以提高软件的质量和可靠性,减少出现问题和漏洞的可能性。

2. 提高开发效率:软件工程倡导使用工具和框架来提高开发效率,避免重复劳动,减少开发过程中的人为错误。

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

软件工程概念第一章:软件定义1.软件(Software):计算机系统中与硬件相互依存的另一部分,它是包括程序(Program),数据(D ata)及其相关文档(Document)的完整集合。

2.软件的特征:逻辑复杂,开发复杂,成本高,风险大,维护困难。

3.按软件功能分类:系统软件,支撑软件,应用软件。

系统软件:操作系统,数据库管理系统,设备驱动程序,通信处理程序等。

支撑软件:文本编辑程序,文件格式化程序,程序库系统等应用软件:商业数据处理软件,工程与科学计算软件,计算机辅助设计/制造软件,系统仿真软件,智能嵌入软件,医疗、制药软件,事务管理、办公自动化软件。

按软件规模分类:微型,小型,中型,大型,甚大型,极大型。

按软件工作方式分:实时处理软件,分时软件,交互式软件,批处理软件4.软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题5.软件危机主要是两个问题:1.如何开发软件,以满足对软件的日益增长的需求?2.如何维护数量不断膨胀的已有软件?5.软件危机的表现:1.成本高,开发成本估计不准确2.软件质量不高、可靠性差3.进度难以控制4.维护非常困难5.用户不满意6. 由于软件质量问题导致失败的软件项目非常多。

6.产生软件危机的原因:1.与软件本身的特点有关2.与软件开发与维护的方法不正确有关. 软件工程学的目的:以较低的成本研制具有较高质量的软件软件工程技术的两个明显特点:1.强调规范化2. 强调文档化软件工程的基本原理(7条):1.用分阶段的生命周期计划严格管理2.坚持进行阶段评审3.实严格的产品控制4.采用现代程序设计技术5.结果应能清楚地审查6.开发小组的人员应该少而精7.承认不断改进软件工程实践的必要性8.软件工程方法学包含3个要素:方法、工具和过程9.软件生命周期:软件定义(问题定义,可行性研究,需求分析),软件开发(总体设计,详细设计,编码和单元测试,集成测试),运行维护(持久满足用户需求)10.软件过程模型:瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型。

11.软件过程模型RUP:初始阶段,细化阶段,构造阶段,移交阶段第二章:可行性研究的任务1.可行性研究的五个方案:技术可行性,经济可行性,操作可行性,法律可行性,社会效益2.可行性研究过程:1.复查系统规模与目标、2.研究目前的系统、3. 导出新系统的高层逻辑模型、4. 进一步定义问题、5. 导出和评价供选择的解法、6. 推荐行动方针、7. 草拟开发计划、8.书写文档提交审查3.系统流程图:用来描述物理系统的工具。

4.系统流程图表达:是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程。

即:系统流程图≠程序流程图。

5.系统流程图的基本思想:用图形符号以黑盒子形式描绘组成系统的每个部件6.系统流程图元素:处理,输入输出,连接,换页连接,数据流。

7.数据流图:用来描述逻辑系统的工具。

数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换,即数据流图描绘数据在软件中流动和被处理的逻辑过程。

8.数据流图四种基本符号:数据加工/处理/变换,数据源点或终点(外部实体),数据存储,数据流。

9.数据字典的组成:数据流,数据流分量(数据元素),数据存储,处理。

10.数据元素:顺序,选择,重复,可选。

第三章:需求分析1.需求分析:软件定义时期的最后一个阶段,2.需求分析的基本任务:不是确定系统怎样完成它的工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。

3.软件需求的组成:业务需求,用户需求,系统需求。

4.需求分析方法:面向数据流的结构化分析方法(SA),面向对象的分析方法(OOA) 等5.逻辑模型:数据流图(DFD),数据字典(DD),实体-关系图(ERD),状态转换图(STD)6.物理模型:系统流程图,7.需求分析的基本思想:“自顶向下,逐步求精”,抽象和分解8.需求分析;功能模型—数据流图,数据模型—实体-关系图,行为模型—状态转换图9.实体-关系图(ERD):描述数据对象及数据对象之间的关系10.数据流图(DFD):描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能(子功能)11.状态转换图(STD):描述系统对外部事件如何响应,如何动作模型的核心是数据字典12.实体-联系图(ER)组成::数据对象(实体)、数据对象的属性及数据对象彼此间相互连接的关系。

联系:一对一联系,一对多联系,多对多联系。

通常用矩形框代表实体;用连接相关实体的菱形框表示关系;用椭圆形或圆角矩形表示实体(或关系)的属性;并用直线把实体(或关系)与其属性连接起来。

13.数据规范化目的是:1.消除数据冗余,即消除表格中数据的重复;2.消除多义性,使关系中的属性含义清楚、单一;3.使关系的“概念”单一化,让每个数据项只是一个简单的数或字符串,而不是一个组项或重复组;4.方便操作。

使数据的插入、删除与修改操作可行并方便;5.使关系模式更灵活,易于实现接近自然语言的查询方式。

14.状态转换图(简称为状态图):通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。

此外,状态图还指明了作为特定事件的结果,系统将做哪些动作(例如,处理数据)。

15.状态:初态:一个,终态:0或多个,中间状态16. 验证软件需求:一致性,完整性,现实性,有效性。

第五章:总体设计1.总体设计(概要设计):将软件需求转化为数据结构和软件的系统结构2.数据库设计包括三个步骤:模式设计,子模式设计,存储模式设计。

3.软件设计原理:模块化,抽象,逐步求精,信息隐藏与信息局部化,模块独立4.模块:是由边界元素限定的相邻程序元素(例如,数据说明,可执行的语句)的序列,而且有一个总体标识符代表它。

C、C++和Java语言中的{...} 对过程、函数、子程序和宏等面向对象方法学中的对象是模块,对象内的方法也是模块模块化是好的软件设计的一个基本准则5.模块独立的含义:模块完成独立的功能,符合信息隐藏和信息局部化原则,模块间关连和依赖程度尽量小。

6.独立性的度量:耦合、内聚。

7.耦合是对一个软件结构内不同模块之间互连程度的度量。

8.耦合的强弱取决于模块间接口的复杂程度,进入或访问一个模块的点以及通过接口的数据9.模块间的耦合程度强烈影响系统的可理解性、可测试性、可靠性和可维护性。

耦合性越高,模块独立性越弱10.耦合强度依赖的因素:一模块对另一模块的引用一模块向另一模块传递的数据量一模块施加到另一模块的控制的数量模块间接口的复杂程度11.耦合性由强到弱排列为:内容耦合,公共耦合,特征耦合,控制耦合,数据耦合。

12.原则:尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,完全不用内容耦合。

13.内聚(Cohesion):标志一个模块内各元素彼此结合的紧密程度。

14.内聚有七种,由弱到强分别为:偶然内聚->逻辑内聚->时间内聚->过程内聚->通信内聚->顺序内聚->功能内聚。

15.深度= 分层的层数。

过大表示分工过细。

16.宽度= 同一层上模块数的最大值。

过大表示系统复杂度大。

17.扇出= 一个模块直接调用/控制的模块数。

18.扇入= 直接调用该模块的模块数。

19控制域:这个模块本身以及所有直接或间接从属于它的模块的集合。

20.作用域:受该模块中的一个判定所影响的所有模块的集合。

面向数据流的设计方法:变换流,事务流。

第六章:详细设计1.详细设计:描述系统的每个程序,包括每个模块和子程序名称、标识符、层次结构系2.对程序的功能、性能、输入、输出、算法、流程、接口等进行描述3.程序控制结构:顺序、选择,循环,(多分支,DO While ,DO Until)五种基本控制结构。

4.程序流程图又称为程序框图:是对一个模块的内部执行过程用图形来描述。

5.盒图:只能从上边进入,从下边走出,没有其他的入口和出口,6.盒图的基本符号:顺序,选择型(If-then-else),多分支选择型(CASE型),DO-WHILE循环(先测试循环), DO-UNTIL循环(后测试循环). 调用子程序.7.PAD图:PAD图中竖线的总条数就是程序中的层次数8.PAD图基本符号:顺序,选择,循环,Case分支,语句标号,定义.9.判定表:左上部列出所有的条件,左下部是所有可能的操作,右上部是各种条件的组合矩阵,右下部是每种条件组合对应的动作第七章:软件实现1.实现:编码和测试2编码:把软件设计结果翻译成用某种程序设计语言书写的程序3.程序设计语言:机器语言,汇编语言,高级语言4.程序内部的文档包括:恰当的标识符,适当的注释,程序的视觉组织。

5.符号名即标识符;包括模块名、变量名、常量名、标号名、子程序名、数据区名以及缓冲区名等。

6.程序的注释:程序员与日后的程序读者之间通信的重要手段7.注释分为序言性注释和功能性注释.8.软件测试是保证软件质量的关键步骤,是对软件规格说明、设计和编码的最后复审,其工件量约占总工作量40%以上(对于人命关天的情况,测试相当于其它部分总成本的3-5倍)。

8.软件测试方法:静态测试方法,,动态测试方法9.静态测试方法:人工测试方法,计算机辅助静态分析方法10.动态测试方法:白盒测试方法,黑盒测试方法.11.黑盒测试法又称功能测试:把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程12.白盒测试法又称为结构测试:把程序看成装在一个透明的白盒子,测试者完全知道程序的结构和处理算法13.软件测试步骤:1.模块测试又称(单元测试),2.子系统测试,3.系统测试称为集成测试,4.验收测试也称为确认测试,5.平行运行14.单元测试主要使用白盒测试技术。

15.单元测试重点:模块接口,局部数据结构,重要的执行通路,出错处理通路,边界条件。

16.集成测试方法:非渐增式测试方法,渐增式测试方法17.渐增式测试策略:可使用深度优先的策略,或宽度优先的策略18.回归测试:是指重新执行已经做过的测试的某个子集,以保证修改变化没有带来非预期的副作用。

19.白盒测试技术:逻辑覆盖20.逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术。

21.逻辑覆盖:语句覆盖,判定覆盖,条件覆盖,判定-条件覆盖,条件组合覆盖,21.路径覆盖,点覆盖= 语句覆盖,边覆盖=判定覆盖,路径覆盖与条件组合覆盖。

22.语句覆盖:每条语句至少执行一次23.判定覆盖:每一判定的每个分支至少执行一次24.条件覆盖:每一判定中的每个条件,分别按“真”、“假”至少各执行一次25.判定-条件覆盖:同时满足判定覆盖和条件覆盖的要求26.条件组合覆盖:求出判定中所有条件的各种可能组合值,每一可能的条件组合至少执行一次。

相关文档
最新文档