软件设计(第五章)

1.软件系统

2.分解为子系统或包

识别出所有的子系统,包括:确定如何把系统分为主要的子系统,并清楚定义子系统如何使用其他子系统。

子系统之间的交互:一个子系统去调用另外一个子系统的子程序;一个子系统包含另一个子系统中的类;一个子系统继承自另外一个子系统中的类;

常用的子系统:业务规则,用户界面,数据库访问,对系统的依赖性

3.分解为类

识别出系统中所有的类

定义这些类与系统的其余部分打交道的细节

4.分解为子程序

把每个类细分为子程序,将第3步中定义的类接口,细化为类的私用子程序

5.子程序内部的设计

为子程序布置详细的功能,包括:编写伪代码,选择算法,组织子程序内部的代码块,用编写语言编写代码

软件设计(第五章),布布扣,bubuko.com

时间: 2024-10-12 14:37:12

软件设计(第五章)的相关文章

软件构造 第五章第一节 可复用性的度量、形态和外部观察

第五章第一节  可复用性的度量.形态和外部观察 面向复用编程(programming for reuse):开发出可复用的软件 基于复用编程(programming with reuse):利用已有的可复用软件搭建应用系统 代码复用的类型: 白盒复用:源代码可见,可修改和扩展 含义:复制已有代码到正在开发的系统,进行修改 优点:可订制化程度高 缺点:对其修改增加了软件的复杂度,且需要对其内部充分的了解 黑盒服用:源代码不可见,不能修改 含义:只能通过过API接口来使用,无法修改代码 优点:清晰.

软件需求分析第五章

首先我们应明确什么是软件风险管理基础,包括不准确的估计,对准确估计得否决,对项目状态的不清楚,资金周转,技术风险,缺乏知识等等因此我们需要对每个项目认真地进行风险管理 首先明确风险管理的要素,所谓风险管理就是使用某些工具和步骤把项目风险限制在一个可接受的范围内,风险管理包括风险评价即一个检查项目工程并且识别其潜在风险区域,风险避免,风险避免是处理风险的一种方法即尽量别做冒险的事,但更常见的是需要采取风险控制制定风险管理计划是一项处理具有重大意义风险的计划,包括降低风险的方法.应急计划.负责人和截

设计心理学1学习笔记 - 日常的设计 - 第五章 认为差错?不,拙劣的设计

每当事故发生,我们分析事故,寻找原因,但当事故由人引起,我们便指责犯错误的人,而我们仍按照过去的方式做事情,如此的分析方式并不会从根本上改变这一切,我们应该用同样的方式对待所有的失败,找到根本原因,重新设计系统,保证不再发生同样的问题. 何以出错?出错的原因有很多,最常见的一种原因是要求人们在任务和流程中作为被自然规律的事情,譬如在数小时内保持警惕,或者在执行多个任务时保持精准的规范控制,最后,也许是最糟糕的归罪方式,是人们对待差错的态度,调查委员会无一例外地会发现犯错的人,重则解雇监禁,轻则反

【软件构造】第五章第二节 设计可复用的软件

第五章第二节  设计可复用的软件 5-1节学习了可复用的层次.形态.表现:本节从类.API.框架三个层面学习如何设计可复用软件实体的具体技术. Outline 设计可复用的类--LSP 行为子结构 Liskov替换原则(LSP) 各种应用中的LSP 数组是协变的 泛型中的LSP 为了解决类型擦除的问题-----Wildcards(通配符) 设计可复用的类--委派与组合 设计可复用库与框架 Notes ## 设计可复用的类--LSP 在OOP之中设计可复用的类 封装和信息隐藏 继承和重写 多态.子

软件设计的哲学 第五章 隐藏信息

目录 5.1 信息隐藏 5.2 信息泄漏 5.3 时间分解 5.4示例:HTTP服务器 5.5 示例:类太多 5.6 示例:HTTP参数处理 5.7 示例:HTTP响应中的默认值 5.8 隐藏在类中的信息 5.9 不要过度隐藏 5.10 结论 第四章论述了模块的深度.本章以及随后的几章将讨论创建深度模块的技术. 5.1 信息隐藏 实现深度模块最重要的技术是信息隐藏.这种技术首先由David Parnas描述.基本思想是每个模块应该封装一些知识,这些知识表示设计决策.该知识嵌入到模块的实现中,但不

软件设计的哲学:第四章 深度封装模块

目录 4.1 模块化设计 4.2什么是接口? 4.3 抽象 4.4 深度模块 4.5浅模块 4.6 类拆分 4.7示例:Java和Unix I/O 4.8 结论 管理软件复杂性最重要的技术之一是系统设计,这样开发人员在任何时候都只需要面对总体复杂性的一小部分.这种方法称为模块化设计,本章介绍其基本原理. 4.1 模块化设计 在模块化设计中,软件系统被分解成一系列相对独立的模块.模块可以采用多种形式,例如类.子系统或服务.在理想的情况下,每个模块都完全独立于其他模块:开发人员可以在任何模块中工作,

《linux内核设计与实现》第五章

第五章 系统调用 一.与内核通信 系统调用在用户空间进程和硬件设备之间添加了一个中间层.作用: 为用户空间提供了一种硬件的抽象接口. 系统调用保证了系统的稳定和安全. 每个进程都运行在虚拟系统中,而在用户空间和系统的其余部分提供这样一层公共接口,也是出于这种考虑. 在Linux中,系统调用是用户空间访问内核的唯一手段:除异常和陷入外,它们是内核唯一的合法入口. 二.API.POSIX和C库 一般情况下,应用程序通过在用户空间实现的应用编程接口(API)而不是直接通过系统调用来编程. 一个API定

《Linux内核设计与实现》读书笔记 第五章 系统调用

第五章系统调用 系统调用是用户进程与内核进行交互的接口.为了保护系统稳定可靠,避免应用程序恣意忘形. 5.1与内核通信 系统调用在用户空间进程和硬件设备间添加了一个中间层, 作用:为用户空间提供了一种硬件的抽象接口:保证了系统的稳定和安全,避免应用程序不正确使用硬件,窃取其他进程的资源,或做出危害系统的行为:为了实现多任务和虚拟内存. Linux提供的系统调用比大部分操作系统少得多. 5.2 API.POSIX.和C库 一个API定义了一组应用程序使用的编程接口.(API和系统调用不是一一对应)

《Linux内核设计与实现》第五章学习笔记

第五章 系统调用 操作系统中,内核提供了用户进程与内核进行交互的一组接口.这些接口让应用程序受限的访问硬件设备,提供了新进程与已有进程进行通信的机制,也提供了申请操作系统其他资源的能力.提供接口主要是为了保证系统稳定可靠,避免应用程序恣意妄行. 课堂知识点回顾 1. 系统调用:需要int 0x80模拟中断让硬件触发.同步.主动地进入系统空间. 2. 硬中断:异步.被动地进入系统空间.CPU运行时发生错误则中断,中断后没有进程调度. 3. 软中断:中断后还执行其他进程调度. 4. 系统调用过程: