
第5章 软件工程基础知识
文章平均质量分 86
第5章 软件工程基础知识
huaqianzkh
路虽远行则将至,事虽难做则必成!
展开
-
软件项目管理
软件项目管理和其他的项目管理相比有一定的特殊性。首先,软件是纯知识产品,其开发进度和质量很难估计和度量,生产效率也难以预测和保证。其次,软件系统的复杂性也导致了开发过程中各种风险的难以预见和控制。软件徐昂亩管理的对象是软件工程项目。它所涉及的范围覆盖了整个软件工程过程。为使软件项目开发获得成功,关键问题是必须对软件项目的工作范围、可能风险、需要资源(人、硬件/软件)、要实现的任务、经历的里程碑、花费工作量(成本)、进度安排等进行预先计划和执行。是为了使软件项目能够按照预定的成本、进度、质量。原创 2024-03-23 09:07:32 · 1054 阅读 · 0 评论 -
基于构件的软件工程(CBSE)
基于构件的软件工程(Component-Based Software Engineering,CBSE)是一种基于分布对象技术、强调通过可复用构件设计与构造软件系统的软件复用途径。基于构件的软件系统中的构件可以是COTS(Commercial-Off-The-Shelf)构件,也可以是通过其他途径获得的构件(如自行开发)。CBSE体现了“购买而不是重新构造”的哲学,将软件开发的重点从程序编写转移到了基于已有构件的组装,以更快地构造系统,减轻用来支持和升级大型系统所需要的维护负担,从而降低软件开发的费用。原创 2024-03-22 22:41:50 · 1049 阅读 · 0 评论 -
净室软件工程
是一种应用数学与统计学理论以经济的方式生产高质量软件的工程技术,力图通过严格的工程化的软件过程达到开发中的零缺陷或接近零缺陷。净室方法不是先制作一个产品,再去消除缺陷,而是要求在规约和设计中消除错误,然后以“净”的方式制作,可以降低软件开发中的风险,以合理的成本开发出高质量的软件。是一种在软件开发过程中强调在软件中建立正确性的需要的方法。在净室软件工程的背后的哲学是:通过在第1次正确地书写代码增量,并在测试前验证他们的正确性,来避免对成本很高的错误消除过程的依赖。原创 2024-03-22 21:47:38 · 968 阅读 · 0 评论 -
软件测试方法和测试阶段划分
是使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。软件测试的目的就是确保软件的质量、确认软件以正确的方式做了用户所期望的事情,所以软件测试工作主要是发现软件的错误、有效定义和实现软件成分由低层到高层的组装过程、验证软件是否满足任务书和系统定义文档所规定的技术要求、为软件质量模型的建立提供依据。软件测试。原创 2024-03-21 21:36:38 · 977 阅读 · 0 评论 -
面向对象方法
将面向对象的思想应用于软件开发过程中,指导开发活动,是建立在“对象”概念基础上的方法学。面向对象方法的本质是主张参照人们认识一个现实系统的方法,完成分析、设计于实现一个软件系统,提倡用人类在现实生活中常用的思维方法来认识和理解描述客观事物,强调最终建立的系统能映射问题域,使得系统中的对象,以及对象之间的关系能够如实地反映问题域中固有的事物及其关系。原创 2024-03-20 21:33:27 · 991 阅读 · 0 评论 -
结构化方法_3.结构化编程和数据库设计
思想是最早有E.W.Dijikstra在1965年提出的。“面向结构”的程序设计方法即结构化程序设计方法,是“面向过程”方法的改进,结构上将软件系统划分为若干功能模块,各模块按要求单独编程,再组合构成相应的软件系统。该方法强调程序的结构性,所以容易做到易读易懂。该方法思路清晰,做法规范,程序的出错率和维护费用大大减少。结构化程序设计采用自顶向下、逐步求精的设计方法,各个模块通过“顺序、选择、循环”的控制结构进行连接,并且只有一个入口和一个出口。原创 2024-03-19 21:26:53 · 927 阅读 · 0 评论 -
结构化方法_2.结构化设计
按照信息隐藏的原则,系统中的模块应设计成“黑盒”,模块外部只能使用模块接口说明中给出的信息,例如,操作和数据类型等。模块的外部特性是指模块的模块名、参数表和给程序乃至整个系统造成的影响,而模块的内部特性则是指完成其功能的程序代码和仅供该模块内部使用的数据。内聚表示模块内部各代码成分之间联系的紧密程度,是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做目标单一的一件事情。对于模块的外部环境(例如,需要调用这个模块的上级模块)来说,只需要了解这个模块的外部特性就足够了,不必了解它的内部特性。原创 2024-03-18 21:33:03 · 1731 阅读 · 0 评论 -
结构化方法_1.结构化分析
1978年,E.Yourdon和L.L.Constantine提出了,即(Structured Analysis and Structured Design)方法,也可称为面向功能的软件开发方法或面向数据流的软件开发方法。Yourdon方法是20世纪80年代使用最广泛的软件开发方法。提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立性、信息隐蔽等。针对软件生存周期各个不同的阶段,它有结构化分析(SA)、结构化设计(SD)和结构化编程(SP)等方法。本篇介绍下结构化分析方法。原创 2024-03-17 21:07:19 · 1182 阅读 · 0 评论 -
需求工程_3.需求变更和需求追踪
在当前的软件开发过程中,需求变更已经成为一种常态。需求变更的原因有很多种,可以是需求获取不完整,存在遗漏的需求;可能是对需求的理解产生了误差;也可能是业务变化导致了需求的变化等。一些需求的改进是合理的而且不可避免,要使得软件需求完全不变更,基本上是不可能的。但毫无控制的变更会导致项目陷入混乱,不能按进度完成或者软件质量无法保证。事实上,迟到的需求变更会对已进行的工作产生非常大的影响。如果不控制变更的影响范围,在项目开发过程中持续不断地采纳新功能,不断地调整资源、进度或者质量标准是极为有害的。原创 2024-03-17 16:18:39 · 784 阅读 · 0 评论 -
需求工程_2.需求获取
在项目开始之前,应当在所有涉众(项目的利益攸关方)之间建立共同的项目愿景,即定义项目范围和高层需求。项目范围描述系统的边界以及系统与系统交互的参与者之间(包括组织、人、硬件设备、其他软件等)的关系。高层需求不涉及过多的细节,主要表示系统需求的概貌。常见的建模手段包括系统上下文图和系统顶层用例图。最后对上面步骤取得的需求资料进行整理和总结,确定对软件系统的综合要求,即软件的需求。并提出这些需求的实现条件,以及需求应达到的标准。原创 2024-03-17 13:21:14 · 1080 阅读 · 0 评论 -
需求工程_1.软件需求和需求工程
需求工程是指应用已证实有效的原理、方法,通过合适的工具和记号,系统地描述待开发系统及其行为特征和相关约束。原创 2024-03-16 23:51:03 · 1115 阅读 · 0 评论 -
软件能力成熟度模型(CMM)
在这一等级,企业能够根据自身的特殊情况定义适合自己企业和项目的标准流程,将这套管理体系与流程予以制度化,同时企业开始进行项目积累,企业资产的收集。原创 2024-03-16 08:44:22 · 845 阅读 · 0 评论 -
统一过程模型(RUP)
是Rational软件公司创造的软件工程方法。RUP描述了如何有效地利用商业的、可靠的方法开发和部署软件,是一种重量级过程。RUP类似一个在线的指导者,它可以为所有方面和层次的程序开发提供指导方针、模版以及事例支持。原创 2024-03-16 06:58:16 · 3193 阅读 · 0 评论 -
敏捷模型(Agile)
这里简单介绍几种影响比较大的敏捷方法。(1)极限编程(Extreme Programming,XP)。在所有的敏捷型方法中,XP是最引人瞩目的。极限编程是一个轻量级的、灵巧的软件开发方法;同时它也是一个非常严谨和周密的方法。它的基础和价值观是交流、朴素、反馈和勇气,即任何一个软件项目都可以从4个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求是。(2)水晶系列方法。水晶系列方法是由Alistair Cockburn提出的敏捷方法系列。原创 2024-03-15 22:14:04 · 1251 阅读 · 0 评论 -
软件工程过程和过程模型
软件工程过程是指为获得软件产品,在软件工具的支持下由软件工程师完成的一系列软件工程活动,包括以下4个方面。——软件规格说明。规定软件的功能及其运行时的限制。——软件开发。开发出满足规格说明的软件。——软件确认。确认开发的软件能够满足用户的需求。——软件演进。软件在运行过程中不断改进以满足客户新的需求。原创 2024-03-14 22:42:52 · 943 阅读 · 0 评论