软件工程基础知识点总结
软件工程知识点

软件工程知识点软件工程是一门综合性的学科,它涵盖了软件开发的各个方面,包括需求分析、系统设计、编码实现、测试和维护等。
软件工程知识点是软件工程师必备的知识,下面将介绍一些重要的软件工程知识点。
一、软件工程概述软件工程是一种应用系统工程原理和方法来开发和维护软件的学科。
它包括软件的开发进程、软件工程原理、软件生命周期等相关概念。
二、软件开发过程软件开发过程是指从软件需求分析到软件交付使用的整个过程。
常用的软件开发过程模型有瀑布模型、迭代模型和敏捷开发模型等。
其中,瀑布模型是一种串行的开发过程,适用于需求较为明确的项目;迭代模型是多次迭代交付的开发过程,适用于需求不太明确或较为复杂的项目;敏捷开发模型则强调迭代、反馈和灵活性,适用于需求变更频繁的项目。
三、软件需求分析软件需求分析是软件开发的第一步,它确定用户的需求,并将其转化为可实现的软件需求规格说明。
软件需求分析包括需求获取、需求分析与建模、需求验证和需求管理等阶段。
四、软件设计软件设计是将需求分析得到的软件需求转化为软件设计文档和软件体系结构。
软件设计包括系统设计、详细设计和用户界面设计等方面。
在设计过程中,需要考虑软件的结构、模块划分、接口设计以及算法和数据结构等。
五、软件编码与实现软件编码与实现是将软件设计文档转化为可执行的程序代码的过程。
在编码过程中,需要选择合适的编程语言、开发工具和框架,并按照开发规范进行编码工作。
同时,需要进行代码测试和调试,确保程序的正确性和稳定性。
六、软件测试软件测试是在软件开发过程中对软件进行验证和验证的过程。
测试用例的制定和执行是软件测试的关键步骤,常用的测试方法包括黑盒测试、白盒测试、功能测试和性能测试等。
七、软件质量保证与维护软件质量保证与维护是为了确保软件的质量,防止软件出现问题。
软件质量保证包括质量规划、配置管理、缺陷管理和度量等。
而软件维护则是在软件交付后对软件进行修复、改进和更新等工作。
总结:软件工程知识点是软件工程师必备的知识,涵盖了软件开发的各个环节。
软件工程知识点汇总

软件工程知识点汇总1. 软件工程简介软件工程是运用系统化、规范化和可管理的方法进行软件开发、运行和维护的学科。
它涵盖了软件生命周期的各个阶段,包括需求分析、设计、编码、测试、发布和维护等。
2. 软件工程流程模型常见的软件工程流程模型包括瀑布模型、迭代模型、增量模型、螺旋模型等。
不同的模型适用于不同的项目需求和开发环境,每个模型都有其优缺点。
3. 软件需求工程软件需求工程是确定软件系统应该如何工作的过程。
它包括需求获取、需求分析、需求规格和需求验证等活动。
良好的需求工程能够确保软件系统满足客户的需求和预期。
4. 软件设计软件设计是将软件需求转化为可执行的程序设计的过程。
它包括系统架构设计、模块设计、接口设计和数据库设计等活动。
良好的软件设计能够提高软件的可维护性和可扩展性。
5. 软件开发软件开发是按照软件设计规范进行编码和测试的过程。
开发人员应该具备良好的编程技能和测试能力,并遵循编码规范和测试流程。
6. 软件测试软件测试是为了发现软件中的错误和缺陷,保证软件的质量和可靠性。
测试方法包括功能测试、性能测试、压力测试和安全测试等。
高质量的测试能够提高软件的稳定性和用户满意度。
7. 软件配置管理软件配置管理是对软件开发过程中所的各类工作产品进行控制、记录、审计和追踪的过程。
配置管理包括版本管理、变更管理、发布管理和文档管理等活动。
8. 软件项目管理软件项目管理是对软件开发项目进行规划、组织、指导和控制的过程。
它包括项目需求分析、项目计划制定、项目资源分配和进度控制等活动。
有效的项目管理能够提高软件开发效率和项目成功率。
9. 软件质量管理软件质量管理是在软件开发过程中对质量进行全面管理的过程。
它包括质量计划、质量控制和质量保证等活动。
良好的质量管理能够提高软件的可靠性和用户满意度。
10. 软件维护与迭代软件维护是在软件发布后对其进行修复bug、优化性能和添加新功能的过程。
软件迭代是对软件系统进行增量式的开发和发布,不断提高软件质量和功能。
软件工程师重点知识点

