软件工程之结构化设计方法

结构化分析方法是在模块化,自顶向下逐步细化及结构化程序设计基础之上发展起来的,可以分为两类:一类是根据系统系统的数据流进行设计,还有一类是根据系统的数据结构进行设计。

 软件设计的5个原则:

1 分而治之:将大型复杂的问题分解成许多容易的小问题,软件的体系设计,模块化设计都是分而治之的具体策略。

2 模块独立性:指软件系统中每个模块只设计软件要求的具体子功能,与软件系统中其他模块的借口是简单的。耦合性越高,模块独立性越若弱。

3 提高抽象层次:抽象是指护士一个主题中与当前目标无关的方面,以便更注意与当前目标有关的方面。软件设计时,尽量提高软件的抽象层次,按抽象级别从高到低进行软件设计,将软件的体系结构,按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计的语句能够实现为止。当然实现这个过程需要我们对软件的接口,模块的运行等等有足够的熟悉。

4 复用性设计:指在构造新的软件的时候,不必从零做起,可以直接使用已有的软构件即可组装成新的系统。

5 灵活性设计:引入灵活性的方法有,降低耦合并提高内聚(易于提高替换功能);建立抽象(创建有多态操作的接口和父类);不要将代码写死(消除代码中的常数);抛出异常(由操作的调用者处理异常);使用并创建可复用的代码。

 模块结构及表示:

一个软件系统需要很多模块(包括程序设计中的函数和子程序)组成,称不能再分解的模块为原子模块。如果一个软件系统的全部实际加工(数据处理或计算)都有原子模块来完成,而其他所有非原子模块仅仅执行控制或协调功能,这样的系统就是完全因子分解的系统,但是大多数系统做不到完全因子分解。

模块一般分为四类:传入模块、传出模块、变换模块(从上级调用模块取得数据,进行特定的处理,转换成其他形式,再将加工结果返回给调用模块)、协调模块;

模块的结构有树状结构和网状结构;

结构图(SC):清楚地反映软件模块之间的层次调用关系和联系;

时间: 2025-01-02 14:26:18

软件工程之结构化设计方法的相关文章

软件工程——理论、方法与实践 之 软件测试

软件工程——理论.方法与实践 之 软件测试 软件危机曾经是软件界甚至整个计算机界最热门的话题.为了解决这场危机,软件从业人员.专家和学者做出了大量的努力.现在人们已经逐步认识到所谓的软件危机实际上仅是一种状况,你就是软件中有错误,这是这些错误导致了软件开发在成本.进度和质量上的失控. 有错是软件的属性,而且是无法改变的,因为软件是由人来完成的,所有由人来做的工作都不会是完美无缺的.问题在于如何去避免错误的产生和消除已经产生的错误.使程序中的错误密度达到尽可能低的程度.为把握软件开发各个环节的正确

软件工程——理论、方法与实践 之 软件演化

软件工程——理论.方法与实践 之 软件演化 一旦软件进去使用期,一些暴露出来的软件问题需要进一步修正和改善,同时新的需求会不断出现,原有的需求也会随着业务的变化而发生变化.因此,软件系统在交付之后仍然在不断地演化,即进去软件的运行维护阶段,以保证软件长期处于可用状态,并能够适应实际业务的不断变化. 软件维护是指在软件运行或维护阶段对软件产品进行的修改,这些可能是改正软件中的错误,也可能是增加新的功能以适应新的需求,但是一般不包括软件系统结构上的重大改变. 几乎每个成熟的软件开发机构都要维护15年

软件工程——理论、方法与实践 之 软件实现

软件工程——理论.方法与实践 之 软件实现 软件实现是软件产品由概念到实体的一个关键过程,它将详细设计的结果翻译成用某种程序设计语言编写的并最终可以运行的程序代码.虽然软件的质量取决于软件设计,但是规范的程序设计风格将会对后期的软件维护带来不可忽视的影响.软件实现的过程包括代码设计.设计审查.代码编写.代码走查.代码编译和单元测试等基本活动.首先开发人员需要正确理解用户需求和软件设计模型,补充一些遗漏的详细设计,进一步设计程序代码的结构,并自行检查设计结果:其次,根据程序设计结果和编程规范等编写

