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

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

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

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, 与系统交互的人),即可构成用例图,如下图:
系统分析与设计-敏捷迭代方法课后习题答案+学习笔记(答案见最后)_第1张图片
2.活动图:针对每个“用例”(比如每项系统功能)可以有一个活动图:活动图具体表现各项流程,强调不同角色的人以什么样的次序干了什么。如下图:
系统分析与设计-敏捷迭代方法课后习题答案+学习笔记(答案见最后)_第2张图片
3.还有系统时序图。与活动图不同,系统时序图强调不同角色之间传递的信息。活动图只记录每个角色干了什么,但角色与角色直接传递的信息并没有体现。如下图表示的是查询物体的一个过程或称作“用例”:
系统分析与设计-敏捷迭代方法课后习题答案+学习笔记(答案见最后)_第3张图片
4.对于用到的类,我们用域模型类图(domain model class diagram)来表达
系统分析与设计-敏捷迭代方法课后习题答案+学习笔记(答案见最后)_第4张图片

系统设计过程

有了系统设计画出了各种图,我们可以轻而易举地将其推广到系统设计的图里。比如时序图(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 补上。如:
系统分析与设计-敏捷迭代方法课后习题答案+学习笔记(答案见最后)_第5张图片
之后加上data access layer如:
系统分析与设计-敏捷迭代方法课后习题答案+学习笔记(答案见最后)_第6张图片
2.设计类图:
把域模型类图转换为设计类图,除了处理成员变量属性,还应考虑类的方法。那增加哪些方法呢?需要根据用例也就是问题分析。
如果在完成时序图设计的基础上建立设计类图,那么问题就简单了。对每一跳箭头,增加目的类的方法。根据箭头的方向,增加在类图里的引用关系(书上说的是visibility)。如:
系统分析与设计-敏捷迭代方法课后习题答案+学习笔记(答案见最后)_第7张图片

总结

这本书的内容还是挺多的,有几百页。但经过了三天的学习,书上的重点可能就是我讲的这些。也是西安交大考试的重点。
如果读者有兴趣阅读书的pdf版本或者答案的pdf版本或者查阅西安交大考试复习资料,可以找我私下分享:

系统分析与设计-敏捷迭代方法课后习题答案+学习笔记(答案见最后)_第8张图片

!

你可能感兴趣的:(系统分析与设计-敏捷迭代方法课后习题答案+学习笔记(答案见最后))