软件工程概论知识点汇总
- 格式:doc
- 大小:27.50 KB
- 文档页数:3
软件工程导论第一章:软件工程学概论1. 软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
2. 概括的说,软件危机包括两方面问题:如何开发软件已满足日益增长的需求;如何维护数量不断膨胀的已有软件。
3. 软件危机的典型表现:对软件开发成本和进度的估计常常很不准确;用户对“已完成的”软件系统不满意的现象经常发生;软件的质量往往靠不住;软件常常是不可维护的;软件通常没有适当的文档资料;软件成本在计算机系统总成本中所占的比例逐年上升;软件开发生产率提高的速度,远远跟不上计算机应用迅速不及深入的趋势。
4. 产生软件危机的原因:在软件开发和维护的过程中存在这么多严重的问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
5. 在实践过称中或多或少的采用了错误的方法和技术,这可能是使软件问题发展成软件危机的主要原因。
6. 软件不同与硬件,他是计算机系统中的逻辑部件而不是物理部件。
7. 软件不同于一般程序,他的一个显著特点是估摸庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。
8. 软件本身独有的特点确实给开发和维护带来一些客观困难。
9. 对用户要求没有完整的认识就匆忙着手编写程序是软件开发功臣失败的主要原因之一。
10. 一个软件从定义、开发、使用和维护,直到最终被遗弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生命周期。
11. 软件是程序、数据及相关文档的完整集合。
其中,程序是能够完成预定功能和性能的可执的指令序列;数据是使程序能够适当的处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。
12. 软件工程是指导计算机软件开发和维护的一门工程学科。
13. 软件工程是:把系统的、规范的、可度量的途径应用与软件开发、运行和维护过程,也就是吧工程应用与软件;研究前面所提到的途径。
14. 软件工程的本质特性:软件工程关注与大型程序的构造;软件工程的中心课题是控制复杂性;软件经常变化;开发软件的效率非常重要;和谐的合作是开发软件的关键;软件必须有效地支持他的用户;在软件工程领域中通常由具有一种文化背景的人体另一种具有文化背景的人创造产品。
第一章软件工程概论1.1软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
1.2.软件工程1、软件工程的定义:指导软件开发和维护的工程性学科,它以计算机科学理论和其他相关学科的理论为指导,采用工程化的概念、原理技术和方法进行软件的开发和维护,把经过时间考虑而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,以较少的代价获得高质量的软件并维护.2、软件工程的基本原理:1) 用分阶段的生命周期计划严格管理2) 坚持进行阶段评审3) 实行严格的产品控制4) 采纳现代程序设计技术5) 结果应能清楚地审查6) 开发小组的人员应少而精7) 承认不断改进软件工程实践的必要性3. 软件工程的方法学通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学。
软件工程三个要素:工具、方法、过程。
1.3 软件生命周期A,可行性分析与开发项计划:主要确定软件的开发目标及其可行性。
B,需求分析:在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。
C,设计(概要设计和详细设计):主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。
D,,编码:将软件设计的结果转换成计算机可运行的程序代码。
E,测试:在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。
F,维护:在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求.1.4软件过程1.传统瀑布模型:是一种整体开发模型,程序的物理实现集中在开发阶段的后期,用户在最后才能看到自己的产品。
2.快速原型模型:在用户不能给出完整、准确的需求说明等情况下,可以根据用户的一组基本需求,快速建造一个原型(可运行的软件),然后进行评估,进一步精化、调整原型,使其满足用户的要求,也使开发者对将要做的事情有更好的理解。
软件工程概论知识点软件工程是研究和应用计算机科学原理、方法和工具来开发和维护高质量的软件系统的工程学科。
它涉及到软件开发的整个生命周期,从需求分析到设计、编码、测试、部署和维护。
以下是软件工程概论的一些重要知识点。
1. 软件开发生命周期软件开发生命周期是软件工程中重要的概念,它包含了软件开发的各个阶段和活动。
常见的软件开发生命周期模型包括瀑布模型、迭代模型、螺旋模型等。
每个模型包括不同的阶段,如需求分析、设计、编码、测试、部署和维护等。
了解软件开发生命周期有助于理解软件开发过程中的活动和任务。
2. 软件需求工程软件需求工程是软件开发的第一步,它涉及到收集、分析、定义和记录软件系统的需求。
需求工程包括需求获取、需求分析、需求规格和需求验证等过程。
通过需求工程,软件开发团队可以确保对用户需求的准确理解,为软件系统的设计和开发提供清晰的目标和指导。
3. 软件设计原则软件设计是软件开发的关键环节,它决定了软件系统的结构、功能和性能。
软件设计原则是指导软件设计过程的一些基本原则,如单一职责原则、开闭原则、里氏替换原则、依赖倒置原则等。
遵循这些原则可以提高软件系统的可维护性、可扩展性和可重用性。
4. 软件开发方法和工具软件开发方法是根据软件开发生命周期的需求,结合特定的软件开发模型,选择合适的方法和工具来开发软件系统。
常见的软件开发方法包括敏捷开发、结构化开发和面向对象开发等。
软件开发工具包括集成开发环境、版本控制工具、测试工具等。
5. 软件质量保证软件质量保证是确保软件系统满足用户需求和规定标准的一系列活动。
软件质量保证包括软件测试、代码审查、性能优化和配置管理等。
通过软件质量保证,可以降低软件系统的缺陷率,提高软件的可靠性和可用性。
6. 软件项目管理软件项目管理是指对软件项目进行规划、组织、协调和控制的一系列活动。
软件项目管理包括项目计划、需求管理、进度管理、风险管理和团队管理等。
有效的软件项目管理可以提高软件项目的成功率和开发效率。
第1章软件工程学概述1.1 软件危机1.1.1 软件危机旳简介软件危机(软件萧条、软件困扰): 是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。
软件危机包括下述两方面旳问题:怎样开发软件, 满足对软件日益增长旳需求;怎样维护数量不停膨胀旳已经有软件。
软件危机旳经典体现:(1)对软件开发成本和进度旳估计常常很不精确;(2)顾客对“已完毕旳”软件系统不满意旳现象常常发生;(3)软件产品旳质量往往靠不住;(4)软件常常是不可维护旳;(5)软件一般没有合适旳文档资料;(6)软件成本在计算机系统总成本中所占旳比例逐年上升;(7)软件开发生产率提高旳速度, 远远跟不上计算机应用迅速普及深入旳趋势。
1.1.2 产生软件危机旳原因(1)与软件自身旳特点有关(2)与软件开发与维护旳措施不对旳有关1.1.3 消除软件危机旳途径对计算机软件有对旳旳认识。
认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完毕旳工程项目。
应当推广使用在实践中总结出来旳开发软件旳成功技术和措施, 并继续研究探索。
应当开发和使用更好旳软件工具。
总之, 为了处理软件危机, 既要有技术措施(措施和工具), 又要有必要旳组织管理措施。
1.21.2.1 软件工程旳简介软件工程: 是指导计算机软件开发和维护旳一门工程学科。
采用工程旳概念、原理、技术和措施来开发与维护软件, 把通过时间考验而证明对旳旳管理技术和目前可以得到旳最佳旳技术措施结合起来, 以经济地开发出高质量旳软件并有效地维护它, 这就是软件工程。
(期中考)软件工程旳本质特性:软件工程关注于大型程序旳构造软件工程旳中心课题是控制复杂性软件常常变化开发软件旳效率非常重要友好地合作是开发软件旳关键软件必须有效地支持它旳顾客在软件工程领域中是由具有一种文化背景旳人替具有另一种文化背景旳人发明产品1.2.2 软件工程旳基本原理用分阶段旳生命周期计划严格管理坚持进行阶段评审实行严格旳产品控制采用现代程序设计技术成果应能清晰地审查开发小组旳人员应当少而精承认不停改善软件工程实践旳必要性1.2.3 软件工程措施学软件工程包括技术和管理两方面旳内容。
软件工程概论知识点汇总目录:1.引言2.软件工程概述2.1 软件工程的定义2.2 软件工程的目标2.3 软件工程的原则2.4 软件工程的生命周期模型3.软件需求工程3.1 需求获取与分析3.2 需求规格说明3.3 需求确认与验证4.软件设计与实现4.1 软件设计基本概念4.2 软件设计方法与原则4.3软件编码与测试5.软件项目管理5.1 软件项目组织与分工5.2 软件项目计划与调度5.3 软件项目沟通与协作5.4软件项目风险与质量管理6.软件维护与软件配置管理6.1软件维护的类型与过程6.2 软件配置管理的基本概念与方法7.软件工程的质量保证7.1 软件质量的概念与评估7.2 软件测试与评审7.3 软件度量与分析7.4 软件过程改进与评估8.软件工程的伦理与法律8.1 软件伦理与职业道德8.2 软件知识产权与版权保护8.3 软件法律与合同9.总结1.引言引言部分需要对软件工程概论进行简要介绍,包括软件工程的定义、应用范围等。
2.软件工程概述2.1 软件工程的定义详细介绍软件工程的定义,并与传统工程进行比较。
2.2 软件工程的目标明确软件工程的目标,包括提高软件质量、提高开发效率等。
2.3 软件工程的原则介绍软件工程的基本原则,如模块化、可维护性等。
2.4软件工程的生命周期模型详细介绍软件工程的生命周期模型,如瀑布模型、敏捷开发模型等,并对比分析其优缺点。
3.软件需求工程3.1需求获取与分析介绍需求获取的方法和技术,包括面谈、问卷调查等,然后介绍需求分析的方法和技术,如数据流图、用例图等。
3.2需求规格说明介绍需求规格说明的内容和格式要求,包括功能需求、性能需求等。
3.3需求确认与验证介绍需求确认与验证的方法和技术,如原型验证、软件测试等。
4.软件设计与实现4.1 软件设计基本概念介绍软件设计的基本概念,如模块化、层次化等。
4.2 软件设计方法与原则介绍常用的软件设计方法和原则,如面向对象设计、设计模式等。
软件工程概论知识点汇总软件工程概论知识点汇总第一章软件工程概述1. 软件工程定义及概念2. 软件工程的历史发展3. 软件开发生命周期模型a. 瀑布模型b. 迭代模型c. 增量模型d. 螺旋模型e. 敏捷开发模型第二章需求分析与管理1. 需求工程的基本概念2. 需求获取与分析方法3. 需求规格说明书4. 需求变更与配置管理第三章软件设计与架构1. 结构化设计方法2. 面向对象设计方法3. 设计模式及应用4. 软件架构设计与选择第四章软件编码与测试1. 编码规范与风格2. 测试方法与策略3. 单元测试与集成测试4. 软件质量保证与评估第五章软件项目管理1. 软件项目组织与人力资源管理2. 软件项目计划与进度管理3. 风险管理与配置管理4. 软件项目质量管理第六章软件维护与演化1. 软件维护的类型与阶段2. 软件维护的过程与方法3. 软件重构与演化第七章软件工程的理论与方法1. 软件需求建模方法2. 软件设计原则与方法3. 软件度量与评估方法4. 软件工程的形式化方法第八章软件工程的伦理与职业道德1. 软件工程的伦理问题2. 软件工程师的职业道德要求3. 软件工程师的专业素养与发展本文档涉及附件:________本文所涉及的法律名词及注释:________1.著作权法:________保护软件的著作权,禁止未经授权的复制、修改、发布等行为。
2.商标法:________保护软件的商标权,禁止他人未经授权使用相同或相似的商标。
3.专利法:________保护软件的发明专利权,禁止他人未经授权使用相同或相似的发明。
4.合同法:________规定软件开发过程中的合同签订与履行等事项。
软件工程知识点总结软件工程知识点总结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. 什么是软件工程的生命周期?它包括哪些阶段?软件工程的生命周期是指软件项目从定义需求到投放使用的整个过程。
它涵盖了以下主要阶段:1) 需求分析阶段:确定软件系统的需求和功能,并与用户进行沟通与协商。
2) 设计阶段:基于需求分析的结果,定义软件系统的架构、模块划分以及数据结构和算法等细节。
3) 编码阶段:根据设计结果,进行编码和测试,实现软件系统的各个模块和功能。
4) 集成和测试阶段:将开发的各个模块进行集成,进行整体功能和性能测试。
5) 部署阶段:将软件系统部署到实际的运行环境中,进行用户培训和技术支持。
6) 维护阶段:对软件系统进行维护和升级,修复bug、增加新功能,并解决用户反馈的问题。
3. 简述软件需求工程的主要任务和挑战。
软件需求工程是软件工程中非常重要的一个环节,主要任务包括:1) 需求获取:通过访谈、调研、文档分析等方法,与用户和利益相关者沟通与交流,准确获取软件系统的需求。
2) 需求分析:对获取的需求进行分析、整理和归纳,抽象出软件系统的功能和约束条件,形成一份需求规范文档。
3) 需求确认:与用户确认需求规范文档,确保所提供的需求与用户的期望一致。
4) 需求管理:对需求进行变更管理、跟踪和控制,确保软件系统在开发过程中的需求改变得到合理处理。
软件需求工程面临一些挑战,例如:- 需求不完整、不清晰或不准确,需要通过与用户的深入交流来解决。
- 用户需求的不稳定性和不一致性,使得需求工程师需要与用户持续沟通,及时调整需求规范。
软件工程概述考点整理●软件及其本质特性●软件的概念●指令的集合(计算机程序),通过执行这些指令可以满足预期的特征、功能和性能需求;●数据结构,使得程序可以合理利用信息;●软件描述信息,它以硬拷贝和虚拟形式存在,用来描述程序的操作和使用。
●软件 = 程序 + 数据 + 文档●软件是逻辑的而非物理的系统元素,因此,软件具有完全不同的特性:软件不会“磨损”。
●软件的失效曲线图●软件的特性●无形性●成本主要体现在软件的开发和研制上●软件不会被用坏,只能被淘汰●软件生产方式原始●软件成本昂贵●软件的本质特性●复杂性:软件是人类思维和智能的一种延伸,他比任何以往的人类的创造物都要复杂的多●一致性●软件不能独立存在,需要依附于一定的环境(如硬件、网络以及其他软件)●软件必须遵从人为的惯例并适应已有的技术和系统●软件需要随接口不同而改变,随时间推移而变化,而这些变化是人为设计的结果●可变性●人们总是认为软件是容易修改的,但忽略了修改带来的副作用●不断的修改最终导致软件的退化,从而结束其生命周期●不可见性●软件是一种“看不见、摸不着”的逻辑实体,不具有空间的形体特征●开发人员可以直接看到程序代码,但是源代码并不是软件本身●软件以机器代码的形式运行,但是开发人员无法看到源代码是如何运行的●软件的分类●按功能划分●系统软件:与计算机硬件紧密配合以使计算机各个部分与相关软件及数据协调、高效工作的软件。
如操作系统、数据库管理系统等●支撑软件:协助用户开发软件的工具性软件●应用软件:在特定领域内开发、为特定目的服务的一类软件●●按规模划分●微型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年代):程序设计阶段,此时硬件已经通用化,但软件生产却是个体化。
是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
软件生命周期由软件生存周期是指一个软件从提出开发要求开始直到软件定义分3可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
3个方面。
开发时期由4实现。
规则组成。
确定软件设计的约束和软件同其它系统元素的接口细节,定义软件的其它有效性需求。
选择和循环这3种基本控制接口进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。
这种技术把程序的输入域划分成若干个数据类,据此导出测试用例。
一个理想的测试用例能独立发现一类错误。
Jackson4个阶段。
模块化是指把程序划分成独立命名切可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
软件复杂性度量的参数包括:①规模②难度③结构④智能度数据字典应该有下列4类元素的定义组成:1、数据流;2、数据流分量(即数据元素)3、数据存储4、处理产生软件危机的原因?一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
可行性研究的任务完成的过程?1、首先需要进一步分析和澄清问题定义。
2、在澄清了问题定义之后,分析员应该导出系统的逻辑模型3、然后从系统逻辑模型出发,探索若干种可供选择的主要解法4、为每个可行的解法制定一个粗略的实现进度(进度表)怎样进行可行性研究呢?(可行性研究过程有哪些?)1、复查系统规模和目标2、研究目前正在使用的系统3、导出信系统的高层逻辑模型4、进一步定义问题5、导出和评价供选择的解法6、推荐行动方针7、草拟开发计划8、书写文档提交审查设计原理?模块化;抽象;逐步求精;信息隐藏和局部化;模块独立;从哪些方面验证软件需求的正确性?(1)一致性:所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾;(2)完整性:需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能;(3)现实性:指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的;(4)有效性:必须证明需求是正确有效的,确实能解决用户面对的问题。
是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
软件生命周期由
软件生存周期是指一个软件从提出开发要求开始直到
软件定义分3
可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
3个方面。
开发时期由4
实现。
规则组成。
确定软件设计的约束和软件同其它系统元素的接口细节,定义软件的其它有效性需求。
选择和循环这3种基本控制接口进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。
这种技术把程序的输入域划分成若干个数据类,据此导出测试用例。
一个理想的测试用例能独立发现一类错误。
Jackson
4个阶段。
模块化是指把程序划分成独立命名切可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
软件复杂性度量的参数包括:
①规模②难度③结构④智能度
数据字典应该有下列4类元素的定义组成:
1、数据流;
2、数据流分量(即数据元素)
3、数据存储
4、处理
产生软件危机的原因?
一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
可行性研究的任务完成的过程?
1、首先需要进一步分析和澄清问题定义。
2、在澄清了问题定义之后,分析员应该导出系统的逻辑模型
3、然后从系统逻辑模型出发,探索若干种可供选择的主要解法
4、为每个可行的解法制定一个粗略的实现进度(进度表)
怎样进行可行性研究呢?(可行性研究过程有哪些?)
1、复查系统规模和目标
2、研究目前正在使用的系统
3、导出信系统的高层逻辑模型
4、进一步定义问题
5、导出和评价供选择的解法
6、推荐行动方针
7、草拟开发计划
8、书写文档提交审查
设计原理?
模块化;
抽象;
逐步求精;
信息隐藏和局部化;
模块独立;
从哪些方面验证软件需求的正确性?
(1)一致性:所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾;
(2)完整性:需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能;
(3)现实性:指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的;
(4)有效性:必须证明需求是正确有效的,确实能解决用户面对的问题。
对系统的综合要求?(需求分析的任务)
1、功能需求
2、性能需求
3、可靠性和可用性需求
4、出错处理需求
5、接口需求
6、约束
7、逆向需求
8、将来可能提出的要求
使用基本路径测试结束设计测试用例的步骤?
第一步,根据过程设计结果画出相应的流图。
第二步,计算流图的环形复杂度。
第三步,确定先行独立路径的基本集合。
层次方框图与层次图的区别?
①层次方框图描绘的是数据结构;层次图描绘的是软件的层次结构。
②层次方框图方框代表数据的子集或数据元素;层次图中方框代表一个功能模块。
③层次方框图连线表示组成关系;层次图中连线表示模块间调用关系。
简述软件生命周期开发方法的基本过程及每个阶段的任务。
软件生存周期:可行性分析和项目开发计划;需求分析;概要设计;详细设计;编码;测试;维护。
基本任务:
①问题定义:要解决的问题是什么?
②可行性研究:研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。
③需求分析:确定目标系统必须具备哪些功能。
④总体设计:设计出实现目标系统的几种可能的方案;制定出实现最佳方案的详细计划,设计程序的体系结构。
⑤详细设计:设计出程序的详细规格说明,详细的设计每个模块,确定实现模块功能所需要的算法和数据结构。
⑥编码和单元测试:写出正确的容易理解、容易维护的程序模块。
⑦综合测试:通过各种类型的测试(及相应的调试)使软件达到预定的要求。
⑧软件维护:通过各种必要的维护活动使系统持久地满足用户的需要。
简述何谓软件开发方法?请列举四种主要方法。
软件开发方法:结构化方法由结构化分析、结构化设计、结构化程序设计构成。
它是一种面向数据流的开发方法。
结构化方法总的指导思想是自顶向下、逐步求精。
它的基本原则是功能的分解与抽象,它是软件工程中最早出现的开发方法,特别适合于数据处理领域的问题。
结构化方法、Jackson方法、维也纳开发方法、面向对象开发方法
什么是软件生存周期模型?请至少列举四种主要模型?
答:软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。
软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段或机动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。
常见的软件生存周期模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。
什么是“事务流”?
答:数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干动作序列中选出一个来执行,这类数据流称为事务流。
传统方法学与面向对象方法学的区别以及各自的优缺点?
传统方法学:也称为生命周期方法学或结构化范型。
优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。
缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。