随笔分类 -  软件工程

软件工程
摘要:第六章 AOP开发实践一、什么是AOP?AOP是Aspect Oriented Programming的简写,中文通常译作面向方面编程,其核心内容就是所谓的“横切关注点”。1. OO是纵向结构的使用面向对象方法构建软件系统,我们可以利用OO的特性,很好的解决纵向的问题,因为,OO的核心概念,如继承等,都是纵向结构的。2. AOP的目标􀁺 但是,在软件系统中,往往有很多模块... 阅读全文
posted @ 2009-01-19 10:19 湘西小刁民 阅读(906) 评论(0) 推荐(0)
摘要:第五章 设计模式与软件架构设计一、面向对象软件架构设计思想a) 面向对象范式 i. 面向对象范式的核心是“对象”的概念 ii. 所有的东西都聚焦于对象 iii. 围绕对象-而非函数-组织代码b) 对象从不同视角观察 i. 概念层:一个对象是一系列责任 ii. 规格层:一个对象是一系列可以被其他对象或该对象自己调用的方法 iii. 实现层:一个对象是一些代码和数据c) 设计原... 阅读全文
posted @ 2009-01-18 23:37 湘西小刁民 阅读(1127) 评论(2) 推荐(0)
摘要:第四章 如何描述和评估软件架构质量一、软件的质量建模软件质量的重要性是不言而喻的,但是当所有人都意识到它的重要性的时候,却很少有人能够清晰的描述出如何才能够提高软件质量。软件质量框架的目的就在于提出一个评价的原型,帮助我们分析一种方法和技术是否能够提高软件质量。合理进度、成本、功能关系。软件开发中所有的管理都是围绕着这几个要素在做文章的,如何在特定的时间内,以特定的成本,开发出特定功能的软件。三者... 阅读全文
posted @ 2009-01-08 22:35 湘西小刁民 阅读(402) 评论(0) 推荐(0)
摘要:第三章 软件架构风险管理一、如何识别软件架构的风险1. 需求的不断变化2. 架构师对于技术理解不足3. 缺乏对行业的研究4. 经验不足5. 创造性的架构比重比较重6. 没有形成一套构架的规范7. 架构可执行性差二、如何规避软件架构风险1. 固化需求2. 完善的业务原型3. 完整架构规范4. 验证架构的可执行性5. 80%的经验架构+20%的创新架构三、软件架构风险管理与控制1. 风险管理过程a. ... 阅读全文
posted @ 2009-01-04 19:11 湘西小刁民 阅读(415) 评论(0) 推荐(0)
摘要:第二章 软件架构文档设计一、软件配置管理(SCM)1. 配置管理的基本概念a. 概念a. ISO 9000-3 :1997配置管理是一个管理学科,它对配置项(包括软件项)的开发和支持生存期给与技术上的和管理上的指导。配置管理的应用取决于项目的规模、复杂程度和风险大小。b. W.Babich 的解释软件配置管理能协调软件开发,使混乱减少到最小。软件配置管理是一种标识、组织和控制修改的技术,目的是最有... 阅读全文
posted @ 2009-01-02 19:08 湘西小刁民 阅读(643) 评论(0) 推荐(0)
摘要:最近从CSDN的下载频道上DOWN下了一份高级软件架构师讲义,将阅读时做的笔记发上来。有兴趣的朋友可以去CSDN的下载频道搜搜“高级软件架构师”应该就可以看见。第一章架构师与设计师面向对象应用建模(Application Modeling)的实践过程有3个阶段:1. 有步骤、分层次地演进系统构架2. 将软件需求逐渐转变为软件的设计方案3. 保障软件的设计方案能够适应实施环境... 阅读全文
posted @ 2008-12-29 17:10 湘西小刁民 阅读(809) 评论(0) 推荐(0)
摘要:十五 另外一面 不要再强调文档重要性,而是放在如何做上使用程序文档内容:目的环境范围算法输入输出选项精度测试程序输入数据范围:一大多数常规数据二较少合法边界数据三较少非法数据修改程序流程图结构图算法描述,文件规划,数据流一页纸的流程图最佳自文档化,把文档与源程序整合到一块 软件开发中最困难的部分是规格说明、设计和测试这些概念上的结构,而不是对概念进行表达和对实现逼真程度进行验证现软件系统中... 阅读全文
posted @ 2008-10-10 22:37 湘西小刁民 阅读(190) 评论(0) 推荐(0)
摘要:里程碑必须是具体的、特定的、可度量的事件、能够进行清晰定义。 慢性进度偏移是士气杀手,关心每一天的滞后,它们是大灾祸的集累。 只有采用PERT或关键路径技术才能判断哪些进度偏离是关键的有两种方法可以将项目经理的进度偏离问题揭示在老板面前,一减少角色冲突和鼓励状态共享,二猛地拉开地毯 阅读全文
posted @ 2008-09-21 22:35 湘西小刁民 阅读(150) 评论(0) 推荐(0)
摘要:十三整体部分 在编写任何代码前,规格说明必须提交给测试小组,以检查说明的完整性和明确性 细致的功能定义、仔细的规格说明、规范化的功能描述说明以及这些方法的实施,大大减少了系统中必须查找的BUG数量 好的自顶而下设计从几个方面避免了BUG: 1.清晰的结构化表达更容易对需求和模块功能进行精确描述 2.模块分割和模块独立性避免了系统级的BUG 3.细节的抑制使结构上的缺陷更加容易识别 4.设计... 阅读全文
posted @ 2008-09-11 22:34 湘西小刁民 阅读(164) 评论(0) 推荐(0)
摘要:八 胸有成竹 项目工作量随项目规模的增长成指数幂增长: 工作量(人月)=常数*指令的数量1.5次幂) 简要地说:大型项目意味着程序员的数目超过25人,将近30000行代码(汇编语言) 使用适当高级语言,编程的生产率可以提高5倍(相比汇编语言) 九 削足适履 取得良好的空间-时间折衷: 1.确保程序员在编程技能上得到培训,特别是使用新机器新语言时 2.认识到编程需要技术积累,开发公共... 阅读全文
posted @ 2008-09-08 22:32 湘西小刁民 阅读(199) 评论(0) 推荐(0)
摘要:为了获得概念完整性,为了反映一系列连贯设计思路,宁可省略那些不规则的特性和改进,也不提倡独立和无法整合的系统。 是否要有一位拥有贵族特权的结构设计师和一群创造天赋被压制的平民编程人员? 少数人拥有结构设计的“贵族权限”是确保概念完整统一的重要保证 第一个项目不断产生的装饰和润色功能被搁置在一边,作为“下一个”项目的内容,画蛇添足使得第二个系统是设计师们所设计的最危险的系统。险的系统。 阅读全文
posted @ 2008-09-06 22:29 湘西小刁民 阅读(153) 评论(0) 推荐(0)
摘要:功能和易用性之间要达到平衡,系统的概念完整性决定了使用的容易程度 不能与系统基本概念进行整合的良好想法和特色,最好放到一边,不予考虑。如果出现了很多非常重要但不兼容的构想,就应该抛弃原来的设计,对不同基本概念进行合并,在合并后的系统上重新开始 概念的完整性要求设计必须由一个人,或者非常少数互有默契的人员来实现。而进度压力却要求很多人员来开发系统。有两种方法可以解决这种矛盾。第一种是仔细地区... 阅读全文
posted @ 2008-09-05 22:23 湘西小刁民 阅读(193) 评论(0) 推荐(0)
摘要:暑假即将全面展开的项目需要版本库的支持,ClearCase过于庞大,CVS不足太多,我们决定才用Subversion。但是普通安装的Subversion不能管理用户的权限,这一点老师肯定不能容忍。查找了下资料Subversion还有一种结合Apache的工作模式通过WebDAV/DeltaV协议访问Repository,这时版本库地址头就不是svn://了而是http://,借用Apache管理U... 阅读全文
posted @ 2007-07-25 22:58 湘西小刁民 阅读(328) 评论(0) 推荐(0)
摘要:今天在试验室做了版本控制相关只是的报告,内容摘录下来做个记号,当然其实都是从这几天浏览的文章里提取出来的。 版本控制概念版本控制(Revision control)是一种软件工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新。 版本控制更易理解的名称:源代码控制源代码控制系统是一个必须能管理那些在软体计划发展时源代码所做的改变。软体开发者需要一个完整的源代码改变历史纪录, 以便於... 阅读全文
posted @ 2006-07-22 22:56 湘西小刁民 阅读(191) 评论(0) 推荐(0)