《系统分析与设计方法及实践》一1.3 软件系统开发范型

简介: 本节书摘来华章计算机《系统分析与设计方法及实践》一书中的第1章 ,第1.3节,窦万峰 主编 宋效东 史玉梅 李东振 赵菁 等参编更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.3 软件系统开发范型

范型的意思是指模型或模式;而在软件工程学科中,范型用来表示一套涵盖整个软件生产过程的技术的集合。目前使用得最广泛的软件工程方法学,分别是结构化开发范型和面向对象开发范型。

1.3.1 结构化开发范型

结构化开发范型自1968年被提出,经过了多年的发展,形成了一套完整的体系。构成结构化开发范型的技术包括结构化分析、结构化设计、结构化编程和结构化测试,这些技术在以数据为主的系统或小型系统方面得到广泛应用。采用结构化技术来完成软件系统开发的各项任务,并使用适当的软件工具或软件系统开发环境来支持结构化技术的运用。这种范型把软件的生命周期依次划分为若干个阶段,然后顺序地完成每个阶段的任务。采用这种范型开发软件的时候,从对问题的抽象逻辑分析开始,一个阶段接一个阶段地进行开发,从而降低了整个软件开发工程的困难程度。引入结构化开发范型所带来的主要改进体现在软件工业上。结构化开发范型在工业领域的运用是软件工程被大规模采纳的主要原因。
结构化开发范型获得成功的原因是,结构化技术考虑问题要么面向行为,要么面向数据。软件的基本组成部分包括软件的行为和这些行为操作的数据。有些结构化技术,如数据流分析是面向行为的,这些技术集中处理产品的行为,数据则是次要的。反之,有些结构化技术,如JSP系统开发技术是面向数据的,这些技术以数据为中心,在数据上操作的行为则是次要的。

1.3.2 面向对象开发范型

随着软件系统的规模不断扩大,结构化开发范型越来越难以应付。也就是说,结构化开发范型处理5000行或50 000行代码是有效的,然而,当今的软件系统,50 000行或5 000 000行甚至更多行代码的产品非常普遍。
面向对象开发范型把数据和行为看成同等重要,即将对象视作一个融合了数据及在其上操作的行为的、统一的软件组件。对象的概念符合业务或领域的客观实际,反映了实际存在的事物,也符合人们分析业务本质的习惯。
面向对象技术自20世纪90年代提出以来得到快速发展,并被应用于各种各样的软件开发中。面向对象技术将数据和数据上的操作封装在一起,对外封闭,实现了信息隐藏的目的。使用这个对象的用户只需知道其暴露的方法,通过这些方法来完成各种各样的任务,完全不需要知道对象内部的细节,保证了相对独立性。
面向对象技术的优势主要体现在维护阶段。相对于结构化技术,面向对象开发范型无论对象的内部细节如何变化,只要对象提供的方法(即接口)保持不变,则整个软件产品的其他部分就不会受到影响,不需要了解对象内部的变化。因此,面向对象开发范型使维护更快、更容易,同时产生回归错误的机会也大大降低。
面向对象开发范型使开发变得相对容易。大多数情况下,一个对象对应物理世界中的一个事物。软件产品中的对象和现实世界的同等对应物之间的密切对应关系,促进了更优化的软件开发。对象是独立的实体,因此面向对象开发范型促进了复用,降低了开发维护的时间和费用。
目前,传统的结构化开发范型仍然是人们在开发软件时使用得十分广泛的软件工程方法学。广大软件工程师对这种范型比较熟悉,而且在开发某些类型的软件时也比较有效,因此,在相当长一段时期内这种方法学还会有生命力。此外,如果没有完全理解传统范型,也就不能深入理解这种范型与面向对象开发范型的差别以及面向对象开发范型为何优于传统范型。在使用结构化开发范型时,分析阶段和设计阶段过渡太快,而面向对象开发范型是一种迭代的从一个阶段向另一个阶段过渡的范型,比结构化开发范型平滑得多,从而降低了开发过程中的故障数。

相关文章
|
前端开发 Java 关系型数据库
最好用的七大顶级 API 接口测试工具
现在 API 接口已经成为软件开发重要的组成部分,由于 API 并没有 GUI 图形界面,无法直观的对接口进行测试,所以对于前后端开发来说,找到一套趁手的工具对 API 接口进行测试,了解开发的程序是否符合预期十分重要。面对批量的 API,手动测试变得非常低效,自动化 API 接口测试工具,帮我们提高测试效率的同时,更能帮我们保证程序的稳定和安全性。
4012 0
最好用的七大顶级 API 接口测试工具
|
2月前
|
Docker 容器 持续交付
如何快速搭建 ERPNext Demo 演示?
ERPNext Demo 是一个预设数据的轻量化系统,帮助用户快速体验其核心功能。本文介绍四种快速搭建方法:Docker容器部署、自动化工具、云平台一键部署及源码定制化部署,适用于展示、培训、远程演示等场景,助力高效传递系统价值。
如何快速搭建 ERPNext Demo 演示?
|
2月前
|
Linux 虚拟化 iOS开发
macOS Tahoe 26 beta 3 (25A5306g) Boot ISO 原版可引导镜像下载
macOS Tahoe 26 beta 3 (25A5306g) Boot ISO 原版可引导镜像下载
311 0
|
11月前
|
机器学习/深度学习 TensorFlow 调度
使用Python实现深度学习模型:智能能源消耗预测与管理
使用Python实现深度学习模型:智能能源消耗预测与管理
647 30
|
10月前
|
域名解析 网络协议 安全
|
9月前
|
人工智能 测试技术 开发者
通义发布最强开源多模态推理模型QVQ!
通义发布最强开源多模态推理模型QVQ!
1342 19
|
10月前
|
数据采集 存储 XML
Python实现网络爬虫自动化:从基础到实践
本文将介绍如何使用Python编写网络爬虫,从最基础的请求与解析,到自动化爬取并处理复杂数据。我们将通过实例展示如何抓取网页内容、解析数据、处理图片文件等常用爬虫任务。
1602 1
|
Java jenkins 持续交付
jenkins学习笔记之十七:使用插件及maven上传制品到nexus
jenkins学习笔记之十七:使用插件及maven上传制品到nexus
|
SQL 缓存 Oracle
一文教会你如何在SpringBoot项目里集成Hibernate
一文教会你如何在SpringBoot项目里集成Hibernate
1321 1
|
机器学习/深度学习 自然语言处理 监控
金融行业的大数据风控模型:构建安全高效的信用评估体系
金融机构借助大数据风控提升信贷效率,通过数据收集、清洗、特征工程、模型构建与评估来识别风险。关键技术涉及机器学习、深度学习、NLP和实时处理。以下是一个Python风控模型构建的简例,展示了从数据预处理到模型训练、评估的过程,并提及实时监控预警的重要性。该文旨在阐述大数据风控的核心要素和关键技术,并提供基础的代码实现概念。【6月更文挑战第23天】
1763 8