《Python语言程序设计》——2.13 软件开发流程

简介:

本节书摘来自华章计算机《Python语言程序设计》一书中的第2章,第2.13节,作者:[美]梁勇(Y. Daniel Liang) 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.13 软件开发流程

关键点:程序开发周期是一个包括明确需求、分析、设计、实现、测试、部署和维护的多步骤过程。
开发软件是一个工程过程。软件产品,无论是大还是小,它们都有相同的周期:明确需求、系统分析、系统设计、实现、测试、部署和维护,如图2-2所示。
明确需求是寻求理解软件要解决的问题和建立关于软件系统需要完成任务的详细文档的一个正式流程。这个阶段需要用户和开发者之间的进行紧密的交互。本书中大多数例子都很简单,并且它们的需求陈述很明确。然而,在现实世界中,问题并不总是定义明确。开发者需要保持和用户(会使用软件的个人或团体)紧密的联系,仔细研究问题以期明确到底需要软件做什么。


<a href=https://yqfile.alicdn.com/a085ddfcddda0a9fb7881fea8b2729a770f67e5b.png" >

图2-2 在程序开发周期的任何一步,为了修改错误或解决导致程序
不能完成既定功能的问题,退回前一步是有必要的
系统分析是指分析数据流和识别系统的输入和输出。当你分析时,它帮你确认哪个输入是最早的,然后帮你搞清楚要产生输出需要哪些输入数据。
系统设计是设计从输入获取输出的过程。这一阶段涉及很多层的抽象,将问题分解为可管理的几个组件,然后为每个组件的实现设计策略。你可以将每个组件看作一个完成系统中特定功能的子系统。系统分析和设计的本质是输入、处理和输出(IPO)。
实现过程涉及将系统设计翻译成程序。每个组件被编写成各自的程序,然后将它们集成在一起工作。这一阶段需要使用程序设计语言,例如:Python。实现过程设计到编写代码、自测和调试(就是在代码中找被称为小虫子(bug)的错误)。
测试过程确保代码满足需求规范并且清除程序bug。一部分不参与产品设计和实现的工程师组成的独立团队通常进行这类测试。
部署过程是使程序可以使用。根据软件类型的不同,有些安装到每个用户的机器上而有些则安装在可以通过互联网访问的服务器上。
维护过程涉及产品的更新和升级。一款软件产品必须持续在一个不断变化的环境中完善和升级。这需要定期更新产品来解决最新发现的bug并合并这些改变。
为了更直观地看软件开发过程,我们现在创建一个计算贷款支付额的程序。这笔贷款可以是汽车贷款、学生贷款或房屋抵押贷款。作为一个对程序设计教学的介绍,我们专注于需求分析、分析、设计、实现和测试。
第1阶段:需求分析
这个程序必须满足以下需求:
必须由用户键入利率、贷款数以及贷款的年限。
必须计算出每月还贷数和总还款数。
第2阶段:系统分析
输出是月供(monthlyPayment)和总还款数(totalPayment),可以通过下面的公式来获取:


<a href=https://yqfile.alicdn.com/92c6589e4f916b90f6567f2eeb5c5c1df7fbf092.png
" >

所以,程序需要输入的是年利率、贷款年限和总贷款数目。
注意:需求分析要求用户必须输入利率、贷款数、贷款年限。但在分析过程中,有可能你会发现输入是不充分的或有些输入对于输出而言是不必要的。如果是这样,你可以返回上一步修改需求分析。
注意:在现实世界里,你会为各行各业的用户工作。你可能会为化学家、物理学家、工程师、经济学家和心理学家开发软件。你不一定会有(或需要)这些行业的完备知识。因此,你不需要知道这些数学公式是怎样推导出来的。所以,在给出利率、贷款数、贷款年限的情况下,你可以利用公式来计算月供。然而,你需要和用户进行交流并理解这个数学模型是如何为系统工作的。
第3阶段:系统设计
在系统设计过程中,你需要确定程序中以下几个步骤。
第1步:提示用户输入年利率、贷款数、贷款年限和贷款额。
第2步:输入的年利率是百分比格式的数字,例如:4.5%。程序需要将它除以100转换为小数。因为一年有12个月,所以将年利率除以12即月利率。所以,为了获取月利率,你需要将百分比格式的年利率除以1200。例如:如果年利率是4.5%,那月利率就是4.5/1200=0.003 75。
第3步:使用第2步中的公式计算月供。
第4步:通过将月供乘以12再乘以贷款年限求出还款总额。
第5步:显示月供和还款总额。
第4阶段:实现过程
实现过程又被称为编码(编写代码)。在公式中,你需要计算(1 + 月利率)年限×12。你可以利用指数运算符将它写作:


38b939493cd79095d8304cfc19f415632fdb1a02

程序清单2-8给出了完整的程序。
程序清单2-8 ComputeLoan.py


0597513b8765a930d98561a9ba6563e92e901f4d


7233bd41063d9020e03f9f9fec9e89f5eeaaf0da

第2行读取年利率,该值在第4行被转换为月利率。
计算月供的公式在第14到15行被翻译成Python代码。
变量monthlyPayment(第14行)是2076.0252175。注意:


<a href=https://yqfile.alicdn.com/c30b28ac3788a89f99e2d4e61e5b48e2f299b923.png" >

所以,第19行显示的是保留了小数点后两位的税款2076.02。
第5阶段:测试过程
在实现程序之后,测试过程是利用几组样本输入数据来验证输出是否正确来完成的。如你在后面几章会看到的一样,某些问题会牵扯到许多情况。对于这种类型的问题,你需要设计能涵盖所有情况的测试数据。
提示:这个例子的系统设计阶段确认了几个步骤。一次增加一步来开发和测试这些步骤是一种很好的方法。这个过程可以更容易查明问题也更易于调试。
相关文章
|
6月前
|
数据可视化 关系型数据库 MySQL
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
本文详解基于Python的电影TOP250数据可视化大屏开发全流程,涵盖爬虫、数据存储、分析及可视化。使用requests+BeautifulSoup爬取数据,pandas存入MySQL,pyecharts实现柱状图、饼图、词云图、散点图等多种图表,并通过Page组件拖拽布局组合成大屏,支持多种主题切换,附完整源码与视频讲解。
619 4
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
|
6月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
7月前
|
JSON API 数据安全/隐私保护
Python采集淘宝评论API接口及JSON数据返回全流程指南
Python采集淘宝评论API接口及JSON数据返回全流程指南
|
7月前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
1795 0
JSON 监控 API
295 0
|
8月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
1408 1
|
8月前
|
设计模式 算法 大数据
Python流程控制:让代码按你的节奏跳舞
Python流程控制是编程核心,通过if条件判断、for循环与while循环,控制代码执行顺序与逻辑分支。它帮助开发者实现智能决策、重复任务处理与交互式应用,是编写高效、清晰程序的关键。掌握这三大控制结构,将显著提升代码逻辑与程序性能。
268 0
|
8月前
|
API 数据安全/隐私保护 Python
拼多多批量上架软件, 电商一键上货发布工具,python电商框架分享
多线程批量上传架构,支持并发处理商品数据 完整的拼多多API签名和token管理机制
|
8月前
|
安全 API 数据安全/隐私保护
|
8月前
|
Java API 数据安全/隐私保护
淘宝一键上货发布软件,淘宝批量发布上架工具, 淘宝批量上架脚本【python】
这个Python脚本实现了以下功能: 完整的淘宝API调用封装

推荐镜像

更多