自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 收藏
  • 关注

软件项目的面向对象设计、开发及管理

免费讲座:软件项目的面向对象设计、开发及管理——外企真实项目案例分析讲座内容: 结合外企真实项目案例,探讨软件项目的标准开发流程,包括需求分析、架构设计、详细设计、实现、测试、部署、配置和变更管理及项目管理等。主讲人简介: 梁立新,外籍软件专家,具有十多年专业的软件开发、架构设计和项目管理的经验。毕业于中国科学技术大学,获硕士学位。之后留学于美国,获伊利诺依理工大学硕士学位。曾...

2009-05-31 15:41:00 75

从自己的角度比较《天书夜读》和《寒江独钓》

序本文节选自《寒江独钓》一书序言 早在一年前,谭文就和我谈过想写一本既能深刻介绍Windows内核架构,又能结合具体Windows驱动程序开发实例的书。在一年的时间中,谭文一直在构思酝酿。那时候他的《天书夜读——从汇编语言到Windows内核编程》已经出版,《天书夜读》所涉及的内容很广,但就如同书名一样,它的内容不太适合刚刚涉猎Windows内核编程的程序员,反而更像一本供黑客学习的读...

2009-05-31 08:43:00 84

面向对象设计(OOD)方法与步骤

尽管对OOD的地位和作用已经有一定的知识,但目前还没有现成的,形式化的方法论。相应的工具也处于研究之中。下面简要介绍OOD的基本方法和步骤 1.类的认定 OOD中关于类的认定与OOA中关于对象的认定有着密切关系。但是OOD中对类的认定,不能像OOA中那样以准确反映问题空间为衡量准则,更多的要考虑通过对类以及类层次结构的认定,寻找解空间的基本结构,并为实现提供有效的支持。 关于如何认定类现...

2009-05-30 02:14:00 417

面向对象设计(OOD)基本原理

OOD是在设计原理上与传统方法完全不同的一种新型的系统设计方法。 1.OOD的核心概念是对象 OOD既不是功能、也不是数据的分解过程;而是首先在现实世界中寻找、识别出影响用户解决问题、并必须进行操纵的对象;然后用计算机中的软件对象来仿真现实世界的对象和行为。 2.OOD的出发点是充分重视人工系统的作用 现实世界问题的解早已存在于人工系统中,人工系统总结了人们长期以来对客观问题如何进...

2009-05-30 02:13:00 246

从面向对象分析(OOA)到面向对象设计(OOD)

从OOA到OOD是对现实世界的进一步建模。从概念上,OOA主要是对现实世界的问题空间建模,其分析侧重于整体,较为粗糙(粒度较大)的研究。而OOD则要求对特定的解空间建模,通常OOD又可分为概要的(或总体的)OOD 和详细的OOD两个阶段。OOA是完全独立于编程语言,概要的OOD 仍保持较大部分独立于编程语言的特点、详细的OOD则与编程语言有密切关系。显然,若能采用面向对象的编程语言,会更有利于OO...

2009-05-30 02:12:00 234

面向对象的系统分析(三)-面向对象分析基本方法

OOA方法共分为五大步骤:标识对象,标识结构,标识主题,定义属性及定义服务。下面分别作一简要介绍。 1.标识对象 OOA中的对象实质上是类,它可定义为对数据和在其上执行操作的抽象,反映出一个系统为现实世界的事物保存信息及与其发生相互作用的能力;同时它也是属性的值以及这些属性上专有操作的封装。 可以用单个名词或形容词名词作为对象名,当然采用问题空间的标准名称作为对象名更好。如何定义对象来...

2009-05-30 02:11:00 317

面向对象的系统分析(二)-面向对象分析基本原理

OOA建立在信息模型和面向对象程序设计语言的概念基础上。从信息模型中提取了属性、关系、结构以及对象作为问题空间中某些事物的实例表示方法等概念;从面向对象程序设计语言中提取了属性和方法的封装、属性和方法作为一个不可分割的整 体、以及分类结构和继承性等概念。OOA方法可表示为: OOA方法=对象+类+继承性+基于消息的通信 OOA主要采用4条基本原理 1.抽象原理 在系统分析时,应忽略...

2009-05-30 02:06:00 148

面向对象的系统分析(一)-系统分析方法

