①. 顺序结构:是最基本最普通的结构形式,按照程序中的语句行的先后顺序逐条执行;
②. 选择结构:又称为分支结构,它包括简单选择和多分支选择结构;
③.循环结构【重复结构】:根据给定的条件,判断是否要重复执行某一相同的或类似的程序段。循环结构对应两类循环语句:先判断后执行的循环体称为当型循环结构;先执行循环体后判断的称为直到型循环结构。
§2.3 面向对象方法
面向对象方法的本质,就是主张从客观世界固有的的事物出发来构造系统,提倡用人类在现实生活中常用的思维方法来认识、理解和描述客观事物,强调最终建立的系统能够映射问题区域,也就是说,
系统中的对象以及对象之间的关系能够如实反映问题区域中固有事物及其关系。
面向对象方法的优点:
ⅰ.与人类习惯的思维方法一致。(面向对象方法和技术以对象为核心)
ⅱ.稳定性好。 ⅲ.可重用性好。
ⅳ.易于开发大型软件产品。 ⅴ.可维护性好。
面向对象方法涵盖对象及对象属性与方法、类、继承、多态性几个基本要素。
1. 对象:通常把对象的操作也称为方法或服务。
属性即对象所包含的信息,它在设计对象时确定,一般只能通过执行对象的操作来改变。属性值应该指的是纯粹的数据值,而不能指对象。
操作描述了对象执行的功能,若通过信息的传递,还可以为其他对象使用。
对象具有如下特征:标识惟一性、分类性、多态性、封装性、模块独立性。 2. 类和实例
类是具有共同属性、共同方法的对象的集合。它描述了属于该对象类型的所有对象的性质,而一个对象则是其对应类的一个实例。
类是关于对象性质的描述,它同对象一样,包括一组数据属性和在数据上的一组合法操作。 3. 消息
消息是实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。
一个消息由三部分组成:接收消息的对象的名称、消息标识符(消息名)和零个或多个参数。 4. 继承
广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。继承分为单继承与多重继承。单继承是指,一个类只允许有一个父类,即类等级为树形结构。多重继承是指,一个类允许有多个父类。 5. 多态性
对象根据所接受的消息而做出动作,同样的消息被不同的对象接受时可导致完全不同的行动,该现象称为多态性。
第二章完
第3章 软件工程基础 §3.1 软件工程基本概念 1. 软件定义与软件特点
软件指的是计算机系统中与硬件相互依存的另一部分,包括程序、数据和相关文档的完整集合。
程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令序列。
数据是使程序能正常操纵信息的数据结构。文档是与程序的开发、维护和使用有关的图文资料。
可见,软件由两部分组成: ①.机器可执行的程序和数据;
②.机器不可执行的,与软件开发、运行、维护、使用等有关的文档。
软件在开发、生产、维护和使用等方面与计算机硬件相比存在明显的差异。深入理解软件的定义需要了解软件的特点:
ⅰ.软件是一种逻辑实体,而不是物理实体,具有抽象性。(软件必须通过观察、分析、思考、判断、才能了解它的功能、性能等特性)
ⅱ.软件的生产与硬件不同,它没有明显的制作过程。 ⅲ.软件在运行、使用期间不存在磨损、老化问题。
ⅳ.软件在开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植问题。
ⅴ.软件复杂性高,成本昂贵。软件是人类有史以来生产的复杂度最高的工业产品。软件的开发需要投入大量、高强度的脑力劳动,成本高,风险大。
ⅵ.软件的开发涉及诸多社会因素。
软件根据应用目标的不同,可分应用软件、系统软件和支撑软件(或工具软件)
2. 软件工程
为了摆脱软件危机,提出了软件工程的概念。软件工程学是研究
软件开发和维护的普遍原理与技术的一门工程学科。所谓软件工程是指采用工程的概念、原理、技术和方法指导软件的开发与维护。软件工程学的主要研究对象包括软件开发与维护的技术、方法、工具和管理等方面。
软件工程包括3个要素:方法、工具和过程,见表3-2。
软件工程的核心思想是把软件产品(就像其他工业产品一样)看作是一个工程产品来处理。把需求计划、可行性研究、工程审核、质量监督等工程化的概念引入软件生产当中,以期达到工程项目的三个基本要素:进度、经费和质量的目标。 §3.2 软件工程过程与软件生命周期 1. 软件工程过程
软件工程过程:即把输入转化为输出的一组彼此相关的资源和活动。
定义支持了软件工程过程的两个方面的内涵。
①.软件工程过程是指为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。通常包含4种基本活动:
ⅰ.P(Plan)—软件规格说明。规定软件的功能及运行时的限制。 ⅱ.D(Do)—软件开发。产生满足规格说明的软件。
ⅲ.C(Check)—软件确认。确认软件能够满足客户提出的要求。 ⅳ.A(Action)—软件演进.为满足客户的变更要求,软件必须在使用的过程中演进.
②.从软件开发的观点看,它就是使用适当的资源(包括人员、硬软件工具、时间等),为开发软件进行的一组开发活动,在过程结束时将输入(用户要求)转化为输出(软件产品).
所以,软件工程的过程是将软件工程的方法和工具综合起来,以达到合理、及时地进行计算机软件开发的目的。 2. 软件生命周期概念
软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。
软件生命周期分为3个时期共8个阶段:
Ⅰ.软件定义期:包括问题定义、可行性研究和需求分析3个阶段;
Ⅱ.软件开发期:包括概要设计、详细设计、实现和测试4个阶段;
Ⅲ.运行维护期:即运行维护阶段。 软件生命周期各个阶段的活动可以有重复,执行时也可以有迭代,如图3-1所示。
3. 软件生命周期各阶段的主要任务
在图3-1中的软件生命周期各阶段的主要任务,见表3-3。
§3.3 软件设计
3.3.1 软件设计基本概念 (1)按技术观点分
从技术观点上看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。