第二章——软件工程
思维导图
文件分享
如要获取markdown文件和思维导图X-mind文件,请点击:https://share.weiyun.com/STYC0ZiN

导言
首先,你应该认识到:
- 什么是软件
其次,你应该有认知:
- 什么是软件工程
由简单事实可以得到一个简单结论:
- 各种形式、各个应用领域的软件都需要工程化
定义软件工程
定义无所谓,就是软件工程
质量关注点
- 支持软件工程的根基
过程层
- 软件工程的基础
- 就是软件开发上线的过程
软件工程方法
- HOW
- 解决方法
软件工程工具
本章重点:软件过程
工作产品构建时所执行的一系列活动、动作和任务的集合
-
活动(activity)
- 主要实现宽泛的目标
-
动作(action)
- 过程中的一系列任务
-
任务(task)
- 关注小而明确的目标
过程框架
-
沟通
- 我宁愿将之称为:需求获取与分析
- 沟通无处不在,但尤为注意的是与客户等利益相关方的沟通,使之明确
-
策划
- 如果有地图,任何复杂的旅程都可以变得简单
- 理所当然,就是策划软件
- 这是产品经理流程最重要的一部分工作
-
建模
- 建立模型
- 画草图并不断细化
- 当然,原型开发,这是个很重要的活儿。
- UI
-
构建
- 前端设计与编程
- 后端开发
- 测试,修改
-
部署
- 部署上线
- 由用户给出评测和反馈
- 并且持续维护
- 迭代
普适性活动
- 通常,这些普适性活动会贯穿项目始终
- 软件项目跟踪与控制
- 风险管理
- 软件质量保证
- 技术评审
- 测量
- 软件配置管理
- 可复用管理
- 工作产品的准备和生产
过程的适应性调整
- 任何东西都有变化与调整,难以有一成不变的东西
- 我认为食谱只是一种指导方法——Benoit
软件工程实践
实践的精髓
- 经典著作《How to Solve it》
-
理解问题
- 理解问题并非那么容易
- 理解问题最重要的是倾听
- 找出真正的问题
- 并进行细化和切分,梳理逻辑关系和重要程度
-
策划解决方法
- 策划其实是关键一步,因为它完全涉及到全体四部分
-
实施计划
- 任何计划不落地都是没有意义的。
- 在实施中,进行追溯和校正,测量评估
- 实施必须要有KPI,也就是指标!!!
-
检查结果的正确性
- 检查是重要的。
- 采用正确的常识,可以让你永远不迷失方向
通用原则
- David Hooker提出了7个关注软件工程整体实践的原则
-
存在价值
- 一个软件系统因能为用户提供价值而具有存在的意义
- 所有的决策都应该基于这个思想
- 这是真正的价值
- 用户是第一位的
- 在开始一个软件项目之前,应首先确保软件具有商业目标并且让用户体会到它的价值
-
保持简洁
- Keep Simple
- 构建易于理解和易于维护的系统
- 简洁而非简化,而是恰到好处,确定所做的范围
- BP!
-
保持愿景
- 清晰的愿景是软件项目成功的基础
- 没有愿景,将无法保持统一和一致
- 内部如此,外部也一样如此
- 愿景有利于解决分歧和不协调,为了工作和开发
-
关注使用者
- 要让其易于理解
- 在需求说明、设计和实现过程中,牢记要让别人理解你所做的事情
-
面向未来
- 生命周期持久的系统具有更高的价值
- 永远不要把自己的设计局限于一隅
- 提早应对,提早准备,无论如何,你应该想到,关于将来有可能发生的事情。考虑它!!!
-
提前计划复用
- 提前做好复用计划将降低开发费用,并增加可复用构件以及构件化系统的价值
- 需要有前瞻性的复用设计与计划
- API与SDK
-
认真思考
- 在行动之前清晰定位、完整思考,通常能产生更好的结果
- 最后一条可能是最容易被忽略的。时刻提醒自己!!!
- 去接受你的好奇,和提升你的好奇!向前!!!
软件开发神话
- 纠正错误的神话
- 即使有软件开发标准和过程规程,想要落实和实施它也不容易,何况软件开发是很多团队共同协作的过程
- 软件开发难以通过增加人手直接性的提高进度,有序且有计划有实施,才是保障进度的最好方法。也只有在这样的情况下,增加人手才有意义。
- 与客户的沟通不畅,没有互相理解,及时纠正错误的信息,会导致坏结果
- 变更需求的时间越是早期,变更成本就越小。在设计框架建立,资源分配,甚至项目启动之后之后,变更的成本就越增加。直至导致无法挽回。
- 文档和设计,是非常重要的一部分
青阳心:
人是一支会思考的芦苇,但这支芦苇注定摇天动地。
浙公网安备 33010602011771号