面向对象的观点,首先是在程序设计语言中得到表达与实现。正如结构化程序设计的思想很快被用到系统分析与系统设计的方法中去一样,面向对象方法也很快引起系统分析方法论者的注意.在OOP蓬勃发展的80年代,面向对象的系统分析(OOA)和面向对象的系统设计(OOD)也开始发展起来。进入90年代以后,OOA和OOD的方法逐渐走向实用化,一些专家按面向对象思想,对系统分析和系统设计工作的步骤,方法,图形工具等进行...

2009-05-30 02:05:00 490

几种典型的面向对象开发方法

摘 要 自80年代后期以来,相继出现了多种面向对象开发方法,文章主要介绍了其中六种典型的面向对象开发方法,并对它们进行了比较。UML的出现意味着开发方法统一化、标准化的新发展,标志着软件自动化的进程又迈进了一步。关键字 面向对象开发方法 典型 比较一、引言随着计算机科学的发展和应用领域的不断扩大,对计算机技术的要求越来越高。特别是当计算机硬件有了飞速发展之后,各种应用领域对软件提出...

2009-05-30 01:59:00 281

OOD

面向对象设计(Object-Oriented Design,OOD)方法是OO方法中一个中间过渡环节。其主要作用是对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受。  面向对象设计(OOD)是一种软件设计方法,是一种工程化规范。这是毫无疑问的。按照Bjarne Stroustrup的说法,面向对象的编程范式(paradigm)是[Stroustrup, 97]:  l 决定...

2009-05-29 23:56:00 75

assert()和panic()

assert()和panic()先来看assert()。你或许早就开始使用这个函数,但之前你使用的都是现成的assert,只要包含一个头文件,就可以方便地使用。如今什么都得自力更生了,不过不用怕,写一个assert函数并非难事,见下面的代码:12 #define ASSERT13 #ifdef ASSERT14 void assertion_failure(char *exp, c...

2009-05-27 09:03:00 211

IPC

IPC是Inter-Process Communication的缩写,直译为进程间通信,说白了就是进程间发消息。我们在上一节中把这种消息传递比作邮政系统,但实际上这种比喻并不全对。有的消息机制是很像收发邮件的,这种叫做异步IPC,意思是说,发信者发完就去干别的了,收信者也一样,看看信箱里没信,也不坐在旁边傻等。而有另一种消息机制正好相反,被称为同步IPC,它不像邮寄,倒像接力赛,发送者一直等到接收...

2009-05-26 14:05:00 137

解密《一个操作系统的实现》这本书

解密《一个操作系统的实现》这本书 5月18日见到了《Orange'S:一个操作系统的实现》的样书,多少有些激动。想一想前一版本《自己动手写操作系统》是那么畅销,这一本一定不能含糊。整个出版过程我能看到作者于渊为此付出的努力,还在自己排版的过程有深入体会,通过于渊的讲座也让博文视点的员工分享到他在排版过程中的很多心得。 应该...

2009-05-26 09:08:00 122

进程间通信

我们提到过,当一个进程需要操作系统的帮助,它可以通过系统调用让内核来替它完成一些工作。迄今为止,我们已经熟悉了系统调用的工作机制,并且已经实现了不止一个系统调用。接下来你会发现,用户进程将会有更多事情依赖于内核。比如我们想实现一个文件系统,最起码读写硬盘的工作要求助于内核。这里我们可以逐渐地增加系统调用,但也可以采用另一种方案,就是将这些工作剥离出来,交给一些系统进程来完成,让内核只负责它必须...

2009-05-25 08:56:00 63

bashdb调试shell脚本

最近开始学bash shell,感觉不知道从何入手,不知道有什么好的工具软件包来学习它。先找一下:yao@wuyao:~$ apt-cache search bashapparix - console-based bookmark tool for fast file system navigationbackup-manager - command-line backup too...

2009-05-24 20:12:00 69

bashdb调试shell脚本

最近开始学bash shell,感觉不知道从何入手,不知道有什么好的工具软件包来学习它。先找一下:yao@wuyao:~$ apt-cache search bashapparix - console-based bookmark tool for fast file system navigationbackup-manager - command-line backup too...

2009-05-24 20:12:00 95

家乐福VS沃尔玛

