小编Woo*_*ble的帖子

管理软件中复杂性/可视化组件的最佳实践?

我们正在构建工具来从网络中挖掘信息.我们有几件,比如

  • 从网络抓取数据
  • 根据模板和业务规则提取信息
  • 将结果解析为数据库
  • 应用规范化和过滤规则
  • 等等

问题在于解决问题并对每个阶段发生的事情有一个很好的"高级图片".

哪些技术可以帮助您理解和管理复杂的流程?

  • 使用Windows Workflow Foundation等工作流程工具
  • 将单独的函数封装到命令行工具中,并使用脚本工具将它们链接在一起
  • 编写特定于域的语言(DSL)以指定在更高级别发生的事情.

只是好奇你如何处理具有许多交互组件的系统.我们希望记录/理解系统如何在比追踪源代码更高的层次上工作.

complexity-theory

7
推荐指数
1
解决办法
704
查看次数

用例图 - 箭头绝对必要吗?

是否绝对有必要使用"箭头"来显示用例图中的actor和用例之间的关联?

我最近不得不为我的软件工程任务画一个.但是,在网上对许多其他大学的许多文章,论文,在线书籍和讲义进行了一些研究之后,似乎大多数用例图无论他们有多大的潜力来展示某种"流动"或"导航性" ",没有箭头,而有些例子有箭头.

所以我咨询了我的朋友,他是一名最后一年的学生,已经研究了我告诉我的事情,我的演员和用例之间不应该有箭头,甚至他的需求工程讲师教导学生不要使用箭头.所以我有意识地决定不使用箭头而是使用实线来显示我的用例关联.

这是我的图表点击

然而,当我收到我的作业标记时,我惊讶地发现我没有使用箭头给出零.即使强制使用它们,也有大量证据表明实线可用于双向关联.所以我不应该收到至少一些标记吗?

显然,我要求我的讲师给出一个解释,我将在下周讨论这个问题,但如果她告诉我我应该使用箭头,我可以对此提出什么论点?如果有人能够通过适当参考某些专业人士来给我提供好的建议,我将不胜感激.

非常感谢您阅读,我希望尽快阅读您的回复.


编辑

感谢你们.我非常感谢你给我的答案.这种混乱开始了,因为讲师提供的唯一符号是一个简单的图书馆用例图示例,其中一个讲义中有箭头.但它并不是很明确,它是最终的符号.我不认为它是强制性的另一个原因是,当谈到绘制数据流图的符号时,她使用她的特定符号非常清楚,但DFD的不同表示法并不少见.不同来源,但我发现很少有证据表明必须使用用例图中的箭头.

也就是说,即使在没有箭头的情况下,我还记得在一个辅导课程中询问一位导师(而不是讲师)有什么和箭头线和实线之间的区别,他说没有,我可以同时使用两者.显然,我只听取了我的意见,并且从你们所说的内容来看,我怀疑任何处于学术地位的人都会承认会说出一些可能使他们处于防御地位的事情.我的错误不是直接与讲师说话,但事后我很明显会这样做.

无论如何,我会就所有这些信息与她交谈并要求她考虑这个"诚实的错误".它不仅仅是用例图,还有一些其他问题,我丢失了不寻常的标记,特别是当我的答案几乎与她提供的模型答案相同时.我也知道很多其他要求他们作业的学生都会被评论.

希望她会善良并且善于判断,以提高我的成绩.当我发现时,我会回到这里.

再次感谢您的帮助,请发布您可能提供的任何其他信息/建议.:)


编辑2

对不起伙计们,我有另一个问题.

下面是绘制用例图的赋值中给出的场景.

CONTHETICKET是一个处理音乐会和剧院门票的票务代理商.音乐会和剧院场地为CONTHETICKET提供关于即将发生的事件的持续信息流,然后管理者使用该信息来编制一个灯具列表供销售人员响应客户呼叫使用.经理选择一些事件,CONTHETICKET将提前购买一些门票,从而受益于与场地协商的折扣.

