软件工程考点总结

合集下载

软件工程必背考点

软件工程必背考点

软件工程必背考点软件工程是以工程法为基础的一门学科,涉及到软件开发的各个方面,包括需求分析、设计、编码、测试、维护等。

在软件工程的学习和实践中,有一些重要的考点需要我们掌握和理解。

本文将介绍一些软件工程的必背考点,以帮助读者更好地复习和准备软件工程的考试。

一、软件生命周期模型软件生命周期模型是指软件开发过程中不同阶段的组织、管理和控制方法。

常见的软件生命周期模型有瀑布模型、迭代模型、螺旋模型等。

熟悉和理解不同的软件生命周期模型对于项目管理和开发具有重要的意义。

二、需求工程需求工程是软件工程的重要组成部分,其目标是明确软件系统需要满足用户和利益相关者的需求。

需求工程包括需求获取、需求分析、需求规格说明等过程,需要掌握需求工程中的各种技术和方法。

三、软件设计软件设计是将需求转化为具体的设计方案和结构的过程。

软件设计包括结构设计、模块化设计、接口设计等,需要掌握设计的原则和方法,以及常用的设计模式和设计工具。

四、软件测试软件测试是确保软件系统质量的重要手段。

软件测试包括单元测试、集成测试、系统测试、用户验收测试等,需要掌握各种测试方法、策略和工具,以及缺陷管理和跟踪的技巧。

五、软件维护软件维护是软件工程的一个重要阶段,用于确保软件系统的可靠性和稳定性。

软件维护包括纠错性维护、适应性维护、完善性维护等,需要掌握维护的方法和技巧,以及版本管理和配置管理的工具和流程。

六、软件过程改进软件过程改进是为了提高软件开发过程的质量和效率而进行的系统性改进。

软件过程改进包括CMMI模型、SPICE模型等,需要了解软件过程改进的原理和方法,以及评估和度量的指标体系。

七、软件项目管理软件项目管理是为了成功地完成软件项目而进行的计划、组织、协调和控制的过程。

软件项目管理包括项目计划、资源管理、风险管理等,需要掌握项目管理的理论和实践,以及项目管理工具和技术。

八、软件工程伦理和专业责任软件工程伦理和专业责任是软件工程师必备的素养。

软件工程知识点总结

软件工程知识点总结

软件工程知识点总结软件工程知识点总结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. 软件生命周期软件生命周期是指软件开发过程中的各个阶段,包括需求分析、设计、编码、测试、部署和维护等。

每个阶段都有相应的活动和产物,这些活动和产物共同构成了软件开发的全过程。

2.1 需求分析需求分析是软件开发的第一步,旨在明确用户对软件的需求和期望。

它包括需求收集、需求分析、需求规格化和需求验证等活动,旨在确保软件开发过程中的需求清晰、准确,并能够满足用户的实际需求。

2.2 设计软件设计是在需求分析的基础上,根据系统的需求和约束条件,通过对系统的整体结构、组件设计、接口设计等进行详细的规划和设计。

2.3 编码编码阶段是将设计好的软件系统转化为可执行的程序代码的过程。

在编码阶段,开发人员需要按照设计规范进行编码,并遵循编码规范和最佳实践,以确保代码的可读性、可维护性和高效性。

2.4 测试测试是验证软件系统是否符合设计和需求的过程。

它包括单元测试、集成测试、系统测试和验收测试等各个层次的测试,旨在发现和修复软件系统中存在的缺陷和问题。

2.5 部署与维护部署阶段是将开发完成的软件系统部署到目标环境并投入使用的过程。

维护阶段则是针对已发布的软件系统进行问题修复、功能增强和性能优化等活动。

3. 软件开发方法软件开发方法是一套规范和指导软件开发过程的方法论和技术体系。

不同的软件开发方法适用于不同的项目需求和团队情况,常见的开发方法有瀑布模型、敏捷开发和迭代开发等。

3.1 瀑布模型瀑布模型是一种传统的软件开发方法,它将软件开发过程划分为阶段并且各个阶段严格按顺序进行。

瀑布模型适用于需求稳定、风险较小的项目,但缺乏灵活性和适应变化的能力。

3.2 敏捷开发敏捷开发是一种以人为核心、快速迭代、灵活应变的开发方法。

软件工程40个记忆知识点

软件工程40个记忆知识点

