系统建模UML建模与C#软件编程设计有关系么?

  文章写到这里,我一直在犹豫是继续写针对中小型框架的设计还是写些框架设计上的进阶方面的内容?对于中小型系统来说,只要将前面的内容进行一下细化,写上二三十章具体开发上的细节,来说明这个通用框架怎么开发的就已完全足够了,因为对于中小型系统来说,并不是很复杂,简单的了解三层架构就已经够用了,而使用太多的设计反而有点罗嗦,因为基本上没有什么人会为中小型系统花费太多的设计工作。而对于设计大型平台的框架设计,又深深感到自己的积累还远远不够,写出来怕会误导大家。但不换个思维来讲述也很难说清框架的设计思想,别人拿到一个框架源码后,也很难让人能清晰的理解这个框架到底是什么东东,怎么去改造它。所以只能抱着和大家共同学习的心态,来抛砖引玉,希望能更好的总结一下自己的学习成果,当然有些观点并不一定是正确的,也希望大家能直接拍砖指出来。
  很多朋友看到标题可能会很奇怪,为什么弄一个开发框架首先要做的是建模?建模就能做一个框架出来吗?直接的人可能会说,这个2B,设计一个开发框架讲解的核心应该是三层、五层架构,每个层应该有什么用处,他们之间该如何解耦如何协作调用......
  如果以前有人告诉我设计一个框架这样做的话,我也会觉得弄一个开发框架搞得这么复杂做什么,直接弄几个层和工具类出来,然后写一些常见功能不就行了。
  实际上写本系列以来,理论部分一直在琢磨怎么才能用更通俗易懂的方式讲解出来,像前面章节一样直接从三层架构去讲,只能很简单的说明他们之间的关系,但为什么设计出来的是这样的框架而不是那样的?前面章节所做出来的框架能直接用在网站后端管理上,但如果作为电商平台、OA、CRM、供应链......等软件框架时行不行?会不会存在问题?要如何去改善?如果开发的框架用于电商平台,当访问流量增大,想要增加服务器做分布式、负载均衡进行数据分流时,是在现有框架上改造令它支持还是设计一个新的架构呢?要如何改造或如何设计?设计好的架构支持什么样的业务?如何让需求提供者(未技术人员)能更早的参与到架构设计进来?如何尽早发现系统框架的瓶颈?怎么从设计层就能解决众多的问题?如何让新入职人员快速理解并掌握整个框架知识,快速加入开发的队列中?如果避免核心技术只把握在某一个或几个人员手中,当这些人中有人离职后其他人员无法快速接手的问题?设计的系统能否根据业务拆分为一个个独立的模块,让测试人员提前加入到项目中,提升项目的质量?拆分的模块如何统一起来?......越想问题就越多,怎么去描述都讲不到点上。
  经过知识的不断积累,慢慢意识到一直以来使用的都是面向过程的方法来分析需求,在做项目或设计架构时,都是为了功能而设计,为了设计而设计,并不知道其所以然。如果想做出的框架对于项目来说能做到适用,刚好合适,那就需要真正的去分析需求,根据用户实际的需求以及发展方向来设计架构,它是面向对象的,使用用例或领域来驱动设计,为特定需求而定制设计出来的系统,而不是做出来的架构功能过多或未达到设计要求,或者用上一段时间后整个架构甚至数据表都得推倒重来。
  当然上面所说的都是理想状态下设计出来的系统,而实际工作中大家开发中的架构或平台,面对每一次大版本的更新都是欲仙欲死的,呵呵......很多时候都得大动手术,进行大改造。
