自顶向下设计
即将大问题分解成一个个的小问题最后再汇总。
自顶向上的设计
从底层模块一个一个测试
小规模程序直接运行
中等规模程序从底层开始逐步上升,运行基本函数,测试整体函数
较大规模程序将使用高级软件测试方法
敏捷开发
当前最流行开发方法
以人为核心,迭代,循序渐进
将大项目分解成多个相互联系,但又相互独立运行的小项目
软件一直处于开始用状态
敏捷开发典型过程
一、产品形成共识
二、建立和维护产品需求列表进行优先级排序
三、筛选需求进入本轮迭代开发
四、细化需求,完成本轮开发
五、每日站立会议
六、现场验收和反馈
七、从第三步开始进行下一轮迭代
面向过程的程序设计
也叫结构化编程
举例:铅球飞行轨迹IPO模式
输入:投射角度、初始速度(m/s)、初始高度(m)
处理:模拟铅球飞行
输出:飞行距离(m)
相关参数:
仿真参数:投掷角度angle、初始速度velocity、初始高度height、飞行距离interval
位置参数:X轴坐标xpos、Y轴坐标ypos
速度分量:X轴方向上速度xvel、Y轴方向上速度yvel
程序
from math import pi,sin,cos,radians
def main():
# 输入仿真参数
angle = eval(input("Enter the launch angle (in degrees):"))
vel = eval(input("Enter the initial velocity (in meters):"))
h0 = eval(input("Enter the initial height (in meters):"))
time = eval(input("Enter the time interval:"))
xpos = 0
ypos = h0
# 通过radians函数将度转换为弧度
theta = radians(angle)
# 计算初始速度
xvel = vel*cos(theta)
yvel = vel*sin(theta)
# 程序主体循环
while ypos >= 0: # 当y小于0意味着落地
xps = xpos + time * xvel # x位置
yvell = yvel - time*9.8 # y位置受重力加速度影响的速度
ypos = ypos +time * (yvel + yvell)/2.0 # y位置
yvel = yvell
print("\ndistance traveled:(0:0.1f)meters.".format(xpos))
main()
>>>
==================== RESTART: E:/Python/代码目录/铅球飞行轨迹程序.py ====================
Enter the launch angle (in degrees):60
Enter the initial velocity (in meters):100
Enter the initial height (in meters):100
Enter the time interval:1
distance traveled:(0:0.1f)meters. # 结果永远是这个为什么啊
>>>