软件工程画图

1.工具介绍

visio以及starulm都是不错的画图工具,visio可以自定义模具,一些不规则的模具可以在里面自定义,staruml是是一款开放源码的UML开发工具,主要支持9种uml建模,支持语法检测以及正反向工程。

2.N/S图与PAD图

这两种图可以用visio软件画,选取矩形模具,必要的时候在开始-指针工具调整为直线,连接,很多不规则的模具直接用直线进行构建即可,PAD图的选择模具可以自己新建一个模具,然后保存,再使用

例:

void root ( float root1, float root2 ) {
   i = 1;  j = 0;
   while ( i <= 10 ) {
    输入一元二次方程的系数a, b, c;
    p = b*b – 4*a*c;
    if ( p < 0 ) 输出“方程i无实数根”;
    else if ( p > 0 ) 求出根并输出;
    if ( p == 0 ) {
       求出重根并输出;
       j = j + 1;
    }
    i = i +1;
   }
   输出重根的方程的个数j;
}

 3.流图及其相关运算

 例

main() // a c code about finding out the small one in three input number  
{int num1,num2,num3,Min;
  printf("Please input three numbers:");
  (1) scanf("%d,%d,%d",&num1,&num2,&num3);
  (2) if (num1<num2) 
       (3) MIN=num1;
  else 
       (4) MIN=num2;
  (5) if (num3<MIN) 
       (6) MIN=num3;
  (7) printf("The small one is:%d,Min);}

 (1)试用此算法给出对应的流图;

 

 

2)计算流图的复杂性V(G);

        V(G)=E-N+2=P+1=3

   (3)求基本路径构成的基本集合(num1,num2,num3各取一次最小值);

        1-2-3-5-6-7

        1-2-3-5-7

        1-2-4-5-6-7

        1-2-4-5-7

   (4)给出每条路径执行的期望结果;

        分别为num3,num1,num3,num2

   (5)给出每一条路径的测试用例。

        测试用例1:num1=2,num2=3,num3=1

        测试用例2:num1=1,num2=2,num3=3

        测试用例3:num1=3,num2=2,num3=1

        测试用例4:num1=3,num2=2,num3=4

 4.状态转换图

请画出打印机的状态转换图

未接到复印命令时,处于闲置状态

一旦接到复印命令,处于复印状态

完成一个复印命令后,回到闲置状态

如果执行复印时发现没纸,进入缺纸状态,发出警告,等待装纸

装满纸张后,进入闲置状态

如果复印过程中发生卡纸,进入卡纸状态,发出警告,等待排除故障

排除故障后,进入闲置状态

 

 

5.数据流图以及HIPO图

HIPO图直接通过word里面的插入-smartart-层次结构画出

 例:

 

美国某大学共有200名教师,校方与教师工会刚刚签订一项协议。按照协议,所有年工资超过$26000(含$26000)的教师工资保持不变,年工资少于$26000的教师将增加工资,所增加的工资数按下述方法计算:给每个由此教师所赡养的人(包括教师本人)每年补助$100,此外教师有一年工龄每年再多补助$50,但是,增加后的年工资总额不能多于$26000

教师的工资档案存在行政办公室的光盘上,档案中有目前的年工资、赡养的人数、雇佣日期等信息。需要写一个程序计算并印出每名教师的原有工资和调整后的新工资

题目要求:

  1. 画出此系统的数据流图

 

 

1.写出需求说明

功能需求:可以输入调资的标准,输入教师档案,经调资给出新的教师档案

性能需求:软件的相应时间应该小于0.5s,更新处理要快

灵活需求:当需求发生某些变化时,该软件应该能够适应这些变化

故障处理要求:出现错误时,应该给予警告或提示

2.设计上述的工资调用程序(要求用HIPO图描述设计结果),设计时分别采用下述两种算法,并比较2种算法的优缺点。

a.搜索工资档案数据,找出年工资少于26000的人,计算新工资,校核是否超过26000,存储新工资,印出新旧工资对照表

b.把工资档案数据按工资从最低到最高的次序排序,当工资数额超过26000时,即停止排序,计算新工资,校核是否超过限额,存储新工资,印出结果

 

 

 

 

a比较耗时,因为他要检索所有的档案,b速度上来看比较快,但是b需要排序算法,比较复杂,a对于设计来讲比较简单。

6.软件结构图

同样通过word里面的插入-smartart-层次结构画出

例:

某电器集团公司下属的厂包括技术科、生产科等基层单位。现在想建立一个计算机辅助企业管理系统

其中,生产科的任务是:

  (1)根据销售公司转来的内部合同(产品型号、规格、数量、交获日期)制定车间月生产计划。

  (2)根据车间实际生产日报表、周报表调整月生产计划

  (3)以月生产计划为以及,制定产品设计(结构、工艺)及产品组装月计划。

  (4)将产品的组装计划传达到各科,将组装月计划分解为周计划,下达给车间

 

 

技术科的任务是:

  (1)根据生产科转来的组装计划进行产品结构设计,产生产品装配图给生产科,产生外购需求计划给供应科,并产生产品自制物料清单。

  (2)根据组装计划进行产品工艺设计,根据产品自制物料清单产生工艺流程图给零件厂。

   请设计出以上系统中生产科和技术科处理的软件结构图。

 

 7.用例图类图时序图和状态图

例:

选课系统的主要功能是给教师分配课程和学生注册课程。其需求描述如下:

(1)在每个学期选课开始之前,系统管理员需要对系统中的教师信息、课程信息和学生信息进行维护,学期结束后,将本学期成绩归档到学籍档案系统。

(2)学生登录选课系统后会得到一份包含本学期将要开设的课程目录。每门课程包含的信息有开课系别、教师、上课时间、教室、容纳的学生数量和学生选择课程的先决条件,这些信息可以帮助学生选择课程。当学生选择了一门课程后,选课系统需访问学籍档案系统,查询是否符合选课的先决条件(如是否已经通过先修课程的学习),如果不符合,系统给出提示信息。每个学期有一段时间让学生可以改变计划,学生可以在这段时间内访问系统以增选课程或退选课程。

(3)教师可以访问系统,查看将要教授哪些课程和每门课程有哪些学生报名,课程考试结束后可以提交成绩,系统可以生成带有成绩分数统计结果的成绩单。

(4)限定约束条件为:一名教师每学期最多承担4个教学任务,特殊情况下可以不承担教学任务;少于15人不开课,每名学生每学期选课不超过6门。

请从完整的需求描述中:

  1. 设计出完整的UML用例图和UML类图;
  2. 给出学生注册选课的UML顺序图和课程类的状态转换图;

用例图

 

 

 

类图

 

 

 

时序图

 

 

 

状态图

 

 8.数据流图

例:

请给出手机软件《铁路12306》,其中车票查询功能的数据流图和数据字典。

 9.数据流方法画软件结构图

例:

请给出手机软件《滴滴出行》,使用数据流方法画出的软件结构。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值