软件工程方法学
- 格式:pdf
- 大小:477.34 KB
- 文档页数:14
1. 软件设计一般分为总体设计和详细设计,它们之间的关系是(B)。
A. 全局和局部B. 抽象和具体C. 总体和层次D. 功能和结构2. 软件结构使用的图形工具,一般采用(C)图。
A. DFDB. PADC. SCD. E-R3. 下列中属于软件设计的基本原理的是(D)。
A. 数据流分析设计B. 变换流分析设计C. 事务流分析设计D. 模块化4. 在软件结构的后处理中,下列说法错误的是(E)。
A. 为模块写的处理说明及接口说明可采用IPO图B. 数据结构的描述可用Warnier图或Jackson图C. 给出设计约束或限制。
如数据的边界值、数据类型、格式、内存容量及时间的限制D. 在概要设计评审中,应着重评审软件需求是否得到满足及软件结构的质量等E. 设计的优化工作主要放在软件结构设计的后处理阶段5. 在分层数据流图映射成软件结构的设计中,下列说法错误的是(D)。
A. 分层的数据流图映射成软件结构图也应该是分层的B. 软件结构图的物理输入与输出部分放在主图中较为合适C. 分层DFD图的映射方法:主图是变换型,子图是事务型;或主图是事务型,子图是变换型D. 变换型通常用于高层数据流图的转换,而事务型通常用于较低层数据流图的转换6. 软件设计阶段一般又可分为(B)。
A. 逻辑设计与功能设计B. 概要设计与详细设计C. 概念设计与物理设计D. 模型设计与程序设计7. 结构图中,不是其主要成分的是(C)。
A. 模块B. 模块间传递的数据C. 模块内部数据D. 模块的控制关系8. 好的软件结构应该是(B)。
A. 高耦合、高内聚B. 低耦合、高内聚C. 高耦合、低内聚D. 低耦合、低内聚9. 结构分析方法就是面向(B)自顶向下逐步求精进行需求分析的方法。
A. 目标B. 数据流C. 功能D. 对象10. 程序内部的各个部分之间存在的联系,用结构图表达时,最关心的是模块的内聚性和(C)。
A. 独立性B. 有效性C. 耦合性D. 安全性11. 程序内部的各个部分之间存在的联系,用结构图表达时,最关心的是模块的(D)和耦合性。
软件工程专业学习方法学习方法一:制定学习计划在软件工程专业的学习中,制定一个合理的学习计划非常重要。
首先,你需要了解每门课程的教学安排和学习目标,然后根据个人情况合理地安排每门课程的学习时间。
在制定学习计划时,要考虑到自己的学习能力和时间分配的合理性,避免过于集中或过于分散学习时间。
此外,还应该按照课程难度和考试时间,合理安排课程的学习顺序。
制定好学习计划后,要严格执行,做到按计划学习,提高学习效率。
学习方法二:注重实践软件工程专业的学习,离不开实践。
在课堂上,要积极参与实验和课程设计,亲自动手实践,将理论知识运用到实践中去。
同时,还可以利用课下时间进行更多的实践,例如参与开源项目、编写个人项目等。
通过实践,可以加深对软件开发流程、工具和技术的理解,提高解决问题的能力。
同时,实践还可以帮助培养团队合作精神和创新能力。
学习方法三:多方面获取学习资源为了更好地学习软件工程专业,你需要广泛获取各类学习资源。
首先,要认真听讲,理解老师讲的知识。
其次,要善于利用教材、参考书和相关文献进行深入学习。
此外,可以通过网络学习平台、在线教育资源等获取更多的学习资料。
值得一提的是,参加一些软件开发、技术交流和研讨会等活动,可以接触到行业内的最新动态和前沿技术,扩展自己的视野。
学习方法四:合理利用学习工具和软件在软件工程专业学习中,合理利用一些学习工具和软件可以提高学习效果。
例如,编程学习可以利用集成开发环境(IDE)进行代码编写和调试,容器技术可以帮助快速搭建开发环境,版本控制工具可以方便地管理代码。
此外,还可以利用一些学习管理软件或者时间管理工具来帮助自己更好地组织学习内容和时间。
学习方法五:积极参与学术讨论和社交活动软件工程专业学习不仅仅是学习知识,还需要积极参与学术讨论和社交活动。
参与学术讨论可以与同学们一起交流、分享和学习,深化对某一领域的理解。
此外,可以积极参加学术会议、研讨会等活动,与行业内的专家学者进行交流,了解最新的研究成果和技术动态。
1)软件方法学的分类从开发风范上看,有自顶向下的开发方法和自底向上的开发方法。
在实际软件开发中,大都是两种方法的结合,只不过是应用于开发的不同阶段和以何者为主而已。
从性质上看,有形式方法与非形式方法。
形式方法是一种具有坚实数学基础的方法,从而允许对系统和开发过程作严格处理和论证,适用于那些运载系统安全级别要求极高的软件的开发。
非形式方法则不把严格性作为其主要着眼点。
从适用范围来看,有整体性方法与局部性方法。
适用于软件开发全过程的方法称为整体性方法,如自顶向下方法、自底向上方法和各种软件自动化方法等均为整体性方法。
适用于开发过程具体阶段的软件方法称为局部性方法,如需求分析阶段的各种需求分析方法、设计阶段的各种设计方法。
2)几种常用的软件方法(1) 自顶向下方法自顶向下是一种决策的策略。
软件开发涉及到作什么决策、如何决策和决策顺序等决策问题。
自顶向下方法在任何时刻所作的决定都是当时对整个设计影响最大的那些决定。
如果把所有决定分组或者分级,那么决策顺序是首先作最高级的决定,然后依次地作较低级的决定。
同级的决定则按照随机的顺序或者按别的方法。
一个决定的级别是看它距离要达到的最终目的(因此是软件的实际实现)的远近程度。
从问题本身来看,或是由外(用户所见的)向内(系统的实现)看,以距离实现近的决定为低级决定,远的为高级决定。
在这个自顶向下的过程中,一个复杂的问题(任务)被分解成若干个较小较简单的问题(子任务),并且一直继续下去,直到每个小问题(子任务)都简单到能够直接解决(实现)为止。
(2) 自底向上方法与自顶向下方法相反,首先作最低级的决定,其次作较高级的决定,最后建立起整个系统。
也就是首先实现最基本的系统构件和系统的内部函数,然后逐步升级到有关外部函数的决策。
在这个过程中,开发者手中有越来越复杂和强有力的构件可以用来构造更高级的构件,直到最后构成整个系统。
(3) 形式方法形式方法的目的是把软件作为数学来重新发现。
第一章●软件工程方法学(3个要素):通常把软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型。
三要素:方法、工具和过程。
●软件生命周期模型–瀑布模型:优点:1.可强迫开发员采用规范的方法2.严格地规定了每个阶段必须提交的文件3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
–缺点:传统的瀑布模型过于理想化,是由文档驱动的。
–快速原型模型:通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用户反馈意见的方法,获取用户真正的需要。
–增量模型:优点:能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可以使用户有较充实的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。
–螺旋模型:优点:对可选方案和约束条件的强调有利于已有软件的重用;减少了过多测试;维护只是螺旋模型中另一个周期。
1-1 什么是软件危机? 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
1-2 什么是软件工程?是指导计算机软件开发和维护的一门工程学科。
1-3 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
目前使用得最广泛的软件工程方法学(2种):1.传统方法学:也称为生命周期方法学或结构化范型。
优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。
缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
2.面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。
1-4 软件生命周期划分成哪些阶段●软件生命周期(各阶段)软件生命周期由软件定义、软件开发和运行维护三个时期组成。
1.软件定义时期划分为三个阶段:问题定义、可行性研究和需求分析2.开发时期:总体设计、详细设计、编码和单元测试、综合测试。
软件工程传统软件工程方法学软件工程传统软件工程方法学是指在软件开发过程中采用传统的工程化方法进行管理和组织的方法学。
本文将探讨传统软件工程方法学的特点、流程和优缺点。
一、传统软件工程方法学的特点传统软件工程方法学受到传统工程学的影响,其特点主要包括以下几个方面:1. 瀑布模型:传统软件工程方法学采用了瀑布模型,将软件开发过程划分为需求分析、设计、编码、测试和维护等阶段,且每个阶段要求完成后才能进入下一个阶段。
2. 阶段性交付:传统软件工程方法学强调阶段性交付,每个阶段都会产生相应的文档和交付物,以确保软件开发过程的可控性和可预测性。
3. 文档化要求:传统软件工程方法学要求对每个阶段的工作进行详细的文档化记录,包括需求规格说明书、设计文档、测试计划等,以便于项目管理和后期维护。
二、传统软件工程方法学的流程传统软件工程方法学的典型流程可以分为以下几个阶段:1. 需求分析:确定用户需求和系统功能,并编写需求规格说明书。
2. 系统设计:根据需求规格说明书设计软件系统的总体架构和组织结构,并编写设计文档。
3. 详细设计:依据系统设计文档,详细设计各个模块的内部逻辑和数据结构,并编写详细设计文档。
4. 编码:将详细设计文档转换为可执行的代码,并进行单元测试。
5. 测试:对编码完成的软件系统进行整体测试,包括功能测试、性能测试、负载测试等。
6. 部署和维护:将测试通过的软件系统部署到目标环境中,并进行系统维护和bug修复。
三、传统软件工程方法学的优缺点传统软件工程方法学的优点是:1. 结构化的开发过程:传统方法学明确了软件开发的流程和阶段,并通过文档化要求保证了开发过程的可控性和可预测性。
2. 易于组织管理:传统方法学通过阶段性的交付和文档化要求,使得开发过程更易于组织和管理,同时也方便项目进度的监控。
传统软件工程方法学的缺点是:1. 刚性和耗时:传统方法学在每个阶段的要求和文档化程度较高,使得开发过程相对刚性,导致开发周期较长,无法适应快速变化的市场需求。
简述传统软件工程方法学和面向对象方法学传统软件工程方法学和面向对象方法学是两种不同的软件开发方法。
传统软件工程方法学主要关注过程和文档,采用瀑布模型,通过分析、设计、编码、测试等步骤来完成软件开发。
而面向对象方法学则强调对象的概念和重用性,采用迭代和增量模型,通过面向对象的分析、设计、编码等步骤来完成软件开发。
一、传统软件工程方法学1.1 瀑布模型瀑布模型是传统软件工程中最常见的开发模型。
该模型将开发过程分为需求分析、设计、编码、测试和维护五个阶段,并且每个阶段必须按照顺序依次进行。
1.2 需求分析需求分析是瀑布模型中的第一个阶段,主要目的是确定用户需求并且将其转换为系统需求。
在这个阶段中,需要进行以下工作:- 收集用户需求- 分析用户需求- 确定系统需求- 编写详细的需求文档1.3 设计在完成了需求分析之后,接下来就是设计阶段。
在这个阶段中,需要进行以下工作:- 确定系统结构- 设计系统模块- 设计系统界面- 编写详细的设计文档1.4 编码设计完成之后,接下来就是编码阶段。
在这个阶段中,需要进行以下工作:- 根据设计文档编写代码- 进行单元测试- 进行集成测试1.5 测试编码完成之后,接下来就是测试阶段。
在这个阶段中,需要进行以下工作:- 进行系统测试- 进行用户验收测试- 修复缺陷和bug1.6 维护软件开发完成之后,还需要进行维护工作。
在这个阶段中,需要进行以下工作:- 修改和更新软件- 修复缺陷和bug- 支持新的硬件和操作系统二、面向对象方法学2.1 面向对象分析(OOA)面向对象分析是面向对象方法学中的第一个阶段,主要目的是确定问题域并且将其转换为对象模型。
在这个阶段中,需要进行以下工作:- 收集用户需求- 分析用户需求- 确定问题域模型- 设计用例图、活动图等2.2 面向对象设计(OOD)在完成了面向对象分析之后,接下来就是面向对象设计阶段。
在这个阶段中,需要进行以下工作:- 确定系统结构- 设计类和对象- 设计系统界面- 编写详细的设计文档2.3 面向对象编程(OOP)面向对象编程是面向对象方法学中的第三个阶段,主要目的是根据设计文档编写代码。
软件工程方法学三要素
软件工程方法学的三要素是:方法、工具和过程。
1. 方法:软件工程方法是指完成软件项目开发过程的一组规范和指导原则。
它们包括需求分析、系统设计、编码和测试等步骤,旨在保证软件开发过程的可控性和可重复性。
常见的软件工程方法包括结构化方法、面向对象方法和敏捷方法等。
2. 工具:软件工程工具是指用于辅助软件开发各个阶段的软件系统。
这些工具可以帮助开发人员在项目规划、需求管理、模型设计、编码、测试和部署等方面提高效率和质量。
常见的软件工程工具包括需求管理工具、建模工具、集成开发环境(IDE)和测试工具等。
3. 过程:软件工程过程是指按照一定的规范和流程进行软件开发的过程。
软件工程过程可以分为几个阶段,如需求阶段、设计阶段、编码阶段、测试阶段和维护阶段。
每个阶段都有相应的活动和产出物。
软件工程过程可以根据具体项目的需求和开发组织的实践进行调整和定制。
常见的软件工程过程模型包括瀑布模型、迭代模型和增量模型等。
这三要素相互关联,方法决定了工具的使用方式,工具支持了方法的实施,过程则规范了方法和工具的使用顺序和步骤,三者共同促进了软件开发项目的顺利进行和成功交付。
软件工程方法学的概念
软件工程方法学(Software engineering methodology)指的是在开发软件的过程中所使用的一种组织和管理项目的方法。
它包括一系列的活动,以确保软件开发过程的高品质和高效率。
软件工程方法学的概念主要包括以下几个方面:
1. 开发过程:软件工程方法学着重于定义和规划软件开发的过程。
它通常包括需求分析、设计、编码、测试和上线部署等阶段,并为每个阶段提供明确的步骤和指导。
2. 开发模型:软件工程方法学提供了一系列的开发模型,例如瀑布模型、原型模型、增量模型和敏捷开发模型等。
不同的开发模型适用于不同的项目需求和开发环境,软件工程方法学帮助开发团队选择最合适的模型。
3. 工具和技术:软件工程方法学以一种系统化的方式引入工具和技术,以提高软件开发过程的效率和质量。
这些工具和技术可能包括需求管理工具、版本控制系统、测试工具和持续集成工具等。
4. 文档和标准:软件工程方法学倡导在整个软件开发过程中生成和维护必要的文档,并遵循相应的标准。
这样可以确保项目的可持续性和可维护性,并为开发团队提供参考和指导。
5. 质量控制:软件工程方法学提供了一套质量控制的方法和技术,以确保软件开发过程和最终产品的质量。
它涵盖了静态和动态的质量控制方法,包括代码评审、单元测试、集成测试和系统测试等。
综上所述,软件工程方法学是一种用于组织和管理软件开发项目的方法论。
它涵盖了开发过程、开发模型、工具和技术、文
档和标准以及质量控制等方面,以确保软件开发过程的高品质和高效率。