A. 软件工程方法学的基本内容包括哪些
软件方法学是以方法为研究对象的软件学科。
软件工程方法为软件开发提供了 “如何做” 的技术; 软件工具为软件工程方法提供了自动的或半自动的软件支撑环境; 过程是为了获得高质量的软件所需要完成的一系列任务框架,它规定了完成各项任务的工作步骤。
最具影响的是结构化方法、面向对象方法和形式化方法。
结构化方法
结构化方法的基本要点是:自顶向下、逐步求精、模块化设计、结构化编码。
结构化设计方法是以自顶向下,逐步求精,模块化为基点,以模块化,抽象,逐层分解求精,信息隐蔽化局部化和保持模块独立为准则的设计软件的数据架构和模块架构的方法学。
面向对象方法
面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。
主要特征有:封装性、继承性、多态性。
OO方法的作用和意义决不只局限于编程技术,它是一种新的程序设计范型:面向对象程序设计范型;是信息系统开发的新方法论:面向对象方法学;是正在兴起的新技术:面向对象技术。
因此对OO也就是面向对象有关的内容进行学习应该进行更加深入和广泛的了解。
形式化方法
形式化方法是基于数学的特种技术,适合于软件和硬件系统的描述、开发和验证。
形式化方法用于软件和硬件设计,使用适当的数学分析以提高设计的可靠性和Robust。但是,由于采用形式化方法的成本高意味着它们通常只用于开发注重安全性的高度整合的系统。
B. 软件开发方法
1:瀑布方法
所有软件方法的祖先是瀑布方法(waterfall methodology)。它之所以被称为瀑布方法是因为开发模块相互之间的依次流动,瀑布方法通过控制阀门的一系列活动组成。这些控制阀门决定一个给定的活动是否已经完成并且可以进入下一个活动。需求阶段处理决定了所有的软件需求。设计阶段决定整个系统的设计。代码在代码阶段编写。代码然后被测试。最后产品被发布。
对瀑布方法模型最基本的批评就是瀑布方法对于反馈事物发展状况耗时太长。软件的一些内容那个很容易被理解,而另一些内容则相反。因此,当用户对于手边出现的问题都没有很好理解的时候,开发人员试图先完成所有的需求(也就是说,将需求量化到实际的规格说明当中)是非常空难的。更进一步来说,如果在需求中出现一个错误,它将传播到设计阶段,传播到代码中等。同时一般不存在过程中返回的真正能力。因此,如果进入测试并且发现设计的一部分是无法工作的,那么就会进行修改并修补问题而交差,但是这种方法将会失去设计活动的所有上下文环境——你只是有目的地对系统权宜行事!
认识到这个问题后瀑布方法已经被修改成几种形式。例如螺旋式瀑布方法它继承并使用了多个瀑布模型。这种方法缩短了生命周期向下的时间;也就是说,为解决为题提供了迭代方案。
最终,大家无法脱离瀑布方法是因为它确实是合乎常规的方法。首先,这种方法可以决定将要构建的内容。接着,决定将要如何构建这些,下一步,世界构建这些内容。可以确保自己确实构建自己所需的东西(并且可以成功运行)。
2:统一过程
统一过程应用了基于处理系统首先考虑的最重要方面而实施的短期迭代开发。
开发一个寡欲各种用列(use case)的调查文档(也就是说,对用户与系统交互的简短描述),并且开始排除那些可能对整个系统成功造成风险的用列。只要适合,就可以在开发过程中添加或者删除用列。
统一过程的4个阶段定义如下:
初始(inception):系统仍然处于决定系统内容的阶段——系统将要完成什么以及系统的边界是什么。如果系统能够很好的理解,那么这个阶段就非常短。
细化(Elaboration):正在将体系结构的风险移至系统。一种表述该阶段的说法是,“你是否已经解决了所有难题?”或者“你知道如何完成你将要去完成的事情吗?”
构造(Construction)正在完成所有相关的用列来使系统为移交做好准备,也就是说,进入Beta版本。
移交(Transition)使系统通过它的最后发布阶段以及Beta版本。它可能包括软件的操作及维护。
这是一个关注于维护要素的敏捷过程,但是仍然采用了大量用例开发,间模等方面的传统实践。
3:极限编程:
极限编程的开发过程就是以代码为中心的方法。
让用户告知你一些有关系统是如何如用转的故事描述,基于故事相互之间的重要性来定制这些系统这样就可以为自己的团队提供一个故事集合,可以在一个给定的迭代中完成他们,大约两周时间——每周工作40个小时,你将团队划分,双人应付没一个故事,在代码被编写时提供确定数量的内建对等评审。你和你的同伴在编写自己代码的同时编写单元测试。在完成自己负责的那段代码后,将其拿到集成的机器上,放入代码基线,运行从所有人的代码中积累而成的单元测试。在完成iji负责的那段代码后,将会提供一个运行系统使用户可以评审来确保自己的工作满足他们的需要。
注意极限编程并没有将软件的设计设置成一个高级阶段。相反它认为那些最前端的设计对于整个系统开发不是很有帮助,并且随着实际开发的进行它最终还是被修改。
极限编程对于需要持续提供运行系统的软件卡发来说非常适用。当缺少用户介入或者项目规模很大时极限编程方法将会不好用,因为这时协调和设计活动实际上变得更重要了。
极限编程合理地考虑开发团体的能力,这样可以有效计划。
C. 软件工程三要素是什么
三要素是方法、工具、过程。
方法是完成软件开发的各项任务的技术方法,为软件开发提供“如何做”的技术。工具为运用方法而提供的自动的或半自动的软件工程的支撑环境。
过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤,如何将软件工程方法与软件工具相结合,合理、及时地进行软件开发。
(3)软件方法是提供如何软件的技术扩展阅读:
软件工程的目标:
1、可修改性:允许对系统进行修改而不增加原系统的复杂性。它支持软件的调试和维护,是一个难以达到的目标。
2、可靠性:能防止因概念、设计和结构等方面的不完善造成的软件系统失效,具有挽回因操作不当造成软件系统失效的能力。
3、可理解性:系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制系统软件复杂性,并支持软件的维护、移植或重用。
4、可维护性:软件交付使用后,能够对它进行修改,以改正潜伏的错误,改进性能和其它属性,使软件产品适应环境的变化等。软件维护费用在软件开发费用中占有很大的比重。可维护性是软件工程中一项十分重要的目标。
5、可重用性:把概念或功能相对独立的一个或一组相关模块定义为一个软部件。可组装在系统的任何位置,降低工作量。
6、可移植性:软件从一个计算机系统或环境搬到另一个计算机系统或环境的难易程度。
7、可追踪性:根据软件需求对软件设计、程序进行正向追踪,或根据软件设计、程序对软件需求的逆向追踪的能力。
D. 什么是软件开发方法有那些主要开发方法
软件开发方法是一种使用早已定义好的技术集及符号表示习惯组织软件生产过程的方法。主要有:结构化方法、Jackson方法、维也纳开发方法和面向对象的开发方法。
E. 软件工程的3要素都是什么
软件工程的三要素是方法、工具和过程。
软件工程方法为软件开发提供了 “如何做” 的技术,软件工具为软件工程方法提供了自动的或半自动的软件支撑环境; 过程是为了获得高质量的软件所需要完成的一系列任务框架,它规定了完成各项任务的工作步骤。
软件工程的目标是在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。
扩展资料:
软件工程的特点:
1、可理解性:系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制系统软件复杂性,并支持软件的维护、移植或重用。
2、可维护性:软件交付使用后,能够对它进行修改,以改正潜伏的错误,改进性能和其它属性,使软件产品适应环境的变化等。软件维护费用在软件开发费用中占有很大的比重。可维护性是软件工程中一项十分重要的目标。
3、可重用性:把概念或功能相对独立的一个或一组相关模块定义为一个软部件。可组装在系统的任何位置,降低工作量。
4、可移植性:软件从一个计算机系统或环境搬到另一个计算机系统或环境的难易程度。
5、可追踪性:根据软件需求对软件设计、程序进行正向追踪,或根据软件设计、程序对软件需求的逆向追踪的能力。
参考资料来源:网络-软件工程
F. 什么是软件工程方法学软件工程是一种什么样的技术包括哪三大 要素
(1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜是指软件开发、运行的整个开销满足用户要求的程度。这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。 (2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。维护活动包括使用过程中的扩充、修改与完善。伴随以上过程,还有管理过程、支持过程、培训过程等。 (3)软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。