n 1. 软件与软件工程 n 2. 生存周期和开发模型的演变 n 3. 软件开发方法概述 n 4. 模型 n 5. 面向对象的软件建模 n 6. 统一建模语言 UML
1 软件与软件工程
软件: 程序+文档+数据
特点:
(1)软件规模大。
(2)软件开发规范并趋于标准化。
(3)软件开发方法多,有大量的软件工具支持。
(4)注重软件开发的管理。
(5)软件维护相对过去容易得多。
§软件工程的指导性原则:
变动的软件需求。
稳妥的设计方法。
高效的软件开发支持技术。
有效的过程管理。
§软件工程具有里程碑意义的进展:
结构化软件开发方法的工具。
计算机辅助软件工程(CASE)。
面向对象语言和方法成为主流的软件开发技术。
2 生存周期和开发模型的演变
一、软件生命周期
(1)瀑布模型——特点
§ 1. 顺序性和依赖性
1)前结束,后开始;
2)前输出,为后输入。
§ 2. 推迟实现的观点
前阶段的工作必须做扎实,方可以开展后续工作。
§ 3. 质量保证的观点
1)必须完成规定文档;
2)必须对完成的文档进行评审,以便尽早发现问题。
(1)瀑布模型——使用条件
1)慎重使用瀑布模型的情况:
§ 不能充分理解客户需求或客户需求有可能迅速发生化; § 系统太大太复杂,不能一次做完所有的事; § 事先拟采用的技术迅速发生变化; § 提供的资源有限; § 无法利用各开发阶段的某一中间产品。
2)使用瀑布模型的情况:
§ 系统所有的功能、性能要求客户可以一次性准确交付时; § 必须是首次开发的新系统并且淘汰全部老系统时。
(2)增量模型
先完成一个系统子集的开发,再按同样的开发步骤增加功能(系统子集),如此递增下去直至满足全部系统需求。
系统的总体设计在初始子集设计阶段就应作出设想。
(3)原型模型——使用条件
§ 原型模型也是通过系统各个可执行的中间版本以渐增的形式来开发系统的,但是客户需求可以分步逐渐了解,不用在初始时就确定。 § 在模型中,可以预先定义一部分客户需求,然后在每个后继的中间版本中再逐步增加需求,一点点完善。 § 在开发每个中间版本时,开发过程中的活动和任务可以顺序地或部分重叠平行地被加入到这些中间版本中。
(4)螺旋模型
3 软件开发方法概述
一、程序设计方法
1.结构化程序设计方法
其控制结构仅由顺序、选择与重复等有限的基本控制结构表示。
2.模块化程序设计方法
模块之间的接口应尽可能简明清晰:
单独模块的修改不影响其它模块的功能;
模块化应具有可修改性、易读性和可验证性。
3.面向对象程序设计方法
面向过程Vs.面向对象
1) 面向对象思想的由来(续)
对象 表示现实世界中某个具体的事物。 事物可分为两大部分 : v 物质 : 表达具体的事物 v 意识 : 描述抽象的概念
解决问题方法:(OO–Object-Oriented)
现实问题空间 面向对象解空间
物质 对象(客观存在的)
意识 类 (抽象的概念)
2) 对象、实体与类关系图
4)面向对象的定义
面向对象=对象+类+继承+通信
如果一个软件系统是使用这样 4个概念设计和实现的,则我们认为这个软件系统是面向对象的。
一个面向对象的程序的每一成份应是对象,计算是通过新的对象的建立和对象之间的通信来执行的。
面向对象四要素:
(1)对象(2)类 (3)继承(4)消息
5 )面向对象四要素——对象
对象(Object)是面向对象的基本成份。
每个对象可用它本身的一组属性和它可以执行的一组操作来定义。
属性一般只能通过执行对象的操作来改变。
操作又称为方法或服务,它描述了对象执行的功能,若通过消息传递,还可以为其它对象使用。
面向对象四要素——类
类(Class)是一组具有相同数据结构和相同操作的对象的集合。
类的定义包括一组数据属性和在数据上的一组合法操作。
类定义可以视为一个具有类似特性与共同行为的对象的模板,可用来产生对象。
在一个类中,每个对象都是类的实例(Instance),它们都可使用类中提供的函数。
对象的状态则包含在它的实例变量,即实例的属性中。
面向对象四要素——消息
消息(Message)是一个对象与另一个对象的通信单元,是要求某个对象执行类中定义的某个操作的规格说明。发送给一个对象的消息定义了一个方法名和一个参数表(可能是空的),并指定某一个对象。
一个对象接收的消息则调用消息中指定的方法,并将形式参数与参数表中相应的值结合起来。
OOM举例:邮局业务管理
面向对象四要素——继承
继承(Inheritance)是使用已存在的定义做为基础建立新定义的技术。
新类的定义可以是既存类所声明的数据和新类所增加的声明的组合。新类复用既存的定义,而不要求修改既存类。
既存类可当做基类来引用,则新类相应地可当做派生类来引用。
例如,从一个既存的车辆类派生的四轮驱动车类可能不仅是车辆类子集合定义的特殊化,而且还可能在新类的界面中引入新的能力。
面向对象与传统方法比较
①OOM与人类习惯的思维方法一致
传统方法:面向过程设计,以计算为核心,数据与操作分离,不易理解。
OOM:以object为核心,强调对现实概念的模拟而不强调算法。“面向对象方法学的基本原则,是按照人们习惯的思维方式建立问题域的模型,开发出尽可能直观、自然地表现求解方法的软件系统”。
¨Class:由特殊到一般的归纳(induction)
¨Inheritance:由一般到特殊的演绎(deduction)
②OOM稳定性好
传统方法:结构依赖于功能,不稳定。
OOM:以object模拟实体,需求变化不会引起结构的整体变化,因为实体相对稳定,故系统也相应稳定。
建模是对现实系统进行适当的过滤,用适当的表现规则描绘出简洁的模型
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!