1.软件是计算机系统内中与硬件相互依存的另一部分,是包含程序、数据及其相关文档的完整集合,即软件=程序+数据+相关文档。

2.软件按照功能可划分为:系统软件、支持软件、应用软件。

按照规模划分:微型软件、小型软件、中型软件、大型软件和超级软件。

3.软件危机:对软件开发成本的估计不准确,造成开发成本超出预算;开发进度不能保证,交付时间一再拖延;“已完成”的软件不能满足用户需求;软件产品质量没有保证,运算结果出错、操作死机等现象屡屡发生;软件没有适当的文档资料,或文档与最终交付的软件产品不相符,软件的可维护程度非常低;软件开发生产率赶不上硬件的发展和人们需求的增长。

4.软件工程的层次化结构:工具层,方法层,过程、技术层,质量保证层。

5.软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术和管理方法。

6.实现软件开发工程化、系统化的方法是软件生命周期法,主要划分为软件项目的准备阶段、开发阶段和运行维护阶段。

软件项目的准备阶段的主要任务是调查和分析:调查用户需求,分析软件系统项目的主要目标和开发该系统的可行性。

开发阶段:①需求分析②软件设计(概要设计、详细设计)③编码④测试运行维护阶段:改正性维护、适应性维护、完善性维护、预防性维护。

7.软件项目的开发模型:瀑布模型、原型模型、螺旋模型。

8.面向对象(对象:是现实世界中个体或者事物的抽象表示,是它的属性和相关操作的统一封装实体。

类、继承、消息)面向对象=对象+类+继承+消息9.需求分析的任务是将用户的需求转变为软件的功能和性能的描述。

软件从外部可以看作黑盒子(功能)计算机所处理的数据域描述为数据内容(数据项)、数据结构(数据线的组织形势)和数据流(数据通过系统的变化方式)。

10.软件的物理模型要给出处理功能和数据结构的实际表示形式,逻辑模型是设备类型和数据结构的存储方式。

11.需求分析步骤:调查研究,获取需求、分析建模,提炼需求、编写需求说明,描述需求、分析评审,验证需求。

软件工程基础知识点总结

软件工程基础知识点总结

软件工程基础部分知识点总结知识点一软件工程的基本概念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动态调试是指对程序的运行进行跟踪并观察其出错点,然后进行排错.。

软件工程考试重点

软件工程考试重点

2.软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

6.模块化:是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程,有多种属性,分别反映其内部特性8.逐步求精:将现实问题经过几次抽象(细化)处理,最后到求解域中只是一些简单的算法描述和算法实现问题9.信息隐藏:应该这样设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的10.局部化:所谓局部化是指把一些关系密切的软件元素物理地放得彼此靠近。

11.模块独立性:是指模块内部各部分及模块间的关系的一种衡量标准,由内聚和耦合来度量。

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

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

16.结构化程序设计:是进行以模块功能和处理过程设计为主的详细设计的基本原则17.改正性维护:诊断和改正错误的过程.18.适应性维护:为了和变化了的环境适当地配合而进行的修改软件的活动,是即必要又经常的维护活动。

19.完善性维护:是指增加新功能或修改已有的功能。

通常占软件维护工作的大部分。

20.预防性维护:为了改进未来的可维护性或可靠性,或为了给未来的改进奠定更好的基础而修改,这项维护活动相对比较小。

21.可移植性:把程序从一种计算环境转移到另一种计算环境的难易程度.22.可重用性:是指同一事物不做修改或稍加改动就不同环境中多次重复使用。

23.继承:子类自动地共享基类中定义的数据和方法的机制。

25.验收测试:把软件系统作为单一的实体进行测试,测试内容与系统测试基本类似,但是它是在用户积极参与下进行的,而且可能主要使用实际数据进行测试。

26.集成测试:是测试和组装然件的系统化技术.单元测试集中检测软件设计的最小单元是模块27.多态:指子类对象可以像父类对象那样使用21.简述数据流图的绘制步骤。

首先画系统的输入输出,即先画顶层数据流图。

软件工程知识(软考备考要点汇总)

软件工程知识(软考备考要点汇总)

软件工程知识(软考备考要点汇总)软件工程知识 (软考备考要点汇总)软件工程是一门涉及软件开发、维护和演化的学科,它旨在提高软件开发过程的效率和质量。