家乐福VS沃尔玛本文不是广告帖,只是记述了我一周多遇到的真事。上周去沃尔玛买了一只钢笔,英雄牌,23.80元,笔还不错,与一小瓶的墨水包装在一起。本来是比较满意的,可是昨天去家乐福逛,无意中看到同样的钢笔,在家乐福卖13.60元,价差太大了。对沃尔玛很失望,定价差异太大了。也不想去退货,因为为了十来块钱来回折腾,人受不了啊。去年看到家乐福卖9.90元的书,却...

2009-05-24 16:25:00 89

书如其名,美哉!

书如其名,美哉!——博文视点展示图书专题电子快邮——读《美哉!Powerpoint——完美幻灯演示之路》有感 非常偶然,在西单图书大厦看到了这本书。当时自己在北京出差,正值事毕之后闲逛书城,满目琳琅,感叹书之海洋的同时,来到Office书架,翻阅了几本便觉得心情紧张,扑面而来的庞大信息量让我不免胆战心惊,人生有涯如何学得了这么多东西呢?抬头便看到“美哉”这本书,美哉两个字的字体与那个红球中白色的惊...

2009-05-22 14:18:00 66

如何搭建自己的开发环境

如何搭建自己的开发环境 好了,到这里相信读者已经知道如何搭建自己的开发环境了,说白了它跟开发一个普通的软件区别基本就在一个虚拟机上。它既是我们的“硬件”,又是我们的调试器,有了它我们安心多了。那是不是马上就可以开始我们的操作系统开发之旅了呢?很遗憾,还不能那么着急,因为你知道,操作系统是跟硬件紧密相连的,如果想实现一个运行在使用IA32架构的IBM PC上的操作系统,免不了要具备相关的知识...

2009-05-22 08:35:00 201

Windows下的开发环境

Windows下的开发环境 我们在介绍QEMU时提到过,在Windows下你需要一个虚拟的Linux来帮你编译操作系统的源代码。将操作系统内核编译链接成ELF格式有诸多好处,我们不但可以用Linux下现成的工具(比如readelf)来分析编译好的内核,还可以在必要时参考Linux内核的源代码来帮助我们自己的开发,总之这拉近了我们与Linux之间的距离。所以不要因为在Windows下也离不开Li...

2009-05-21 08:43:00 75

晕~!有是康联创想的东西~!不过用起来挺不错的~!

2009-05-20 16:19:00 44

GNU/Linux下的开发环境

GNU/Linux下的开发环境 在工作环境中,虚拟机是个重头戏,所以在本章的前面单独做了介绍。除了虚拟机之外,还有几样重要的东西,分别是编辑器、编译器和自动化工具GNU Make。 许多在Linux下工作的人会使用Vi或者Emacs作为编辑器。如果你有兴趣尝试,那么还是那句建议,“不要因为刚开始的不习惯而放弃”,因为它们的确是编辑器中的经典,而且和Linux一样,具有陡峭的学习曲线。许多人一旦...

2009-05-20 15:52:00 94

编写操作系统的平台之争:Windows还是*nix

平台之争:Windows还是*nix本文摘自于渊编写的《orange's:一个操作系统的实现》一书 读到这里,读者可能发现书中经常出现“如果你用的是Windows”或者“如果你用的是Linux”这样的字眼。有时这样的字眼甚至可能影响到你的阅读,如果真的这样请你原谅。我试图照顾尽量多的读者,但是对每一个人来讲,却必须面临一个选择──在什么平台下开发。本书第一版使用的是Windows平台,而在...

2009-05-20 08:16:00 88

EGLIBC库介绍

EGLIBC库介绍一、介绍1、概览扩充和增强GNU C库的功能,以支持各种不同环境的嵌入式系统,并维持开放的开发环境,鼓励开发者的广泛协作。2、免费软件的目标· 支持GNU项目的目标· LGPL许可证· FSF拥有版权3、设计目标· 提供一个选择,以减少磁盘和内存占用。· 支持交叉编译和交叉验证。· 支持用于嵌入式系统的处理器。· 组合支持处理器的特殊功能。· 保持API和ABI兼容。4、开发...

2009-05-19 17:24:00 70

水面下面的冰山

