第1章 软件工程基本原理和C++类

1.1 软件的生命周期

  3个阶段:开发阶段(development),使用阶段(use),维护阶段(maintenance)。

1.2 软件开发阶段

  4个阶段:分析阶段,设计阶段,实现阶段,测试和调试阶段。

  1.2.1 分析阶段

  1.2.2 设计阶段

    算法:在 有限时间内获得问题解决方案的逐步求解的过程。

    1. 结构化设计方法

      又名自定向下的设计方法,逐步求精方法,模块化程序设计方法

      在结构化设计方法中,问题被分解为若干子问题,然后分别对每个子问题进行分析和求解。所有子问题的解合并起来就是原始问题的解。

    2. 面向对象设计方法 OOD

      基本原则:

        封装性:将数据和操作集成在一个单元(对象)中的能力。

        继承性:从已有数据类型中派生新数据类型的能力。

        多态性:使用相同表达形式来实现不同操作的能力。

  1.2.3 实现阶段

    主要使用面向对象设计方法并辅以结构化设计方法。

    举例:编写一个将计量单位英寸转换为厘米的函数。转换公式是:1英寸=2.54厘米。以下函数用来实现这个功能。

 1 #include<iostream>
 2 using namespace std:
 3 double inchesToCentimeters(double inches)
 4 {
 5     if(inches<0)
 6     {
 7         cerr<<"The given measurement must be nonnegative"<<endl;    
 8         retuern -1.0;        
 9     }
10     else return 2.54*inches;
11 }            

    注意:对象 cerr 对应于无缓冲的标准错误流。cout 的输出首先进入缓冲区,cerr 的输出结果直接送往标准错误流,通常是用户屏幕。

    前置条件:指定调用某个函数前必须满足的条件和语句。

    后置条件:指定函数调用完成后程序流程的语句。

    函数 inchesToCentimeters的前置条件和后置条件可以这样描述。

    

 1 #include<iostream>
 2 using namespace std:
 3 
 4 //Precondition: The value of inches must be nonnegative.
 5 //Postcondition: If the value iof inches is < 0, the function returns -1.0;
 6 //               otherwise, the function returns the equivalent length in centimeters.  
 7 double inchesToCentimeters(double inches)
 8 {
 9     if(inches<0)
10     {
11         cerr<<"The given measurement must be nonnegative"<<endl;    
12         retuern -1.0;        
13     }
14     else return 2.54*inches;
15 } 

     在某些情况下,可以使用assert语句验证输入的正确性。

 1 #include<iostream>
 2 using namespace std:
 3 
 4 //Precondition: The value of inches must be nonnegative.
 5 //Postcondition: If the value iof inches is < 0, the function returns -1.0;
 6 //               otherwise, the function returns the equivalent length in centimeters.  
 7 double inchesToCentimeters(double inches)
 8 {
 9     assert(inches >= 0); 
10     return 2.54*inches;
11 }

 

 

 

 

 

                 

 

      

你可能感兴趣的:(第1章 软件工程基本原理和C++类)