软件工程师重点知识点软件工程师是一个非常重要且具有挑战性的职业,他们负责开发和维护各种软件应用程序。
为了成为一名合格的软件工程师,掌握一些重要的知识点是必不可少的。
本文将介绍一些软件工程师应关注和掌握的重要知识点。
一、编程语言编程语言是软件工程师的基础工具。
常见的编程语言包括C/C++、Java、Python等。
掌握至少一种主流的编程语言是软件工程师的基本要求。
此外,了解不同编程语言的特性和适用场景也是必要的。
例如,C/C++适用于系统开发,Java适用于企业级应用开发,Python适用于科学计算和数据分析。
二、数据结构与算法数据结构和算法是软件工程师需要具备的核心知识。
熟悉常见的数据结构,如数组、链表、栈、队列、树等,能够选择合适的数据结构来解决问题。
同时,掌握常见的算法,如排序算法、查找算法、图算法等,能够高效地解决各种实际问题。
三、操作系统软件工程师需要了解操作系统的基本原理和功能。
掌握操作系统的相关知识,能够理解程序与操作系统之间的交互,优化程序的性能和资源利用。
熟悉常见的操作系统,如Windows、Linux,以及相应的命令行工具和脚本语言,是软件工程师必备的技能。
四、数据库数据库是软件应用的重要组成部分。
软件工程师需要了解数据库的基本概念和原理,能够设计和优化数据库结构,并能够使用SQL语言进行数据查询和操作。
熟悉常见的数据库管理系统,如MySQL、Oracle、SQL Server等,能够根据需求选择合适的数据库解决方案。
五、网络和网络安全软件工程师需要了解网络的基本知识,包括网络协议、网络拓扑结构、网络编程等。
同时,网络安全也是软件工程师需要关注的重要领域。
了解常见的网络攻击方式和防御措施,能够编写安全的网络应用程序,保护用户数据的安全。
六、软件开发流程软件开发流程是软件工程师在开发和维护软件应用时需要遵循的一套规范和方法。
常见的软件开发流程包括瀑布模型、迭代模型、敏捷开发等。
软件工程师需要了解各种开发流程的特点和适用场景,能够根据项目需求选择合适的开发方法。
软件工程知识点总结

软件工程(简要知识点)一、. 软件过程五个模型对比(瀑布模型、快速原型、增量、螺旋、喷泉模型)二、可行性研究:1、任务:用最小的代价在尽可能短的时间内确定问题是否能够解决。
2、四个方面:技术、经济、操作可行性、法律3、数据流图四种成分:1、源点/终点2、处理3、数据存储4、数据流三、需求分析:1、任务:确定系统必须完成哪些工作,对目标系统提出完整、清晰、具体的要求。
2、结构化方法就是面向数据流自顶向下逐步求精进行需求分析的方法。
3、实体联系图:1、数据对象2、属性3、联系(1:1、1:N 、M:N )四、总体设计:1.任务:回答“概括的说,系统应该如何实现”,用比较抽象概括的方式确定系统如何完成预定的任务,也就是说应该确定系统的物理配置方案,并且进而确定组成系统的每个程序结构。
2. 系统设计阶段(确定系统具体实施方案)、结构设计阶段(确定软件结构)3.模块独立:内聚和耦合4. 耦合表示一个软件结构内各个模块之间的互连程度,应尽量选用松散耦合的系统 问题定义(确定题目)可行性研究需求分析 概要设计详细设计编码和单元测试 综合测试系统设计 系统实现 软件定义 软件开发 运行维护:主要任务是使软件持久地满足用户的需要软件生命周期:5. 内聚(Cohesion): 一个模块内各元素结合的紧密程度6.面向数据流的设计方法:变换流和事务流五、详细设计:1.任务:确定应该怎样具体的实现所要求的系统,也就是说经过这个阶段的设计工作应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。
2.过程设计的工具(程序流程图、盒图、PAD图、判定表、判定树)七、测试:1、单元测试:又称模块测试。
每个程序模块完成一个相对独立的子功能,所以可以对该模块进行单独的测试。
由于每个模块都有清晰定义的功能,所以通常比较容易设计相应的测试方案,以检验每个模块的正确性。
2、集成测试:在单元测试完成后,要考虑将模块集成为系统的过程中可能出现的问题,例如,模块之间的通信和协调问题,所以在单元测试结束之后还要进行集成测试。
软件工程知识点汇总

