<<软件设计学习笔记>>

类别:VC语言 点击:0 评论:0 推荐:

 

<<软件设计学习笔记>>

阅读一篇关于软件设计的文章,文章对软件设计讲述的非常全面,但对于细节都没有展开讨论,不过其中推荐了一些参考资料,看了这个文章后就能对软件设计有一个比较全面
的了解,如果还需要在一些细节上深入就要找相关资料了。

************
文章的章节结构
************
** 软件设计的基本概念
   *** 一般的设计概念
   *** 软件设计内容
   *** 软件设计过程
   *** 基本的软件设计概念
   *** 软件设计的关键点
** 软件体系结构
   *** 体系结构和视点
   *** 结构化模式和模式(宏观结构)
   *** 设计模式(微观结构)
** 软件设计的质量分析和评估
   *** 质量属性
   *** 质量分析和评估工具
   *** 坐标
** 软件设计的标注
   *** 结构化描述(静态视角)
   *** 动作化描述(动态视角)
** 软件设计的策略和方法
   *** 一般方法
   *** 面向功能的方法
   *** 面向对象的方法
   *** 其他方法
** 软件设计工具
   *** 数学工具
   *** CASE工具
   *** 坐标工具??
** 与软件设计相关的标准

****
要点
****
  *** OOD方法是目前的热点,OOD和UML的联系,UML中的对象图、序列图、状态图、协作图等等图形

  *** 用户界面设计、实时系统设计、数据库设计等等并非所有这些都属于软件设计

  *** 软件设计的基本概念:解决问题、目标、约束、表示、解决方法
 
  *** 如何保证模块性,便于可维护性和易于更改?

  *** 并发的考虑:如何将系统分解为过程、进程和线程,并处理相应的原子级、同步和调度问题??

  *** 控制要素和处理事件:如何组织控制流程,如何解决互动和暂时的事件通过不同的机制,例如,明确的调用或调用栈等等??

  *** 分布问题:软件如何分布在硬件中?中间件有什么样的作用?

  *** 处理错误和意外问题: 如何组织和容忍错误并处理意外情况?

  *** 互动的系统和对话框的独立:如何从用户界面同业务逻辑区分开来??用户界面设计不在讨论的范围。

  *** 平台独立性: 如何确保软件的平台独立性

**********
软件结构分类
**********

  *** 一般的结构:例如层、管道等等、
 
  *** 分布系统(客户-服务、三层结构、等等)
 
  *** 互动系统(MVC,抽象控制)
 
  *** 适应性系统(微内核)
 
  *** 其他形式(批处理,解释器,过程控制,基于规则)

***********
设计模式分类
***********
  *** 创建性模式:builder,factory,prototype,singleton,等
  *** 结构化模式: adapter,bridge,composite,decorator,fa?ade,flyweight,proxy等
  *** 动作化模式:command, interpreter,iterator,mediator,memento,observer,state,strategy,template,visitor等

*********************
软件设计的质量分析和评估
*********************
质量属性:不同的属性对于获取一个良好质量的设计是相当重要的,可维护性、可测试性等等
质量分析和评估工具:软件设计复查、静态分析、仿真和构造原型
标准:继承树的深度、每个类的重方法、结构复杂度


************
软件设计的说明
************
结构化描述(静态观点) :图形,描述结构化方面,类图,子系统和包,过程(动态对象)或者物理(实施图)
动作描述(动态观点):活动图、数据流图、序列图、状态转换图和程序设计语言

*****************
软件设计的策略和方法
*****************
一般方法
面向功能的设计方法:实体-关系图、结构图
面向对象的设计方法
数据结构中心设计方法
其他方法 

******************
与软件设计相关的标准
******************
UML,Ada,PDL,CORBA

*********
相关知识
*********
计算机科学
 *** 基础:复杂度分析、离散数学、自动化、形式化规约
 *** 算法和数据结构: 基本数据结构、数据数据类型、排序和查找
 *** 体系结构: 内存系统管理和结构、接口和通讯
 *** 信息管理: 数据库建模、事务处理、数据压缩
 *** 接口计算: 人机互动、多媒体
 *** 操作系统: 任务、过程和线程、过程协作和同步、文件系统、网络基础、安全、保护、分布式系统。
 *** 编程基础和技巧:代码生成、问题解决方法
 *** 网络中心计算: 分布式对象、企业级计算、网络级安全

数学
 *** 离散数学
 *** 概率
 *** 数学逻辑

项目管理
 *** 项目集成管理
 *** 项目范围管理
 *** 项目时间管理
 *** 项目成本管理
 *** 项目质量管理
 *** 项目风险管理

计算机工程
 *** 系统设计

系统工程
 *** 过程:动作分析、构造原型、组件规格

********
推荐资料
********
 *** 软件实际结构
  软件结构、质量属性、结构风格、结构描述语言、产品线开发、案例分析
 *** 面向模式的软件结构
  结构模式、设计模式、模式间的联系、软件结构、方法、框架、基本的软件设计概念:抽象、封装、信息、内聚
 *** 统一建模语言用户指南
 *** 软件工程
  软件工程论文集
 *** 对象、组件和框架关于UML
  组件设计
 *** 软件设计引路
  老书
 *** 可重用面向对象软件的要素
 *** 对象分析和设计
 *** 软件工程的集成方法
 *** 统一软件开发过程
 *** 面向对象软件构造
 *** 计算机辅助软件工程

本文地址:http://com.8s8s.com/it/it1721.htm