UML、架构与框架的关系
  度娘上说:
  Unified Modeling Language (UML)又称统一建模语言或标准建模语言,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。
  软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口来实现。
  对于框架来说,就是已做好的钢筋混凝土结构建筑物,里面可以建各个功能的停车场、商场、酒店、饭店、商住房......
  架构对于框架来说,它就是绘出好的建筑图纸,它描述建筑物的外部形状、内部布置、结构构造、内外装修、材料做法以及设备、施工等各种图样。而UML就是在这些图纸上所绘制的各种形状的图形(符号)。
  有很多朋友会说,我不用UML、不懂架构一样开发出一套套不同功能的框架,干码要学这么多,能做出来不就行了呗。的确是这样的,对于功能简单、中小型的项目,或自己已做过很多类似框架的架构来说,直接编码是一个不错的选择。而对于一个大型的,或复杂程度很高的,或高风险的,或你完全不熟悉的领域的项目来说,开发前先做好相关的设计工作,能帮助你降低项目失败的风险。
  框架不是万能的,不是什么系统都适用,就算是通用的管理权限框架,也有它的局限性。就比如本系列前面章节所开源的框架代码,权限管理模块相对来说比较强大,但也存在着各种弊端。比如说将它用于一个简单的企业Web站,它属于过渡设计了,多了很多不必要的功能,让开发变得复杂;而对于一个企业管理软件来说,它的权限粒度还不够细,比如需要实现对于不同角色的人需要展示不同的内容列表就没有实现到;底层应用的ORM框架也限制了只能使用MsSql数据库;UI层执行效率慢......所以我们在设计时,要有针对具体的需求来设计不同的架构,合适才是最好的,而不是无论何时都追求最强大的。
  架构好比一个软件的骨架,不同的设计适合不一样的领域,就好像小鸟的骨架适合飞翔,豹子的骨架适合奔跑一样,如果设计好的架构要强硬的去改变它适合其他领域,不是不可以,这会增加很大的难度,就好像想让小鸟变得像豹子一个可以奔跑,又可以飞翔一样。
  在实际的开发过程中,很多项目不是你一个人就能单独完成的,在团队协作开发中,如何能让大家都明白你的意图,能配合你将项目开发出来,就需要借助相关的工具(UML或其他建模语言),简单的绘制出业务用例、各种视图和模型,来帮助大家理解与配合。
  对于大中小型不同的项目来说,花费在架构设计上的时间都是不同的,据巴利&玻姆(Barry W. Boehm&&软件工程估算模型COCOMO模型之父、软件过程螺旋式模型之父)所计算,对于小项目只需投入5%左右的时间;大中型项目需要点总时间的33%~37%的时间;而超大型项目,则需投入40%的时间。
建模应用在实际开发中所带来的好处
  1、让非技术人员提前理解所开发出来的系统能处理的业务内容
  对于非技术人员来说,他们看不懂各种代码,而业务用例则可以让他们提前理解将要实现的功能是什么,是不是他们想要的内容。
  2、让测试人员能提前参与到项目中
  当模型创建完成并讨论通过后,相关的测试人员就可以开始编写测试用例,以及相关的自动化测试接口,让开发人员提交了解测试的内容与思路,可以提前参与到测试当中,并为测试提供更多的意见与角度,提升程序的质量,另外当程序完成开发后,也能马上运行自动化测试代码,加快测试进度。
  3、让开发人员对所要开发的项目有更深入的了解
  对于大多项目来说,除了架构的设计者这外,其他开发人员对于软件框架了解只是一知半解,只熟悉自己那一块的工作,对其他模块了解并不太深。这就造成很多沟通上的障碍,就算让他负责更多的功能模块开发,也只是让他了解太更多一点而已,当软件架构的功能限制对业务扩展的支持,需要改造软件架构时,几乎没几个开发人员敢去随便修改底层框架代码,这主要原因就是对自己架构并不了解,怕改动后影响其他模块的正常运行。而有成熟的架构文档,这将帮助开发人员了解软件框架的运行机制,各模块、组件之前的关系,让他们有能力有条件有信心去对软件框架进行改造。
  4、让新加入的开发人员更容易了解项目
  一位新成员加入开发团队时,最头痛的就是怎么快速接手项目,投入到开发中去,而有了相关的架构模型,,开发人员可以简单的通过查看架构模型和对应的文档,快速的了解整个开发框架和其技术要点。
  还有其他很多好处这里就不一一诉说了。
&版权声明:  本文由AllEmpty原创并发布于博客园,欢迎转载,未经本人同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。如有问题,可以通过 联系我,非常感谢。
  发表本编内容,主要是为了和大家共同学习共同进步,有兴趣的朋友可以加加Q群: ,大家一起探讨。
  在佛山工作的朋友也可以加入:佛山IT朋友群 ,大家可以共享资源共同进步,有空大家可以约出来认识一下,交流一下技术,哈哈
  更多内容,敬请观注博客:
