第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 } 

                 

      

时间: 2024-10-12 04:12:33

第1章 软件工程基本原理和C++类的相关文章

计算机网络原理和OSI模型与TCP模型

计算机网络原理和OSI模型与TCP模型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.计算机网络的概述 1.计算机网络的定义 计算机网络是一组自治计算机的互连的集合 2.计算机网络的基本功能 a.资源共享 b.分布式处理与负载均衡 c.综合信息服务 3.计算机网络的演进 4.按照地域范围 a>.LAN(Local Area Network) 通常指几千米以内的,可以通过某种介质互联的计算机.打印机.modem或其他设备的集合 MAN(Metropolitan Area N

Mybatis插件原理和PageHelper结合实战分页插件(七)

今天和大家分享下mybatis的一个分页插件PageHelper,在讲解PageHelper之前我们需要先了解下mybatis的插件原理.PageHelper 的官方网站:https://github.com/pagehelper/Mybatis-PageHelper 一.Plugin接口 mybatis定义了一个插件接口org.apache.ibatis.plugin.Interceptor,任何自定义插件都需要实现这个接口PageHelper就实现了改接口 package org.apach

(转)详解LVS负载均衡之三种工作模型原理和10种调度算法

前言:最近在为我们的产品在做高可用,一边搭环境,一边了解相关知识,搜到这篇博客,质量不错,表述清晰,于是转载过来学习. 标签:详解LVS负载均衡之三种工作模型原理和10种调度算法 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://linuxnx.blog.51cto.com/6676498/1195379 LVS负载均衡原理和算法详解    Internet的快速增长使多媒体网络服务器面对的访问数量快速增加,服务器需要具备提供大

《软件工程 ——理论、方法与实践》知识概括第五章 软件工程中的形式化方法

第5章 软件工程中的形式化方法    从广义上讲,形式化方法(Formal Method)是指将离散数学的方法用于解决软件工程领域的问题,主要包括建立精确的数学模型以及对模型的分析活动.狭义的讲,形式化方法是运用形式化语言,进行形式化的规格描述.模型推理和验证的方法.将形式化方法运用于软件工程实践当中的只要目的是保证软件的正确性. 软件生命周期中的形式化转化策略:常用转化策略.直接转化策略和运用半形式化表示的中间转化策略. 进行模型化的过程中涉及到三种系统模型:现实世界.模型表示和计算机系统.

iOS开发UI篇—程序启动原理和UIApplication

iOS开发UI篇-程序启动原理和UIApplication 一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplication对象,那么将报错提示. (3)通过[UIApplicationsharedApplication]可以获得这个单例对象 (4) 一个iOS程序启动后创建的第一个对

加密、解密原理和openssl自建CA过程详解

一.加密和解密相关知识简介 1.信息安全标准 NIST(National Institute of Standards and Technology)美国国家标准与技术研究院,制定了网络信息安全与保密的三个要素: 保密性(confidentiality):信息不泄露给非授权用户.实体或过程,或供其利用的特性.(一般包括数据保密性.隐私性.) 完整性(Integrity):数据未经授权不能进行改变的特性.即信息在存储或传输过程中保持不被修改.不被破坏和丢失的特性.(一般包括数据完整性.系统完整性.

iOS-程序启动原理和UIApplication

iOS开发UI篇—程序启动原理和UIApplication 一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplication对象,那么将报错提示. (3)通过[UIApplicationsharedApplication]可以获得这个单例对象 (4) 一个iOS程序启动后创建的第一个对

加密、解密原理和openssl自建CA

openssl协议简介 SSL(Secure Socket Layer)是netscape公司提出的主要用于web的安全通信标准.一般情况下的网络协议应用中,数据在机器中经过简单的由上到下的几次包装,就进入网络,如果这些包被截获的话,那么可以很容易的根据网络协议得到里面的数据. SSL就是为了加密这些数据而产生的协议,可以这么理解,它是位与应用层和TCP/IP之间的一层,数据经过它流出的时候被加密,再往TCP/IP送,而数据从TCP/IP流入之后先进入它这一层被解密,同时它也能够验证网络连接俩端

程序启动原理和UIApplication

iOS开发UI篇—程序启动原理和UIApplication 一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplication对象,那么将报错提示. (3)通过[UIApplicationsharedApplication]可以获得这个单例对象 (4) 一个iOS程序启动后创建的第一个对