https://www.icourse163.org/learn/NJU-1002246017?tid=1002791118#/learn/content
科学思维&工程思维
科学思维:限制条件可有可无,理论可行寻求未解决问题转变为解决问题的最优解;
工程思维:限制条件多,现实可行性下寻求折中方案,不坏的解。
软件工程的发展历史:
数学-计算机问题 计算机-冯诺依曼模型 软件工程-用工程的问题来开放软件
计算机思维:
数学为计算机提供理论和基础-现实问题->数学—>计算机解决
计算机用特有的软件(编程范式:命令式 函数式)和硬件(硬件结构:冯诺依曼结构 哈佛结构)
软件框架:编程范式(命令式 函数式 逻辑式) 层次性(机器指令 汇编指令 高级语言)
SSE技术:
软件工程框架:
技术:业务 分析设计模型 过程:软件开发过程
计算机模型的进步
高级语言编译器 高级模型
SDLC:系统生存周期 https://baike.baidu.com/item/sdlc
https://blog.csdn.net/xieyihua1994/article/details/52836855
分解与抽象:
层次性
分形-科赫雪花 套娃
HelloWorld:512中编程语言 76种人类语言 http://helloworldcollection.de/
需求:IEEE610.2-1990
用户为解决问题或达到某些目标所需要的条件/能力 系统(部件)为满足合同标准规范或其它正式文档所规定的要求而需要具备的条件/能力
用例:Jacobson 1992-Objectory 在系统/类和外部对象交互种所执行的行为描述,不同序列提供有价值的服务 行为序列为一个出南京,一个用例是多个场景的集合
用例特征:相对独立 发起者 动宾短语形式 一个需求单元 结果可测有意义
结构化编程思想
软件危机68069年两次Nato会议
结构图Structured Chart
树状图 表达模块/方法 后续构造活动
算法:
结构化程序设计 可分为循环sequence 选择selection 重复repetition
测试分支与循环
白盒测试:内部结构或运作,非功能,输入数据验证数据流在程序中的流动路径,并确定适当的输出
循环:简单 嵌套 连锁 不规则
“可以预期”的变更
面对对象的世界观
职责及分配:数据 (状态的存储) 行为(操作的执行)
数据职责:课程表数据 课程数据 命令数据 文件数据
行为职责:命令的解析 生成输出 课程数据的解析 控制台输入 处理命令 文件输入 控制台输出 文件输出
面对对象编程是有职责的对象之间的协作
视角:行为-结构化方法 数据-数据为中心方法 职责-面对对象方法
类&对象
对象:建模方式 客观问题空间Namespace中的某个具体的事物,又表示软件系统解空间中的基本元素
属性preperities+方法methods
获取对象:名词-类/对象与属性 动词-行为
类:相同具体属性的对象的描述 一个描述或蓝图
重用
封装:将数据和操作数据的行为放在一起 用职责驱动的设计原则来决定数据和行为的在一起 职责完备