Skip to content

mieclance.club

Menu
  • 关于站主
    • 我的知乎
    • 我的B站
    • 我的Github
    • 我的学术主页
    • Meet With Lance
  • 回到首页
  • CLUB用户中心
    • 本站用户注册
    • 本站论坛
    • 本站留言板
    • CLUB的知识星球
  • Lance写字的地方
    • Lance的学习笔记
    • Lance的文字天地
    • Lance的回忆录
Menu

EE308FZ — Slides Overview (l1-l6) Note 1

Posted on 2023年1月1日 by Lance Cai
  • l1 Introduction to Software Engineering 软件工程引入
  • l2 A Generic View of Process 软件过程引入
  • l3 Process Models 过程模型
    • 软件过程(汇总)
  • l4 An Agile View of Process
    • 敏捷开发(汇总)
  • l5 Software Engineering Practice 实践
  • l6 System Engineering 系统工程(部分UML图)

本大纲以EE308FZ Slides l1-l6为基础,结合网课材料进行整合,参考书目为:《软件工程——实践者的研究方法》


l1 Introduction to Software Engineering 软件工程引入

1-1 Software

软件是一系列按照特定顺序组织的计算机数据和指令的集合。

分为:系统软件、应用软件和介于这两者之间的中间件。

1-2 Software engineering

Software engineering is a systematic engineering approach to software development.

软件工程:将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程话应用于软件中。

1-3 补充

应用软件的类型:


l2 A Generic View of Process 软件过程引入

  • Communication (collaboration & requirement gathering,合作)
  • Planning (work plan & schedule,计划)
  • Modeling (understand,理解)
  • Construction (code generation and testing,编程)
  • Deployment (delivery and feedback,验收与反馈)

2-1 Process

软件过程的组成部分:

  1. 软件规格说明:定义软件的功能、运行约束
  2. 软件开发:编程开发,必须符合软件规格说明
  3. 软件确认:必须是客户需要的
  4. 软件演化:通过不断反馈,满足需要

2-2 Process Patterns 过程的模式

Process patterns define a set of activities, actions, work tasks, work products and/or related behaviors

注意区分Process Patterns和Process Model

2-3 Personal and Team Process Models

  • Personal Software Process (PSP)
  • Team Software Process (TSP)

l3 Process Models 过程模型

软件过程汇总 Software Process

  • 3-1 体系结构(原l3)
    • 瀑布模型 Waterfall Model
    • 增量式开发Incremental Process Models
    • 集成和配置 Integration and configuration
    • 演化过程模型Evolutionary Process Models
    • Specialized Process Models
    • Unified Process
  • 3-2 过程活动
    • 软件规格说明sign and implemetation
    • 软件确认 software validation
    • 软件演化 software evolution
  • 3-3 应对变化的方法
    • 使用软件原型
    • 增量式交付
    • 软件过程的改进

Prescriptive process models advocate an orderly approach to software engineering 规定性过程模型提倡软件工程的有序方法

l3-1 体系结构

3-1-1瀑布模型 Waterfall Model

  • 1、计划驱动开发,所有活动提前计划好(传统生命周期)
  • 2、前一个阶段不结束,后一个阶段就不开始(线性顺序模型)

考虑Waterfall Model需求熟悉,变化少

  • 嵌入式系统
  • 关键性系统
  • 大型软件系统


3-1-2 增量式开发 Incremental Process Models

Y:增量式开发

N:敏捷式开发

3-1-2 Incremental Process优缺点:

The Rapid Application Development (RAD) Model

快速应用程序开发(RAD)模型


3-1-3 集成和配置模型 – Integration and configuration

  • 优点:降低开发量、成本、风险
  • 缺点:不能完全满足需求、版本及功能可能不受控制

(UML活动图:fork+join,决策)


3-1-4 Evolutionary Process Models 演化模型

3-1-4.1 The Spiral Model

3-1-4.2 The Concurrent Development Model 并行开发模型

质量最重要


3-1-5 Specialized Process Models – 专用流程模型


3-1-6 The Unified Process – 统一过程模型

  • Inception phase
  • Elaboration phase
  • Construction phase
  • Transition phase


l3-2 过程活动

  • 规格说明
  • 开发
  • 确认
  • 演化

3-2-1 软件规格说明

需求+约束——需求工程

活动图

  • 圆角:需求
  • 直角:对像

  1. 需求抽取和分析(系统描述)
  2. 需求说明(用户和系统需求)
  3. 需求确认(需求文档)

3-2-2 软件设计和实现

设计过程的通用模型

3-2-3 软件测试/确认

  • 确认系统是否符合需求(可量化)
  • 确认是否符合用户的期望(无法量化)

通用测试过程的三个阶段(与第八章说法略有不同)

  1. 组件测试
  2. 系统测试
  3. 用户测试

3-2-4 软件演化


l3-3 应对变化的方式

  • 使用软件原型
  • 增量式交付
  • 软件过程的改进

3-3-1 软件原型

