软件工程
2020-12-15 本文已影响0人
追梦若苦希望暖之
一、工程知识点
image.png设计模式
image.pngModel: 数据的CURD
View: 页面
Controler:业务逻辑
MVC是后端角度
MVVM是前端的角度
image.png
二、理论知识点
1.软件具有哪些本质的特性?
复杂(业务功能、算法复杂)。
一致(架构、原理一致)。
可变(需求)。
不可见(逻辑抽象)。
2.软件开发面临哪些主要问题?
客户需求。
风险、成本。
项目管控。
团体效率与协作。
3.如何理解软件工程的基本概念和内涵?
过程
问题定位
需求开发(用户界面原型化)解决需求难以确定的问题
软件设计(软件建模)
软件构造
软件测试
抽象层次 1.面向过程(函数) 2.面向对象(类) 3.面向构件(泛型) 4.面向服务(server,架构)
方法
工具
4.软件开发工程化原则?
合理的分析、设计
遵循设计原则和规范编写代码
代码静态检查工具
代码性能分析工具
软件的定义:
程序:代码。
数据:数据结构、序列化、结构化数据。
文档:架构文档,使用手册。
软件开发历史:
1956-1967: 小作坊式开发。
1968-1982: 瀑布流过程。
1983-1995: OOP。
1995~now: 敏捷迭代。
工程的定义:
理论与知识应用于实践的科学。
软件项目的管理
1.明确项目目标,制定计划,确定资源
2.组建开发团队,明确成员分工和职责
3.检查、评价项目的总体进展。
4.监控项目进展与变更。
软件配置管理
版本控制。
团队组织与管理
1.民主式结构:团队成员完全平等,协商决策。适合规模小,能力强,沟通学习能力优秀的团队。有利于激发创造力。
2.主程序员式结构:主程序员是项目管理者也是技术负责人。
3.矩阵式结构:将技术与管理分离。将技术与管理分权。需明确规范职责。
团队沟通与管理
1.沟通的目的是取得对方的理解和支持。
沟通是你被理解了什么而不是说了什么。
面向对象设计 Object-Oriented Design (OOD)
核心理念:
1.区分接口与实现
接口标准化
2.从具体到抽象
最小用户负担原则(只暴露用户业务需求上的接口。)
3.最小接口原则
设计模式
1.单一职责
一个类只负责一项职责。
2.里氏替换
3.依赖倒置
4.接口隔离
5.迪米特法则
一个对象应该对其他对象保持最少的了解。
6.开闭原则
扩展性开放、更改性封闭。
UML
Visibility:
- private
+ public
# protected
~ package/default
Relationships:
1.inheritance 继承 is a
2.Association 关联
3.aggregation 聚合 has a 整体与部分的关系,但部分能脱离整体而独立存在。
4.Composition 组合 是整体与部分的关系,但部分不能脱离整体而独立存在。
multiplicity:
0..1 zero to one(optional)
n specific number
0..* zero to many
1..* one to many
视觉交互
https://www.bilibili.com/video/BV1Q741157ve?p=75