1 软件系统的复杂性

1、软件系统复杂性的来源

问题域的复杂性

管理开发过程的困难性

软件开发过程中随处可见的灵活性

描述离散系统所有状态的困难性

2、复杂系统的5个共同属性

层次机构

相对本原

分离关注

共同模式

稳定的中间状态

3、如何解决软件系统的复杂性

(1)分解

算法分解:结构化程序设计

面向对象分解

(2)抽象:一般化、理想化的模型

(3)层次特征:类结构:part of

对象结构:is a

4、解决软件系统复杂性的方法学

建模

软件设计方法学的要素:

表示法

过程

工具

面向对象的开发模型

时间: 2024-10-13 00:25:29

1 软件系统的复杂性的相关文章

从273二手车的M站点初探js模块化编程

前言 这几天在看273M站点时被他们的页面交互方式所吸引,他们的首页是采用三次加载+分页的方式.也就说分为大分页和小分页两种交互.大分页就是通过分页按钮来操作,小分页是通过下拉(向下滑动)时异步加载数据. 273这个M站点是产品推荐我看的.第一眼看这个产品时我就再想他们这个三次加载和翻页按钮的方式,那么小分页的pageIndex是怎么计算的.所以就顺便看了下源码. 提到看源码时用到了Chrome浏览器的格式化工具(还是朋友推荐我的,不过这个格式化按钮的确不明显,不会的话自行百度). 三次加载和分

TFS(Team Foundation Server)介绍和入门

在本文的两个部分中,我将介绍Team Foundation Server的一些核心特征,重点介绍在本产品的日常应用中是怎样将这些特性结合在一起使用的. 作为一名软件开发者,在我的职业生涯中,我常常会用到支持软件开发过程的大量开发工具,如版本号控制工具.漏洞跟踪包.生成脚本语言.单元測试框架和需求分析工具等等.在.NET平台上,大量的支持工具可以非常好地独立工作,可是,为了使得各种工具之间都够互相协作,还是常常须要一些手动工作. 随着Visual Studio产品线中Team Foundation

JavaSript模块规范 - AMD规范与CMD规范介绍

JavaSript模块化 在了解AMD,CMD规范前,还是需要先来简单地了解下什么是模块化,模块化开发? 模块化是指在解决某一个复杂问题或者一系列的杂糅问题时,依照一种分类的思维把问题进行系统性的分解以之处理.模块化是一种处理复杂系统分解为代码结构更合理,可维护性更高的可管理的模块的方式.可以想象一个巨大的系统代码,被整合优化分割成逻辑性很强的模块时,对于软件是一种何等意义的存在.对于软件行业来说:解耦软件系统的复杂性,使得不管多么大的系统,也可以将管理,开发,维护变得"有理可循".

<<需求分析与系统设计>>读书笔记之一

<<需求分析与系统设计>>这本书论述了软件分析和设计的迭代增量式过程,讨论软件分析与设计的原理,方法和技术,并特别关注了设计阶段,对软件体系结构的内容进行了很大的扩充.本书强调对象技术与统一建模语言UML在企业信息系统开发中的应用,并讨论了使用web技术和数据库技术进行开发的方法.这本书集中在面向对象软件开发上,统一建模语言用于捕捉建模的人工制品,主要论述用逐步细化的方式进行开发,并且在整个开发生命周期中都是用UML这种建模语言.系统分析师,设计师和程序员使用同一种语言和工具,但有

JavaSript模块化 &amp;&amp; AMD CMD 详解.....

模块化是指在解决某一个复杂问题或者一系列的杂糅问题时,依照一种分类的思维把问题进行系统性的分解以之处理.模块化是一种处理复杂系统分解为代码结构更合理,可维护性更高的可管理的模块的方式.可以想象一个巨大的系统代码,被整合优化分割成逻辑性很强的模块时,对于软件是一种何等意义的存在.对于软件行业来说:解耦软件系统的复杂性,使得不管多么大的系统,也可以将管理,开发,维护变得“有理可循”.(等同于Java 高内聚低耦合思想详情请参见Java编程思想第三版) 还有一些对于模块化一些专业的定义为:模块化是软件

(读书笔记)Java应用架构设计-模块化模式与OSGi

本书主要模块化模式的好处.模块化方法与模式.OSGi简单使用等内容,分3大部分: 第一部分介绍了模块化概念,为什么要模块化,以及一些模块化要考虑的东西,如模块粒度,依赖关系,重用性灵活性等. 第二部分介绍模块化的一些模式,采用了GoF设计模式的格式(模式名称.模式表述.图示.描述.多种实现.效果.样例.小结),看着有些乱,但是收获不少. 第三部分介绍OGSi结合Java如何使用,以及如何模块化现有系统.Java中无法直接模块化(Java SE模块化功能Jigsaw被推迟到了Jave SE 9),

AMD 与 CMD 区别到底在哪里?

模块化是指在解决某一个复杂问题或者一系列的杂糅问题时,依照一种分类的思维把问题进行系统性的分解以之处理.模块化是一种处理复杂系统分解为代码结构更合理,可维护性更高的可管理的模块的方式.可以想象一个巨大的系统代码,被整合优化分割成逻辑性很强的模块时,对于软件是一种何等意义的存在.对于软件行业来说:解耦软件系统的复杂性,使得不管多么大的系统,也可以将管理,开发,维护变得"有理可循". 还有一些对于模块化一些专业的定义为:模块化是软件系统的属性,这个系统被分解为一组高内聚,低耦合的模块.那么

(札记)Java应用架构设计-模块化模式与OSGi

本书主要模块化模式的优点.模块化方法与模式.OSGi简单使用等内容.分3大部分: 第一部分介绍了模块化概念.为什么要模块化,以及一些模块化要考虑的东西,如模块粒度,依赖关系,重用性灵活性等. 第二部分介绍模块化的一些模式.採用了GoF设计模式的格式(模式名称.模式表述.图示.描写叙述.多种实现.效果.例子.小结),看着有些乱,可是收获不少. 第三部分介绍OGSi结合Java怎样使用.以及怎样模块化现有系统.Java中无法直接模块化(Java SE模块化功能Jigsaw被推迟到了Jave SE 9

JavaSript模块化-AMD规范与CMD规范

JavaScript模块化 在了解AMD,CMD规范前,先来简单地了解下什么是模块化,模块化开发. 模块化是指在解决某一个复杂问题或者一系列的杂糅问题时,依照一种分类的思维把问题进行系统性的分解以之处理.模块化是一种处理复杂系统分解为代码结构更合理,可维护性更高的可管理的模块的方式.可以想象一个巨大的系统代码,被整合优化分割成逻辑性很强的模块时,对于软件是一种何等意义的存在.对于软件行业来说:解耦软件系统的复杂性,使得不管多么大的系统,也可以将管理,开发,维护变得"有理可循". 一些对