3-3-2 增量式交付

  1. 替换旧系统时,难以迭代开发
  2. 难以确定全体增量

3-3-3 过程改进

Overall:软件过程


l4 An Agile View of Process 敏捷开发

“敏捷开发宣言”

  1. 个体和互动 高于 流程和工具
  2. 可工作的软件 高于 详尽的文档
  3. 客户合作 高于 合同谈判
  4. 相应变换 高于 遵循计划

敏捷开发总结

  • 敏捷方法
    • 增量开发方法
    • 客户参与
    • 设计和实践为核心
    • 尽量减少文档化
  • 敏捷方法的原则
    • 客户参与
    • 拥抱变化
    • 增量交互
    • 保持简洁
    • 人不是过程
  • 敏捷开发的实践
    • 用户故事(卡片):思想强大,便捷,容易遗漏需求
    • 重构:改进软件的结构与可读性,使结构更合理,提高复用性(reusability)
    • 测试先行的开发:容易考虑不当,不完整
    • 结对编程:共同责任,非正式评审,鼓励重构,但效率损失显著

敏捷 vs 计划型

  • 基于系统
    • 敏捷开发:中小规模、长期(多互动,先demo)
    • 计划开发:关键性、大型、嵌入式、监管严格的系统
  • 基于团队
    • 技术、分布
  • 基于组织
    • 合同、文化
  • 综合考虑,两者结合

敏捷开发 vs 计划驱动开发


敏捷模型 7 Agile Process Models

  1. Extreme Programming (XP)

  1. Adaptive Software Development (ASD)

  1. Dynamic Systems Development Method (DSDM)

动态系统开发方法

  1. Scrum敏捷方法

Scrum被提出以提供一个组织敏捷项目的框架,在一定程度上提供项目进展状况的外部可见性

多团队Scrum:角色重复、产品架构师、发布同步、每日站立会议(多层会议)

  1. Crystal

  1. Feature Driven Development (FDD)

  1. Agile Modeling (AM)

敏捷建模


Overall:敏捷开发


l5 Software Engineering Practice 实践

  • Communication Practices
  • Planning Practices
  • Modeling Practices
    • Analysis
    • Design
  • Construction Practices
    • Coding
    • Testing
  • Deployment


l6 System Engineering 系统工程

系统工程层次结构:

业务流程工程:

产品工程:

系统建模:


UML图(Unified Modeling Language)

  • Deployment diagram 部署图
  • Activity diagram 活动图
  • Class diagram 类图
  • Use-case diagram 用例图

Deployment diagram 部署图

Activity diagram 活动图

Class diagram 类图

Use-case diagram 用例图

新年快乐!最后的最后,祝你好运——Lance于2023/01/01

1 thought on “EE308FZ — Slides Overview (l1-l6) Note 1”

  1. Lance Cai说道:
    2023年1月2日 22:11

    更新于2023年01月02号,大三上学期的各科历年卷解析汇总:

    链接: https://pan.baidu.com/s/1oRMbdsh9JtMkPlco_fZcdQ
    提取码: ecv7

    回复

发表回复 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

HANLIN.CAI.2021@MUMAIL.IE

注册
  • InessaSnki 在 CS240FZ Note 4 | Operating Systems & Communications & Concurrency 4coursework writing uk co......
  • Lance Cai 在 EE304FZ Statistics and Probability|Note 1祝大家考试顺利! Everything will......
  • Lance Cai 在 EE308FZ — Slides Overview (l1-l6) Note 1更新于2023年01月02号,大三上学期的各科历......
  • Lance Cai 在 Cambridge暑研回忆录(2022.06—2022.10)以上为2022年暑研总结,「大二回忆录」,在写了......
  • 613-3 在 Lance的留言板打卡打卡
  • Laurent 在 Lance的留言板日常催更催更
  • Lance Cai 在 Lance的留言板已添加
  • Claire 在 Lance的留言板请求一个友链~

最新 | 活动 | 热门
  • Lance Cai的头像
    Lance Cai
    活跃于 1天, 2小时前
  • Laurent的头像
    Laurent
    活跃于 2个月, 1周前
  • Lance的头像
    Lance
    活跃于 2个月, 1周前
  • Dupree的头像
    Dupree
    活跃于 2个月, 1周前
  • Knight的头像
    Knight
    活跃于 4个月, 3周前

近期文章

  • EE302 Note (2.20) ADC and Comparator (重点3)
  • EE302 Note (3.10-3.30) Asynchronous and Synchronous(重点2)
  • EE302 Note (5.10) Memory and IO interfacing(重点1)
  • EE304FZ Statistics and Probability|Note 2
  • EE304FZ Statistics and Probability|Note 1
  • EE308FZ — Slides Overview (ch22) Note 5
2023年 3月
日 一 二 三 四 五 六
 1234
567891011
12131415161718
19202122232425
262728293031  
« 1月    

输入课程代码,获取Lance的笔记

© 2023 mieclance.club | Powered by Superbs Personal Blog theme