目录

  • 写在前面
  • 一、思考题1
    • 面向对象软件体系结构与主程序-子程序软件体系结构的区别和联系是什么?
  • 二、思考题2
    • 从理论上讲,主程序-子程序软件体系结构组件是什么?连接件是什么?特点是什么?上述实验1程序中具体的组件是什么?连接件是什么?
  • 三、思考题3
    • 从理论上讲,面向对象软件体系结构组件是什么?连接件是什么?特点是什么?上述实验2程序中具体的组件是什么?连接件是什么?
  • 四、思考题4
    • 编写一个主程序-子程序软件体系结构的程序(功能自定),并说明程序中的组件是什么?连接件是什么?
  • 五、思考题5
    • 编写一个面向对象软件体系结构的程序(功能自定),并说明程序中的组件是什么?连接件是什么?(要有对象间的交互,不能只有类间的交互)。
  • 六、思考题6
    • 管道-过滤器软件体系结构与批处理软件体系结构的区别和联系是什么?
  • 七、思考题7
    • 从理论上讲,管道过滤器软件体系结构组件是什么?连接件是什么?特点是什么?上述实验2程序中具体的组件是什么?连接件是什么?
  • 八、思考题8
    • 编写一个管道过滤器软件体系结构的程序(功能自定),并说明程序中的组件是什么?连接件是什么?

写在前面

为什么要写这篇博客,原因很简单,因为我觉得以下的知识没有多大的用处,完全就是一个查阅课本的过程,但是浪费的时间实在是太多,我从0到1查阅了差不多3个多小时,所以为了大家不要和我一样,我把思考题放在下面,也请有缘人懂得变通!

一、思考题1

面向对象软件体系结构与主程序-子程序软件体系结构的区别和联系是什么?

主程序-子程序体系结构在设计上使用层次化的划分方法,通常采用自顶向下的功能化设计方法。面向对象体系结构在设计上使用面向对象的设计方法,可以隐藏对象的内部状态并且要求所有对象之间的交互都通过该方法,即进行了数据封装,这也是面向对象编程的基本原则。

二、思考题2

从理论上讲,主程序-子程序软件体系结构组件是什么?连接件是什么?特点是什么?上述实验1程序中具体的组件是什么?连接件是什么?

软件体系结构中主程序—子程序体系结构是较简单的结构,其组件是主程序和子程序,连接件是调用返回机制。实验1中的组件是main()函数和max(a,b)函数。连接件是main()函数调用max(a,b)函数,max()函数将实参a,b分别传递给形参x,y;通过运算得到较大值z,并将z返回到调用出,赋值给main()函数的变量c。

三、思考题3

从理论上讲,面向对象软件体系结构组件是什么?连接件是什么?特点是什么?上述实验2程序中具体的组件是什么?连接件是什么?

面向对象体系结构风格的组件是类和对象。连接件是对象之间通过功能与函数调用实现交互。对象是通过函数和过程的调用-返回机制来交互的,而类是通过定义对象,再采用调用-返回机制进行交互。上述实验2中具体的组件是Spot类、Trans类、Test类以及Spot类的对象s,Trans类的对象ts,Spot的对象p。

四、思考题4

编写一个主程序-子程序软件体系结构的程序(功能自定),并说明程序中的组件是什么?连接件是什么?

程序:

#include <iostream>
using namespace std;
void Happy()
{printf("我俩啊,最爱打闹了,对吗");
}
int main()
{Happy();return 0;
}

组件是主程序main()函数和子程序Sad()函数,连接件是main()函数调用Happy()函数。

五、思考题5

编写一个面向对象软件体系结构的程序(功能自定),并说明程序中的组件是什么?连接件是什么?(要有对象间的交互,不能只有类间的交互)。

package com.you;
class Spot{private int x,y;Spot(int u, int v){setX(u);setY(v);}void setX(int x1){x=x1;}void setY(int y1){y=y1;}int getX(){return x;}int getY(){return y;}
}
class Trans{int Add(Spot p){int c = p.getX() + p.getY();return c;}
}
class Test{public static void main(String args[]){Spot s = new Spot(2,3);System.out.println("s点的坐标:" + s.getX() + "," + s.getY());Trans ts = new Trans();int c = ts.Add(s);System.out.println(c);}
}