他亲自将门票的订单连同约定的付款一起发送到场地,一旦收到门票,他就会将其存档在门票档案中.

当客户响铃销售团队时,将根据故障单文件检查其故障单请求.如果预购票可用,则将其放入标有客户姓名和地址的信封中,并存入临时订单文件.如果没有,销售团队填写一张票务申请表并将其放入托盘中以供邮局职员收集.

付款部分每天检查临时订单文件.他们向客户发送发票并等待付款.发票副本存档.收到付款后,付款部分会将付款与相应的发票相匹配,如果满意,则将发票的另一份副本放在发货文件中,并附上发票的说明.

邮局职员每天检查发货文件,并从临时订单文件中检索相应的工单并将其发送给相应的客户.

从你的图表中可以看出,我有一个"演唱会和剧院场地"作为演员.

来自UML 2.0 Style的元素,Scott W. Ambler:

"演员是在与您的系统进行一次或多次交互中扮演角色的人,组织或外部系统(演员通常被绘制为UML用例图上的棒图)."

然而,在我的标记任务中,讲师评论说它不应该是演员.你能不能告诉我你是否认为应该是演员以及为什么.

我的理由是CT和V提供事件信息,然后由经理用来订购/归档票据,也由CT&​​V提供.

非常感谢你.

diagram uml use-case

7
推荐指数
1
解决办法
8337
查看次数

尝试在google app engine for java中实现异步http时出现奇怪的异常

我正在尝试在java中实现async http.这是代码的重要部分:

for (String urlString : urls) 
{ 
    // TODO: try and get rid of these two heap allocations 
    url = new URL(urlString); 
    request = new HTTPRequest(url); 
    request.addHeader(userAgentHeader); 
    request.addHeader(authorizationHeader); 
    request.addHeader(acceptEncodingHeader); 
    request.addHeader(acceptCharsetHeader); 
    responses.add(URLFetchServiceFactory.getURLFetchService().fetchAsync(reques t)); 
    apiCallsMade++; 
} 
for (Future<HTTPResponse> futureResponse : responses) 
{ 
    parseResponse(new String(futureResponse.get().getContent())); 
} 
Run Code Online (Sandbox Code Playgroud)

我一直收到这个错误:

com.google.apphosting.api.ApiProxy $ CallNotFoundException:找不到API包'urlfetch'或调用'Fetch()'.

我环顾四周寻找类路径中缺少的任何罐子,但没有看到任何遗漏.你知道代码是哪个jar吗?我搜索了这个错误并搜索了这个组但没有发现任何内容.谢谢,大卫

java google-app-engine http

7
推荐指数
1
解决办法
3239
查看次数

检查App Engine数据存储区中是否存在记录

从我读过的,这是我应该检查任何记录...

    v = PC_Applications.all().filter('column =', value)
if not v:
    return False
Run Code Online (Sandbox Code Playgroud)

但这会返回错误!

IndexError:查询返回的结果少于1

这样做的任何想法?我读过.count()是一个糟糕的选择.我是Python和App Engine的新手,所以非常感谢你的耐心等待!

python google-app-engine google-cloud-datastore

7
推荐指数
1
解决办法
3463
查看次数

在amazon linux上安装zmq的问题(无法找到uuid)

我正试图在EC2上组建一个AMI,目前我正在建设0mq.

最初,我在运行./configure时遇到了这个错误

checking for uuid_generate in -luuid... no
configure: error: cannot link with -luuid, install uuid-dev.
Run Code Online (Sandbox Code Playgroud)

我通过yum安装了e2fsprogs-devel和linux-utils,我认为它包含了所需的库,但仍然遇到上述错误.我随后用yum安装了uuid-devel并且没有进一步.

然后,我创建了一个链接如下:

sudo ln -s /lib64/libuuid.so.1.3.0 /lib64/libuuid.so
Run Code Online (Sandbox Code Playgroud)

