软件工程知识要点
软件工程基础知识点整理版

软件工程基础知识点整理版1.软件生命周期:软件工程将开发和维护软件的过程划分为不同的阶段,包括需求分析、设计、编码、测试、部署和维护。
这些阶段构成了软件生命周期。
2.软件需求:软件需求工程是对软件需求进行分析、规划和定义的过程。
它包括对用户需求的收集、分析和确认,以及对系统功能和性能的详细规范。
3.软件设计:软件设计是定义软件的结构和组成部分的过程。
它包括对软件系统的整体架构和各个模块的设计。
4.软件编码:软件编码是将设计好的软件系统转化为具体的程序代码的过程。
编码过程需要使用编程语言,并遵循编码规范和最佳实践。
5.软件测试:软件测试是验证软件是否满足需求规格的过程。
它包括对软件的功能、性能和安全性进行测试,并发现和修复软件中的错误。
6.软件配置管理:软件配置管理是对软件开发过程中各个组成部分的控制和跟踪。
它包括版本控制、配置项管理和变更控制等活动。
7.软件质量保证:软件质量保证是确保软件达到高质量标准的一系列过程和活动。
它包括质量计划、质量评审、质量度量和缺陷管理等。
8.软件项目管理:软件项目管理是规划、组织和控制软件开发和维护活动的过程。
它包括项目计划、进度管理、团队管理和风险管理等。
9.软件工具和环境:软件工程使用各种工具和环境来辅助软件开发和维护。
这些工具包括集成开发环境、版本控制工具、测试工具和项目管理工具等。
10.软件工程伦理:软件工程伦理是软件工程师在工作中需要遵循的道德准则和原则。
它包括保护用户隐私、遵守知识产权法律和保持专业水平等方面。
以上是软件工程的一些基础知识点,但软件工程领域非常广泛,还有很多其他的知识点值得深入学习和研究。
尽管有一些基础知识点可以帮助我们理解和实践软件工程的基本原理和方法,但要成为一名优秀的软件工程师,还需要不断学习和提升自己的技能和知识。
软件工程知识点总结

软件工程知识点总结软件工程知识点总结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. 软件设计软件设计是将软件需求转化为可执行的程序设计的过程。
它包括系统架构设计、模块设计、接口设计和数据库设计等活动。
良好的软件设计能够提高软件的可维护性和可扩展性。
5. 软件开发软件开发是按照软件设计规范进行编码和测试的过程。
开发人员应该具备良好的编程技能和测试能力,并遵循编码规范和测试流程。
6. 软件测试软件测试是为了发现软件中的错误和缺陷,保证软件的质量和可靠性。
测试方法包括功能测试、性能测试、压力测试和安全测试等。
高质量的测试能够提高软件的稳定性和用户满意度。
7. 软件配置管理软件配置管理是对软件开发过程中所的各类工作产品进行控制、记录、审计和追踪的过程。
配置管理包括版本管理、变更管理、发布管理和文档管理等活动。
8. 软件项目管理软件项目管理是对软件开发项目进行规划、组织、指导和控制的过程。
它包括项目需求分析、项目计划制定、项目资源分配和进度控制等活动。
有效的项目管理能够提高软件开发效率和项目成功率。
9. 软件质量管理软件质量管理是在软件开发过程中对质量进行全面管理的过程。
它包括质量计划、质量控制和质量保证等活动。
良好的质量管理能够提高软件的可靠性和用户满意度。
10. 软件维护与迭代软件维护是在软件发布后对其进行修复bug、优化性能和添加新功能的过程。
软件迭代是对软件系统进行增量式的开发和发布,不断提高软件质量和功能。
软件工程知识点

