在我们做的代码设计中分为系统设计和程序设计。程序设计是系统设计中模拟程序的执行逻辑,定义客户机服务器对象合作的框架的那个部分。程序和事务设计中,作者讲述到程序和事务设计将系统设计制品放在一起,并作为系统设计过程的最终阶段。

程序设计是系统设计的一个内在的部分。图形用户界面(GUI)和数据库的设计体现出了一个框架的前段和后端。而我们的程序设计就是填充在这框架中间的空缺,并将它转换为可以交给程序员去进行开发的设计文档。那么,怎么样的程序被称为一个好的程序呢。首先,一个好的程序设计要保证类的内聚和耦合的良好平衡。就像之前所说的好的内聚意味着弱的耦合,反过来一个号的耦合意味着弱内聚。所以我们要做的就是让着两者之间达到一个好的平衡。作者接着就为我们讲述了一系列方法来让我们进一步不断的做好,并且通过实例说明。在处理好内聚和耦合的平衡之后,我们就要设计客户机与我们的服务器之间的合作。为了数据和数据库的交互,客户机程序必须使用类似于sql语言的语句来存储和修改数据。而sql可以用五种不同的形式出现并可以用于程序抽象的不同层次上。每一个层次用相同的也有各自的优点。说老说去,也就是对数据的存储之类的功能。触发器,是一种特殊的存储过程,他不能被调用。他在一个数据库表上发生的插入、更新或删除等事件时将他们自己触发。这就 以为这每个数据库表可以最多有三个触发器。在我们进行程序设计的时候,有了数据库的出现我们的对象就自然而然的增加了不少,并且其合作交互也变得复杂了许多。而我们,就不能仅仅是依靠窗口导航图了,而要扩展为更为完整的程序导航图。为了实现一个完整的程序导航图,我们需要对UML的活动图增加服务器端的构造型。而且构造型必须考虑数据库管理系统(DBMS)模型或者甚至是特定的DBMS的特性。除了讲到程序设计,事务设计也是必不可少的。失误是工作的一个逻辑单位,它包含一个或多个由用户执行的sql语句。事务也是数据库一致性的单位,数据库的状态在事务完成之后还是一致的。为了保证这个一致性,DBMS的事务管理有两个作用:数据库回复和并发控制。而事务又分为短事务和长事务。传统的数据库应用要求短事务,一些新的数据库应用则用长事务来工作。

变化管理是整个项目管理的基本方面,变化请求必须记录在案,每个变化对开发制品的影响都必须跟踪,并且在变化实现之后要进行测试。关于测试呢一共分为系统服务测试和系统约束测试两种。系统服务测试可以是基于非执行的或基于执行的。基于非执行的测试包括走查和检查。而基于执行的测试可以是针对规格说明的测试或针对代码的测试;系统约束的测试包括大量的完全不同的测试,它们关系到像用户界面、数据库、授权、性能等等。系统约束测试是与系统服务测试并行进行的,另外一些则是独立完成的。测试和变化管理要求特定的文档,如测试计划、测试用例文档、故障和改进文档等。测试需求在测试文档中表示,并且被连接到用例文档中的用例需求。请求变化一般要么是故障要么是改进。一个变化管理工具用于变化请求的提交并保存它的轨迹,就跟开发者对待它一样。

总结这本书所讲,首相让我知道了一个软件项目的开发需要经历的过程和过程中用到的辅助工具。还有对于项目规划我们可以采用什么样的方法,并且对于软件项目生命周期的认识和理解。然后作者用了好几章的内容讲需求,从需求的分析,需求的不断变更,确定以及需求规格的说明。由此可以看出对于我们软件工程师来说,需求对于我们来说是无时无刻不缠绕着我们的,对于需求的分析我们一定要熟知熟练。而后面的内容,作者则是根据我们开发软件项目的时候不同领域,不同阶段的东西给我们进行讲解。总的来说,在读这本书的时候,自己一直在学习新的不知道的东西。对我们软件项目的开发有了一个大致的理解,这对于我现在、以后做东西的完美性来说毫无疑问是一个强大的理论基础。

