本博客参考自孟宁老师提供的资料:https://gitee.com/mengning997/se/blob/master/README.md#代码中的软件工程
并分析孟老师提供的menu项目代码,思考软件工程是如何在代码中体现,并分析其中的软件工程方法,规范和软件工程思想。
Visual Studio Code(vscode)是一个轻量且强大的代码编辑器,支持Windows,LINUX,OS X,并且拥有丰富的插件生态环境,通过安装插件可以支持C++,C#,Python,PHP等其他语言,因此我们使用vscode进行接下来的代码分析体验。
由于在孟老师讲解了git的使用之后,我已经安装并使用了Visual Studio Code来用git进行项目管理,因此不需要再次安装。
在vscode中按ctrl+shift+X进入扩展界面,搜索C++,并点击安装,如下图所示:
上一步我们在vscode中安装了C++扩展,但是C++扩展中并不包括C++编译器,为了在不同环境下保持一致,我们选择Mingw-w64/GCC,这里从官网链接下载并安装,安装如下图所示:
根据电脑配置,安装参数调整如图,
Version:如果没有特殊需求就选择最新版本进行安装,这里选择8.1.0版本;
Architecture:跟操作系统有关,64位选择x86_64;
Threads:设置线程标准,如果是在Windows下开发程序,选择win32,如果是开发在LINUX,Unix,Mac OS等其他操作系统下的程序,就选择posix,这里选择win32;
Exception:设置处理异常系统,seh相较于sjlj发明更晚,且性能更好,但是不支持32位,这里选择性能更好的seh;
Build revision:构建版本号,使用默认值。
参数配置好之后,点击安装进行在线下载安装,安装完毕之后不要忘了配置环境变量:
用cmd测试安装是否成功,输入gcc -v,显示如图所示,则安装成功:
至此,C/C++编译环境配置完成。
在vscode中打开项目文件夹,选择运行选项,创建launch.json文件,选择配置如下图所示
成功运行main.c文件,至此,在vscode中配置C/C++完成,并可以成功运行。
接下来,我将从以下几个在软件工程中非常重要的知识出发,介绍其原理并分析其在代码中的具体实现方法,从而更加深刻的理解并体会代码中的软件工程思想,这里再次感谢孟宁老师提供给我们的非常规范的memu项目作为参考。
我们首先先来介绍一下模块化(Modularity),模块化(Modularity)是在软件系统设计时保持系统内各部分相对独立,以便每一个部分可以被独立地进行设计和开发。这个做法背后的基本原理是关注点的分离。关注点的分离在软件工程领域是最重要的原则,我们习惯上称为模块化,翻译成我们中文的表述其实就是“分而治之”的方法。关注点的分离的思想背后的根源是由于人脑处理复杂问题时容易出错,把复杂问题分解成一个个简单问题,从而减少出错的情形。模块化软件设计的方法如果应用的比较好,最终每一个软件模块都将只有一个单一的功能目标,并相对独立于其他软件模块,使得每一个软件模块都容易理解容易开发。
因此,软件设计中的模块化程度就成为了软件设计中有多好的一个重要指标,我们通常使用耦合度(Coupling)和内聚度(Cohesion)来衡量软件模块化的程度。
耦合度是指软件模块之间的依赖程度,一般可以分为紧密耦合,松散耦合和无耦合,三种耦合程度的见下图所示,无耦合中各个模块之间互不影响,这显然不是我们所想要的情况,紧密耦合中各个模块中又
而我们一般在软件设计中都追求松散耦合。
原文:https://www.cnblogs.com/EndArthur/p/13944345.html