对于准备参加软考考试的人来说,了解软件工程的知识点至关重要。

本文将对软件工程的关键知识点进行汇总,帮助考生更好地备考。

1. 软件过程模型软件过程模型是指描述软件开发过程的模型,常见的模型包括瀑布模型、迭代模型、增量模型、螺旋模型等。

在备考软考时,需要了解不同模型的特点、适用场景以及优缺点。

2. 软件需求工程软件需求工程是指对软件系统进行需求分析、需求获取和需求管理的过程。

备考软考时,需要掌握需求工程的主要术语和概念,如用户需求、功能需求、非功能需求等,以及需求获取和需求变更的方法和技巧。

3. 软件设计模式软件设计模式是指在软件设计过程中经常遇到的问题和解决方法的总结和抽象。

备考软考时,需要了解常见的软件设计模式,如单例模式、工厂模式、装饰器模式等,以及它们的应用场景和实现方式。

4. 软件测试与质量管理软件测试是保证软件质量的重要手段,它包括单元测试、集成测试、系统测试等多个层次。

备考软考时,需要了解各种测试方法和技术,如黑盒测试、白盒测试、自动化测试等,以及软件质量管理的基本原理和方法。

5. 软件项目管理软件项目管理是指对软件开发项目进行计划、组织、协调和控制的过程。

备考软考时,需要了解项目管理的基本概念和流程,如项目计划、需求管理、进度管理等,以及常用的项目管理工具和技术。

6. 软件配置管理软件配置管理是指对软件开发过程中的软件配置项进行版本控制和变更管理的过程。

备考软考时,需要了解配置管理的基本原理和方法,如版本控制、变更管理、发布管理等,以及常用的配置管理工具和技术。

7. 软件维护与演化软件维护与演化是指对已经投入使用的软件系统进行修复、改进和升级的过程。

备考软考时,需要了解维护与演化的基本原理和方法,如问题分析、改进计划、版本迭代等,以及常见的维护与演化模式和技术。

软件工程概述考点整理

软件工程概述考点整理

软件工程概述考点整理●软件及其本质特性●软件的概念●指令的集合(计算机程序),通过执行这些指令可以满足预期的特征、功能和性能需求;●数据结构,使得程序可以合理利用信息;●软件描述信息,它以硬拷贝和虚拟形式存在,用来描述程序的操作和使用。

●软件 = 程序 + 数据 + 文档●软件是逻辑的而非物理的系统元素,因此,软件具有完全不同的特性:软件不会“磨损”。

●软件的失效曲线图●软件的特性●无形性●成本主要体现在软件的开发和研制上●软件不会被用坏,只能被淘汰●软件生产方式原始●软件成本昂贵●软件的本质特性●复杂性:软件是人类思维和智能的一种延伸,他比任何以往的人类的创造物都要复杂的多●一致性●软件不能独立存在,需要依附于一定的环境(如硬件、网络以及其他软件)●软件必须遵从人为的惯例并适应已有的技术和系统●软件需要随接口不同而改变,随时间推移而变化,而这些变化是人为设计的结果●可变性●人们总是认为软件是容易修改的,但忽略了修改带来的副作用●不断的修改最终导致软件的退化,从而结束其生命周期●不可见性●软件是一种“看不见、摸不着”的逻辑实体,不具有空间的形体特征●开发人员可以直接看到程序代码,但是源代码并不是软件本身●软件以机器代码的形式运行,但是开发人员无法看到源代码是如何运行的●软件的分类●按功能划分●系统软件:与计算机硬件紧密配合以使计算机各个部分与相关软件及数据协调、高效工作的软件。

如操作系统、数据库管理系统等●支撑软件:协助用户开发软件的工具性软件●应用软件:在特定领域内开发、为特定目的服务的一类软件●●按规模划分●微型1人1~4周0.5k●小型1人1~6月1k~2k●中型2~5人1~2年5k~50k●大型5~20人 2~3年50k~100k●甚大型100~1000人4~5年1M(=1000K)●极大型2000~5000人5~10年 1M~10M●按工作方式划分●实时处理软件:在事件或数据产生时,立即处理,并及时反馈信息●分时软件:允许多个联机用户同时使用计算机的软件●按服务对象的范围划分●项目软件:定制软件●产品软件:面向市场●按使用频度划分●一次使用的软件●频繁使用的软件●失效的影响划分●高可靠性软件●一般可靠性软件●软件的发展●第一阶段(20世纪50-60年代):程序设计阶段,此时硬件已经通用化,但软件生产却是个体化。