软件工程知识点汇总1软件工程、软件工程方法学:三要素1.1软件工程:O1应用系统化的、规范化的、可度量的方法来开发、运行和维护软件,即将工程应用到软件;O 2对。
的各种方法的研究1.2软件工程是一门研究用工程化方法构建和维护有效的实用的和高质量的软件的学科1.3软件工程三要素是:方法、工具、过程软件工程的方法:是指完成软件开发各项任务的技术方法软件工具:是指为软件工程方法的运用提供自动半自动的软件支撑环境软件工程过程:是指将软件工程方法和工具综合起来以达到合理、及时地进行计算机软件开发这一目的2软件工程的原则包括:模块化原则、信息隐蔽原则、抽象化原则、模块独立原则(内聚、耦合)、依赖倒转原则、开闭原则等2.1模块化原则:指解决一个复杂问题时自顶向下逐层把软件系统划分为若干模块的过程。
模块是程序中相对独立的成分,一个独立的编程单位,应有良好的编程接口,模块的大小要适中,模块过大会使模块内部的复杂性增加不利于模块的理解和修改,模块过小会导致整个系统表示过于复杂,不利于控制系统的复杂性。
2.2信息隐蔽原则:采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量简单。
2.3抽象化原则:抽取事物最基本的特性和行为,忽略非本质细节,采用分层次抽象,自顶向下,逐层细化的办法控制软件开发过程的复杂性。
2.4模块独立原则:是指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单。
要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块间由松散的偶合关系,模块内部有较强的内聚性,这有助于控制系统的复杂性。
(即:高内聚低耦合)2.5依赖倒转原则:抽象不应该依赖于细节,细节应该依赖于抽象。
2.6开闭原则:软件实体应该是可扩展的,但是不可以修改。
即对于扩展是开放的,对于更改是封闭的。
3软件开发模型:瀑布模型;快速原型;喷泉模型;各种模型的工作原理、阶段、每阶段任务、特点、示意图;软件开发模型(也称为软件过程模型):是从软件项目需求定义开始直至软件经使用后废弃为止,跨越整个生命周期的系统开发、运行和维护所实施的全部过程、活动和任务的结构框架3.1瀑布模型(又称线性模型):3.1.1工作原理:规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
软件工程知识点

