【学习中】软件工程

软件的定义:程序+文档

软件工程的目标:生成具有正确性、可用性、开销合宜的产品

  • 正确性:软件产品达到预期功能
  • 可用性:软件的基本结构、实现、文档为用户可用的程序
  • 开销合宜:软件的开发、运行的开销满足用户要求

软件工程活动:需求、设计、实现、确认、支持

  • 需求:系统模型、系统功能的精确、系统的描述
    • 需求验证:验证需求陈述和需求规约之间的一致性、完整性、可跟踪性
  • 设计
    • 总体设计:体系结构、子系统、模块、接口定义
    • 详细设计:每个模块的详细描述、数据结构说明、算法
  • 实现
  • 确认:贯穿于整个开发过程
    • 包括需求复审、设计复审、程序测试
  • 支持活动
    • 完善性维护、纠错性维护、适应性维护

软件生存周期:形成概念、历经开发、交付、修订、演化、淘汰

软件过程:过程是活动的集合,活动是任务的集合,任务是输入转换为输出的操作

关键过程分3类:

  1. 基本过程:与软件生产直接相关的活动集。又分为5个:
    • 获取过程:需方,定义客户要求,接受客户要求的产品
    • 供应过程:供方,
    • 开发过程:软件开发者(又包含13个活动)
    • 运行过程:系统操作者
    • 维护过程:维护者
  2. 支持过程:有关各方按其目标从事的一系列支持活动集。分为8个
    • 文档过程:为记录生存周期过程所产生的信息而定义的活动
    • 配置管理过程
    • 质量保证过程
    • 验证过程
    • 确认过程
    • 联合评审过程
    • 审计过程
    • 问题解决过程
  3. 组织过程:与软件生产组织有关的活动集

参考资料

https://www.icourse163.org/course/PKU-1003177002


课程笔记:(清华)《软件工程》 刘强老师

概述

持续进行的需求管理

行动 产出
需求获取 会议记录等
需求分析 分析模型
需求规格说明 需求规格说明书
需求验证 已确认的需求规格说明书

团队建设

  1. 进度管理
    • 每周一晚8:00召开小组讨论会,地点在xxx。主要内容是进展、心得、遇到的问题和风险
    • 每周三、五团队集中开发
    • 每次集中开发前矩形10分钟站立会议。报告开发进度、困难。
    • 周报(或需求管理系统)提交到系统
  2. 团队管理
    • 记分方式记录成员参与度,每次参加加1分。
    • 周会应当简洁,每人事先准备。轮流做会议纪要
  3. 团队建设
    • 鼓励写技术博客
    • 达到阶段目标时,请大家pizza party

敏捷开发

原因是互联网时代的特点决定的:

  1. 小bug可以容忍,但是时间很重要,早一天发布可能结果完全不同
  2. 客户需求是无法在一开始定下的,往往先有了软件,才有了需求
  3. 即使是已经做完的app,也要经常更新,否则也会失败

需求提取

5W2H

1:card

  • As a 【user】,I want 【function】,so that 【value】
  • As a 【role】,I want 【feature】,because 【reason】
  • As a 【role】,I can 【feature】
  • As a 【role】,I want 【feature】,so that 【reason】

2:conversation




您的支持将鼓励我继续创作!