<<软件设计学习笔记>>
阅读一篇关于软件设计的文章,文章对软件设计讲述的非常全面,但对于细节都没有展开讨论,不过其中推荐了一些参考资料,看了这个文章后就能对软件设计有一个比较全面
的了解,如果还需要在一些细节上深入就要找相关资料了。
************
文章的章节结构
************
** 软件设计的基本概念
*** 一般的设计概念
*** 软件设计内容
*** 软件设计过程
*** 基本的软件设计概念
*** 软件设计的关键点
** 软件体系结构
*** 体系结构和视点
*** 结构化模式和模式(宏观结构)
*** 设计模式(微观结构)
** 软件设计的质量分析和评估
*** 质量属性
*** 质量分析和评估工具
*** 坐标
** 软件设计的标注
*** 结构化描述(静态视角)
*** 动作化描述(动态视角)
** 软件设计的策略和方法
*** 一般方法
*** 面向功能的方法
*** 面向对象的方法
*** 其他方法
** 软件设计工具
*** 数学工具
*** 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