系统分析与设计-敏捷迭代方法之学习笔记

上学的时候我们学了《系统分析与设计-敏捷迭代方法》,算是对软件工程的知识有所了解。本文可以当作这本书的导论,有兴趣的同学推荐购买原版书籍学习。
本文也可作为西安交大计算机专业《软件工程》的复习资料。关于本书的答案请跳到最后

SDLC各个环节

这本书对软件工程流程和思想做了介绍。把软件工程的环节称作SDLC即Software/System Development Life Cycle。作者概括为了6点:
1.Identify the problem and obtain approval
2.plan and monitor the project
3.identify the problem in detail
4.design system components
5.build, test and integrate system components
6.finalize the tests and deploy the project
整本书的流程围绕这6点展开。

系统分析

系统分析和系统设计是本书的重点。它们分别对应SDLC的第3和第4步。先讲讲系统分析。
系统分析主要完成用例图(Use case diagram),活动图(activity diagram)和系统时序图(System sequence diagram),以及类图(class diagram)。

1.用例图:对软件系统的每项功能可以称作用例(Use case),如点餐系统中“点餐”可以是用例,“搜索外卖”也可以是用例。把各项“用例”枚举在矩形框(称作自动化边界, Automation bound?存疑)内,外加用户(即actor, 与系统交互的人),即可构成用例图,如下图:

2.活动图:针对每个“用例”(比如每项系统功能)可以有一个活动图:活动图具体表现各项流程,强调不同角色的人以什么样的次序干了什么。如下图:

3.还有系统时序图。与活动图不同,系统时序图强调不同角色之间传递的信息。活动图只记录每个角色干了什么,但角色与角色直接传递的信息并没有体现。如下图表示的是查询物体的一个过程或称作“用例”:

4.对于用到的类,我们用域模型类图(domain model class diagram)来表达

系统设计过程

有了系统设计画出了各种图,我们可以轻而易举地将其推广到系统设计的图里。比如时序图(sequence diagram)和设计类图(design class diagram, DCD)

1.时序图:在系统时序图的基础上,完善系统内部的逻辑。常用的方法是处理为三层结构: View layer, domain layer(or business layer), data access layer。
View layer负责处理视图,domain layer负责处理功能/用例的逻辑,data access layer负责处理对象数据(主要是与数据库的访问问题)

具体方法:先采用2层结构,不用data access layer。然后把data access layer 补上。如:

之后加上data access layer如:

2.设计类图:
把域模型类图转换为设计类图,除了处理成员变量属性,还应考虑类的方法。那增加哪些方法呢?需要根据用例也就是问题分析。
如果在完成时序图设计的基础上建立设计类图,那么问题就简单了。对每一跳箭头,增加目的类的方法。根据箭头的方向,增加在类图里的引用关系(书上说的是visibility)。如:

总结

这本书的内容还是挺多的,有几百页。但经过了三天的学习,书上的重点可能就是我讲的这些。也是西安交大考试的重点。

