软件工程方法学

本文通过自我学习总结而来,如有错误希望各位大神斧正

1:概念

                软件工程包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。

                所谓管理就是通过计划,组织和控制等一系列活动,合理的配置和使用资源,以达到既定目标的过程

                 

                通常把软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范式

                目前使用得最广泛得软件工程方法学,分别是传统方法学和面向对象方法学

2:三要素

                软件工程方法学包含3个要素:方法,工具和过程

                                a:方法:方法是完成软件开发的各项任务的技术方法

                                b::工具:工具是为运用方法提供的自动的或半自动的软件工程环境支撑

                                c:过程:过程是为了获得高质量软件所需要的一系列任务框架,它规定了完成各项任务的工作步骤

   3:传统方法学(生命周期方法学/结构化范式)

                a:定义

                                采用结构化技术(结构化分析,结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境支持结构化技术的运用

                b:开发步骤

                        传统方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序的完成每个阶段的任务

                                b-1:从对问题的抽象逻辑分析开始,一个阶段一个阶段地顺序完成

                                b-2:前一个阶段完成是后一个阶段工作的前提和基础,后一个阶段是前一个阶段的细化

                                b-3:每一个阶段的开始和结束都有严格,对于任何两个相邻的阶段而言,前一个阶段的结束标准就是后一个阶段开始的标准

                                b-4:在每一个阶段结束前都必须进行正式的技术审查和管理复审

                   c:优点

                                c-1:把软件生命周期划分成若干个阶段,每个阶段的任务相互独立,而且比较简单,便于不同人员分工协作,降低软件的开发难度

                                c-2:在软件生命周期的每个阶段都采用科学的管理技术和良好的技术方法,且每个阶段严格的审查,保证了软件的质量,提高了软件的可维护性

                                c-3:采用生命周期方法学可以大大提高软件开发的成功率,软件开发的生产率也能明显提高

                    d:缺点

                                d-1:软件规模庞大,或者对软件的需求是模糊的或会随时间变化而变化的时候,传统方法学开发软件往往不成功

                                d-2:结构化范型技术要么面向行为,要么面向数据,没有及面向数据又面向行为的结构化技术,而软件系统本质上是信息处理系统。离开了操作便无法更改数据,而脱离了数据的操作是毫无意义的。数据和对数据的处理原本是密切相关的,把数据和操作人为的分成两个独立部分,自然会增加软件开发与维护的难度

4:面向对象方法学

                        a:定义

                                面向对象方法把数据和行为看成是同等重要的,他是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法

                        b:原则

                                面向对象方法学的出发点和基本原则,是尽量模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界,解决问题的方法和过程,从而使描述问题空间与实现解法的解空间在结构上尽可能一致

                        c:要点

                                        c-1:把对象作为融合了数据及在数据上的操作行为的统一软件构件

                                        c-2:把所有对象都划分成类(每个类都定义了一组数据和一组操作,类是对具有相同数据和相同操作的一组相识对象的定义)

                                        c-3:继承性

                                        c-4:对像彼此间仅能通过发送消息互相联系

                          d:与传统方法学对比

                                        d-1:传统方法学强调自顶而下顺序的完成软件开发的各阶段任务

                                        d-2:用面向对象方法学开发软件的过程,是一个主动地多次反复迭代地演化过程。面向对象方法学在概念和表示方法上的一致性,保证了在各项开发活动之间的平滑(即无缝)过渡

                            e:优点(面向对象方法)

                                        e-1:降低了软件产品的复杂性

                                        e-2:提高了软件的可理解性

                                        e-3:简化了软件开发和维护工作

                                        e-4:提高了软件的可靠性

你可能感兴趣的:(软件工程)