·软件工程方法学包括传统方法学和面向对象方法学
传统方法学也称为生命周期方法学或结构化范型。它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务。
面向对象方法学有四个要点
(1)把对象做为融合了数据及数据上的操作行为的统一的软件构件,面向对象程序是由对象组成的,程序中任何元素都是对象,复杂对象由比较简单的对象组合而成
(2)把所有对象都划分为类。每个类定义了一组数据和一组操作,类是对具有相同数据和相同操作的一组对象的定义。
(3)按照父类(基类)与子类(派生类)的关系把若干个相关类组成一个层次结构的系统,在类等级中,下层派生类自动拥有上层基类中定义的数据和操作,这种想象叫做继承。
(4)对象彼此间仅能通过发送消息互相联系。对象与传统数据有本质区别,他不是被动地等待外界对它施加操作,相反他是数据处理的主体,必须向他发消息请求他执行。也就是说对象的所有私有信息都被封装在该对象内,不能从外界直接访问,这就是所说的封装。
软件生命周期由软件定义、软件开发、运行维护(软件维护)3个时期组成。
软件定义时期 它的任务是:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能这恶时期的工作又称为系统分析,由系统分析员负责完成。软件定义时期分为三个阶段:问题的定义、可行性研究、需求分析 开发时期 由四个阶段组成:总体设计、详细设计、编码和单元测试。前两个又称为系统设计,后两个阶段又称为系统实现 维护时期 主要任务是使软件持久地满足用户需要,当软件在使用过程中发现错误时及时加以修改下面是各个阶段的一些补充说明:
在需求分析阶段:确定的系统逻辑模型是以后设计和实现目标系统的基础,因此必须准确地体现用户的要求。这一阶段的一项重要任务,使用正式文档准确记录对目标系统的需求,这份文档通常称为规格说明书。 在总体设计阶段:又称为概要设计,概括地说就是应该实现怎样的系统。程序设计一一条基本原理就是:程序应该模块化,也就是说一个程序应该若干规模适中按合理的层次结构组织而成。 详细设计:这个阶段不是编写程序,而是设计出程序的详细蓝图,他们应该包含必要的细节,程序员应该可以根据他们写出实际的程序代码。详细设计也就叫做模块设计在这个阶段详细地设计每个模块,确定实现模块共鞥所需要的算法和数据结构。 编码和单元测试 这个阶段关键任务是写出正确的容易理解的程序模块 综合测试 通过各种类型的测试(及相应的调试)使软件达到预定的要求。最基本的测试是集成测试和验收测试, 所谓集成测试就是根据设计的软件结构把经过单元测试检验的模块按某种选定的策略装配起来; 所谓验收测试就是按照规格说明书的规定有用户对目标系统进行验收。 1.9 软件过程概括地说就是为了开发出客户需要什么软件、什么人、在什么时候、做什么事以及怎样做这些事以实现某一特定的具体目标;通常使用生命周期模型简洁地描述软件过程
瀑布模型和快速原型模型的主要区别是获取用户需求的方法不同。
(1)瀑布模型
特点: 1.阶段间具有顺序性和依赖性 这个特点有两种含义:必须等待前一阶段的工作完成之后,才能开始后一阶段的工作,前一阶段的输出文档就是后一阶段的输入文档,看得出来具有连锁反应。 2.推迟实现的观点 3.质量保证的观点 软件工程的基本目标是优质、高产,及时审查是保证软件质量、降低软件成本的重要措施;图中实线部分是软件开发过程,虚线箭头表示维护过程瀑布模型的优点:
实际的瀑布模型是带反馈环的, 可强迫开发人员采用规范的方法; 严格规定了每个阶段必须提交的文档; 要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。 它是一次把一个满足需求的产品提交给用户(2)快速原型模型
快速原型模型就是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能功能的一个子集。
快速原型的第一步是快速建立一个能反映用户主要需求的原型系统,让用户在计算机上试用它;