1. 软件开发方法总结
在软件开发的过程中,软件开发方法是关系到软件开发成败的重要因素。 软件开发方法就是软件开发所遵循的办法和步骤,以保证所得到的运行系统和支持的文档满足质量要求,下面为大家分享了软件开发方法,一起来看看吧!
1 结构化开发方法
结构指系统内各组成要素之间的相互联系、相互作用的框架。结构化开发方法强调系统结构的合理性以及所开发的软件的结构的合理性,主要是面向数据流的,因此也被称为面向功能的软件开发方法或面向数据流的软件开发方法。结构化技术包括结构化分析、结构化设计和结构化程序设计三方面内容。
1.1 结构化分析的步骤
结构化分析是一种模型的确立活动,就是使用独有的符号,来确立描绘信息(数据和控制)流和内容的模型,划分系统的功能和行为,以及其他为确立模型不可缺少的描述。其基本步骤是:
(1)构造数据流模型:根据用户当前需求,在创建实体—关系图的基础上,依据数据流图构造数据流模型。
(2)构建控制流模型:一些应用系统除了要求用数据流建模外,通过构造控制流图(CFD),构建控制流模型。
(3)生成数据字典:对所有数据元素的输入、输出、存储结构,甚至是中间计算结果进行有组织的列表。目前一般采用CASE的“结构化分析和设计工具”来完成。
(4)生成可选方案,建立需求规约:确定各种方案的成本和风险等级,据此对各种方案进行分析,然后从中选择一种方案,建立完整的需求规约。
1.2 结构化设计步骤
结构化设计是采用最佳的可能方法设计系统的各个组成部分以及各成分之间的内部联系的技术,目的在于提出满足系统需求的最佳软件的结构,完成软件层次图或软件结构图。其基本步骤如下:
(1)研究、分析和审查数据流图。从软件的需求规格说明中弄清数据流加工的过程。
(2)然后根据数据流图决定问题的类型。数据处理问题有两种典型的类型:变换型和事务型。针对两种不同的'类型分别进行分析处理。(3)由数据流图推导出系统的初始结构图。也就是把数据流图映射到软件模块结构,设计出模块结构的上层。
(4)利用一些试探性原则来改进系统的初始结构图,直到得到符合要求的结构图为止。即在数据流图的基础上逐步分解高层模块,设计中下层模块,并对软件模块结构进行优化,最终得到更为合理的软件结构。
(5)描述模块接口。
(6)修改和补充数据词典。
(6)制定测试计划。
结构化设计可以将用数据流图表示的信息转换成程序结构的设计描述。
2 模块化开发方法
模块化程序设计方法就是把一个待开发的软件系统分解成若干可单独命名和编址的较为简单的部分,这些可单独命名和编址的部分称为模块。每个模块分别独立地开发、测试,最后再组装出整个软件系统。这种方法不仅可以将软件系统开发的复杂性在分解过程中降低,便于修改、维护,而且还容易实现同一个系统不同部分的并行开发,从而提高了软件的生产效率。
一般,将用一个名字就可调用的一段程序称为“模块”。在考虑模块化时,将模块定义为多大较合适,模块设计规则应如何制定成为关键,下面五条标准可供参考:
(1)模块可分解性:如果一种设计方法提供了将问题分解成子问题的系统化机制,它就能降低整个系统的复杂性,从而实现一种有效的模块化解决方案。
(2)模块可组装性:如果一种设计方法使现存的设计模块能够被组装成新系统,它就能提供一种不用一切从头开始的模块化解决方案。
(3)模块可理解性:如果一个模块可以作为一个独立的单位被理解,那么它就易于构造和修改。(4)模块连续性:如果对系统需求的微小修改只导致对单个模块而不是对整个系统的修改,则修改引起的副作用就会被最小化。
一般来说,对模块采用耦合和内聚两个准则进行度量。如模块内部具有高内聚和模块间低耦合,那这样的模块就具有独立性,模块设计得比较好。
3 面向对象开发方法
面向对象开发方法是以面向对象程序设计语言作为基础的,其核心思想是利用面向对象的概念和方法为软件需求建立模型,进行系统设计,采用面向对象程序设计语言进行系统实现,对建成的系统进行面向对象的测试和维护。
如果一个软件系统是使用这样4个概念设计和实现的,则可以认为这个软件系统是面向对象的。其基本要点可以概括为:
(1)数据的抽象,即类与子类的概念及相互关系。任何客观的事物和实体都是对象,复杂对象可以由简单对象组成
(2)数据及对它的操作的一体化,即封装的概念和方法。具有相同数据和操作的对象可归并为一个类,具有封装性,形成一个包装;对象是类的一个实例;一个类可以产生很多对象。
(3)属性与操作由父类向子类传递,即继承的概念与方法。类可以派生出子类,继承能避免共同行为的重复。
(4)客观事物之间的相互关系用统一的、消息传递的方法来描述。
目前广泛使用的面向对象开发方法包括Booch方法、Rumbaugh方法、Coad和Yourdon方法、Jacobson方法、Wirfs-Brock方法和统一建模方法等。
2. 软件开发可行性研究方法主要有哪四个方面
(1)经济可行性:进行成本/效益分析。从经济角度判断系统开发是否“合算”。(2)技术可行性:进行技术风险评价。从开发者的技术实力、以往的工作基础、问题的复杂性等出发,判断系统开发在时间、费用等限制条件下成功的可能性。(3)法律可行性:确定系统开发可能导致的任何侵权、妨碍和责任。(4)方案的选择:评价系统或产品开发的几个可能的候选方案,最后给出结论意见
3. 面向功能的软件开发方法
当今对于软件系统的开发,不仅仅需要掌握计算机开发语言的编程技巧,更重要的是掌握一个软件工程在需求分析、系统分析及测试阶段所需要的工作技巧,即软件的开发方法。国外大的软件公司和机构一直在研究软件开发方法这个概念性的东西,而且也提出了很多实际的开发方法,比如:生命周期法、原型化方法、面向对象方法等。
一、结构化方法
结构化开发方法是由E.Yourdon和L.L.Constantine提出的,即所谓SASD方法,也是可称为面向功能的软件开发方法或面向数据流的软件开发方法。SASD方法是20世纪80年代使用最广泛的软件开发方法。它首先用结构化分析(SA)对软件进行需求分析,然后用结构设计(SD)方法进行总体设计,最后是结构化编程(SP)。它给出了两类典型的软件结构(变换型和事务型),使软件开发的成功率大大提高。
二、面向数据结构的软件开发方法
Jackson方法是最典型的面向数据结构的软件开发方法。Jackson方法把问题分解为可由三种基本结构形式表示的各部分的层次结构。三种基本的结构形式就是顺序、选择和重复。三种数据结构可以进行组合,形成复杂的结构体系。这一方法从目标系统的输入、输出数据结构入手,到数据框架结构,再补充其它细节,就可以得到完整的程序结构图。这一方法对输入、输出数据结构明确的中小型系统特别有效,如商业应用中的文件表格处理。该方法也可以与其他方法结合,用于模块的详细设计。
三、面向问题的分析法
PAM(problemanalysismethod)方法是20世纪80年代由日立公司提出的一种软件开发方法。它的基本思想是考虑到输入、输出数据结构,指导系统的分解,在系统分析指导下逐步综合。这一方面的具体步骤是:从输入、输出数据结构导出基本处理框;分析这些处理框之间的先后关系;按先后关系逐步综合处理框,直到画出整个系统的PAD图。这一方法本质上是综合的自底向上的方法,但在逐步综合之前已进行了有目的的分解,这个目的就是充分考虑系统的输入、输出数据结构。PAM方法的另一个优点是使用PAD图。这是一种二维树形结构图,是到目前为止最好的详细设计的表示方法之一。但由于在输入、输出数据结构与整个系统之间存在着鸿沟,这一方法仍只适用于中小型问题。
四、原型化方法
产生原型化方法的原因很多。主要是随着我们系统开发经验的增多,发现并非所有的需求都能够预先定义,反复修改是不可避免的。当然能够采用原型化方法也是因为开发工具的快速发展,比如用VB、Delphi等工具,我们可以迅速地开发出一个可以让用户看得见、摸得着的系统框架,这样,对于计算机不是很熟悉的用户就可以根据这个样板提出自己的需求。
开发原型化系统一般有以下几个阶段:
1.确定用户需求
2.开发原始模型
3.征求用户对初始原型的改进意见
4.修改原型
原型化开发比较适合于用户需求不清、业务理论不确定、需求经常变化的情况。当系统规模不是很大也不太复杂时,采用该方法是比较好的。
五、面向对象的软件开发方法
当前计算机业界最流行的几个词就是分布式、并行和面向对象这几个术语,由此可以看到“面向对象”这个概念在当前计算机业界的地位,比如当前流行的两大面向对象技术DCOM和CORBA就是例子。当前我们实际用到的还是面向对象的编程语言,比如C++。不可否认,面向对象技术是软件技术的一次革命,在软件开发史上具有里程碑式的意义。
随着OOP(面向对象编程)向OOD(面向对象设计)和OOA(面向对象分析)的发展,最终形成面向对象的软件开发方法OMT(objectmodelingtechnique)。这是一种自底向上和自顶向下相结合的方法,而且它以对象建模为基础,不仅考虑了输入、输出数据结构,实际上也包含了所有对象的数据结构,所以OMT彻底实现了PAM没有完全实现的目标。不仅如此,OOP技术在需求分析上、可维护性和可靠性这三个软件开发的关键环节和质量指标上也有了实质性的突破,基本解决了在这方面存在的严重问题。
综上所述,面向对象开发采用了自底向上的归纳、自顶向下的分解的方法,它通过对对象模型的建立,能够真正基于用户的需求,而且系统的可维护性大大改善。当前业界关于面向对象建模的标准是UML(UnifiedModelingLanguage)。
六、可视化开发方法
其实可视化开发并不能单独地作为一种开发方法,更加贴切地说它是一种辅助的工具,比如用过Sybase的S-Design的人都知道,用这个工具可以进行显示图形化的数据库模式的建立,并可以导出到不同的数据库中去。当然用过S-Design的人不一定很多,但用过VB、Delphi、C++、Builder等开发工具的人一定不少,实际上这部分人就是在使用可视化开发工具。
当然,不可否认的是,使用这些可视化开发工具也只是在编程这个环节上用了可视化,而不是在系统分析和系统设计这个层次上用了可视化。实际上,建立系统分析和系统设计的可视化工具是一个很好的卖点,国外有很多工具开发商都在致力于这方面产品的设计。
可视化开发使我们的注意力集中在业务流程上,用户界面可以通过可视化工具方便地构成。通过操作界面元素,诸如菜单、按钮、对话框、编辑框、单选框、复选框、列表框和滚动条等,由可视化开发工具自动生成应用软件。
《软件开发的几种方法》是由贤集网所整理科技文章,贤集网是中国领先的企业技术服务平台,专业从事企业技术支持服务,解决企业在实际生产中所遇到的各种技术难题,为国内广大中小企业提供完整的技术解决方案。
4. 软件开发可行性研究方法主要有哪四个方面(软件工程开发的可行性研究是决定软件项目)
软件开发可行性研究是评估和确定计划中软件项目的可行性和可行性的过程。以下是软件开发可行性研究中的四个主要方面:
1.技术可行性:
技术可行性评估了软件项目所需的技术资源和技术能力是否可行和可实现。它考虑了所需的硬件、软件、网络和技术架构等方面,以确定是否存在可行的技术解决方案。
2.经济可行性:
经济可行性评估了软件项目在经济方面的可行性。它包括对项目成本、投资回报率、运营成本、预期收益等方面的分析和评估,以确定项目的经济可行性和盈利潜力。
3.法律和法规可行性:
法律和法规可行性评估了软件项目在法律和法规方面的合规性和可行性。它考虑了相关的法律要求、知识产权、隐私保护、数据安全等方面,以确保项目符合法律和法规的要求。
4.运营可行性:
运营可行性评估了软件项目在运营方面的可行性和可持续性。它考虑了项目的管理和组织结构、人力资源需求、市场需求、竞争情况等方面,以确定项目的运营可行性和成功的可能性。
这些方面的评估和分析将帮助决策者确定软件项目的可行性和可行性,以便做出明智的决策和规划。
以上内容是由猪八戒网精心整理,希望对您有所帮助。