为什么要对软件体系结构建模
① 为什么要使用软件开发模型
软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。对于不同的软件系统,可以采用不同的开发方法、使用不同的程序设计语言以及各种不同技能的人员参与工作、运用不同的管理方法和手段等,以及允许采用不同的软件工具和不同的软件工程环境。
(1)为什么要对软件体系结构建模扩展阅读
软件开发模型基本目标
1、开发尽可能多的软件产品,满足社会对软件全方位、不同应用领域的应用需求,是软件工程的首要目标。
2、提高软件的生产效率。由于软件产品的特殊性使得如何提高软件产品的生产效率成了迫切需要解决的难题。为此,人们从各个方面研究、探讨软件产品生产的内在规律,包括生产过程的管理、组织形式、开发工具、程序设计方法等,试图找出比较满意的求解方案。
3、满足应用的功能需要。这里包括几层意思:产品功能强、性能好、按期交付使用、易于用户操作和维护。
4、降低软件开发成本,包括降低软件设计成本和软件维护成本,而软件维护成本比开发成本要大得多。因此,提高软件可维护性是降低软件开发成本的有效途径。
② 为什么要对软件体系结构进行风险分析风险分析的主要步骤有哪些
当前各个领域数据生成速度逐渐加快,需要处理的数据量急剧膨胀。这些巨大的数据资源蕴藏着潜在的价值,需要对其进行有效的分析和利用。当前数据的特点除了数量庞大之外,数据类型也变得多样化,其中包括了结构化数据、半结构化数据以及非结构化数据。这些数量庞大、种类繁多的海量数据,给传统分析工具带来了巨大的挑战。当前对数据的分析不再是简单的生成统计报表,而是利用复杂的分析模型进行深人的分析,传统分析技术例如关系数据库技术已经不能满足其要求。在扩展性上,通过增加或更换内存、CPU、硬盘等设备原件以打一展单个节点的能力的纵向打一展(scaleup)系统遇到了瓶颈;只有通过增加计算节点,连接成大规模集群,进行分布式并行计算和管理的横向打一展(scaleout)系统才能满足大数据的分析需求[u。因此传统工具在扩展性上遇到了障碍,必须寻求可靠的数据存储和分析技术来分析和利用这些庞大的资源。利用云计算平台搭建Hadoop计算框架成为当前处理大数据的主要手段。然而由于云计算和Hadoop应用的特点和自身安全机制薄弱,不可避免地带来了安全风险。1、大数据应用模式云计算(CloudComputing)是一种基于Internet的计算,是以并行计算(ParallelComputing)、分布式计算(DistributedComputing)和网格计算(GridCompu-tin助为基础,融合了网络存储、虚拟化、负载均衡等技术的新兴产物。它将原本需要由个人计算机和私有数据中心执行的任务转移给具备专业存储和计算技术的大型计算中心来完成,实现了计算机软件、硬件等计算资源的充分共享[z}。企业或个人不再需要花费大量的费用在基础设施的购买上,更不需要花费精力对软硬件进行安装、配置和维护,这些都将由云计算服务商CSP(CloudServiceProvider)提供相应的服务。企业或个人只需按照计时或计量的方式支付租赁的计算资源。云计算服务商拥有大数据存储能力和计算资源,被视为外包信息服务的最佳选择[31因此大数据的应用往往与云计算相结合。Hadoop是当前最广为人知的大数据技术实施方案,它是Google云计算中的Map/Rece}4}和GFS(GoogleFileSystem)的开源实现。Hadoop提供了一种计算框架,其最为核心的技术是HDFS(HadoopDistributedFileSystem)以及MapReee}HDFS提供了高吞吐量的分布式文件系统,而MapReee是大型数据的分布式处理模型。Hadoop为大数据提供了一个可靠的共享存储和分析系统[5-6}v尽管有一些组织自建集群来运行Hadoop,但是仍有许多组织选择在租赁硬件所搭建的云端运行Hadoop或提供Hadoop服务。例如提供在公有或私有云端运行Hadoop的Cloudera,还有由Amazon提供的称为ElasticMapReee的云服务等f}l。因此将云计算与Hadoop结合处理大数据已成为一种趋势。2、大数据安全风险分析随着大数据应用范围越来越广,对数据安全的需求也越来越迫切。由于云计算的特点是将数据外包给云服务商提供服务,这种服务模式将数据的所有权转移给了CSP,用户失去了对物理资源的直接控制[A1。而云中存储的大数据通常是以明文的方式存在的,CSP对数据具有底层控制权,恶意的CSP有可能在用户不知情的情况下窃取用户数据,而云计算平台亦可能受到攻击致使安全机制失效或被非法控制从而导致非授权人读取数据,给大数据安全带来了威胁。Hadoop在设计之初并未考虑过安全问题,在Ha-doop1.0.0和ClouderaCDH3版本之后,Hadoop加人了Kerberos的身份认证机制和基于ACL的访问控制机制[91。即使在安全方面增加了身份认证和访问控制策略,Hadoop的安全机制仍然非常薄弱,因为Ker-beros的认证机制只应用于客户机(Clients)、密钥分发中心(I}eyDistributionCenter,I}DC)、服务器(Serv-er)之间,只是针对机器级别的安全认证,并未对Ha-doop应用平台本身进行认证[}o}。而基于ACL的访问控制策略需要通过在启用ACL之后,对hadoop-policy.xml中的属性进行配置,其中包括9条属性,它们限制了用户与组成员对Hadoop中资源的访问以及Datanode和Namenode或Jobtracke:和Tasktrackers等节点间的通信,但该机制依赖于管理员对其的配置[川,这种基于传统的访问控制列表容易在服务器端被篡改而不易察觉。而且基于ACL的访问控制策略粒度过粗,不能在MapRece过程中以细粒度的方式保护用户隐私字段。况且针对不同的用户和不同应用,访问控制列表需要经常作对应的更改,这样的操作过于繁琐且不易维护。因此Hadoop自身的安全机制是不完善的。2.1不同应用模式下CSP及Uers带来的安全风险云计算中Hadoop有多种应用模式。在私有云中搭建Hadoop,即企业自己应用Hadoop,使用该平台的是企业内部各个部门的员工,外部人员无法访问和使用这些资源。这时的CSP指的是Hadoop的创建和管理者,IaaS级和PaaS级CSP为相同的实体;在公有云平台应用Hadoop,CSP有2级,IaaS级CSP,提供基础设施;PaaS级CSP,负责Hadoop的搭建和管理。这时两级CSP往往是不同的实体。
③ 在面向对象软件的开发和设计中,为什么要使用UML建模
uml是面向对象的分析设计方法,dfd是面向数据流的设计方法。当然uml功能强,表述容易清晰,对将来采用面向对象的实现会省很多力气。
uml是面向对象分析方法的表达工具,涉及的图包括用例图,活动图,类图,时序图,协作图,状态图等等;可以涵盖从需求分析到设计,编码整个开发过程用到的模型。
dfd是面向过程分析方法的表达工具,功能大概等价于用例图,活动图,加上e-r模型,可以涵盖面向过程分析(业务建模,概念建模)中所用到的模型。