软件工程——理论、方法与实践 之 面相对象分析

软件工程——理论.方法与实践 之 面向对象分析 在需求获取阶段,开发人员关注于理解用户以及他们的使用需求.而在需求分析阶段,开发人员关注于理解系统需求构建的内容,其核心是产生一个准确的.完整的.一致的和可验证的系统模型称为分析模型. 面向对象的分析模型由三个独立的模型组成: 1.功能模型:由用例和场景表示. 2.分析对象模型:由用例图和对象图表示. 3.动态模型:由状态图和顺序图表示. 在分析对象模型中,分析类是概念层次上的内容,用于描述系统中较高层次的对象.在分析阶段,分析类直接与应用逻辑相关

软件工程——理论、方法与实践 之 面向对象设计

软件工程——理论.方法与实践 之 面相对象设计 在面相对象分析阶段,需要着重考虑的是系统做什么,而在设计阶段,将集中研究系统的软件实现问题,包括体系结构设计.详细设计.用户界面设计和数据库设计等. 对于大型复杂系统而言,软件体系结构设计显得尤为重要,它的好坏往往会成为一个系统设计成败的关键.通常,软件体系结构涉及软件系统的总体组织.全局控制.数据存取以及子系统之间的通信协议等. 在系统设计阶段,当选择软件体系结构策略之后,需要将分析模型中的分析类与设计模型的设计元素相对应,有一些分析类可能直接映

软件工程——理论、方法与实践 之 面向对象基础

软件工程——理论.方法与实践 之 面向对象基础 面向对象技术是软件工程领域中的重要技术,这种技术比较自然的模拟了人类认识客观世界的方式,是当前计算机软件工程学中的主流方法.面向对象方法认为:客观世界是由对象组成的,任何客观的事物或实体都是对象,复杂的对象可以由简单的对象组成:具有相同数据和相同操作的对象可以归并为一个类,对象是对象类的一个实例:类可以派生出子类,子类继承父类的全部特性(数据和操作),又可以有自己的新特征,子类与父类形成类的层次结构:对象之间通过消息传递相互联系:类具有封装性,其数

软件工程——理论、方法与实践 之 软件工程中的形式化方法

软件工程——理论.方法与实践 之 软件工程中的形式化方法 从广义上讲,形式化方法是指将离散数学的方法用于解决软件工程领域的问题,主要包括建立精确的数学模型以及对模型的分析活动.狭义的讲,形式化方法是运用形式化语言,进行形式化的规格描述.模型推理和验证的方法.形式化方法运用于软件工程实践当中主要目的是保证软件的正确性.软件开发实际上就是把现实世界的需求映射成软件额模型化过程.该过程包括:形式规约.形式证明我与检验.程序求精三方面的活动. 形式化规格说明是对软件系统对象,对象的操作方法,以及对象行为

软件工程——理论、方法与实践 之 软件过程

软件工程--理论.方法与实践 之 软件过程 软件过程是软件过程人员为了获得软件产品而在软件工具的支持下实施的一系列软件工程活动.软件过程的目标是在确定时间和预算内开发出高质量的软件,然而实现这个目标是一件非常困难的事情.由于软件的复杂性和多样性,软件开发并没有一个理想的过程,不同的开发组织或者不同的软件类型往往存在着完全不同的软件开发过程.尽管如此,一般的软件过程都包含问题提出.软件需求规格说明.软件设计.软件实现.软件确认和软件演化等基本活动.在软件过程的不同阶段,有可能产生不同的软件制品,诸

软件工程——理论、方法与实践 之 概述

软件是计算机程序.规程以及运行计算机系统可能我需要的相关文档和数据.然而,软件的真正含义却不是一个形式的定义所能体现的.按照软件服务对象的范围不同,一般将软件划分为通用软件和定制软件两种类型.其中,由于软件本身具有复杂性.不可见性.不断变化.和现有软件大部分未实现构件化,使得软件开发依然面临着过分依赖人工.软件难以重用.开发大量重复和生产率低下等问题.随着软件的四个重要的阶段性发展.在计算机软件的开发和维护过程中遇到了一系列严重问题,即所谓的软件危机. 为提高软件的质量与生产率,最终实现软件的工