小理解:面向对象分析与设计


 软件工程的目的就是在规定的时间、开发费用内开发出满足用户需求的高质量的软件系统。而软件的固有复杂性使得开发成员之间的沟通变得困难,开发费用超支、开发时间延期,导致产品缺陷、不易理解、难以使用、难以扩充等问题。软件的复杂性是固有的,即不能采用某种方法彻底消除软件的复杂性,只能通过控制复杂性的方法解决软件危机,如分解、抽象、模块化、信息隐蔽等。

软件设计

 优秀的软件需要精心的设计!如何设计软件,使其不仅能满足当前的需要,还能适应今后变化的需要,这是IT企业迫切需要的技能。

 当完成了C++、Java等面向对象程序设计语言的学习之后,面对一个真正需要开发的软件系统,会有诸如此类的一系列问题摆在眼前:该如何入手、定义多少个类、为每个类定义哪些属性、操作、如何定义类之间的关系、为什么这么做、给出的解决方案能够适应今后需求的不断变更吗?
 因此,在创建一个应用软件系统前,必须进行充分的分析,即明确所要解决的问题是什么。例如,开发一个图书信息管理系统软件,这个系统要实现什么样的功能?这就是一个分析问题。而设计强调的是问题的逻辑解决方案,即系统怎样才能达到要求。例如,图书信息管理系统如何实现远程查询?

面向对象分析与设计

 面向对象方法是一种非常实用的软件开发方法,它一出现就受到软件技术人员的青睐,现已成为计算机科学研究的一个重要领域,并逐渐成为软件开发的一种主要方法。面向对象方法以客观世界中的对象为中心,其分析和设计思想符合人们的思维方式,分析和设计的结构与客观世界的实际比较接近,容易被人们接受。在面向对象方法中,分析和设计的界面并不明显,它们采用相同的符号表示,能够方便地从分析阶段平滑地过渡到设计阶段。此外,在现实生活中,用户的需求经常会发生变化,但客观世界的对象及对象间的关系比较稳定,因此用面向对象方法分析和设计的结构也相对比较稳定。

 面向对象的分析与设计的精髓是按照对象的观点考虑问题域和逻辑解决方案。分析旨在发现并描述问题域中的对象。例如,在图书馆信息系统中,这些对象包括图书、借阅者、图书管理员等。设计旨于定义逻辑软件对象,这些对象(具有属性和方法)最终能够用面向对象程序设计语言实现,即编写它们的类。

 面向对象技术充分体现了分解、抽象、模块化、信息隐蔽的思想,可以有效地提高软件生产率,缩短软件开发时间、提高软件质量。

面向对象分析与设计过程

OOA——面向对象的分析,就是运用面向对象的方法进行需求分析。
OOD——面向对象的设计,就是在OOA模型的基础上运用面向对象的方法进行系统设计,目标是产生一个符合具体实现条件的OOD模型。

  当面对一个项目的时候,首先依然是需求分析,得到需求分析报告,接下来在面向对象分析过程中建立用例图,这一步是项目负责人员与用户共同参与, 在结构化分析设计中应该是从属于需求分析的,用例图的重要作用也就是明确整个系统大致上的功能需求,及需要面向的用户类型。

 用例图建好后,基本上进入面向对象设计阶段,这一阶段主要的任务便是从动态与静态两个方面对整个系统进行勾画,建模。

 从静态来讲,需要的是类图,而类图的设计方式即,从需求分析报告中提取 关键字,总结出可以形成类对象的实物,最好是因此记录出一个类对象表,其中记录可以作为一个类被设计的各个名字,比如“会议”“书籍”之类的关键性名词,并从需求分析报告中提取出其该拥有的属性和行为,以及各个类之间的关联。

 从动态来讲,分别有建立顺序(序列)图、协作图、活动图,状态图。利用这4种图相辅相成,来共同构建整个系统在运行过程中的各个细节。

 在完成以上的面向对象分析设计之后,所获得的文档与认识已经能有效的辅助代码实现人员对于整个系统的理解,这时候便是面向对象程序实现阶段,就暂且不提了。

UML图

 统一建模语言(Unified Modeling Language,UML)是用于系统的可视化建模语言。它在软件领域中的地位与价值就像“1、2、3、+、、…”等符号在数学领域中的地位一样,为软件开发人员之间提供了一种用于交流的词汇表和一种用于软件蓝图的标准语言。用Java和C++等programming language是用编码实现一个系统,而用UML是对一个系统建立模型。

 UML可以用在所有的过程中,贯穿生命发展周期和不同的执行技术。在分析阶段,用户的需求用UML模型来描述;在设计阶段,引入定义软件系统中技术细节的类;在实现阶段,用面向对象程序设计语言将来自设计阶段的类转换成实际的代码;UML模型还是测试阶段的依据。

 UML 是一种构造语言:虽然不是一种可视化的编程语言,但其与各种编程语言直接相连,而且有较好的映射关系,这种映射允许进行正向工程、逆向工程。且是可视化语言:UML 只是一组图形符号,它的每个符号都有明确语义,是一种直观、可视化的语言。

UML 图包括九种:使用用例图(use case diagram)、类图(class diagram)、对象图(object diagram)、顺序(序列)图(sequence diagram)、协作图(collaborate diagram)、状态图(statechart diagram)、活动图(activity diagram)、构件图(component diagram)、部署图(deployment diagram)。在这些图中使用用例图、类图、序列图是最有用的。
1、需求
采用用例图描述需求。
2、 分析
采用类图描述静态结构
采用顺序图、协作图、活动图、状态图描述动态行为
3、设计
采用类图、包,对类的接口进行设计
4、 实现
将类用某现象对象语言实现
5、继承与交付
构件图、包、部署图
6、 测试
单元测试——类图和类的说明书


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值