软件工程知识点1. 软件工程概述软件工程是一门研究和应用工程原则、方法和工具来开发和维护高质量软件系统的学科。
它涵盖了软件开发的整个生命周期,包括需求分析、设计、编码、测试、部署和维护。
2. 软件生命周期软件生命周期定义了软件开发过程中的各个阶段,包括需求定义、系统设计、详细设计、编码、测试、部署和维护等。
每个阶段都有特定的任务和交付物,通过严格遵循软件生命周期来管理项目,可以提高软件开发的质量和效率。
3. 软件需求分析软件需求分析是确定软件系统所需功能和性能的过程。
它包括对用户需求进行调查、分析和规范化,以便从中获得详细的系统需求。
4. 软件设计软件设计是根据需求分析的结果,确定软件系统的结构和组成部分的过程。
它包括软件架构设计、模块设计、数据结构设计等。
5. 软件编码软件编码是将设计好的软件系统转化为可执行的计算机程序的过程。
在编码过程中,开发人员需要遵循相应的编程规范和标准,以确保代码的可读性和可维护性。
6. 软件测试软件测试是为了发现和修复软件中的错误和缺陷。
测试可以分为单元测试、集成测试、系统测试和验收测试等不同的层级和类型,旨在确保软件功能的正确性和稳定性。
7. 软件部署软件部署是将软件安装和配置到用户的计算机系统中的过程。
在部署过程中,需要注意安装环境、配置文件和用户权限等问题,确保软件能够正常运行。
8. 软件维护软件维护是为了修复软件中的错误、改进功能以及适应新的需求而进行的修改和更新。
维护过程中包括问题分析、修改设计、修改代码、测试和发布等环节。
9. 软件质量保证软件质量保证是通过制定和执行软件质量标准、流程和方法,以确保软件开发过程中的质量问题被及时发现和解决的一系列活动。
包括代码审查、测试自动化、性能测试等。
10. 软件项目管理软件项目管理是对软件开发项目进行规划、组织、监控和控制的活动。
它包括项目需求管理、进度管理、资源管理、风险管理等方面,以确保软件项目按时、按质量要求完成。
软件工程基础知识点总结(一)

软件工程基础知识点总结(一)引言概述:软件工程是现代计算机科学的一个重要分支领域,它涵盖了软件开发的各个方面。
本文旨在总结软件工程的基础知识点,帮助读者加深对软件工程的了解。
本文将从软件生命周期、需求分析、设计、编码和测试这五个大点进行阐述。
软件生命周期:1.需求获取:收集来自用户和利益相关者的需求,包括功能需求、非功能需求和约束条件。
2.需求分析:对需求进行详细分析,包括确定需求的优先级、可行性分析和需求规范的编写。
3.设计:根据需求分析的结果,设计软件的体系结构和模块划分,包括数据结构设计、接口设计和算法设计。
4.编码:根据设计结果进行编码,使用合适的编程语言和开发工具。
5.测试:测试软件的功能是否符合需求,包括单元测试、集成测试和系统测试。
需求分析:1.需求获取:通过需求调研、访谈、问卷调查等方式获取用户需求。
2.需求分类:将需求分为功能需求、性能需求、用户界面需求等分类。
3.需求分析技术:使用UML建模、数据流图、状态转换图等技术来分析需求。
4.需求验证:验证需求是否满足用户的期望,包括合理性验证和可行性验证。
5.需求规格化:撰写需求规格文档,包括用例描述、活动图、领域模型等。
设计:1.体系结构设计:确定软件的整体结构,包括分层、模块化和组件化设计。
2.模块划分:将软件功能划分为多个模块,并确定它们之间的接口和依赖关系。
3.数据库设计:设计软件的数据库结构,包括表结构设计、关系模式设计和数据字典设计。
4.界面设计:设计用户界面,包括界面布局、操作流程和界面元素的选择。
5.算法设计:设计解决特定问题的算法,包括时间复杂度和空间复杂度的考量。
编码:1.选择编程语言和开发工具:根据项目需求和开发者熟悉程度选择合适的编程语言和开发工具。
2.编码规范:遵循统一的编码规范,提高代码的可读性和可维护性。
3.模块开发:按照模块划分的设计,实现各个模块的功能。
4.测试驱动开发:在编码过程中,使用单元测试驱动开发,确保代码的质量。
软件工程知识点归纳