水面下面的冰山本文摘自于渊编著的《orange's一个操作系统的实现》一书 即便是非常袖珍的程序,也有可能遇到不能正确运行的情况,对此你一定并不惊讶,谁都可能少写一个标点,或者在一个小小的逻辑问题上犯迷糊。好在我们可以调试,通过调试,可以发现错误,让程序日臻完美。但是对于操作系统这样的特殊程序,我们没有办法用普通的调试工具来调试。可是,哪怕一个小小的引导扇区,我们也没有十足的把握一次就写好...

2009-05-19 14:21:00 114

操作系统编写之代码解释

操作系统编写之代码解释 其实程序的主体框架只是第2行到第6行这么一点点而已,其中调用了一个显示字符串的子程序。程序的第2、3、4行是3个mov指令,使ds和es两个段寄存器指向与cs相同的段,以便在以后进行数据操作的时候能定位到正确的位置。第5行调用子程序显示字符串,然后jmp $让程序无限循环下去。可能有很多人开始学汇编时用的都是MASM,其实NASM的格式跟MASM总体上是差不多的,在这段...

2009-05-19 14:19:00 99

操作系统编写之引导扇区

操作系统编写之引导扇区 你可能还没有从刚刚的兴奋中走出来,可是我不得不告诉你,实际上,你刚刚所完成的并不是一个完整的操作系统,而仅仅是一个最最简单的引导扇区(Boot Sector)。然而不管我们完成的是什么,至少,它是直接在裸机上运行的,不依赖于任何其他软件,所以,这和我们平时所编写的应用软件有本质的区别。它不是操作系统,但已经具备了操作系统的一个特性。 我们知道,当计算机电源被打开时,它会...

2009-05-19 14:17:00 119

限制软件使用时间

对于软件产品的试用版来说,限制软件使用是必不可少的。本文介绍如果限制使用时间。假设软件A可以免费使用3个月,那么要确定的是开始使用时间,结束时间1。确定开始使用时间。如下代码:#include "windows.h"#include "stdio.h"int main(int argc, char* argv[]){ SYSTEMTIME currentTime...

2009-05-19 13:57:00 436

限制软件使用时间

对于软件产品的试用版来说,限制软件使用是必不可少的。本文介绍如果限制使用时间。假设软件A可以免费使用3个月,那么要确定的是开始使用时间,结束时间1。确定开始使用时间。如下代码:#include "windows.h"#include "stdio.h"int main(int argc, char* argv[]){ SYSTEMTIME currentTime...

2009-05-19 13:57:00 409

十分钟完成的操作系统编写 你信吗?

十分钟完成的操作系统 你相不相信,一个“操作系统”的代码可以只有不到20行? Example 1. chapter1/a/boot.asm 1 org 07c00h ; 告诉编译器程序加载到7c00处 2 mov ax, cs 3 mov ds, ax 4 mov es, ax 5 call DispStr ; 调用显示字符串例程 6 jmp $ ; 无限...

2009-05-19 08:16:00 61

在酷热的就业天气寻找几丝凉意

在酷热的就业天气寻找几丝凉意邵志东谈程序员职业成长之路 5月17日 中午,中关村图书大厦5层多功能厅,博文视点大讲堂特邀《软件开发这点事—软件开发工具手册》的作者邵志东老师与读者进行了一场别开生面的专题讲座:在就业的冬天中寻找春意——程序员职业成长之路,现场反响颇佳,听众受益良多。 邵志东老师是微软最有价值开发者、微软中文网络广播最佳讲师,历任北京北大方正电子有限公司项目开发经理、...

2009-05-19 08:12:00 62

作者讲述《一个操作系统的实现》的故事

《Orange’s:一个操作系统的实现》作者自序 本书是《自己动手写操作系统》的第二版,通过一个具体的实例向读者呈现一个操作系统雏形的实现过程。有关操作系统的书籍资料可以找到很多,但是关注如何帮助读者实现一个试验性操作系统的书籍却不多见,本书便是从一个简单的引导扇区开始,讲述一个操作系统成长的故事,以作读者参考之用。本书面向实践,通过具体实例教读者开发自己的操作系统。书中的步骤...

2009-05-18 15:07:00 78

规则引擎:Drools与JRuleEngine