软件工程考点总结

软件工程考点总结

软件工程考点总结《软件工程考点总结》软件工程这门课学下来,整体感觉就像在搭建一座复杂的大楼,从基石开始一块块往上垒,一个环节没做好,整座大楼都可能不稳。

一、具体收获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.软件的特性:形态特性、智能特性、开发特性、质量特性、生产特性、管理特性、环境特性、维护特性、废弃特性、应用特性。

4.软件的分类:系统软件;应用软件;支撑软件;可复用软件。

5.什么是软件工程?(课后题)软件工程是指导计算机软件开发和维护的工程学科。

接受工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。

6.可以用功能性、牢靠性、易用性、效率、可维护性和可移植性六个特性衡量软件的质量。

功能性是指软件所实现的功能达到它的设计规范和满意用户需求的程度。

可移植性是指软件从某一环境转移到另一环境时所作努力得程度。

7.软件生存期由软件定义、软件开发和运行维护三个时期组成。

开发时期通常由概要设计、详细设计、编码和测试四个阶段组成。

开发过程中的典型文档包括:项目支配、软件测试支配、软件设计说明书、用户手册。

8.需求分析的基本任务?(1)建立分析模型,了解系统的各种需求微小环节。

(2)基于分析结果,编写出软件需求规格说明或系统功能规格说明,确认测试支配和初步的系统用户手册,并提交管理机构进行分析评审。

2 软件工程方法和工具1.面对对象方法的动身点和基本原则,是尽量模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类相识问题和解决问题的方法和过程,从而使描述问题的问题空间和其解空间在结构上尽可能一样。

2.形式化方法的主要特点是:(课后题)(1) 软件需求规格说明被细化为用数学记号表达的详细的形式化规格说明;(2) 设计、实现和单元测试等开发过程由一个变换开发过程代替。

通过一系列变换将形式的规格说明细化成为程序。

3.面对对象 = 对象 + 类 + 继承 + 消息通信。

软件工程师常见考点总结

软件工程师常见考点总结

软件工程师常见考点总结软件工程师是现代社会中备受追捧的职业之一,拥有扎实的软件工程知识和技能,对于求职者来说至关重要。

为了帮助大家更好地理解软件工程师的考试重点,本文将对软件工程师常见考点进行总结,为考生提供一些建议和指导。

一、软件工程基础知识在软件工程师考试中,基础知识是必不可少的考点。

考生需要熟悉软件工程的基本概念、原理和方法论,包括但不限于以下内容:1.软件生命周期:了解软件开发过程中的不同阶段,包括需求分析、设计、编码、测试和维护等。

2.软件开发模型:掌握常见的软件开发模型,如瀑布模型、迭代模型、敏捷开发等,并了解各自的特点和适用场景。

3.软件需求工程:学习如何进行需求分析、需求建模和需求规格化等工作,以满足用户的需求并确保软件质量。

4.软件设计原则:熟悉常用的设计原则,如单一职责原则、开闭原则、里氏替换原则等,能够应用于实际的软件设计中。

5.软件测试与质量保证:了解测试的方法和技术,包括黑盒测试、白盒测试、自动化测试等,并掌握如何进行缺陷管理和质量评估。

二、编程语言和工具作为软件工程师,掌握一门或多门编程语言是必不可少的。

在考试中,编程语言和工具的相关知识也是重要的考点。

以下是一些值得注意的内容:1.掌握一门主流的编程语言,如Java、C++、Python等,熟练运用其语法和特性,并了解常见的开发框架。

2.了解常用开发工具和集成开发环境(IDE),如Eclipse、Visual Studio等,掌握其基本功能和使用技巧。

3.熟悉版本控制系统(如Git)的使用方法,能够进行代码管理和协同开发。

4.掌握常用的调试工具和技术,能够快速定位和解决程序中的错误。

三、数据结构与算法数据结构与算法是软件工程师考试中的重要考点,掌握好这部分知识对于求职者来说至关重要。

以下是一些需要重点关注的内容:1.了解常见的数据结构,如链表、栈、队列、树等,能够熟练运用其基本操作。

2.掌握常用的排序和查找算法,如冒泡排序、快速排序、二分查找等,了解它们的原理和性能分析。