阅读(...) 评论()您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
UML系统建模及系统分析与设计电子教案王欣 第1章 面向对象软件开发方法.ppt 132页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:100 &&
你可能关注的文档:
··········
··········
UML系统建模及系统分析与设计 王欣
中国水利水电出版社 第1章
面向对象软件开发方法 教学目的 ⑴ 了解软件的发展和软件工程的概念。 ⑵ 了解软件开发的常用方法。 ⑶ 重点掌握面向对象技术的基本概念和开发过程。 ⑷ 了解几种典型的面向对象开发方法。 ⑸ 了解可行性研究方法。 ⑹ 掌握可行性分析报告的书写格式。 1.1软件发展与软件工程 软件是一种特别的产品,随着其规模和复杂性的进步及应用领域的扩大,逐渐形成了工程。 软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分,它包括程序(program)、相关数据(data)及其说明文档(document)。 1.1软件发展与软件工程 软件工程(Software Engineering,简称为SE)是针对软件这一具有特殊性质的产品的工程化方法。 软件工程涵盖了软件生存周期的所有阶段,并提供了一整套工程化的方法来指导软件人员的开发工作。 1.1.1 软件的发展与特征 1. 软件的发展阶段 软件发展的历史可以大致分为如下的四个阶段: 第一个阶段(20世纪50年代到60年代)是程序设计阶段,基本是个体手工劳动的生产方式。20世纪50年代,软件伴随着第一台电子计算机的问世诞生了。以写软件为职业的人也开始出现,他们多是经过训练的数学家和电子工程师。 20世纪60年代美国大学开始有计算机专业,专门教人们写软件。 早期的软件开发也没有什么系统的方法可以遵循,软件设计是在某个人的头脑中完成的一个隐藏的过程。 1.1.1 软件的发展与特征 1. 软件的发展阶段 第一个阶段严格来说这个时期尚无软件的概念,基本上只有程序、程序设计概念,不重视程序设计方法。 软件主要是用于科学计算,规模很小,采用简单的工具(基本上采用低级语言),硬件的存储容量小,运行可靠性差。 20世纪中期,盘算机从军用领域转向民用领域应用,那时编写程序的工作被视为艺术家的创作。 第一阶段的主要特征是: ⑴
程序设计只是一个隐含在开发者头脑中的过程,程序设计的结果,除了程序流程图和源程序清单可以留下来之外没有任何其他形式的文档资料保留下来。 ⑵ 此时只有程序的概念,没有软件的概念。 ⑶ 主要采用汇编语言,甚至是机器语言,以解决计算机内存容量不够和运算速度太低的矛盾。由于过分追求编程技巧,程序设计被视为某个人的神秘技巧,程序除作者本人外,其他人很难读懂。 1. 软件的发展阶段 第二阶段(20世纪60年代到70年代)是软件设计阶段,采取小组合作生产方式。 这一时期盘算机的利用领域得到进一步扩大,对软件系统的需求和软件自身的复杂度急剧上升,传统的开发方法无法适应用户在质量、效率等方面对软件的需求。 人们为摆脱汇编语言和机器语言编程的困难,相继研制出了一批高级程序设计语言,大大加速了计算机应用普及的步伐,各种类型的应用程序相继出现。 1. 软件的发展阶段 第二阶段软件开始作为一种产品被广泛使用,出现了“软件作坊”。“ 这个阶段的开发成本令人吃惊地高,而失败的软件开发项目却屡见不鲜。最为突出的例子是美国IBM公司于1963年~1966年开发的IBM360系列机的操作系统。IBM360操作系统的历史教训已成为软件开发项目中的典型事例被记入历史史册。“软件危机”就这样开始了。 “软件危机” “软件危机”使得人们开始对软件及其特性进行更深一步的研究,人们改变了早期对软件的不正确看法。早期那些被认为是优秀的程序常常很难被别人看懂,通篇充满了程序技巧。 为解决这个问题,1968年秋季NATO(北大西洋公约组织)的科技委员会召集了近50名一流的编程人员、计算机科学家和工业界巨头讨论并制定摆脱“软件危机”的对策。在联邦德国召开的这次国际学术会议上第一次提出了“软件危机”(software crisis)。 “软件危机” 软件危机指的是在计算机软件的开发和维护过程中所遇到的一系列严重问题。 概括来说,软件危机包含两方面问题:一是如何开发软件,以满足日益增长,日趋复杂的需求;二是如何维护数量不断膨胀的软件产品。 第二阶段阶段的主要特征 ⑴
由于程序的规模增大,程序设计已不可能由个人独立完成,而需要多人分工协作。软件的开发方式由“个体生产”发展到“小组软件作坊”。 ⑵ 程序的运行、维护也不再由一个人来承担,而是由开发小组承担。 ⑶ 程序已不再是计算机硬件的附属成份,而是计算机系统中与硬件相互依存、共同发挥作用的不可缺少的部分。在计算机系统的开发过程中,起主导作用的已经不仅仅是硬件工程师,同时也包括软件工程师。 1. 软件的发展阶段 第三个阶段(20世纪70年代到90年代)采用工程化的生产方式,是传统软件工程阶段。 微处理器的出现与应用使个人计算机发展迅速,这个阶段的硬件向超高速、大容量、微型化以及网络化
正在加载中,请稍后...UML和程序开发之间有什么的关系_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
UML和程序开发之间有什么的关系
UML是一种用于软件开发过程中进行分析设计的统一建模语言,它可以涵盖整个软件开发过程,可以进行需求分析,系统分析,设计,测试,部署等过程!利用UML标准进行建模的实现需要通过专业的UML建模工具进行,比如trufun plato UML2建模工具!
总之它是非常有效地工具,而不能告诉你如何去实现程序,以及对象之间为了完成某个任务,比如程序初始化,如何共同协作的。以及程序间各个状态的转换等等,所以还有各种各样的方法学。UML就是一种工具,用于分析程序中存在的对象。但是它仅仅是提供了蓝图UML是提供一种面向对象的设计视图,就像建大楼的蓝图一样
为您推荐:
其他类似问题
您可能关注的内容
uml的相关知识
等待您来回答&>&UML对象设计与编程PDF
UML对象设计与编程PDF
上传大小:7.02MB
详细介绍类与类之间的关系,深入理解面向对象设计思想,强力推荐
综合评分:4.4(11位用户评分)
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var q = $("#form1").serializeArray();
console.log(q);
var res_area_r = $.trim($(".res_area_r").val());
if (res_area_r == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
var mess = $(".res_area_r").val();
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, _username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click",'.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
$(".res_area_r").val($.trim($(".res_area").val()));
评论共有5条
别人推荐的,挺不错的
资源下载很方便,每种不足的就是,清晰度不够高啊
这本书我在图书馆没找到,幸好在这里找到了,很赞
终于找到了
作者的实战经验非常足,讲解偏重实用主义.
审核通过送C币
广东工业大学考研真题及答案整理汇总
创建者:qq_
上百套精品PPT模板专题
创建者:fantasysxan
平面设计师/UI设计师 必读书单大集合,强烈推荐。
创建者:qq_
上传者其他资源上传者专辑
H-JTAG 1.0嵌入式开发必备调试工具
STL源码解析.PDF
钱能C++程序设计教程.PDF
ubuntu官方指南PDF,ubuntu 初学者必备,内容详细
shell 高级编程,是更进一步学习shell必备
课程资源热门标签
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
UML对象设计与编程PDF
会员到期时间:
剩余下载个数:
剩余C币:593
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
(仅够下载10个资源)
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
UML对象设计与编程PDF当前位置: >
> UML系统建模与分析设计 刁成嘉 PDF扫描版[140MB]
UML系统建模与分析设计 刁成嘉 PDF扫描版[140MB]
UML系统建模与分析设计
书籍大小:140.93MB
软件语言:简体中文
书籍类型:
书籍授权:免费软件
更新时间:
书籍类别:编程其它
购买链接:&&
应用平台:
网友评分:
内容介绍热点排行下载地址相关内容
《算法导论(原书第2版)》深入浅出,全面地介绍了计算机算法。对每一个算法的分析既易于理解又十分有趣,并保持了数学严谨性。《算法导论(原书第2版)》的设计目标全面,适用本书是微信公众平台应用开发领域的经典著作,作者是腾讯公司的资深软件开发工程师,而且是微信公众平台应用开发的先驱者之一wpf编程宝典―c#2010版全面描述了所有wpf的主要特性,从xaml(用于定义wpf用户界面的标记语言)到3d绘图和动画。本书很少编写涉及.net framework其他特性的代码,如用于查询本书通过丰富的案例学习来解释Hadoop的幕后机理,阐述了Hadoop如何解决现实生活中的具体问题。第3版覆盖Hadoop的全新动态这是一本经典的Windows编程圣经,曾经伴随着近50万Windows程序员步入编程殿堂,成长为IT时代的技术精英本书阅读对象为一切有志于改善代码质量的程序员及技术经理。书中介绍的规则均来自作者多年的实践经验,涵盖从命名到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴proe5.0入门教程.pdf,内容索引:proe5.0简介、Pro/ENGINEER 概念、零件设计基储手机建模、装配手机、在 Pro/ENGINEER 中 创建绘图、提高效率、proe5.0术语表等,相对基础本书已经成为面向对象技术人员的圣经和词典,书中定义的23个模式逐 渐成为开发界技术交流所必备的基础知识和语汇《Unity3D游戏开发》通过实例详细介绍了如何使用Unity 进行游戏开发,书中先简要介绍了Unity 环境搭建、编辑器和GUI 游戏界面相关的知识,接着介绍了如何使用C# 和JavaScri《啊哈!算法》中涉及的数据结构有栈、队列、链表、树、并查集、堆和图等;涉及的算法有排序、枚举、深度和广度优先搜索、图的遍历,当然还有图论中不可以缺少的四种最短路
UML系统建模与分析设计 刁成嘉 PDF扫描版[140MB]
CopyRight &
JB51.Net , All Rights Reserved

我要回帖

更多关于 系统设计威胁建模文档 的文章

 

随机推荐