软件工程---软件设计原理

软件工程---软件设计原理

我在写随笔的时候,总是在第一段写一些和技术无关的话。一般是表达一下当时的心情。其实这不是主要的,我只是想养成斟酌自己说的每一句话的习惯。

软件的生命周期:

  • 软件项目计划
  • 需求分析
  • 软件设计
  • 程序编制
  • 测试
  • 运行维护

 软件设计的目标:
可定制:当系统进行变更或在原有的系统上追加新的功能时、可以从现有的系统中直接整合后满足需求。
可重用:当出现上述情况、并且定制无法满足需求的场合、可以使用原有系统中已经存在的模块、并且不需要任何改动。
可扩展:在重用也无法满足需求的情况下、在原有的系统中、追加新的功能模块时、不需要修改已有的系统。
可定制 > 可重用 > 可扩展

 面向过程的软件设计
把一个问题分解成若干小问题,再对每个小问题进行分解(分模块),知道每个问题的难度都足以小,能够解决为止,然后再把这些小问题合并,就解决了大问题。
模块(子程序)划分原则:强内聚和松散耦合

 面向对象方法 
定义一:面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的开发方法。
定义二:面向对象软件工程方法的出发点和基本原则、是尽可能模拟人类习惯的思维方式、使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程、也就是使描述问题的问题空间(也称为问题域)与实现解法的空间(也称为求解域)在结构上尽可能一致、因此、这样的程序易于理解和维护。
基本概念:对象、属性、服务、消息、类。
基本特征:封闭性、继承性、多态性。

对象:从设计方面来看对象是一些模型化的实体、直接对应于现实世界的实体。从现实方面来看、一个对象是实际使用的数据结构与操作。
对象具有的含义:
±在现实世界中:是客观世界中的一个实体。
±在面向对象程序中:表达成计算机可理解、可操纵、具有一 定属性和行为的对象。
±在计算机世界中:是一个可标识的存储区域。
属性:每一对象的属性是一些有着确定值的、用于描述对象状态信息的数据。
服务:为了完成某一任务、一个对象所提供的、并体现其责任的操作。

补充一点关于抽象数据类型(adt)的内容:
抽象数据类型恰恰不具备封闭,继承和多态的特性,而它却是面向对象的前身。它可以:
隐含实现细节
将改动的影响限制在局部
更容易改进性能
降低修改时错误的可能性
使程序成为自说明的

你可能感兴趣的:(软件工程---软件设计原理)