软件工程师重点考点解析与总结

软件工程师重点考点解析与总结

软件工程师重点考点解析与总结近年来,随着信息技术的飞速发展,软件工程师逐渐成为备受关注的职业。

作为一名软件工程师,是否能够掌握关键的考点,对于提升自己的竞争力至关重要。

本文将对软件工程师的重点考点进行解析与总结,希望能够帮助广大软件工程师更好地备战考试。

一、软件开发流程与模型软件开发的成功与否直接关系到整个项目的成败。

因此,理解软件开发流程与模型是软件工程师必备的核心知识。

这部分的重点考点包括:1. 瀑布模型:介绍瀑布模型的基本原理和特点,了解各个开发阶段的任务和产出物。

2. 敏捷开发:了解敏捷开发的基本原理,掌握Scrum、XP等敏捷开发方法的特点和应用场景。

3. 增量开发:了解增量开发的概念和步骤,掌握增量开发与瀑布模型的区别与联系。

4. 原型开发:了解原型开发的目的和优势,掌握原型开发的几种常见方法。

二、需求工程与需求分析需求工程是软件开发过程中至关重要的一环,它决定了整个软件系统的功能和性能。

在需求工程与需求分析的考点中,重点包括:1. 需求获取:了解需求获取的常见方法,包括面谈、问卷调查、观察等,掌握各种需求获取方法的优劣势。

2. 需求分析:掌握需求分析的基本步骤,包括需求建模、需求验证和需求管理等。

3. 用例建模:理解用例建模的概念和目的,掌握用例建模的基本步骤和方法。

4. 需求规格说明:了解需求规格说明的格式和要求,掌握如何编写完整、准确的需求规格说明文档。

三、软件设计与构建软件设计是软件工程师必须要具备的核心能力之一。

在软件设计与构建的考点中,需要重点关注以下内容:1. 结构化设计:掌握结构化设计的基本原则和方法,包括模块化、信息隐藏、模块间的接口设计等。

2. 面向对象设计:了解面向对象设计的基本概念和原则,掌握类图、时序图、活动图等面向对象设计方法的使用。

3. 设计模式:熟悉常见的设计模式,掌握它们的原理和适用场景,如单例模式、工厂模式、观察者模式等。

4. 架构设计:了解软件架构设计的基本概念和常用架构模式,如MVC、微服务架构等。

软件工程知识点总结

软件工程知识点总结

一、软件工程概述1.软件特点软件:计算机程序、方法、规则、相关的文档资料,以及计算机程序运行时所需要的数据。

软件是计算机系统中的逻辑成分,具有无形性。

其主要内容包括:程序、配置文件、系统文档、用户文档等。

2.软件分类(1)按功能划分:系统软件、支撑软件、应用软件。

(2)按工作方式划分:实时处理软件、分时处理软件、交互式软件、批处理软件。

(3)按规模划分:微型软件、小型软件、中型软件、大型软件。

(4)按服务对象划分:通用软件、定制软件。

3.软件发展阶段(1)程序设计时代(20世纪50年代)。

(2)程序系统时代(20世纪60年代)。

(3)软件工程时代(20世纪70年代起)。

4.软件危机(1)危机现象:软件开发成本与进度估计不准确,软件产品与用户要求不一致,软件产品质量可靠性差,软件文档不完整不一致,软件产品可维护性差,软件生产率低。

(2)危机原因:软件的不可见性,系统规模庞大,生产工程化程度低,对用户需求关心不够,对维护不够重视,开发工具自动化程度低。

5.软件工程1软件工程:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必须的相关文件资料。

软件工程是一门关于软件开发与维护的工程学科,它涉及软件生产的各个方面,能够为经济、高效地开发高质量的软件产品提供最有效的支持。

(1)工程方法:结构化方法、JSD方法、面向对象方法。

(2)软件工具:具有自动化特征的软件开发集成支撑环境。

(3)工程过程:在软件工具支持下的一系列工程活动,基本活动是软件定义、软件开发、软件验证、软件维护。

(4)工程管理:项目规划,项目资源调配,软件产品控制。

(5)工程原则:分阶段生命周期计划,阶段评审制度,严格的产品控制,采用先进的技术,成果能清楚地审查,开发队伍精练,不断改进工程实践。

