软件设计工具

2006-2007学年第一学期)

课程号 04812180
学分 3

最后更新:2006-12-27

  主讲     周秉锋 教授  zhoubingfeng@icst.pku.edu.cn    TEL: 82529533

  助教                   jinghao@icst.pku.edu.cn         TEL: 82529690

                 刘家瑛          liujiaying@icst.pku.edu.cn

                            liangxiao@icst.pku.edu.cn

  授课时间每周星期一第9-11节课 (16:50-20:00

*  授课地点理教123

*     考试时间地点 18  下午2:00-4:00    一教207208

 

  教材及参考书目:

                  周秉锋. 软件设计工具. 北京大学出版社.2001

              James Rumbaugh et al. The Unified Modeling Language User Guide(2nd Edition) . Addison-Wesley. 2005

*       课程通知

 

  讲义下载

911

软件产品开发和软件建模统一建模语言简介

918925

行为建模基础

109

交互与交互图

1016

结构建模与逻辑视图插图

1023

关系插图

1030

共用机制插图  类图(插图)

116

类的详解插图

1113

关系插图

1120

接口、类型、角色插图

1127

模型包插图

124

对象和对象图插图

状态机和状态机图插图

1211

活动图插图

1218

部件相关材料

1225

复习

 

 

*       课程作业(作业提交情况

提交要求

1、一般情况下:
   必需: 提交.mdl文件
   可选: 可简要描述一下你的设计思想或对一些复杂图元进行说明,可用word文档或txt.   
   :有时文档是必需的,此时题目后面会突出这一要求.
2、请将各类文件打包成一个rar压缩包,并取名为 学号+姓名+作业次数,以方便统计。
3、如无特殊说明,以后每次作业都要求在两周内(自布置之日起)提交.
4、请将作业统一发到:liujiaying@icst.pku.edu.cn

第一次作业:

               请在1023上课前,统一把作业发到以下这个邮箱:liujiaying@icst.pku.edu.cn

题目1.为“位图浏览工具”的一项功能“位图放大(Zoom In)”设计用例图和序列图。Zoom In 的功能描述如下:

如果用户将鼠标移动至位图内部,然后按下鼠标左键移动,则在显示窗口内用橡皮带的方式画出一个矩形,

当释放鼠标左键后,将此矩形内部的内容放大显示至显示窗口内部。

        题目2. 利用“场景”的概念,在用例图上为“位图浏览工具”中的“打开文件”功能标识主要事件流和次要事件流,

并用序列图描述它们的交互。

        第二次作业:(请在1030上课前提交)

              为上节课的课堂练习(exercise.mdl)中的newdiagram2交互图中的

              sysdata对象设计类。要求用工具完成。

        第三次作业:(请在116上课前提交)

              使用工具绘制泛化关系,依赖关系, 和关联关系, 并在工具中将其转换为C++代码

        第四次作业:(请在1127上课前提交)

          有六个简单的c++源文件(类的详解讲义中有相应内容)(下载):sort.h, sort.cpp, sortonfloat.h, sortonfloat.cpp,

          sortonint.h, sortonint.cpp。请根据这些源文件的内容,绘制出对应

          的类图。清在二周内完成.

        第五次作业:(请在124上课前提交)

      

 

 


 

       上图是文件homework.mdl中表达的一个限定关联, 如果在ROSE中把此文件中的类Teacher

Student转化为C++源程序,则其中MyStudent 的定义是(见文件teacher.h):

          DictionaryByReference<int, UnboundedSetByReference<Student> > MyStudent;

      其中,DictionaryByReferenceUnboundedSetByReference是两个未定义的实例化的类。

因此如果这时用编译器编译Student.cpp,将会产生编译错误。

       请参照已经提供的文件teacher.cppteacher.h的内容,在ROSE文件homework.mdl

基础上为这两个模板类建模,使得再通过ROSE生成C++代码时,产生的源文件teacher.cpp能够编译 通过。

       交作业时,请提交mdl文件和由ROSE生成的能使teacher.cpp能够编译通过的全部C++源文件。

          Rose文件和相关代码下载

 

         

  参考资料

How to Use Stereotypes in Rose 98

解决rosexp系统下安装和使用时出现mem_bad_pointer错误的解决方法:

下载shw32.dll,覆盖安装目录下的同名文件