组件有Spot、Trans、Test三个类,以及Spot类的对象s,Trans类的对象ts,Spot类的对象p。连接件如下:在Test类中创建Spot类的对象s,Trans类的对象ts,Trans类的add()方法的参数有Spot的对象p。Test类使用Spot类的对象s,调用了Spot类的getX()和getY方法。Test类使用Trans类的对象ts,调用了Trans类的add()方法,并把实参Spot类的对象s传递给了形参Spot类的对象p。

六、思考题6

管道-过滤器软件体系结构与批处理软件体系结构的区别和联系是什么?

管道/过滤器结构通常导致进程成为批处理的结构,因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计者必须将每一个过滤器看成一个完整的从输入到输出的转换。.限定过滤器的数据存储容量,就可以得到有界管道过滤器。过滤器将所有输入数据作为单个实体进行处理,这就是批处理系统。

七、思考题7

从理论上讲,管道过滤器软件体系结构组件是什么?连接件是什么?特点是什么?上述实验2程序中具体的组件是什么?连接件是什么?

过滤器视为组件。数据流传输的管道视为连接件。管道将一个过滤器的输出传给另一个过滤器的输入。特点:一个过滤器必须完全独立于其他的过滤器(零耦合)----独立的实体。它不能与其他过滤器共享数据----在其上行和下行数据流接口分享状态、控制线程或标识,而且一个过滤器不知道其上游和下游的标识。 实验2程序中的组件是:sender和receiver。 体现连接件关键语句是:PipedOutputStream out =
s.getOut(),这条语句的作用是发送端送出数据。 PipedInputStream in =r.getIn();这条语句的作用是接收端接送数据。in.connect(out);这条语句的作用是衔接管道两端。

八、思考题8

编写一个管道过滤器软件体系结构的程序(功能自定),并说明程序中的组件是什么?连接件是什么?

package com.you;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
public class TestPiped{public static void main(String [] args){A a = new writer();B b = new reader();PipedOutputStream out = a.getOut();PipedInputStream in = b.getIn();try{in.connect(out);a.start();b.start();}catch(Exception e){e.printStackTrace();}}
}
class A extends Thread {PipedOutputStream out = new PipedOutputStream();public PipedOutputStream getOut(){return out;}public void run() {String str = "大家好,我是卢本伟,这句话是我说的:\n";try {out.write(str.getBytes());out.close();} catch(Exception e) {e.printStackTrace();}}
}
class Bextends Thread {PipedInputStream in = new PipedInputStream();public PipedInputStream getIn() {return in;}public void run(){byte [] buf = new byte[1024];try {int len = in.read(buf);System.out.println("这句话来自卢本伟:\n"+new String(buf,0,len));in.close();}catch(Exception e) {e.printStackTrace();}}
}

实验2程序中的组件是:writer和reader。 体现连接件关键语句是:PipedOutputStream out =
a.getOut(),这条语句的作用是发送端送出数据。 PipedInputStream in =
b.getIn();这条语句的作用是接收端接送数据。in.connect(out);这条语句的作用是衔接管道两端。