软件工程知识点归纳第1章软件工程学概述 (3)1.1 软件危机 (3)1.2 软件工程 (3)1.3 软件生命周期 (3)1.4 软件过程 (3)第2章可行性研究 (4)2.1 可行性研究的任务 (4)2.2 可行性研究过程 (4)2.3 系统流程图 (4)2.4 数据流图 (4)2.5 数据字典 (5)2.6 成本/效益分析 (5)第3章需求分析 (5)3.1 需求分析的任务 (5)3.2 与用户沟通获取需求的方法 (5)3.3 分析建模与规格说明 (5)3.4 实体-联系图 (5)3.5 数据规范化 (5)3.6 状态转换图 (6)3.7 其他图形工具 (6)3.8 验证软件需求 (6)第4章形式化说明技术 (6)第5章总体设计 (6)5.1 设计过程 (6)5.2 设计原理 (7)5.3 启发规则 (7)5.4 描绘软件结构的图形工具 (7)5.5 面向数据流的设计方法 (8)第6章详细设计 (8)6.1 结构程序设计 (8)6.2 人机界面设计 (8)6.3 过程设计的工具 (8)6.4 面向数据结构的设计方法 (8)6.5 程序复杂程度的定量度量 (8)第7章实现 (9)7.1 编码 (9)7.2 软件测试基础 (9)7.3 单元测试(模块测试) (10)7.4 集成测试(子系统测试和系统测试) (10)7.5 确认测试(验收测试) (10)7.6 白盒测试技术 (10)7.7 黑盒测试技术 (11)7.8 调试(修改测试发现的错误) (11)7.9 软件可靠性 (11)第8章维护 (11)8.1 软件维护的定义 (11)8.2 软件维护的特点 (11)8.3 软件维护过程 (12)8.4 软件的可维护性 (12)8.5 预防性维护 (12)8.6 软件再工程过程 (12)参考书目 (12)第1章软件工程学概述1.1 软件危机1. 软件危机的定义、表现、产生原因2. 消除软件危机的途径3. 软件产品必须由一个完整的配置组成,软件配置主要包括程序、文档和数据等成分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程基础部分知识点总结知识点一软件工程的基本概念1、软件定义:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。
1)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。
2)数据是使程序能够正常操作信息的数据结构。
3)文档是与程序开发、维护和使用有关的图文资料。
国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。
2、软件特点:1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部分;2)软件的生产与硬件不同,它没有明显的制作过程;3)软件在运行、使用期间不存在磨损、老化问题;4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题;5)软件复杂性高,成本昂贵;6)软件开发涉及诸多的社会因素3、软件的分类:按照功能可以分为:应用软件、系统软件、支撑软件(或工具软件)1)应用软件是为解决特定领域的应用而开发的软件。
2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。
3)支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具软件。
4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题。
软件危机主要体现在以下几个方面:①软件开发的实际成本和进度估计不准确②开发出来的软件常常不能使用户满意③软件产品的质量不高,存在漏洞,需要经常打补丁④大量已有的软件难以维护⑤软件缺少有关的文档资料⑥开发和维护成本不断提高,直接威胁计算机应用的扩大⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长5、软件工程:此概念的出现源自软件危机。
软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。
1)研究软件工程的主要目的就是在规定的时间、规定的开发费用内开发出满足用户需求的高质量的软件系统(高质量是指错误率低、好用、易用、可移植、易维护等)。
2)软件工程的三个要素:方法、工具和过程。
①方法:完成软件工程项目的技术手段;②工具:支持软件的开发、管理、文档生成;③过程:支持软件开发的各个环节的控制、管理。
3)软件工程的核心思想:把软件产品看作是一个工程产品来处理。
知识点二软件的生命周期1、软件生命周期概念:将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。
2、软件生命周期一般划分为定义、开发和维护3个阶段:1)定义阶段:可行性研究、需求分析2个阶段;软件定义阶段:包括制定计划和需求分析。
①制定计划:确定总目标;可行性研究;探讨解决方案;制定开发计划。
②需求分析:对待开发软件提出的需求进行分析并给出详细的定义。
方法:1)结构化需求分析方法;2)面向对象的分析方法。
任务:导出目标系统的逻辑模型,解决“做什么”的问题。
步骤:需求分析一般分为需求获取、需求分析、编写需求规格说明书和需求评审四个步骤进行。
2)开发阶段:概要设计、详细设计、编码实现和测试4个阶段;①软件设计:分为概要设计和详细设计两个部分。
②软件实现:把软件设计转换成计算机可以接受的程序代码。
③软件测试:在设计测试用例的基础上检验软件的各个组成部分。
3)维护阶段:使用、维护、退役阶段。
软件运行维护阶段:软件投入运行,并在使用中不断地维护,进行必要的扩充和删改。
软件生命周期中所花费最多的阶段是软件运维护阶段。
4)软件工程原则:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
5)软件工具就是帮助开发软件的软件。
它们对提高软件生产率,促进软件生产的自动化都有重要的作用。
6)软件开发环境(或称软件工程环境)是全面支持软件开发全过程的软件工具的集合,这些软件工具按照一定的方法和模式组合起来,共同支持软件生命周期内的各个阶段和各项任务的完成。
知识点三软件设计基本概念1、软件工程过程:问题定义——可行性研究——需求分析——软件设计——软件编码——软件测试——软件维护2、软件设计分为总体设计和详细设计1)总体设计目的:要解决的问题是“怎样实现目标系统”任务:确定软件的总体结构,进行模块划分,确定每个模块的功能、接口及模块之间的调用关系,并对全局数据结构进行设计,同时产生概要设计说明书2)详细设计目的:要解决的问题是“应该怎样具体实现目标系统”任务:在概要设计的基础上,设计每个模块实现的细节及对局部数据进行设计(包括模块的数据结构和所需的算法),同时产生详细设计说明书3、软件编码目的:产生能在计算机上执行的程序任务:根据系统的要求和开发环境,选用合适的程序设计语言,把详细设计的结果翻译成用该程序设计语言编写的程序代码(源程序) 4、软件测试是为了发现程序中的错误而执行程序的过程目的和任务:通过在计算机上执行程序来尽可能多地发现软件产品中的错误和缺陷,并改正程序中的错误,以保证程序的可靠运行5、软件维护阶段是长期的过程,因为,经过测试的软件还可能有错,用户的要求还会发生变化,软件运行的环境也可能变化等等。
因此,交付使用的软件仍然需要继续排错、修改和扩充,这就是软件维护。
软件维护的目的是满足用户对已开发产品的性能与运行环境不断提高的需要,进而达到延长软件的寿命软件维护就是在软件交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
软件维护的类型有如下几种:1)改正性维护:诊断和改进错误的过程。
2)适应性维护:为与变化的环境适当配合而进行的修改软件的活动。
3)完善性维护:为了满足用户提出的增加新功能或修改已有功能的建议而进行维护。
4)预防性维护:为了改进未来的可维护性和可靠性。
软件开发时期要完成设计和实现两大任务,其中设计任务用需求分析和软件设计两个阶段完成,实现任务用编码和测试两个阶段完成。
开发任务完成的好与坏,关系到软件产品的质量,完成开发任务的关键是选择好的软件开发方法。
目前,软件开发方法主要有结构化开发方法和面向对象开发方法知识点4软件设计的基本原理软件设计的基本原理包括:抽象、模块化、信息隐蔽和模块独立性。
1、模块化:指解决问题时自顶向下的方法逐层把软件系统划分成若干个模块的过程2、抽象:认识复杂过程中使用的思维工具,即抽出事务的本质的共同的特性而暂不考虑它的细节和其他因素。
3、信息隐蔽:旨在设计和确定模块式的时候,是的一个模块内包含的信息,对于不需要这些信息的其他模块来说不可访问4、模块独立性:指每个模块只完成系统要求的独立的功能,并且与其他模块联系最少且接口简单模块的耦合性和内聚性是衡量软件的模块独立性的两个定性指标。
1)内聚性:是对模块功能强度的度量,即对一个模块内部各个元素(语句之间、程序段)间彼此结合的紧密程度的度量。
2)耦合性:是模块间互相连接的紧密程度的度量。
模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。
一个设计良好的软件系统应具有高内聚、低耦合的特征。
在结构化程序设计中,模块划分的原则是:模块内具有高内聚度,模块间具有低耦合度。
软件设计有两个步骤:(1)概要设计(又称结构设计)是将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式;(2)详细设计是确定每个模块的实现算法和局部数据结构,通过对结构表示进行细化,得到软件的详细数据结构和算法。
知识点5 结构化分析方法结构化方法的软件开发过程2、结构化分析方法的常用工具:数据流图、数据字典、结构化语言、判定树、判定表3、SA的基本步骤如下:①自顶向下对系统进行功能分解,画出分层的数据流图②由后向前定义系统的数据和加工,编制数据字典和加工说明③写出需求规格说明书(SRS)4、数据流图是以图形的方式描绘数据在软件系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。
数据流图由数据流、加工(又称数据处理)、数据存储(又称文件)、数据源点或终点四种基本成分组成。
数据流图(简称DFD)图形元素:①数据流:是数据在系统内传播的路径。
使用箭头代表数据的流向,数据名称标在箭头的边上②加工:输入数据经过加工变换产生输出。
使用圆框代表加工③数据存储:指处理过程中存放各种数据。
使用双杠(或单杠)表示数据文件或数据库。
文件与加工之间用箭头线连接,单向表示只读或只写,双向表示可读可写④数据源点或终点:指软件系统外部环境中的实体(包括人员、组织或其他软件系统,统称为外部实体)。
使用方框表示数据的源点和终点5、建立数据流图的步骤:第一步:由外向里:先画系统的输入输出,然后画系统的内部。
第二步:自顶向下:顺序完成顶层、中间层、底层数据流图。
第三步:逐层分解。
6、DFD图的数据流可分为两种类型:变换流和事务流变换流:信息沿着输入通路进入系统,同时将信息的外部形式转换成内部形式,通过变换中心处理之后,再沿着输出通路转换成外部形式输出事务流:信息沿着输入通路到达一个事务中心,事务中心根据输入信息的类型在若干个动作序列中选择一个来执行,这种信息流称为事务流7、数据字典就是用来定义数据流图中的各个成分的具体含义和详细的描述。
它和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。
是结构化分析方法的核心。
数据字典是为分析人员查找数据流图中有关名字的详细定义而服务的。
数据字典有四类条目:数据流、数据项、数据存储和基本加工。
8、SD方法的中心任务就是把用DFD图表示的系统分析模型方便地转换为软件结构的设计模型。
识点6软件测试的目的和准则1、软件测试是保证软件质量的重要手段,其主要过程涵盖了整个软件生命周期的过程,包括需求定义阶段的需求测试、编码阶段的单元测试、集成测试以及后期的确认测试、系统测试、验证软件是否合格、能否交付给用户使用。
软件测试就是使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。
2、软件测试的原则:1)所有测试都应追溯到需求2)严格执行测试计划,排除测试的随意性3)避免由软件开发人员测试自己的程序4)充分注意测试中的群集性现象5)除了很小的程序外,“彻底”的穷举测试是不可能的6)妥善保存测试计划、测试用例、出错统计和最终的分析报告,为维护提供方便软件测试的每一次测试都需要准备好一些测试数据,与被测程序一起输入到计算机中执行;知识点7软件测试的方法和实施1、测试是对软件规格说明、设计和编码的最后的复审,所以软件测试贯穿在整个软件开发期的全过程。
对于软件测试方法和技术,可以从不同的角度加以分类。
①从是否需要执行被测软件的角度,软件测试分为静态分析和动态测试②按照功能划分,动态测试又分为白盒测试和黑盒测试2、静态测试一般是指人工评审软件文档或程序,借以发现其中的错误,由于被评审的文档或程序不必运行,所以称为静态的。