规则引擎:Drools与JRuleEngine译文:《规则引擎:Drools与JRuleEngine》译者:chszs作者:Vivek Tomar原文:《Rule engine : Drools / JRuleEngine》原文见http://www.naxos-software.de/blog/index.php?/archives/78-Rule-engine-Drools-JRuleEn...

2009-05-18 13:11:00 114

做真正Hacker 的乐趣──自己动手去实践

做真正Hacker 的乐趣──自己动手去实践本文是csdn总裁蒋涛先生为《orange's一个操作系统的实现》写的推荐序 2004 年我听编辑说有个年轻人写了本《自己动手写操作系统》,第一反应是不可能,恐怕是翻译稿,写这种书籍是要考作者硬功夫的,不但需要深入掌握操作系统的原理,还需要实际动手写出原型。历史上的Linux 就是这么产生的,Linus Torvalds 当时是一名赫尔辛基大...

2009-05-18 08:37:00 66

五月职场胜如火 Java讲座陪您过

五月职场胜如火 Java讲座陪您过 5月16日上午10点30分,由电子工业出版社博文视点公司邀请孙鑫老师在中关村图书大厦5层的多功能厅进行了一场与读者的见面会,回馈这么多年来一直支持博文视点和孙鑫老师图书的广大读者朋友。 孙鑫,程序员之家(www.sunxin.org)站长,著名IT培训专家,10年软件开发和教育培训经验,培训学员数千人,就业于微软、IBM、华为、东软、中软、联想、神州数码等...

2009-05-18 08:32:00 87

C#基础谈(三)---- 从"Hello World"说起

接着上一讲,我们新建了一个名为"CSharpBasic"的控制台工程,首先看一下VS中的代码编辑区域,默认打开的是Program.cs这个文件,VS为我们自动添加的代码如下(由于我是用VS2008新建的,所以引入的命名空间与VS2005有所不同):using System;using System.Collections.Generic;using System.Linq;usi...

2009-05-17 20:09:00 120

假如Intel不理会,欧盟会怎样?

假如Intel不理会,欧盟会怎样?在成功迫使微软的鲍尔默放弃上诉,乖乖上缴8.99亿欧元罚款一年后,“铁娘子”内莉·克勒斯·斯米特再度刷新她的罚款纪录。这次,她开出一张10.6亿欧元的罚单,把它投向全球最大的芯片公司Intel。这是欧盟与英特尔8年交手后的结果。这笔创下欧盟反垄断罚款金额之最的钱,相当于英特尔去年全年净利润的三成。但一位不愿具名的渠道代理商认为,英特尔与AMD的实力相差悬殊,A...

2009-05-16 20:00:00 81

IRP请求的完成与返回

IRP请求的完成与返回 每当完成了一个以IRP为代表的I/O操作请求的时候,就要执行IRP的善后操作IoCompleteRequest(),这是个宏操作,定义为函数IofCompleteRequest()。#define IoCompleteRequest IofCompleteRequest 如前所述,以IRP为代表的I/O操作请求的执行可以是同步的,也可以是异步的,所以一个I/O操作请求的...

2009-05-15 14:45:00 98

Windows之磁盘的设备驱动堆叠

磁盘的设备驱动堆叠本文节选自《Windows 内核情景分析--采用开源代码ReactOS》一书 读者已经在前几节中看到,设备的驱动常常分成“类设备驱动”和“端口设备驱动”两层。例如鼠标器就成为一个设备的类,而具体又有PS/2鼠标器、串口鼠标器以及基于USB的HID鼠标器,所以鼠标器的驱动就分为一种类设备驱动和三种端口设备驱动。其中PS/2鼠标器的端口驱动是直接与硬件打交道的。不过端口驱动也...

2009-05-15 09:08:00 123

侦探过滤驱动

侦探过滤驱动本文节选自《Windows 内核情景分析--采用开源代码ReactOS》一书 至于过滤驱动,则依附于类驱动或端口驱动,目的在于拦截类设备驱动与端口设备驱动之间的信息,以实现某些统计、监视、修改乃至重定向的操作。例如,假定要求对存储在磁盘上的信息进行加密,那么由端口驱动写入磁盘以及从磁盘读入的数据就都应该是已加密的,而上面的类驱动却只能按正常的算法进行处理,此时就可以在二...

2009-05-14 14:56:00 67

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除