系统分析与设计-敏捷迭代方法课后习题答案+学习笔记(答案见最后)相关推荐

  1. C语言求解距多个点最短长度,算法设计技巧与分析课后习题答案沙特

    算法设计技巧与分析课后习题答案沙特[篇一:高级算法设计实验指导书2009(李淑琴)] =txt>一.适用专业 计算机科学与技术专业研究生 二.实验目的与任务 算法分析与设计是计算机科学与技术专业 ...

  2. 《MySQL数据库原理、设计与应用》课后习题及答案 黑马程序员编著

    <MySQL数据库原理.设计与应用>课后习题及答案 黑马程序员编著 答案有文档形式,但是csdn必须要下载,,需要的人就去那里下载吧.<MySQL数据库原理.设计与应用>课后习 ...

  3. 计算机组成原理 | 第三章《运算方法和运算部件》学习笔记

    计算机组成原理 | 第三章<运算方法和运算部件>学习笔记 引言 & 声明 第一章 计算机系统概论 第二章 计算机中数据的表示方法 第三章 运算方法和运算部件 3.1& 算术 ...

  4. 《大数据基础——基于Hadoop与Spark》课后习题——第一章部分答案

    仅用于我个人的学习.书籍为人民邮电出版社的<大数据技术基础--基于Hadoop与Spark>.课后习题选择是我个人认为有用的.记录下来是为了督促我学习:) 共好 1.请指出以下术语的基本含 ...

  5. 用户故事与敏捷方法—课后习题解析

  6. 操作系统精髓与设计原理第一章课后习题答案

    复习题 1.1列出并简要定义计算机的4个主要组成部分 答:处理器:控制计算机的操作,执行数据处理功能.只有一个处理器时,它通常指中央处理器(cpu):内存:存储数据和程序.这类存储器通常是易失性的:输 ...

  7. 计算机组成原理(第三版)唐朔飞-第六章计算机的运算方法-课后习题(1-16)

    目录 第六章 1.最少用几位二进制数即可表示任一五位长的十进制正整数? 2.已知 X = 0. a 1 a 2 a 3 a 4 a 5 a 6 ( a i 为 0 或 1 ) X=0.a_1a_2a_ ...

  8. 负317是几位数在计算机课中,国网计算机课后习题选择填空判断答案

    6 Enter 键,则表格增加一行.(×) 6.在Word2003中新建一个文档默认使用的文档模板为Normal.dot .(√) 7.在文档中绘制多个图形时,先绘制的图形放置在上层,后绘制的图形放置 ...

  9. 《人工智能及其应用(第6版)》蔡自兴1-6章课后习题.【部分无答案】

    第一章 绪论: 1-1什么是人工智能?试从学科和能力两方面加以说明. 人工智能(学科):人工智能(学科)是计算机科学中涉及研究.设计和应用智能机器的一个分支.其近期的主要目标在于研究用机器来模仿和执行 ...

  10. Java 2 实用教程(第五版)课后习题-【编程题答案】

    第二章 1.编写一个应用程序,给出汉字"你" "我" "他" 在Unicode表中的位置. /** 要观察一个字符在Unicode表中的顺序 ...

最新文章

  1. 秒懂QPS、TPS、PV、UV、GMV、IP、RPS!
  2. Weblogic12C 集群实现session同步
  3. python爬取百度百科词条-python简单爬虫爬取百度百科python词条网页
  4. 智联招聘python岗位_智联招聘的python岗位数据词云制作
  5. c++ template笔记(3)非类型模板参数nontype template parameters
  6. Linux网络子系统
  7. 二级c语言作答文件不存在,全国计算机等级考试二级C语言上机考试题库及答案...
  8. pythonopencv图像形态_Python+OpenCV图像处理之其他形态学操作
  9. string转short java_[Java基础]之 数据类型转换
  10. 基于android的课程画图设计,基于Android的智能终端通信勘察设计系统绘图模块的设计与实现...
  11. Vuejs 事件监听
  12. linux内核驱动之 设备和模块的分类
  13. 转:Windows下WSH/JS实现SVN服务器钩子脚本阻止提交空日志信息和垃圾文件
  14. linux终端中书名号,Linux双引号、单引号和反向单引号
  15. Mac 打开大小写切换很慢
  16. iOS 8 界面设计 PSD 模板(iPhone 6),免费下载
  17. python 象棋 ai 入门教程-用turtle画中国象棋棋盘
  18. php cms 源码下载,PHPCMS v9.6.3 UTF8
  19. 无源码程序反编译修改文字
  20. grpc istio_在皮质数据湖中使用grpc envoy和istio进行大规模数据摄取

热门文章

  1. 优化方法总结(梯度下降法、牛顿法、拟牛顿法等)
  2. Android 和 Ios测试的区别
  3. 音乐外链转换工具 php,音乐外链生成工具V2.1 支持14个音乐网站外链提取转换
  4. SRA数据下载以及转换格式
  5. 关于ucgui3.98(显示部分)移植
  6. 1小时搞懂 Git 版本控制
  7. matlab回调函数,matlabGUI回调函数介绍.pptx
  8. JAVA性能优化权威指南 读书笔记(一)
  9. three.js入门——写个小车
  10. 【设计鉴赏】张艺谋《影》震撼人心的海报设计