软件工程总结(红字是考点)
软件工程知识点汇总
软件工程知识点汇总软件工程知识点汇总1. 软件工程概述软件工程是一门研究和应用如何以系统化、规范化、可量化和可复用的方式进行软件开发、维护和管理的学科。
它涵盖了软件需求分析、设计、编码、测试、部署和维护等一系列活动。
2. 软件开发过程模型软件开发过程模型描述了软件开发过程中不同阶段的活动、输入、输出和交付物之间的关系。
常见的软件开发过程模型包括瀑布模型、迭代模型、螺旋模型和敏捷开发等。
- 瀑布模型:顺序执行,按照需求分析、设计、编码、测试和部署的顺序进行,适用于需求较为稳定的项目。
- 迭代模型:将开发过程划分为若干个迭代周期,每个迭代周期包含需求分析、设计、编码和测试等活动,适用于需求可能变化的项目。
- 螺旋模型:循环迭代执行,结合风险管理,适用于大型复杂项目。
- 敏捷开发:强调快速响应需求变化和团队协作,采用迭代、自组织和自适应的方式进行开发。
3. 软件需求工程软件需求工程是软件工程中的一个重要环节,旨在明确和理解用户对软件系统的需求,并将其转化为可执行的软件需求规格说明。
常见的软件需求工程技术包括需求获取、需求分析、需求建模和需求验证等。
- 需求获取:通过与用户沟通、观察和收集信息等方式获取软件需求。
- 需求分析:对收集到的需求进行分析,理解用户需求的本质和背后的目标。
- 需求建模:采用不同的建模技术,如用例图、活动图、时序图等,对需求进行建模和表达。
- 需求验证:通过验证技术和方法,验证需求的正确性、完整性和可行性。
4. 软件设计软件设计是根据需求分析阶段得到的软件需求规格,进行软件架构设计、模块设计和接口设计等,在不同的抽象层次上设计软件结构和组件。
- 软件架构设计:确定软件的整体结构,包括系统分层、模块划分和组件关系等。
- 模块设计:对软件系统进行细分,将系统划分为若干个模块,明确模块之间的功能和接口。
- 接口设计:定义模块之间的接口规范,确保模块之间能够相互协作和交互数据。
5. 软件测试软件测试是为了发现和修复软件中的错误、缺陷和风险,确保软件满足预期需求和品质要求的过程。
软件工程重点总结(5篇)
软件工程重点总结(5篇)第一篇:软件工程重点总结软件的定义:软件是计算机系统中与硬件相互依存的另一部分,软件包括程序、数据及其相关文档的完整集合。
在结构化程序设计时代,程序的最小单位是向对象程序设计时代,程序的最小单位是类,在类中封装了相关的数据及指令代码。
软件的特性:形态特性、智能特性、开发特特性、维护特性、废弃特性、应用特性。
软件的分类:系统软件、应用软件、支撑软软件危机的表现:软件开发周期长、成本高、软件危机发生的原因:(1)缺乏软件开发的工作的计划很难制定。
(2)软件人员与用户的交流存在障碍。
(3)软件开发过程不规范,缺少方法论和规范的指导,开发人员各自为战,缺少整体的规划和配合,不重视文字资料工作,软件难以维护。
(4)随着软件规模的增大,其复杂性往往会呈指数级升高。
(5)缺少有效的软件测评手段,提高用户的软件质量差,在运行中暴露出大量的问题,轻者影响系统的正常使用,重者发生事故,甚至造成生命财产的重大损失。
首次提出“软件工程”的概念的时间是1968年。
按工程化的原则和方法组织软件开发工作是软件工程的定义:软件工程是指导软件开发和维护的工程性学科,它以计算机科学理论和其他相关学科的理论为指导,采用工程化的概念、原理、技术和方法进行软件的开发和维护,把经过时间考验而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,以较少的代价获得高质量的软件并维护它。
软件工程的目标是运用先进的软件开发技术衡量软件的质量的六个特性:功能性、可靠软件生存期的三个时期:软件定义、软件开定义时期的主要任务是解决“做什么”的问地满足用户的需要。
开发过程中的典型文档包括:软件需求规格计说明书、用户手册。
各个阶段所要完成的基本任务:问题定义与可行性研究、需求分析、软件设计、程序编码和单元测试、集成测试和系统测试、软件运行和维护。
典型的软件生存期模型包括瀑布模型、原型模型、增量模型、螺旋模型等(喷泉模型)。
瀑布模型的特点:1)阶段间具有顺序性和依赖性。
软件工程知识点总结
软件工程知识点总结软件工程知识点总结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.软件维护:________对已投入使用的软件进行修复性、适应性、完善性和预防性等各方面的修改和改进。
软件工程基础知识点总结(2023版)
软件工程基础知识点总结软件工程基础知识点总结
1.软件工程概述
1.1 软件工程定义
1.2 软件工程的历史与发展
1.3 软件工程的特点和目标
1.4 软件工程的生命周期
2.软件需求工程
2.1 软件需求定义和分类
2.2 需求获取与分析
2.3 需求规格说明
2.4 需求验证和确认
3.软件设计
3.1 软件设计原则和概念
3.2 结构化设计方法
3.3 面向对象设计
3.4 软件设计工具和标记语言
4.软件开发
4.1 编码规范与规范检查
4.2 编程技术与方法
4.3 集成开发环境(IDE)和调试工具
4.4 软件测试和调试
5.软件项目管理
5.1 软件项目规划和组织
5.2 项目进度和资源管理
5.3 项目风险管理
5.4 质量管理与配置管理
6.软件工程度量与评估
6.1 软件度量概述
6.2 软件度量指标与度量方法
6.3 软件质量评估与改进
7.软件维护与演化
7.1 软件维护概述
7.2 维护过程与维护方法
7.3 软件重构与演化
8.软件工程的伦理和专业责任
8.1 软件工程的伦理问题
8.2 软件工程的专业责任
附件:
本文档涉及的法律名词及注释:
1.版权:一种法律保护措施,确保作品的原创性和独立性。
2.知识产权:指由人们的智能活动所创造的权利,包括专利权、著作权等。
3.商标:用以区别商品或服务来源的记号,被注册后获得权益
保护。
4.隐私保护:保护个人信息和隐私不被非法或未经授权的使用、泄漏、外传等。
软件工程知识点汇总
软件工程知识点汇总1. 软件工程简介软件工程是运用系统化、规范化和可管理的方法进行软件开发、运行和维护的学科。
它涵盖了软件生命周期的各个阶段,包括需求分析、设计、编码、测试、发布和维护等。
2. 软件工程流程模型常见的软件工程流程模型包括瀑布模型、迭代模型、增量模型、螺旋模型等。
不同的模型适用于不同的项目需求和开发环境,每个模型都有其优缺点。
3. 软件需求工程软件需求工程是确定软件系统应该如何工作的过程。
它包括需求获取、需求分析、需求规格和需求验证等活动。
良好的需求工程能够确保软件系统满足客户的需求和预期。
4. 软件设计软件设计是将软件需求转化为可执行的程序设计的过程。
它包括系统架构设计、模块设计、接口设计和数据库设计等活动。
良好的软件设计能够提高软件的可维护性和可扩展性。
5. 软件开发软件开发是按照软件设计规范进行编码和测试的过程。
开发人员应该具备良好的编程技能和测试能力,并遵循编码规范和测试流程。
6. 软件测试软件测试是为了发现软件中的错误和缺陷,保证软件的质量和可靠性。
测试方法包括功能测试、性能测试、压力测试和安全测试等。
高质量的测试能够提高软件的稳定性和用户满意度。
7. 软件配置管理软件配置管理是对软件开发过程中所的各类工作产品进行控制、记录、审计和追踪的过程。
配置管理包括版本管理、变更管理、发布管理和文档管理等活动。
8. 软件项目管理软件项目管理是对软件开发项目进行规划、组织、指导和控制的过程。
它包括项目需求分析、项目计划制定、项目资源分配和进度控制等活动。
有效的项目管理能够提高软件开发效率和项目成功率。
9. 软件质量管理软件质量管理是在软件开发过程中对质量进行全面管理的过程。
它包括质量计划、质量控制和质量保证等活动。
良好的质量管理能够提高软件的可靠性和用户满意度。
10. 软件维护与迭代软件维护是在软件发布后对其进行修复bug、优化性能和添加新功能的过程。
软件迭代是对软件系统进行增量式的开发和发布,不断提高软件质量和功能。
软件工程知识点总结(一)2024
软件工程知识点总结(一)引言概述软件工程是一门与软件开发相关的学科,它关注的是通过系统化的方法和工具来开发高质量的软件。
本文将对软件工程的一些重要知识点进行总结和概述,帮助读者更好地理解软件工程的基本原理和应用技术。
正文内容一、软件生命周期管理1.需求分析:明确软件系统需要实现的功能和性能要求,通过与用户的沟通和讨论来获取需求。
2.软件设计:根据需求分析的结果,设计软件系统的架构和组件的结构,定义软件模块和接口。
3.编码与测试:根据设计文档,编写软件代码,并进行单元测试、集成测试和系统测试,确保软件的质量。
4.软件发布和维护:将软件部署到用户环境中,并进行后续的问题修复和版本升级。
5.软件退役:当软件不再需要使用时,进行软件的退役和数据的保存,确保软件系统的安全和可靠性。
二、软件开发模型1.瀑布模型:将软件开发过程划分为一系列确定的阶段,每个阶段都有明确的输入和输出。
2.敏捷模型:强调迭代和增量的开发过程,通过短周期的迭代周期来逐步完善软件。
3.螺旋模型:将风险管理引入到软件开发过程中,通过不断迭代的过程来降低风险。
4.原型模型:在软件开发之前,先快速创建一个原型,与用户进行交互,以获取用户的反馈和需求。
5.增量模型:将软件系统分解为多个部分,逐步完成各个部分的开发和测试。
三、软件需求工程1.需求获取:通过需求访谈、直接观察、问卷调查等方式来获取软件需求。
2.需求分析:对收集到的需求进行详细分析和整理,确保需求的准确性和完整性。
3.需求建模:使用UML等建模工具将需求转化为可视化的模型,明确需求的关系和结构。
4.需求验证:通过测试和评审等方式,验证需求是否满足用户的期望和系统的要求。
5.需求变更管理:在软件生命周期中,对需求进行变更管理和控制,确保软件开发的稳定性。
四、软件设计原则和模式1.单一责任原则:一个类或模块只负责完成一个职责或功能。
2.开闭原则:软件实体应对扩展开放,对修改关闭。
3.依赖倒置原则:高层模块不依赖于底层模块,二者都依赖于抽象接口。
软件工程知识点汇总
软件工程知识点汇总软件工程知识点汇总1. 软件工程概述软件工程是一门应用科学,关注软件产品的开发、维护和组织管理的学科。
它涵盖了软件开发过程中的各个阶段,并运用工程化的原理、方法和工具来提高软件产品的质量和生产效率。
2. 软件生命周期软件生命周期是指软件开发过程中的各个阶段,包括需求分析、设计、编码、测试、部署和维护等。
每个阶段都有相应的活动和产物,这些活动和产物共同构成了软件开发的全过程。
2.1 需求分析需求分析是软件开发的第一步,旨在明确用户对软件的需求和期望。
它包括需求收集、需求分析、需求规格化和需求验证等活动,旨在确保软件开发过程中的需求清晰、准确,并能够满足用户的实际需求。
2.2 设计软件设计是在需求分析的基础上,根据系统的需求和约束条件,通过对系统的整体结构、组件设计、接口设计等进行详细的规划和设计。
2.3 编码编码阶段是将设计好的软件系统转化为可执行的程序代码的过程。
在编码阶段,开发人员需要按照设计规范进行编码,并遵循编码规范和最佳实践,以确保代码的可读性、可维护性和高效性。
2.4 测试测试是验证软件系统是否符合设计和需求的过程。
它包括单元测试、集成测试、系统测试和验收测试等各个层次的测试,旨在发现和修复软件系统中存在的缺陷和问题。
2.5 部署与维护部署阶段是将开发完成的软件系统部署到目标环境并投入使用的过程。
维护阶段则是针对已发布的软件系统进行问题修复、功能增强和性能优化等活动。
3. 软件开发方法软件开发方法是一套规范和指导软件开发过程的方法论和技术体系。
不同的软件开发方法适用于不同的项目需求和团队情况,常见的开发方法有瀑布模型、敏捷开发和迭代开发等。
3.1 瀑布模型瀑布模型是一种传统的软件开发方法,它将软件开发过程划分为阶段并且各个阶段严格按顺序进行。
瀑布模型适用于需求稳定、风险较小的项目,但缺乏灵活性和适应变化的能力。
3.2 敏捷开发敏捷开发是一种以人为核心、快速迭代、灵活应变的开发方法。
软件工程知识点总结
软件工程:软件开发的系统方法软件工程是一门研究计算机软件开发、维护和管理的科学。
它致力于通过系统方法、工具和技术来提高软件开发的效率和质量。
以下是对软件工程主要知识点的总结:1.软件需求:这是软件开发过程的第一步,涉及对软件系统所需功能的理解和定义。
良好的需求定义是软件开发成功的关键。
2.软件设计:在明确了软件需求后,软件设计阶段负责将需求转化为实际的软件结构。
这包括数据设计、算法设计、界面设计等。
3.编码与实现:根据软件设计,开发人员将设计转化为实际的代码。
编码必须确保软件的正确性,同时考虑性能和可维护性。
4.软件测试:测试是确保软件质量的重要步骤,包括单元测试、集成测试、系统测试和验收测试等。
5.软件维护:当软件运行出现问题或需要添加新功能时,需要进行软件维护。
维护活动包括故障修复、优化、升级等。
6.软件开发工具与环境:工具和环境对于提高软件开发效率和质量至关重要。
这包括集成开发环境(IDE)、版本控制系统、项目管理工具等。
7.软件工程管理:软件开发不仅是技术活动,也是管理活动。
这包括项目规划、资源分配、风险管理等。
8.软件质量保证:通过制定和执行质量保证计划,确保软件开发过程和最终产品都符合既定标准和质量要求。
9.软件配置管理:配置管理是管理软件开发过程中各种变更的技术,以确保软件的一致性和可追踪性。
10.面向对象编程:面向对象编程是一种程序设计模型,它将现实世界中的对象抽象为类和对象,通过类和对象来设计软件的结构和行为。
11.软件开发方法学:软件开发方法学是描述软件开发过程的框架或体系结构。
常见的开发方法学包括瀑布模型、迭代模型、敏捷开发等。
12.软件工程伦理:软件工程不仅涉及到技术问题,也涉及到伦理问题。
软件工程师应遵守职业道德规范,确保软件的公正性、透明性和安全性。
13.持续集成与持续部署:这是一种软件开发实践,其中代码在提交后自动构建、测试并部署到生产环境。
这有助于快速反馈并提高软件质量。
软件工程基础知识点总结
软件工程基础部分知识点总结知识点一软件工程的基本概念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的基本步骤如下:①自顶向下对系统进行功能分解,画出分层的数据流图②由后向前定义系统的数据和加工,编制数据字典和加工说明③写出需求规格说明书SRS4、数据流图是以图形的方式描绘数据在软件系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型. 数据流图由数据流、加工又称数据处理、数据存储又称文件、数据源点或终点四种基本成分组成.数据流图简称DFD图形元素:①数据流:是数据在系统内传播的路径.使用箭头代表数据的流向,数据名称标在箭头的边上②加工:输入数据经过加工变换产生输出.使用圆框代表加工③数据存储:指处理过程中存放各种数据.使用双杠或单杠表示数据文件或数据库.文件与加工之间用箭头线连接,单向表示只读或只写,双向表示可读可写④数据源点或终点:指软件系统外部环境中的实体包括人员、组织或其他软件系统,统称为外部实体.使用方框表示数据的源点和终点5、建立数据流图的步骤:第一步:由外向里:先画系统的输入输出,然后画系统的内部.第二步:自顶向下:顺序完成顶层、中间层、底层数据流图.第三步:逐层分解.6、DFD图的数据流可分为两种类型:变换流和事务流变换流:信息沿着输入通路进入系统,同时将信息的外部形式转换成内部形式,通过变换中心处理之后,再沿着输出通路转换成外部形式输出事务流:信息沿着输入通路到达一个事务中心,事务中心根据输入信息的类型在若干个动作序列中选择一个来执行,这种信息流称为事务流7、数据字典就是用来定义数据流图中的各个成分的具体含义和详细的描述.它和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分.是结构化分析方法的核心. 数据字典是为分析人员查找数据流图中有关名字的详细定义而服务的.数据字典有四类条目:数据流、数据项、数据存储和基本加工.8、SD方法的中心任务就是把用DFD图表示的系统分析模型方便地转换为软件结构的设计模型.识点6软件测试的目的和准则1、软件测试是保证软件质量的重要手段,其主要过程涵盖了整个软件生命周期的过程,包括需求定义阶段的需求测试、编码阶段的单元测试、集成测试以及后期的确认测试、系统测试、验证软件是否合格、能否交付给用户使用.软件测试就是使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别.2、软件测试的原则:1所有测试都应追溯到需求2严格执行测试计划,排除测试的随意性3避免由软件开发人员测试自己的程序4充分注意测试中的群集性现象5除了很小的程序外,“彻底”的穷举测试是不可能的6妥善保存测试计划、测试用例、出错统计和最终的分析报告,为维护提供方便软件测试的每一次测试都需要准备好一些测试数据,与被测程序一起输入到计算机中执行;知识点7软件测试的方法和实施1、测试是对软件规格说明、设计和编码的最后的复审,所以软件测试贯穿在整个软件开发期的全过程.对于软件测试方法和技术,可以从不同的角度加以分类.①从是否需要执行被测软件的角度,软件测试分为静态分析和动态测试②按照功能划分,动态测试又分为白盒测试和黑盒测试2、静态测试一般是指人工评审软件文档或程序,借以发现其中的错误,由于被评审的文档或程序不必运行,所以称为静态的.静态测试包括代码检查、静态结构分析、代码质量度量等.3、动态测试是指通过运行软件来检查软件中的动态行为和运行结果的正确性,也就是常说的上机测试.动态测试一般包括两个基本要素:被测程序和测试数据4、测试能否发现错误取决于测试用例的设计.动态测试的设计测试用例的方法一般分为黑盒测试和白盒测试.①白盒测试也称结构测试,它与程序内部结构相关,要利用程序结构的实现细节设计测试用例,它涉及程序风格、控制方法、源程序、数据库设计和编码细节.②黑盒测试是测试者已经知道被测程序的功能,而对程序内部的逻辑结构和处理过程完全不用考虑,只是对它的每一个功能进行测试,将测试后的结果与期望的结果进行分析比较,检查程序的功能是否符合规格说明书的要求.黑盒测试是在程序接口进行的测试5、测试用例是由测试数据和期望结果组成.设计测试用例的目的就是用尽可能少的测试数据,达到尽可能大的程序覆盖面,发现尽可能多的软件错误和问题6、用白盒法设计测试用例常用以下几种技术:①语句覆盖②判定覆盖③条件覆盖④判定/条件覆盖⑤条件组合覆盖⑥路径覆盖7、用黑盒法设计测试用例常用以下几种技术:①等价类划分法②边界值分析法③错误推测法④因果图法8、软件测试的实施①单元测试:是对每一个编制好的模块进行测试,其目的在于发现和排除各模块内部可能存在的差错及详细设计中产生的错误.进行单元测试时,根据程序的内部结构设计测试用例,主要采用白盒测试法②集成测试.是在单元测试的基础上,将所有模块按照设计要求组装成为系统而进行的测试,它的任务是检查模块间的接口和通信、各子功能的组合能否达到预期要求的功能、全程数据结构是否有问题等.集成测试主要发现设计阶段产生的错误,通常采用黑盒测试法 .集成测试时,将各个模块组装成系统的方法有:非增量组装方式是先分别对每个模块进行单元测试,再把所有模块按设计要求组装在一起进行测试,最终得到所要求的软件增量组装方式是把下一个要测试的模块同已经测试好的那些模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试③确认测试.确认测试是在集成测试通过后,在用户的参与下进行确认测试.这时通常使用实际数据进行测试,以验证系统是否能满足用户的实际需要.它的任务就是以需求规格说明书作为依据来验证软件的性能、功能及其他特征是否与用户的要求一致,通常采用黑盒测试④系统测试.系统测试是在更大范围内进行的测试.系统测试是把通过确认测试后的软件与计算机硬件、外设、某些支持软件、数据和人员等结合在一起,在实际运行环境下,对计算机系统进行的一系列集成测试和确认测试知识点八程序的调试1、调试也称排错或纠错.2、程序调试的任务:诊断和改正程序中错误.软件测试贯穿整个生命周期,调试主要在开发阶段.3、程序调试的基本步骤:1错误定位; 2纠正错误; 3回归测试.4、对软件主要的调试方法可以采用:1强行排错法. 2回溯法. 3原因排除法.5、软件调试可分为静态调试和动态调试.1静态调试就是指对源程序进行分析,然后确定可能出错的地方并进行排错.2动态调试是指对程序的运行进行跟踪并观察其出错点,然后进行排错.。
软件工程知识点总结
第一编:软件1.软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。
2.程序是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合,是用计算机语言开发编制出来的可以运行的文件。
3.文档从形式上分为工作表格(开发过程中填写的各种图表)和文件(开发过程应编制的技术资料和技术管理资料)。
文档从产生和使用的范围可分为三类:⑴开发文档,包括可行性研究报告、需求分析规格说明书、数据要求说明书、概要设计(或总体设计)规格说明书、详细设计说明书等。
⑵管理文档,包括项目开发计划说明书、测试计划说明书、测试分析报告、项目开发进度月报、项目开发总结报告、软件维护建议(手册)、软件问题报告、软件修改报告等。
⑶用户文档,包括需求分析规格说明书、用户操作手册、用户修改建议等。
软件生命周期内产生的文档主要包括各阶段活动的计划说明书和报告;项目相关的管理控制报告,包括成本估算与进度管理计划和报告、风险管理报告、配置管理计划书、质量管理报告等。
第二编:软件危机1.软件危机是指在计算机软件的开发、使用和维护中遇到的一系列严重问题,是落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
2.软件危机的表现:①软件开发费用和进度失控,软件开发进度难以预测,.软件开发成本难以控制。
②软件的可靠性差,用户对已完成的软件不满意的现象时有发生,软件产品质量无法保证。
③软件产品难以维护,软件缺少适当的文档资料。
3.软件危机产生的原因:一方面与软件本身的特点有关,另一方面与软件开发人员的弱点和软件开发维护的方法不正确有关。
4.软件开发危机的原因:①用户需求不明确。
②缺乏正确的理论指导。
③软件开发规模越来越大。
④软件开发复杂度越来越高。
5.软件危机解决的途径:①加强软件开发过程的管理。
②推广使用开发软件的成功技术和方法。
③开发和使用好的软件工具。
第三编:软件工程1.软件工程(Software Engineering,SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
软件工程一二章知识点总结
软件工程一二章知识点总结一、软件工程概述1.1 软件工程定义软件工程是指将系统化、规范化、可靠化、高效化地开发、维护和管理软件的过程。
它包括了一系列的方法和工具,旨在提高软件开发的质量和效率。
1.2 软件危机软件危机是指在软件开发和维护过程中所出现的一系列问题,包括进度滞后、成本超支、质量不高等。
软件工程的出现正是为了解决这些软件危机。
1.3 软件工程的目标软件工程的主要目标是提高软件开发的质量、提高开发效率、降低开发成本,并且使得软件能够满足用户的需求。
1.4 软件工程的原则软件工程有七大原则,包括可管理性、稳定性、可维护性、灵活性、可重用性、可移植性和高效性。
1.5 软件工程的特点软件工程有其自身的特点,包括软件的不可见性、复杂性、变化性和一致性。
软件开发过程要充分考虑这些特点。
1.6 软件危机的原因软件危机主要是由于软件的复杂性、需求的不断变化、开发过程的管理不善和技术水平的不足等诸多原因导致的。
要解决软件危机,就需要采用科学的方法进行软件开发。
二、软件生命周期2.1 软件生命周期模型软件生命周期模型是描述软件开发过程中不同阶段的模型。
常见的软件生命周期模型包括瀑布模型、原型模型、迭代模型、螺旋模型、敏捷开发模型等。
2.2 软件生命周期阶段软件生命周期通常包括需求分析、设计、编码、测试、部署和维护等不同阶段。
每个阶段都有其特定的任务和目标。
2.3 瀑布模型瀑布模型是软件开发中最经典的一种模型,它将软件开发过程分为需求分析、设计、编码、测试和维护五个阶段,严格按照顺序进行。
该模型适用于需求变化不大的项目。
2.4 原型模型原型模型是一种以原型开发为基础的模型,它能够快速生成原型,帮助用户更好地理解需求,并且在软件开发过程中充分考虑需求的变化。
2.5 敏捷开发敏捷开发是一种迭代、灵活、快速响应需求变化的软件开发方法。
它强调团队合作、交付价值、持续改进和迭代开发。
三、需求工程3.1 需求工程定义需求工程是指对需求进行理解、规范、记录和验证的过程。
软件工程考点总结
软件工程考点总结《软件工程考点总结》软件工程这门课学下来,整体感觉就像在搭建一座复杂的大楼,从基石开始一块块往上垒,一个环节没做好,整座大楼都可能不稳。
一、具体收获1. 软件生命周期模型从最初的瀑布模型开始,那就像一条从山顶直泻而下的瀑布,每个阶段界限分明,需求分析、设计、编码、测试、维护,一个接一个,顺序执行。
要特别注意在需求分析阶段得尽可能把需求搞清楚,不然就像盖房子地基没打牢,后面越盖问题越多。
我之前看过一个小项目,就是因为前期需求分析没做好,以为用户就需要简单的功能,结果做到一半用户提出很多新的需求,整个项目计划全乱了。
还有敏捷开发模型,这就比较灵活了,强调要能够快速响应需求的变更。
可以把它想象成一群灵活的小蚂蚁在合作盖房子,哪里有变化就立刻调整方向去应对。
它把一个大项目分解成好多小的迭代,每个迭代都有计划、开发、测试和交付的过程。
2. 软件需求工程搞清楚用户到底想要什么是非常关键的。
需求获取就像侦探去搜集线索一样,要用到问卷调查、用户访谈等各种方法。
回想起来才发现,当初在做一个案例分析的时候,对用户需求的挖掘不够深入。
比如说只问了表面上想要的功能,却没有深入到背后的业务逻辑,结果做出的软件功能虽然有,但是不符合用户真正的工作流程,这是个很深刻的教训。
3. 软件设计这里有总体设计和详细设计之分。
总体设计就像是给房子画个大蓝图,确定整个建筑的结构框架,有哪些模块,模块之间怎么连接。
详细设计就是每个屋子的布局、水电怎么装之类的细节了。
比如在设计一个电商系统时,总体设计要确定有用户模块、商品模块、交易模块等,详细设计就要细化到每个模块里面的数据结构、算法之类的。
4. 软件测试软件测试的目的就是找软件里的错误和缺陷。
白盒测试像是在房子内部仔细检查每一根电线是否接好,从内部逻辑结构出发进行测试。
黑盒测试则像只看房子外面的功能是否正常,不关心内部结构。
有一个很重要的概念就是测试用例的设计,要覆盖各种情况。
软件工程复习总结
软件工程复习总结第一篇:软件工程复习总结第1章1什么是软件危机,产生软件危机的原因,消除软件危机的途径。
落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
软件维护费用的急剧上升,直接威胁计算机应用的扩大;软件生产技术进步缓慢,是加剧软件危机的重要原因。
既要有技术措施,又要有必要的组织管理措施。
2什么是软件,软件的精确定义。
软件是程序以及开发、使用和维护程序所需的所有文档.。
3软件工程的精确定义,软件工程的7个特征,7基本原理。
软件工程是指导计算机软件开发和维护的一门工程学科。
1,软件工程关注于大型程序的构造;2,软件工程的中心课题是控制复杂性;3,软件经常化;4,开发软件的效率非常重要;5,和谐地合作是开发软件的关键;6,软件必须有效地支持它的用户;7,在软件工程领域中是由一种文化背景的人替具有另一种文化背景的人创造产品。
基本原理:1,用分阶段的生命周期计划严格管理;2,坚持进行阶段评审;3,实行严格的产品控制;4,采用现代程序设计的技术;5,结果应能清楚地审查;6,开发小组的人员应该少而精;7,承认不断改进软件工程实践的必要性。
4软件工程方法学的精确定义,它的三要素。
二种方法学,面向结构,面向对象3个要素:方法工具和过程两种方法学:1传统方法学2面向对象方法学 5什么是软件生命周期,它有哪几个阶段(8个阶段),各个阶段分别做什么,这些阶段的重要性。
一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。
阶段:1问题定义2可行性研究3需求分析4总体设计5详细设计6编码和单元测试7综合测试8软件维护6软件过程的精确定义,它与软件工程的关系,它的各种模型,各种模型的优缺点,适用范围。
软件过程为一个为建造高质量软件所需完成的任务的框架,它规定了完成各项任务的工作步骤。
瀑布模型快速原型模型增量模型螺旋模型喷泉模型第2章1什么是可行性研究,它的目的,它的任务,可行性研究是在项目建议书被批准后,对项目在技术上和经济上是否可行所进行的科学分析和论证。
软件工程知识点归纳
软件工程知识点归纳第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. 软件产品必须由一个完整的配置组成,软件配置主要包括程序、文档和数据等成分。
软工知识点归纳总结
软工知识点归纳总结软件工程(Software Engineering),简称软工,是应用工程原理、方法和工具进行软件规模化开发和维护的学科。
软工的核心目标是提高软件质量、提高开发效率和降低开发成本。
本文将对软件工程的几个重要知识点进行归纳总结,包括软件开发过程、软件需求工程、软件设计与架构、软件测试与维护等。
一、软件开发过程软件开发过程是指按照一定规范和流程进行软件开发的过程。
常见的软件开发过程模型有瀑布模型、迭代模型、敏捷开发等。
瀑布模型是一个线性的开发过程,包括需求分析、系统设计、编码、测试和维护等阶段。
优点是结构清晰、过程可控,缺点是不利于需求变更。
迭代模型是将软件开发过程划分为若干个迭代阶段,每个阶段都包含需求分析、设计、编码、测试等活动。
优点是适应需求变化,缺点是开发周期相对较长。
敏捷开发是一种以人为核心、快速响应变化的开发方法。
采用迭代、增量的方式进行开发,注重团队协作和持续交付。
二、软件需求工程软件需求工程是指对软件需求进行识别、分析、规格化和验证的过程。
常用的需求工程方法有需求获取、需求分析、需求规格化和需求验证等。
需求获取是通过与用户交流、文档分析等方式获取软件需求信息。
需求分析是对获取的需求信息进行分析和整理,识别用户真正的需求。
需求规格化是将需求信息转化为形式化的形式,通常使用用例、需求规约等。
需求验证是通过评审、测试等手段验证需求的准确性和完整性。
三、软件设计与架构软件设计是指根据软件需求进行软件的整体设计和模块设计。
软件架构是指软件系统的基本结构、组成和关系。
常见的软件设计方法包括结构化设计、面向对象设计和敏捷设计等。
结构化设计是基于模块化和层次化的设计方法,将软件系统拆分为多个模块,并定义各个模块之间的接口和关系。
面向对象设计是基于对象和类的设计方法,强调封装、继承和多态性等概念。
敏捷设计是一种快速迭代、持续重构的设计方法,注重简单性、灵活性和可维护性。
四、软件测试与维护软件测试是指对软件系统进行验证和验证的过程,目的是发现和修复软件中的错误和缺陷。
软件工程重点总结
图 6.10 A 由 B 出现 N 次(N≥0)组成
图 6.11 改进的 Jackson 图
三、程序复杂度的定量度量
三、软件再工程过程:这意味着作为该范型的组成部分的每个活动都可能被重复,而且
对于任意一个特定的循环来说,过程可以在完成任意一个活动之后终止。
第十三章 软件项目管理(楼主意吐血,请各位看官自行看 ppt)
一、估算软件规模 二、工作量估算 三、进度计划
1、Gantt 图:Gantt(甘特)图是历史悠久、应用广泛的制定进度计划的工具
图 5.4 带编号的层次图(H 图) 2、软件结构图 答:
结构图和层次图类似,也是描绘软件结构的图形工具,图中一个方框代表一个模块,框 内注明模块的名字或主要功能;方框之间的箭头(或直线)表示模块的调用关系。
图 5.5 结构图的例子——产生最佳解的一般结构
图 5.6 判定为真时调用 A,为假时调用 B
第二章 可行性研究
一、系统流程图
答: 系统流程图是概括地描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形
式描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。
二、数据流程图
答: 数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所
经受的变换。
三、数据字典
答: 数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集
图 13.1 旧木板房刷漆工程的 Gantt 图 2、工程网络:工程网络是制定进度计划时另一种常用的图形工具,它同样能描绘任务分解 情况以及每项作业的开始时间和结束时间,此外,它还显式地描绘各个作业彼此间的依赖关 系。因此,工程网络是系统分析和系统设计的强有力的工具。
软件工程知识点总结
软件工程知识点总结摘要:1.软件工程概念与目标2.软件开发过程与管理3.需求分析与规划4.设计、编码与测试5.维护与优化6.软件项目管理策略7.软件工程实践与方法8.常用开发工具与技术9.软件工程发展趋势正文:一、软件工程概念与目标软件工程是一门研究如何高效、规范、可靠地开发和维护软件的理论、方法、工具和实践的学科。
其目标是生产出具有高质量、高可靠性、易维护、低成本的软件产品。
二、软件开发过程与管理1.瀑布模型:一种顺序性的软件开发过程,各阶段相互依赖,依次进行。
2.增量开发:逐步增加软件功能,分阶段完成开发任务。
3.敏捷开发:以人为核心,迭代、适应性强,持续交付可用软件。
三、需求分析与规划1.需求分析:通过调研、访谈等方法,明确用户需求,输出需求文档。
2.软件规划:根据需求分析,制定软件开发计划,包括项目范围、里程碑、任务分配等。
四、设计、编码与测试1.设计:基于需求文档,进行软件整体结构、模块划分和接口设计。
2.编码:按照设计文档,编写高质量、可维护的代码。
3.测试:对软件进行单元测试、集成测试、系统测试,确保软件功能正常、性能达标。
五、维护与优化1.软件维护:对已投入使用的软件进行修改、完善,提高性能、稳定性等。
2.软件优化:通过重构、性能调优等手段,提升软件质量和运行效果。
六、软件项目管理策略1.项目风险管理:识别、评估、应对项目风险,降低项目失败可能性。
2.项目成本估算:合理预测项目成本,为项目决策提供依据。
3.项目进度管理:制定合理的进度计划,监控项目进度,确保按时完成任务。
七、软件工程实践与方法1.面向对象编程:运用封装、继承、多态等特性,提高代码复用性、可维护性。
2.软件工程原则:遵循一定的设计原则,如SOLID,提高软件质量。
八、常用开发工具与技术1.集成开发环境(IDE):如Eclipse、Visual Studio,提高开发效率。
2.版本控制工具:如Git,实现代码版本管理,便于团队协作。
软件工程考点总结
软件工程考点总结软件危机:定义:在计算机软件的开发和维护过程中遇到的一系列严重问题表现:成本和进度失控、用户对系统不满意、质量靠不住、软件僵硬、没有适当的文档,成本逐渐上升,开发效率无法顺应趋势产生原因:管理开发过程困难,规模庞大、错误没能在开发阶段检测出来,对用户需求没有准确的把握。
消除途径:有正确的认识,团队协调配合,推广在实践中总结出来的技术,使用更好的软件工具软件工程:定义1:软件工程是知道计算机软件开发和维护的一门工程学科定义2:为了经济地获得可靠且能在实际机器上有效地运行的软件而产生地一门工程学科基本特征:关注大型程序的构造,中心课题是控制复杂性,,软件经常变化,开发效率非常重要,和谐的合作是开发的关键,软件必须有效地支持它的用户基本原理(评审):用分阶段的生命周期计划严格管理。
坚持进行阶段评审,实行严格的产品控制,结果应能清楚地审查。
软件生命周期:划分时期:软件定义、软件开发、软件维护。
每个时期的阶段:软件定义时期:问题定义、可行性研究、需求分析软件开发时期:总体设计、详细设计、编码和单元测试、综合测试软件维护时期不再划分阶段。
软件过程:定义:为了获得高质量软件所需要完成的一系列任务的框架,它规定了各项任务的工作步骤瀑布模型:各阶段具有顺序性和依赖性,推迟实现,质量保证快速原型:增量模型:可行性分析:目的:确定问题是否可解决分析方面:技术可行性,经济可行性可行性研究的基本步骤:复查系统的规模和目标,研究目前正在使用的系统,导出新系统的高层逻辑模型,进一步定义问题,导出评价供选择的解法数据字典定义:数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
包含内容:数据流、数据流分量、数据存储、处理过程需求分析:需求分类:FURPS+ 功能性(Functional),可用性(Usability),可靠性(Reliability),性能(Performance),可支持性(Supportability),其他和用户沟通获取需求的方法:访谈、面向数据流的自顶向下求精、简易的规格说明技术总体设计包含步骤:设想供选择的方案、选取合理的方案、推荐最佳方案、功能分解、设计软件结构、设计数据库、制定测试计划、书写文档、复查与评审设计原理基本内容:模块化、抽象、逐步求精、信息隐藏和局部化、模块独立耦合:软件内部不同模块间互联程度的度量内聚:一个模块内各个元素彼此结合的紧密程度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
填空10个,选择10个,名词解释5个,简答题2个,画图题2个第一章一、FAQs about software engineering软件工程中常见的问题1、software:Computer programs and associated documentation软件是计算机程序和所有使程序正确运行所需要的相关文档和配置信息Software products软件产品分为:Generic通用、Bespoke (custom)定制2、Software engineering is an engineering discipline that is concerned with all aspects of software production.软件工程是一门工程学科,涉及软件生产的各个方面Software engineers should adopt a systematic and organised approach 软件工程人员运用的是系统的、有组织的工作方法。
3、difference between software engineering and computer science:系统工程和计算机科学的区别:Software engineering is an engineering discipline that is concerned with all aspects of software production.计算机科学侧重于理论和基础,而软件工程侧重于软件开发和交付的实际活动。
4、the difference between software engineering and system engineering:软件工程和系统工程的区别:System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering.Software engineering is part of this process系统工程侧重基于计算机系统开发的所有方面,包括硬件、软件和处理工程。
软件工程只是它的一部分。
5、software process :A set of activities whose goal is the development or evolution ofsoftware. 软件工程是以软件开发和进化为目的的一系列活动Generic activities in all software processes:软件过程的基本活动a)Specification 软件描述b)Development 软件开发c)Validation软件有效性验证d)Evolution 软件进化6、software process model:软件过程模型A simplified representation of a software process, presented from a specific perspective.从特定角度提出的软件过程的简化表示形式Examples of process perspectives are•Workflow perspective 工作流模型•Data-flow perspective 数据流或活动模型•Role/action perspective角色/动作模型Generic process models 通用过程模型•Waterfall瀑布型开发方法•Iterative development迭代式开发方法•Component-based software engineering(CBSE)基于组件的软件工程7、the costs of software engineering软件工程的成本Roughly 60% of costs are development costs, 40% are testing costs. For custom software, evolution costs often exceed development costs. 软件开发成本约占60%,测试成本占40%。
对于定制软件而言,进化成本常常高于开发成本。
8、software engineering methods软件工程方法:Structured approaches to software development which include system models, notations, rules, design advice and process guidance.软件开发的结构化研究方法,包括:系统模型、标记法、规划、设计忠告和过程指南9、CASE (Computer-Aided Software Engineering)计算机辅助软件工程:are intended toprovide automated support for software process activities. CASE systems are often used for method support. 旨在使软件过程活动自动化的软件系统。
CASE常用作方法支持10、the attributes of good software优良软件的特点:The software should deliver therequired functionality and performance to the user and should be maintainable, dependable and acceptable.软件应具有用户所需的功能与性能,而且应该可维护、可靠、可用11、key challenges facing software engineering软件工程面临的主要挑战:Legacy遗留Heterogeneity多样性挑战delivery交付上的挑战trust信任的挑战第二章一、system engineering process系统工程过程(填空)二、System modelling系统建模在系统需求和设计活动中,系统被建模成一系列组件和组件间的关系。
通常是以图的形式描述在系统结构模中,以便给读者一个系统组织的总体概念。
Usually presented as a block diagram以方块图来描述,展现一些主要的子系统以及子系统之间的关联。
三、System evolution系统进化Large systems have a long lifetime. They must evolve to meet changing requirements.大型和复杂的系统都会有一个非常长的生存期。
在整个生存期内,必须改进原有的系统需求中的错误进而满足出现的新需求。
四、system procurement process系统采购过程:(考填空)以最佳方式获得系统做出决策并决定系统的最佳供应商。
第四章一、软件工程模型software process model:is an abstract representation of a process. Itpresents a description of a process from some particular perspective.二、(1)waterfall model瀑布模型:Separate and distinct phases of specification and development. One phase has to be complete before moving onto the next phase.直到上一阶段完成,下一阶段才能启动劣势:The main drawback of the waterfall model is the difficulty of accommodating change after the process is underway. Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements(2)Evolutionary development进化式开发:Specification, development and validation are interleaved.优势:描述可以不断补充完善劣势:a)Lack of process visibility;过程不可见b)Systems are often poorly structured;系统结构通常较差Applicability适用于:a) For small or medium-size interactive systems;b) For parts of large systems (e.g. the user interface);c) For short-lifetime systems.进化式开发的两种基本类型:Exploratory development 探索式开发、Throw-away prototyping 抛弃式原型(3)Component-based software engineering基于组件的软件工程(Reuse-oriented development 面向复用的软件开发方法)其过程模型如下图:三、Spiral development螺旋式开发1、Process is represented as a spiral rather than as a sequence of activities with backtracking.Each loop in the spiral represents a phase in the process.它不是将软件过程用一系列活动和活动间的回溯来表示,而是将过程用螺旋线表示。
每个回路表示软件过程的一个阶段。
No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required.Risks are explicitly assessed and resolved throughout the process.2、四部分:Objective setting目标设置、Risk assessment and reduction风险评估和规避、Development and validation开发和有效性验证、Planning规划.四、Software validation软件有效性验证:is intended to show that a system conforms to its specification and meets the requirements of the system customer.是要看系统是否符合它的描述以及系统是否符合客观的预测目标。