软件设计体系 实验一 经典软件体系结构风格相关推荐

  1. 复习单片机:动态数码管(1 数码管介绍+2 74HC245 和 74HC138 芯片介绍+3 硬件设计+4 软件设计+5 实验现象)

    本章所要实现的功能是:控制动态数码管从左至右显示数字 0-7.学习本章可以参考 前面的实验章节内容.本章分为如下几部分内容: 1 数码管介绍 2 74HC245 和 74HC138 芯片介绍 3 硬件 ...

  2. 复习单片机:温度检测 DS18B20(内含:1 DS18B20 介绍+2 硬件设计+3 软件设计+4 实验现象)

    本章分为如下几部分内容: 1 DS18B20 介绍 2 硬件设计 3 软件设计 4 实验现象 1 DS18B20 介绍 DS18B20 温度传感器的内部存储器包括一个高速的暂存器 RAM 和一个非易 ...

  3. JAVA 10.4 工资管理软件设计 TUT实验二

    2.工资管理软件设计(第2次实验,6学时) 某公司由6人组成,他们分别是: 其中,Sam是经理,每月除得到基本工资外,还获得$500.00的红利:Peter和Mary是合同工,每月拿基本工资:Clif ...

  4. 软件质量保证测试实验1、 软件质量保证标准的分类

    实验1. 软件质量保证标准的分类 一.实验目的 (1)∙掌握软件质量保证的相关概念及其之间的联系与区别: (2)∙了解软件质量保证的主要任务: (3)∙了解软件质量保证的重要性. 二.实验任务: (1 ...

  5. 软件工程 软件设计 步骤_好的软件设计特点 软件工程

    软件工程 软件设计 步骤 For good quality software to be produced, the software design must also be of good qual ...

  6. 【软件设计】如何了解一个软件的设计?

    如何了解一个软件的设计? 首先是模型,它是一个软件的核心部分,也有人称之为抽象.设计最关键的就是构建出模型. 而理解一个设计中的模型,可以帮助我们建立起对这个软件整体的认知. 比如: 你在编写分布式计 ...

  7. 软件设计体系-简单工厂模式实例二---权限管理

    在某OA系统中,系统根据对比用户在登录时输入的账号和密码以及在数据库中存储的账号和密码是否一致来进行身份验证,如果验证通过,则取出存储在数据库中的用户权限等级(以整数形式存储),根据不同的权限等级创建 ...

  8. 班旗怎么用软件设计,微信朋友圈投票软件[必看]如何制作

    随着微信朋友圈投票活动的增多,每个人都在微信上投票.如果你经常在朋友圈中进行游说,就会引起每个人的不满.如何交朋友圈投票软件 [必看] 大师分享一个完整的体验 朋友圈投票软件制作过程适合所有人. 微信 ...

  9. 软件设计与体系结构(第二版)部分习题

    第一章:软件工程与软件设计 1.叙述软件工程中可修改性,有效性,可靠性,可理解性,可维护性,可重用性,可适应性,可移植性和可追踪性等概念的含义,并指明这些概念的重要性 可修改性(modifiabili ...

最新文章

  1. 前后端分离必备工具:Swagger快速搞定(整合SpringBoot详细教程)
  2. [na]出口选路pbr小实验视频
  3. java最好的开发工具_IntelliJ IDEA Ultimate Edition 2018 最好的 Java 开发工具
  4. Java领域的对象如何传输-基于 socket 进行对象传输
  5. 【渝粤教育】国家开放大学2018年春季 0275-22T内科护理学 参考试题
  6. 项目管理中,制定项目进度计划有何意义?
  7. Java常用软件下载地址
  8. 怎样安装android设备驱动,如何在电脑安装安卓手机驱动
  9. 移动端输入密码时调用英文软键盘
  10. 程序员——相忘于江湖
  11. 详解ELF可执行文件格式:读取头部信息和程序表头
  12. DLL无法注入的原因查找
  13. ionic 以及cordova apk打包成功,安装不成功,显示Failure [INSTALL_FAILED_CONFLICTING_PROVIDER]
  14. Human-like learning在对话机器人中的魔性运用
  15. 尚硅谷Web前端Promise教程从入门到精通——笔记
  16. kepserver 作为opc server 连接西门子PLC 配置
  17. 【Map】Echarts之iphone销量地图的使用以及详细配置
  18. java开发一款雷电游戏
  19. 抽象语法树在 JavaScript 中的应用
  20. 穹顶灯打不出阴暗面_微服务的阴暗面,解释

热门文章

  1. 【源码】产生拉普拉斯分布的随机数
  2. C语言 - 通讯录详解
  3. 个人博客前后端以及部署的实现
  4. 白平衡,颜色校正,颜色映射When Color Constancy Goes Wrong, brown
  5. 薅羊毛第二十二次更新
  6. HardFault 产生原因
  7. 平面直角坐标系中的旋转公式_石材旋转楼梯巨详细的测量方式
  8. Math.random()的用法
  9. IPV4和IPV6报头对比分析
  10. vue问题记录(十四):vue-amap 报错TypeError: v.w.uh is not a constructor