(6)工程目标:开发成本较低,软件功能能满足用户需求,软件性能较好,软件可靠性高,软件易于使用、维护与移植,能按时完成开发任务并及时交付使用。

软件工程期末复习要点归纳总结

软件工程期末复习要点归纳总结

软件工程期末复习要点归纳总结软件工程是指在软件开发的全过程中,应用工程的原理、方法和经验对软件进行开发、运行和维护的过程。

在软件工程这个学科中,包括了软件需求、软件设计、软件构建、软件测试、软件维护等多个阶段和技术。

下面是软件工程期末复习的要点归纳总结:1.软件开发过程模型-瀑布模型:各个阶段按顺序进行,每个阶段完成后不可回溯。

-增量模型:将软件划分为多个增量,每个增量独立进行开发。

-螺旋模型:将软件开发过程分为多个循环,每个循环都包括需求分析、设计、开发和测试。

-迭代模型:将软件开发过程分为多个迭代,每个迭代包括需求分析、设计、开发和测试。

2.软件需求工程-需求获取:通过需求采集、用户访谈、问卷调查等方式获取需求。

-需求分析:对需求进行整理、分类、抽象和规范化,得出系统需求。

-需求规格说明:将需求规格化为需求文档,包括用例、用例图、领域模型等。

-需求验证:通过评审、原型验证等方式验证需求的正确性和完整性。

3.软件设计-结构化设计:通过模块化、自顶向下、逐步求精的方式进行软件设计。

-面向对象设计:通过类、继承、多态等面向对象的概念进行软件设计。

-架构设计:设计软件的整体框架和组件之间的关系。

-接口设计:设计软件的各个组件之间的接口。

4.软件构建-编码:根据设计文档进行编码,可以使用编程语言、集成开发环境等工具。

-调试:通过调试工具,对程序进行调试,找出存在的问题并进行修复。

-集成:将各个模块集成到一起,进行整体测试,确保功能的正确性。

-部署:将软件部署到目标环境中,确保软件能够正常运行。

5.软件测试-单元测试:对软件的最小单元进行测试,如函数、方法等。

-集成测试:对软件的各个模块进行整合测试,确保模块之间的协调性。

-系统测试:对整个系统进行测试,确保系统满足用户需求。

-验收测试:由用户对软件进行测试,验证软件是否满足用户需求。

6.软件维护-改正性维护:修复软件中的错误。

-适应性维护:根据用户需求,对软件进行功能扩展。

软工知识点归纳总结

软工知识点归纳总结

软工知识点归纳总结软件工程(Software Engineering),简称软工,是应用工程原理、方法和工具进行软件规模化开发和维护的学科。

软工的核心目标是提高软件质量、提高开发效率和降低开发成本。

本文将对软件工程的几个重要知识点进行归纳总结,包括软件开发过程、软件需求工程、软件设计与架构、软件测试与维护等。

一、软件开发过程软件开发过程是指按照一定规范和流程进行软件开发的过程。

常见的软件开发过程模型有瀑布模型、迭代模型、敏捷开发等。

瀑布模型是一个线性的开发过程,包括需求分析、系统设计、编码、测试和维护等阶段。

优点是结构清晰、过程可控,缺点是不利于需求变更。

迭代模型是将软件开发过程划分为若干个迭代阶段,每个阶段都包含需求分析、设计、编码、测试等活动。

优点是适应需求变化,缺点是开发周期相对较长。

敏捷开发是一种以人为核心、快速响应变化的开发方法。

采用迭代、增量的方式进行开发,注重团队协作和持续交付。

二、软件需求工程软件需求工程是指对软件需求进行识别、分析、规格化和验证的过程。

常用的需求工程方法有需求获取、需求分析、需求规格化和需求验证等。

需求获取是通过与用户交流、文档分析等方式获取软件需求信息。

需求分析是对获取的需求信息进行分析和整理,识别用户真正的需求。

需求规格化是将需求信息转化为形式化的形式,通常使用用例、需求规约等。

需求验证是通过评审、测试等手段验证需求的准确性和完整性。

三、软件设计与架构软件设计是指根据软件需求进行软件的整体设计和模块设计。

软件架构是指软件系统的基本结构、组成和关系。

常见的软件设计方法包括结构化设计、面向对象设计和敏捷设计等。

结构化设计是基于模块化和层次化的设计方法,将软件系统拆分为多个模块,并定义各个模块之间的接口和关系。