软件工程知识点第一章软件工程概述一、软件的定义和特性(P2—P3)定义:软件=程序+数据+文档程序:按照事先设计的功能和性能要求执行的指令或语句序列数据:程序能正常操纵信息的数据结构文档:描述程序操作和使用的文档特性:(1)软件是一种逻辑实体,具有抽象性,不是一般的物理实体;(2)软件的成产与硬件存在某些相同点,但有根本上的不同,软件开发是人的智力的高度发挥,而不是传统意义上的制造,它更依赖于开发人员的素质,智力,人员和组合,合作和管理;(3)软件维护与硬件维修有着本质的差别,软件维护没有硬件维护那样有可替换的标准零件;(4)软件在运行和使用期间没有硬件那样的机械磨损,老化问题,但存在退化问题;(5)基于构件的开发方法由于其自身的特点越来越受到人们的重视,这些技术可以减少开发时间、提高质量,并提高复用水平。
* 掌握P4图1-2(b)软件失效率曲线二、计算机软件的发展经历了几个阶段?各有何特征?(P1—P2)共经历了四个阶段特征:第一阶段——程序规模小且主要采用个体工作方式,开发的系统大多采用批处理技术第二阶段——引入人机交互的概念,实时系统出现,产生了第一代数据库管理系统,程序编制采用了合作的工作方式,出现了早期的软件危机第三阶段——分布式系统出现,嵌入式系统得到广泛应用,低成本硬件第四阶段——强大的桌面系统和计算机网络迅速发展时期,面向对象技术得到广泛应用,人工智能技术和专家系统开始应用于软件。
三、什么是软件危机?其产生的原因是什么?定义:软件危机是指由于落后的软件生产方式无法满足迅速增长的计算机软件应用需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
(P4)原因:(P5)(1)用户对软件需求的描述不准确、不全面,甚至有错误,以及在开发过程中,不断提出或者修改需求;(2)用户和开发人员对软件需求的理解存在差异,导致所开发的软件产品和用户需求不一致;(3)大型软件项目需要组织一定的人力共同完成,各类人员的信息交流不及时、不准确,有时还可能产生误解,软件开发人员对大型软件缺少开发经验,管理人员缺少相应的管理经验;(4)软件开发人员不能有、独立自主的处理大型软件的全部关系和各个分支,因此容易产生疏漏和错误;(5)开发技术落后,缺乏有效的方法学和工具方面的支持,过分依赖程序设计人员在软件开发过程中的技巧和创造性,加剧软件产品的个性化(6)软件产品的特殊性和人类智力的局限性,导致人们无法处理“复杂问题”,因为软件是逻辑产品,软件开发进展情况较难衡量、软件开发质量难以评价、管理和控制软件开发过程相当困难。
软件工程知识点汇总

软件工程知识点汇总软件工程知识点汇总
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.软件安全性:软件安全性是指软件系统免受恶意行为和非法访问的能力。
学习如何设计和实施安全措施可以帮助我们保护软件系统的安全。
10.软件工程伦理和法律:软件工程伦理和法律是研究软件工程中伦理和法律问题的学科。
了解软件开发过程中的道德和法律规定可以帮助我们遵守相关的标准和法律规定。
除了以上列举的知识点,软件工程还涉及到很多其他的领域,如人机交互、软件配置管理、软件工程教育等。
软件工程知识点

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