《UML大战需求分析》阅读随笔(六)的更多相关文章

  1. <<UML大战需求分析>>阅读笔记(2)

    <<UML大战需求分析>>阅读笔记(2)> 此次读了uml大战需求分析的第三四章,我发现这本书讲的特别的好,由于这学期正在学习设计模式这本书,这本书就讲究对uml图的利用 ...

  2. uml大战需求分析阅读笔记01

    <<UML大战需求分析>>阅读笔记(1) 刚读了uml大战需求分析的第一二章,读了这些内容之后,令我深有感触.以前学习uml这门课的时候,并没有好好学,那时我认为这门课并没有什 ...

  3. UML大战需求分析--阅读笔记01

    本次阅读的书籍是<UML大战需求分析>,看了前两章的内容:1 大话UML,2绞尽脑汁的需求分析.这两章内容关联不大,分开描述. 第一章:大话UML 本章主要概述UML是什么,有什么内容.U ...

  4. UML大战需求分析——阅读笔记04

    读<UML大战需求分析>有感04 开发某系统的重要前提是: 这个系统有谁在用? 这些人通过这个系统能做什么事? 一般搞清楚这件事,再画个业务流程图,就能条例清楚的表达系统的需求了.作为一个 ...

  5. UML大战需求分析——阅读笔记03

    读<UML大战需求分析>有感03 状态机图和活动图在样子比较相似,但状态机图是用来为对象的状态及造成状态改变的事件建模.我们大二学习UML统一建模语言状态机图模块时了解到,UML的状态机图 ...

  6. UML大战需求分析阅读笔记2

    全面深入理解客户的业务,才能帮助我们准确的把握客户的需要.而在理解客户业务的同时,我们往往需要做业务流程再造(BPR:Business Process Reengineering)的工作.BPR简单说 ...

  7. UML大战需求分析阅读笔记1

    UML这三个字母的全称是Unified Modeling Language,直接翻译就是统一建模语言,简单地说就是一种有特殊用途的语言.你可能会问:这明明是一种图形,为什么说是语言呢?伟大的汉字还不是 ...

  8. UML大战需求分析--阅读笔记02

    这次阅读了第三章--类图.本章主要讲解了类图的基本使用规则和一些使用的例子.类图是UML中非常重要的一部分,作用很大. 类图之间有五种关系:关联关系,聚合关系,组合关系,泛化关系,依赖关系.关联关系有 ...

  9. UML大战需求分析——阅读笔记02

    类图是理解面向对象思想的强有力工具,也是业务概念模型分析中最常用的一种UML图.对开发人员来说,并不是对每一个业务流程都很熟练,在客户那里传达过来的需求资料中,有很多术语会把思绪搞晕,他们之间错综复杂 ...

  10. 《UML大战需求分析阅读笔记》05

    在需求分析的阶段,非功能需求也是十分重要的一个阶段.部署图和构件图就能很好的描述非功能需求. 部署图从硬件的角度.物理层次上进行系统的整体规划,包括当前的IT架构以及改造后的IT构架,包括:Node: ...

随机推荐

  1. Intellij Idea/Webstorm/Phpstorm 版本控制忽略文件

    本地差异化配置,不需要提交,这时候需要在整个版本控制中忽略掉文件的提交. File -> Settings -> Version Control -> Ignored Files

  2. String字符串针对常量池的优化

    String对象是java语言中重要的数据类型,但是不是基本数据类型.相对于c语言的char java做了一些封装和延伸. 针对常量池的优化:当两个String拥有相同的值时,它们只引用常量池中的同一 ...

  3. Apache Curator: Zookeeper客户端

    Apache Curator Framework url: http://curator.apache.org/curator-framework/ The Curator Framework is ...

  4. jQuery学习过程问题笔记

    1.  jQuery中,$('selector').click(function(){})和用bind绑定:$('selector').bind('click',function(){})有什么区别? ...

  5. maven+ssm+cxf3配置例子

    以下只是简单记录 ssm结合cxf3的配置 提供方配置::: pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0&quo ...

  6. 学习 opencv---(8)非线性滤波:中值滤波,双边滤波

    正如我们上一篇文章中讲到的,线性滤波可以实现很多种不同的图像变换.然而非线性滤波,如中值滤波器和双边滤波器,有时可以达到更好的实现效果. 邻域算子的其他一些例子还有对 二值图像进行操作的形态学算子,用 ...

  7. c/c++中关于sizeof、strlen的使用说明

    sizeof: 一般指类型.变量等占用的内存大小(由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小) strlen: c字符串的长度(参数必须是字符型指针 char*,当数组名作 ...

  8. BZOJ 3288: Mato矩阵

    Description 一个 \(n*n\) 行列式,\((i,j)=gcd(i,j)\) Sol 线性筛. 这道题神奇的筛出来 \(phi\) ... 打表可以发现,一个数会被他所有的因子减掉因子的 ...

  9. python random模块

    random.random() 返回[0,1)之间的浮点数 random.randrange(stop)  /  random.randrange(start,stop[,step]) 返回[0,st ...

  10. 通过rsync+inotify实现数据的实时备份

    我讲到过利用rsync实现数据的镜像和备份,但是要实现数据的实时备份,单独靠rsync还不能实现,本文就讲述下如何实现数据的实时备份. 一.rsync的优点与不足 与传统的cp.tar备份方式相比,r ...