现在./configure很快就完成了,但是当我运行make时出现错误

[...]
CXX    libzmq_la-signaler.lo
CXX    libzmq_la-socket_base.lo
In file included from socket_base.cpp:50:
uuid.hpp:31:23: error: uuid/uuid.h: No such file or directory
In file included from socket_base.cpp:50:
uuid.hpp:92: error: 'uuid_t' in namespace '::' does not name a type
make[2]: *** [libzmq_la-socket_base.lo] Error 1
make[2]: Leaving directory `/home/this/infrastructure/zeromq2-2/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/this/infrastructure/zeromq2-2/src'
make: *** [all-recursive] Error …
Run Code Online (Sandbox Code Playgroud)

linux uuid amazon-ec2 zeromq

7
推荐指数
2
解决办法
9639
查看次数

使用PLY解析SQL语句

我知道还有其他工具来解析SQL语句,但我出于教育目的推出了自己的工具.我现在卡住了我的语法..如果你能快速发现错误请告诉我.

SELECT = r'SELECT'
FROM = r'FROM'
COLUMN = TABLE = r'[a-zA-Z]+'
COMMA = r','
STAR = r'\*'
END = r';'
t_ignore = ' ' #ignores spaces

statement : SELECT columns FROM TABLE END

columns : STAR
        | rec_columns

rec_columns : COLUMN
            | rec_columns COMMA COLUMN
Run Code Online (Sandbox Code Playgroud)

当我尝试解析像'SELECT a FROM b;'这样的语句时 我在FROM令牌上遇到语法错误...非常感谢任何帮助!

(编辑)代码:

#!/usr/bin/python
import ply.lex as lex
import ply.yacc as yacc

tokens = (
    'SELECT',
    'FROM',
    'WHERE',
    'TABLE',
    'COLUMN',
    'STAR',
    'COMMA',
    'END',
)

t_SELECT    = r'select|SELECT'
t_FROM      = r'from|FROM'
t_WHERE …
Run Code Online (Sandbox Code Playgroud)

python sql parsing ply context-free-grammar

7
推荐指数
1
解决办法
2031
查看次数

将字母转换为小写

我对以下任何语言的字母使用以下内容:

text = regex.sub("[^\p{alpha}\d]+"," ",text
Run Code Online (Sandbox Code Playgroud)

p{alpha}如果存在这样的等价,我可以使用将字母转换为小写的等效字母吗?这个正则表达式怎么样?

python regex

7
推荐指数
3
解决办法
2万
查看次数

保护导入的模块不被第三方代码损坏

如果我的代码使用了不可信任的第三方模块,那么有什么可以阻止这样的情况:

UntrustedModule.py:

import random

random.random = lambda : 4
Run Code Online (Sandbox Code Playgroud)

MyModule.py:

import random
import UntrustedModule

print (random.random())
Run Code Online (Sandbox Code Playgroud)

只是导入这个模块打破了其他不相关的假设?

python

7
推荐指数
1
解决办法
105
查看次数

Google App Engine:Sendmail,找不到命令

我想让sendmail在localhost上工作.问题是app引擎有错误的sendmail路径,因为它抛出错误:/ bin/sh:sendmail:command not found

使用Mac OS X,sendmail的路径是:/ usr/sbin/sendmail

有谁知道如何改变这个?

..fredrik

google-app-engine sendmail

6
推荐指数
2
解决办法
2892
查看次数

是否可以在emacs中自动完成括号或引号?

我使用过XCode和Netbeans,我注意到它们有一个自动完成引号或括号的功能(我认为其他IDE也经常这样做).我不知道这个功能的名称是什么,但有没有办法在Emacs中做到这一点?

例如,当我输入

printf("
Run Code Online (Sandbox Code Playgroud)

我希望它能自动输入

printf("")
Run Code Online (Sandbox Code Playgroud)

将光标放在引号之间.

谢谢.

ide emacs code-completion

6
推荐指数
1
解决办法
2560
查看次数