1.软件是计算机系统内中与硬件相互依存的另一部分,是包含程序、数据及其相关文档的完整集合,即软件=程序+数据+相关文档。
2.软件按照功能可划分为:系统软件、支持软件、应用软件。
按照规模划分:微型软件、小型软件、中型软件、大型软件和超级软件。
3.软件危机:对软件开发成本的估计不准确,造成开发成本超出预算;开发进度不能保证,交付时间一再拖延;“已完成”的软件不能满足用户需求;软件产品质量没有保证,运算结果出错、操作死机等现象屡屡发生;软件没有适当的文档资料,或文档与最终交付的软件产品不相符,软件的可维护程度非常低;软件开发生产率赶不上硬件的发展和人们需求的增长。
4.软件工程的层次化结构:工具层,方法层,过程、技术层,质量保证层。
5.软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术和管理方法。
6.实现软件开发工程化、系统化的方法是软件生命周期法,主要划分为软件项目的准备阶段、开发阶段和运行维护阶段。
软件项目的准备阶段的主要任务是调查和分析:调查用户需求,分析软件系统项目的主要目标和开发该系统的可行性。
开发阶段:①需求分析②软件设计(概要设计、详细设计)③编码④测试运行维护阶段:改正性维护、适应性维护、完善性维护、预防性维护。
7.软件项目的开发模型:瀑布模型、原型模型、螺旋模型。
8.面向对象(对象:是现实世界中个体或者事物的抽象表示,是它的属性和相关操作的统一封装实体。
类、继承、消息)面向对象=对象+类+继承+消息9.需求分析的任务是将用户的需求转变为软件的功能和性能的描述。
软件从外部可以看作黑盒子(功能)计算机所处理的数据域描述为数据内容(数据项)、数据结构(数据线的组织形势)和数据流(数据通过系统的变化方式)。
10.软件的物理模型要给出处理功能和数据结构的实际表示形式,逻辑模型是设备类型和数据结构的存储方式。
11.需求分析步骤:调查研究,获取需求、分析建模,提炼需求、编写需求说明,描述需求、分析评审,验证需求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 需求的验证
– 审查需求文档 – 依据需求编写测试用例 – 编写用户手册 – 确定合格的标准 • 好的需求应具有的特性 – 正确性:与用户对软件产品的期望一致 – 无二义性 – 完整性 – 一致性 – 可行性 – 可验证性 – 可跟踪性 – 非计算机人员能够理解
• 瀑布模型的特点
– 阶段间的顺序性和依赖性 – 文档驱动
• 瀑布模型存在的问题
– 依赖于早期进行的唯一次需求调查,不能适应需求变化 – 阶段的划分完全固定,阶段间产生大量的文档,极大地 增加了工作量; – 开发是线性的,用户只有等到整个过程的末期才能见到 开发成果,增加了开发的风险; – 早期的错误可能要等到开发后期的测试阶段才能发现, 进而带来严重的后果。
软件工程要点
• 软件
– 计算机系统中与硬件相互依存的另一部分,它是包 括程序、数据及其相关文档的完整集合。
• 软件的特征
– 软件是一种逻辑产品,而不是物理产品,具有抽象性。没 磨损,老化问题 – 软件产品的成本主要体现在软件的开发和维护上,制造几 乎没有成本 – 大多数软件都是从头开发的。
• 软件危机
• 设计内容
– – – – 数据设计:信息模型、软件数据结构 体系结构设计:定义软件部件间的关系 接口设计:软件内部、外部及与人之间的通信 过程设计:软件组件的过程性描述
• 分解与模块化的基本原理
C (P1+P2)>C (P1)+C (P2) E (P1+P2)>E (P1)+E (P2) C为问题的复杂度,E为解题需要的工作量
• 需求描述
– 静态描述方法
• 间接引用、关系递归、公理化定义、语言描述、
数据抽象
– 动态描述方法
• 决策表、函数描述和状态转移图、Petri网
– 面向对象的描述方法 – Warnier图 – 数据流图
• 需求文档
– 需求定义文档(Requirements Definition)
• 从用户的角度出发,将用户希望系统实现的功能 作一个汇总,通常由用户和开发者共同撰写 • 主要读者为用户
– 功能性内聚:模块中各个组成部分构成一个整体并共同完成 一个单一的功能 – 顺序性内聚:模块中的各个部分都与同一个功能密切相关, 并且必须按照先后顺序执行(通常前一个部分的输出数据就 是后一个部分的输入数据) – 通讯性内聚:模块中的各个部分使用同一个输入数据或产生 同一个输出数据 – 过程性内聚:模块中的各个部分相关,并且必须按特定的次 序执行 – 时间性内聚:模块包含了在同一时间段中执行的多个任务 – 逻辑性内聚:模块可实现多个逻辑上相同或相似的一类功能 – 偶然性内聚:模块由多个完成不同任务的语句段组成,各语 句段之间的联系十分松散或根本没有任何联系
• 快速原型模型 • 增量模型
• 瀑布模型(Waterfall Model)
问题定义 需求分析 总体设计 详细设计 编码实现 维护 让位
• 瀑布模型各阶段的任务
– 问题定义:确定用户要求解决的性质、工程的目标和规模。对要开 发的软件进行可行性研究(经济可行性、技术可行性、法律可行性、 不同的方案),确定软件元素的作用范围,并对软件进行成本估算, 制定进度安排,最后提交软件计划。 – 软件需求分析:最根本的任务是确定为了满足用户需求系统必须 “做什么”。即确定系统必须具有的功能和性能,系统要求的运行 环境,并预测系统发展的前景。提交软件需求规格说明书。 – 总体设计:总体设计的基本任务是确定模块分解、各模块功能和模 块间接口,设计全局数据结构 。 – 详细设计:确定各模块的实现细节和局部数据结构。 – 编码:把软件设计转换成计算机可以接受的程序代码。 – 测试:发现软件错误。 – 维护:使用期间对软件进行补充、修改和增加工作。 • 矫正性维护:识别与矫正软件中的错误 • 适应性维护:使软件适应新的环境和数据需求的改变 • 完善性维护:扩充软件功能或改善软件性能 • 预防性维护:为便于将来的维护和性能提高所进行的预防性措施
– – – – – 软件代价高 开发过程难以控制 软件工作量估计困难 软件质量底 软件修改、维护困难
• 软件工程
– 应用计算机科学、数学及管理科学等原理开发软件 的过程。它借鉴传统工程的原则、方法,以提高质 量、降低成本为目的。
ห้องสมุดไป่ตู้
• 软件工程层次
– 质量焦点:软件工程必须以有组织的质量保证为基础 – 过程:软件过程是开发和维护软件及其相关产品(项 目计划、设计文件、编程代码、测试、用户手册)的 一系列活动、方法、实践和变换。 – 方法:软件工程方法为软件开发提供“如何做”的技 术 – 工具: 软件工具为过程和方法提供自动的或半自动的 支持。这些软件工具被集成起来,建立起一个支持软 件开发的系统,称之为计算机辅助软件工程(CASE, Computer Aided Software Engineering)。
• 传统方法学与面向对象方法学 – 结构化方法
• 采用“抽象”和“分解”两个基本手段。 • 属于功能/数据方法,即将系统的功能和涉及的数据 或多或少地分开来处理
– 面向对象建模方法
• 面向对象方法学出现于20世纪80年代中后期,并迅 速成为20世纪90年代的主流开发方法。 • 以客观世界中实体为基础,将客观实体的属性与操 作封装成对象,对象之间通过传递消息互相联系, 以模拟现实中不同事物彼此之间的联系。 • 采用“封装”、“分类”和“继承”三个基本原则。
软件工程层次
• 软件生命周期
– 软件产品或系统一系列相关活动的全周期。
• 软件生命周期分成以下几个阶段
– 软件定义 • 问题定义、可行性研究、需求分析 – 软件开发 • 总体设计、详细设计、编码和单元测试、综合测试 – 软件维护
• 软件过程模型
– 又称软件工程开发模型,或称软件生命期模型, 是软件开发的全部过程、资源、活动和任务的 结构框架。 – 典型软件过程模型 • 瀑布模型(Waterfall Model)
• 快速原型模型
– 对用户所提出的软件产品的部分实现,是真实系统的一个模型 – 使用原型的目的 • 明确并完善需求 • 探索设计方案 • 发展为最终的产品原型
– 抛弃型原型 • 不作为最终交付产品的一部分; • 用来检验讨论中的需求 或方案是否确实是用户需要。 – 进化型原型 • 将作为最终产品的一部分; • 用于检验和解释问题。
• 程序设计风格
– 程序设计风格的作用就是使代码容易读 – 风格良好的代码更容易阅读和理解,其中的错误也更少
• 命名
• • • • • • •
– 匈牙利标记法:[Prefix]-BaseTag-Name 用缩格显示程序结构 用加括号的方式排除二义性 要清晰:清晰的代码,而非最巧妙的代码 当心运算符的副作用 把数定义称常量 利用sizeof()计算对象的大小 程序注释
• 增量模型(Incremental Model)
– 软件被作为一系列的增量构件来设计、实现、集成和测试; – 每一个线性序列产生软件的一个可发布的增量 – 第一个增量往往是实现基本需求的核心产品。核心产品交付 用户使用后,经过评价形成下一个增量的开发计划,它包括 对核心产品的修改和一些新功能的发布。这个过程在每个增 量发布后不断重复,直到产生最终的完善产品。
• 面向对象 = 对象 + 类 + 继承 + 消息通信 • 类:一组具有相同属性和相同行为的对象的集合 • 消息:一个对象与另一个对象的通信单元,是要求某 个对象执行某个操作的规格说明。 • 继承:子类自动地共享父类(超类)的属性和方法 • OO系统设计任务
– – – – – – – – 系统分解成子系统 识别问题中固有的并发性 将子系统分配给处理器和任务 选择数据存储管理方法 处理对全局资源的访问 选择软件控制机制 处理边界条件 设置平衡的优先级
• 测试类型
– 根据是否需要了解软件内部的结构分
• 黑盒测试(功能测试或数据驱动测试) • 白盒测试(结构测试或逻辑驱动测试)
– 根据是否需要运行被测试的程序分为:
• 静态测试:不实际运行被测试的程序,如:代码走查,
Fagan检查 • 动态测试:运行被测试的软件
• 功能测试,即黑盒测试
– 根据软件的需求定义或功能规约对软件进行测试 – 检查软件的输入和输出数据是否满足需求定义的要求 – 方法:将软件的输入空间分解成一系列子域,使得软 件在子域内的行为是“等价”的
• 成熟度等级(Maturity Levels):软件开发组织在走向成 熟的途中几个具有明确定义的表示软件过程能力成熟度的 平台。
• 需求定义
– 用户解决问题或达到目标所需要的条件或能力 (Capability) – 系统或系统部件要满足合同、标准、规范或其他正式 规定文档所需具有的条件或能力 – 反映上述两个定义中所描述的条件或能力的文档说
– 需求规格说明(Requirements Specification)
• 又称功能规格说明、需求协议和系统规格说明 • 精确地阐述了一个软件系统必须提供的功能和性 能以及它所要考虑的限制条件 • 由系统分析师撰写 • 主要读者为系统设计与开发人员
• 需求管理
– – – – 变更控制 版本控制 需求跟踪 需求状态
• 耦合 1.内容耦合
content coupling 2.公共耦合 common coupling 3.控制耦合 control coupling 4.特征耦合 stamp coupling 5.数据耦合 data coupling 6.非直接耦合 no direct coupling
• 内聚 cohesion
• UML
– UML是一种可视化建模语言 – UML不是一种开发方法,不局限于特定开发过程 • 用例(Use-Case) 是系统的一种行为,它为执行者产生一定的价值结果。用 例描述执行者想要系统完成的事情。用例应该是一个完整 的任务。 • 参与者(Actor) 是同系统交互的所有事物,如人、其它软件、数据存储、 硬件设备或网络。每个执行者定义一种特定角色。 • 用例图:表示一组用例、参与者及它们之间的关系,从用户的 角度出发对系统建模