初步了解软件工程的概念


1.什么是软件工程

软件工程是把系统的,有序的,可量化的方法应用到软件的开发,运营和维护的过程。

--引用自《构建之法

2.软件工程涉及的领域

-软件需求分析
-软件设计
-软件构建
-软件测试
-软件维护

3.软件的特殊性

-功能性
一组功能及其指定的性质有关的一组属性。适合性、准确性、互用性/互操作性、依从性、安全性。
-可靠性
在规定的一段时间和条件下,软件维持其性能水平有关的一组软件属性。成熟性、容错性、易恢复性。
-可用性
与使用的难易程度及规定或隐含用户对使用方式所做的评价有关的软件属性。易理解性、易学性、易操作性。
-效率
在规定条件下,软件的性能水平和所有资源之间的关系有关的一组软件属性。时间特性、资源特性。
-可维护性
与进行指定的修改所需的努力有关的一组软件熟悉。易分析性、可修改性、稳定性、可测试性。
-可移植性
与软件可从某一环境转移到另一环境的能力有关的一组软件属性。适应性、易安装性、一致性(遵循性)、可替换性。

4.软件工程与计算机科学的区别

计算机科学 软件工程
发现和研究长期的客观真理 短期的实际结果(具体的软件会过时)
理想化的 对各种因素的折衷
确定性、完美、通用性 对不确定和风险的管理、足够好、具体的应用
各个学科独立深入研究,做出成果 关注和应用各个学科的知识,解决问题
理论的统一 百花齐放的实践方法
强调原则性 最好的、成熟的实践方法
形式化、追求简明的公式 在实践中建立起来的灵感和直觉
正确性 可靠性

5.软件工程的代码规范

1.命名约定

-文件名全部小写,可以加下划线_,但不可以使用横线-。

2.类型命名

-类型名称的每个单词的首字母大写,不包含下划线。

// 类和结构体 class Sudoku {...}; 
class Input {..}; 
struct SonNode {..}; 
// 类型定义
 typedef hash_map<char *, string> NameMap; 
// using 别名 
using NameMap = hash_map<char *, string>; 
// 枚举 
enum Today {..};

3.变量命名

-变量(包括函数参数)和数据成员名一律小写,单词之间用下划线连接。类的成员变量以下划线结尾,但结构体的就不用。

int num_table; // 好 - 用下划线
int numtable;  // 中 - 全小写
int numTable;  // 差 - 混合大小写

4.常量命名

-声明为constexpr或const的变量, 或在程序运行期间其值始终保持不变的, 命名时以 “k” 开头, 大小写混合.

const int kDaysInAWeek = 7;

5.函数命名

常规函数使用大小写混合, 成员函数首字母小写: MyExcitingFunction(),MyExcitingMethod(),myExcitingMethod()。

猜你喜欢

转载自www.cnblogs.com/yanxuanwindy/p/10464541.html
今日推荐