面向对象设计是基于对象和类的设计方法,强调封装、继承和多态性等概念。

敏捷设计是一种快速迭代、持续重构的设计方法,注重简单性、灵活性和可维护性。

四、软件测试与维护软件测试是指对软件系统进行验证和验证的过程,目的是发现和修复软件中的错误和缺陷。

软件工程知识点总结

软件工程知识点总结

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

3.软件生存周期:
软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
4.软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型
Hale Waihona Puke 5.软件的特征:(1)非常复杂(逻辑复杂,开发复杂)(2)成本高(3)风险大(4)维护困难
6. 什么是软件过程?它与软件工程方法学有何关系?
2.产生软件危机的原因
(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
3.你在大作业中做了哪些工作,谈谈你对软件工程的认识.
软件工程 (Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。
7.需求分析的基本任务是什么?
准确定义未来系统的目标,确定为了满足用户的需要系统必须做什么
8.需求分析的具体任务:(1) 确定对系统的综合要求---(功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、 逆向需求、将来可能提出的要求。)(2) 分析系统的数据要求(3)导出系统的逻辑模型(4)修正系统开发计划
29.软件结构是以 -模块 - 为基础而组成的一种控制层次结构。
30.在结构化分析中,用于描述加工逻辑的主要工具有三种,即: -结构化语言、判定表、判定树。
31.结构化语言是介于自然语言和 - 形式语言 -之间的一种半形式语言。
32.若年利率为i,不计复利,n年后可得钱数为F,则现在的价值 P=F/(1+(n*i))。
软件过程是为了开发出高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
软件过程定义了运用技术方法的顺序、应该交付的文档资料、为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。
软件过程是软件工程方法学的3个重要组成部分之一。
【软件工程】
19.数据流图中带有箭头的线段表示的是 -数据流流动的方向、而程序流程图中带有箭头的线段表示的是 -控制流流动的方向-。
20. 在详细设计阶段,一种历史最悠久、使用最广泛的描述程序逻辑结构的工具是 - 程序流程图/ 程序框图。
21. 软件成分的重用可以进一步划分为-功能抽象 -数据抽象-和- 过程抽象-三个级别。
4、软件工程的三要素是: A_方法__B_工具_C_过程_
5、软件产品在交付使用之前,需经过以下四种测试: A单元测试_B_集成测试_C_系统测试_D_验收测试_。
6、对象不仅能表示具体的事物,还能表示 A_抽象的规则_B_计划_C_事件_。
7. 衡量模块的独立性的两个标准是 -内聚-耦合 。
10.软件需求规格说明书由哪些部分组成?
组成包括:(1) 引言:编写目的、背景说明、术语定义及参考资料等。(2) 概述主要功能、约束条件或特殊需求。(3) 数据流图与数据字典。(4) 用户接口、硬件接口及软件接口。(5) 性能需求、属性等。(6) 其它需求,如数据库、操作及故障处理等。
【软件危机】
1.软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。(2)软件产品的质量往往靠不住。(3)一般软件很难维护。
(4)软件生产效率很低。(5)软件开发成本越来越大。(6)软件成本与开发进度难以估计。(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
1、存放原始数据的表称为 A.基本表,存放信息代码数据的表称为B代码表,存放统计数据的表称为C中间表,存放临时数据的表称为D临时表。
2、软件生存期的几个主要模型, A_瀑布模型_B_原型模型_C_螺旋模型_D_增量模型_。
3、程序的效率主要指: A_执行结果的正确性_B_执行速度_C_所占内存的空间_
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。
总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
9.需求分析的9项任务
①画出目标系统的组织机构模型。 ②画出目标系统业务操作流程图。③画出目标系统的数据流图。④列出目标系统的功能点列表,即功能模型。⑤列出系统的性能点列表,即性能模型。⑥列出目标系统的接口列表,即接口模型。 ⑦确定目标系统的运行环境,即环境模型。 ⑧目标系统的界面约定,即界面模型。 ⑨分析与评估开发工期、费用、进度、风险等。
33、主要的菜单类型:固定菜单、活动菜单、“弹出式”菜单、下拉式”菜单
32.结构化程序设计的基本原则:
在详细设计中所有模块都使用单入口、单出口的顺序、选择、循环三种基本控制结构.
33.软件测试的一般步骤:单元测试、子系统测试、系统测试、验收测试、平行测试。
【软件】
1.软件的定义:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。
2.软件的特点
(1)软件是逻辑实体;具有抽象性;软件的形态不可见.--必须通过观察、分析、思考、判断来了解其功能、性能和其它特性。(2)软件是人脑思维的产物,其生产过程与硬件不同。--开发过程的质量控制及软件产品保护问题。(3)软件的开发和运行受计算机系统限制--软件移植问题。(4)软件的开发技术落后,手工开发方式仍占统治地位.--开发效率低。
15.程序中的注释分为 -序言性注释-和 -功能性注释-两类。
16.软件项目工程包括 -软件开发- 和 -软件管理- 两大部分工作。
17.软件维护的类型由: -完善性维护-、- 改正性维护-、-适应性维护-和-预防性维护-四大部分构成。
18.对象模型的五个层次对应着面向对象分析过程中的五项主要活动: -找出类与对象-, -主题层- ,-结构层 -,-属性层-,- 服务层- 。
8.软件是由-文档--程序-两个方面组成。
9. 在软件开发时,按照工程学的角度可分为: -可行性研究、需求分析、概要设计.详细设计、编码.测试和维护过程-。
10. 软件的内聚性越高、软件的独立性越 -强 -,软件的耦合性越高、软件的独立性越 - 弱-。
11. 如果要完成知识库系统、专家系统、决策支持系统、推理工程、语言识别、机器人视觉等人工智能领域内的系统,应选择 -事件处理软件-、 -人工智能软件-。
4.可行性研究过程(步骤):(1) 复查系统规模和目标(2)研究目前正在使用的系统(3) 导出新系统的高层逻辑模型(4) 进一步定义问题(5) 导出和评价供选择的解法(6) 推荐行动方针(7) 草拟开发计划(8) 书写文档提交审查
5.可行性研究包括哪几方面的内容?
(1)技术可行性:现有技术能否实现本系统,现有技术人员能否胜任,开发系统的资源能否满足;(2)经济可行性:经济效益是否超出开发成本;(3)操作可行性:系统操作在用户内部行得通吗?(4)法律可行性:新系统开发是否会侵犯他人、集体或国家利益,是否违反国家法律。
4.需求分析的过程
问题识别--分析与综合--编制需求分析阶段文档--需求分析评审
5.需求分析的原则:(1)必须理解并描述问题的信息域,根据这条准则应该建立数据模型(2)必须定义软件应完成的功能,这条准则要求建立功能模型(3)必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型(4)必须对描述信息,功能和行为的模型进行分解,用层次的方式展示细节。
2.需求分析的描述工具有哪些?
有数据流图、数据字典、判定表、判定树、结构化自然语言、层次方框图、Warnier图、IPO图和需求描述语言等。
3.需求分析方法有哪些共性
(1).支持数据域分析的机制(2)功能标识的方法(3)接口的定义(4)问题分解的机制以及对抽象的支持(5)逻辑视图和物理视图6.系统抽象模型
6.5.可行性研究的步骤?
(1)复查系统的规模和目标;(2)研究目前正在使用的系统,总结现有系统的优劣,提出新系统的雏形;(3)导出新系统的高层逻辑模型;(4)推荐建议方案; (5)推荐行动方针;(6)书写计划任务书(可行性报告); (7)提交审查。
【需求分析】
1.获取软件需求的常用方法有哪些?
①访谈/个别访问:正式的和非正式的访谈
②问卷调查/书面调查 :发电子邮件、问卷调查即把需要调查的内容制成表格交给用户填写。该方法对需要调查大量人员的意见时,十分有效。 ③情景分析/电话和电视会议:对目标系统解决某个具体问题的方法和结果,给出可能的情景描述,以获知用户的具体需求。④实地考察/收集资料:开调查会参加业务实践 ⑤构造原型。
25.McCall提出的软件质量模型包括 -11 - 个软件质量特性。
26.软件可维护性度量的七个质量特性是 可理解性、可测试性、可修改性、可靠性、- 可移植性 - 、可使用性和效率。
27.为了便于对照检查,测试用例应由-- 输入数据和 预期的结果 两部分组成。
28.程序设计语言的心理特性主要表现在 -歧义性 - 、简洁性、传统性、局部性和顺序性。
相关文档
最新文档