手撕软件工程导论核心知识点系列(三):结构化设计暨编码与测试

0. 思维导图

     利用‘导弹’形状的思维导图致敬笔者硕士期间的研究方向:制导技术(Navigation guidance and control)!

1. 结构化设计(SD)

定义:结构化设计主要包括‘概要/总体设计’和‘详细设计/过程设计’——将软件需求转化成数据结构和软件系统结构。

模块化:按适当的原则将软件划分为若干个较小的、相关而又相对独立的模块。

原因:1.O(A+B) > O(A)+O(B),降低复杂度。但不意味着划分的模块越多,开发难度越低,因为相应的接口成本也在增加,应寻找最小成本区!

          2.若干相对独立的模块便于软件功能的扩展和修改。

抽象:抽出事物的本质特征,暂不考虑细节。

逐步求精:帮助设计者在设计过程中揭示底层细节。

信息隐藏:隐藏各个模块的内部实现细节,只需通过接口调用。

模块独立:原因——1.开发时便于分工合作;2.开发完成后便于测试和扩展维护。

定量衡量标准:1.耦合:不同模块之间的互联程度(无耦合、松散耦合和紧密耦合)

                        2.内聚:模块内各元素彼此结合的紧密程度

启发规则:通过开发经验的积累,得出一些有用的开发规则。

1.  对初步开发程序进行分解或合并,降低耦合提高内聚;

2.  每个模块规模应适中,一般在50~100行,不超过500行;

3.  深度、宽度、扇入和扇出适中;

4.   降低模块接口的复杂度。


2. 编码

定义与依据:根据概要设计和详细设计说明文档,选用特定程序语言书写源代码。

程序语言分类:机器语言——汇编语言——高级语言;编程语言排行:TIOBE。

程序语言选择:根据实际需求进行适当地选择。

编码风格:

1.命名规则适当;

2.1含序言性注释,如:

/********************************************

*Function Name:xxxx

*Create Date:2021/4/15

*Author: ****

*Email:******

Description:xxxxx

*********************************************/

2.2含程序中注释,有效注释量20%以上;

3.适当的空格、空行和缩进;

4.不要多个语句写在一行;

5.少用goto语句;

6.避免大量的嵌套和循环;

7.bool类型中true对应非0,false对应0,

正确用法:bool flag; if(flag)……; if(!flag)……;

错误用法:bool flag;if(flag==1)……; if(flag==0)……;

8.正确的输入输出方式;

9.提高编码效率:降低时间和空间复杂度。


3. 测试

定义:软件开发过程中的错误是防不胜防的,如何系统且全面地排查错误十分重要!——发现错误

测试方法:

黑盒测试:不管软件内部逻辑,从实现功能角度测试;

白盒测试:基于对软件内部的熟知,设计相应的测试方法;

灰盒测试:在白盒测试中交叉使用黑盒测试 或在黑盒测试中交叉使用白盒测试。

测试步骤:单元测试——>集成测试——>系统测试——>验收测试。

调试与测试:测试是只发现错误,调试是发现错误原因并修改程序以修正错误。


4. 参考文献:

[1] 张海藩,吕云翔. 软件工程[M].人民邮电出版社:, 201309.348.

[2] Varun Gupta, Chetna Gupta. Research and Evidence in Software Engineering: From Empirical Studies to Open Source Artifacts[M]. CRC Press:2021-04-15.

[3] F. L. Bauer, J. B. Dennis, W. M. Waite, et al. Software Engineering[M]. Springer, Berlin, Heidelberg:1975-01-01.

本人水平有限,文中错漏缺点在所难免,欢迎私信或评论区留言!

原创不易!鼓励收藏点赞加分享!

#非科班码农的自我救赎!共勉!#

#知乎/简书/CSDN同号:37yuany#

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,451评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,172评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,782评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,709评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,733评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,578评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,320评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,241评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,686评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,878评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,992评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,715评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,336评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,912评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,040评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,173评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,947评论 2 355

推荐阅读更多精彩内容