并不是要说明做梦的神奇,确实是感觉这个题目非常有意思,所以拿出来和大家分享。
近日一次做梦,梦到做一张试卷。试卷上题目非常少。其他的题目不记得了,只是记得最后一道题目。这个题目是这样描述的:
请用计算机实现,只要我安全到家,任务就算完成。
我开始被这个题目搞得一塌糊涂。根本不知道啥意思。这时候梦里有人有人提示符号。我突然有所醒悟。
这是一道类似于微软那些面试类型的题目。重点不在于结果如何,而是看你的分析过程。
-
用计算机实现,也就是使用软件工程方法来实现
-
任务就是需求,需求完成,软件就完成了。
好了,现在我们来运用我们的软件意识来完成这个任务。
首先,使用UML的用例来描述我们的需求:
现在是挖掘需求的时候:
-
安全是如何定义的
-
家在哪里
-
对时间有什么要求
-
回家过程中需要考虑吃饭和住宿问题吗
-
交通工具如何选择
-
如果没有安全回家,结果如何
这只是简单的对需求表面的挖掘。好的需求,会进行更深层次的挖掘。如果说上面要弄明白的是“是什么”的问题,那么高级需求会搞清楚“为什么”的问题。
- 为什么要回家,回家的目的是什么
- 安全对于回家有什么必然联系,为什么要有这个要求
- 回家的背景是什么,这个时候其他人都有什么需求
呵呵,怎么样?这些问题都需要回答,很难吧!
需求弄清楚之后,进行软件设计。先画一个类图,下面是我的设计,仅仅为个人理解,不是权威设计。主要为了表达意思。此图是业务逻辑图,不是实体类图。
这个时候你要开始考虑架构性的事情了。前面都可以认为是需求阶段。最多有一个需求转换过程。
- 本系统是单机还是网络
- SmartClient还是B/S
- 编程语言选择,需要考虑可编程性和程序员技能
- 持久化技术选择
- 有什么特殊要求,此一般为非功能性需求
下面最关键要考虑系统中什么地方可能变化。我姑且认为交通工具最容易变化,做以下分析
- 交通工具应该可以选择
- 中间是否可以切换交通工具
- 安全的定义是否可能变化
- 以后除了要“我”安全回家,还可能要求让更多的人回家
- 家是不是可能是夫妻双方式的家
- ...
架构师必须通过他敏锐的观察力去洞察这一切。做完决策之后,再制定出对应策略。
剩下就是我最擅长的编码工作了。什么?还有TDD?是的我知道的,呵呵,先写写测试用例。过程中,还要了解代码版本管理。过程中的需求管理。后期的发版管理。
唉,做软件,容易嘛!
分享到:
相关推荐
毕设题目:关于HEVC帧间预测测试AMP模式的快速算法 毕设题目:关于HEVC帧间预测测试AMP模式的快速算法 毕设题目:关于HEVC帧间预测测试AMP模式的快速算法 毕设题目:关于HEVC帧间预测测试AMP模式的快速算法 毕设题目...
1.介绍:面试题目:100道经典的热门算法题目.zip 2.资源内容:面试题目:100道经典的热门算法题目.zip 3.适用人群:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业或毕业设计,作为“参考资料”使用...
c++练习题目:通讯录管理系统
湖北卷作文题目:母语.doc
论文题目:浅析小学英语.doc
终极生殖项目竞赛题目:跳票球
2018强网杯CTF___题目整理 │ ├── 01Misc-4题 │ ├── 题目名称:ai-nimals │ │ └── 题目名称:ai-nimals.mhtml │ ├── 题目名称:welcome │ │ └── 题目名称:welcome.mhtml │ ├── 题目名称:...
大数据的关键技术主要包括数据存储技术、数据处理框架(如MapReduce)、数据质量管理和数据安全性等方面。 - **Spark与Hadoop MR对比**:题目中提到Spark比Hadoop的MapReduce计算更高效的原因不包括采用MPP架构并行...
Educoder题目:栈的实现及应用答案解析.md
高三政治二轮题目:税收篇
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 分析:1.递归(吗);2.不会(3);3.想不到;4.谷歌;5.一个一个...
【Python编程题】题目:猜数字游戏.docx
Educoder题目:Java面向对象 - 包装类 答案解析
高三政治二轮题目:劳动就业篇.docx
Educoder题目:Java面向对象 - 常用类答案解析
Educoder题目:Java入门 - 分支结构答案解析
2022年第三届“网鼎杯”网络安全大赛(青龙组)部分题目附件 2022年第三届“网鼎杯”网络安全大赛(青龙组)部分题目附件 2022年第三届“网鼎杯”网络安全大赛(青龙组)部分题目附件 2022年第三届“网鼎杯”网络...