目录题目2019.11-论软件设计方法及其应用题目2019.11-论软件系统架构评估及其应用题目2019.11-数据湖技术及其应用题目2019.11-论负载均衡技术在Web系统中的应用题目2019.11-论软件设计方法及其应用软件设计(SoftwareDesignSD)根据软件需求规格说明书设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及程序流程等形成软件的具体设计方案。软件设计把许多事物和问题按不同的层次和角度进行抽象将问题或事物进行模块化分解以便更容易解决问题。分解得越细模块数量也就越多设计者需要考虑模块之间的耦合度。请围绕“论软件设计方法及其应用”论题依次从以下三个方面进行论述。1.概要叙述你所参与管理或开发的软件项目以及你在其中所承担的主要工作。2.详细阐述有哪些不同的软件设计方法并说明每种方法的适用场景。3.详细说明你所参与的软件开发项目中使用了哪种软件设计方法具体实施效果如何。参考答案:1.简要描述所参与设计的软件系统并明确指出在系统设计过程种承担的主要工作。2.分析系统设计的主要方法并详细阐述每种设计方法。1净室方法净室软件工程净室方法是软件开发的一种形式化方法它可以生成高质量的软件。它使用盒结构规约进行分析和设计建模并且强调将正确性验证而不是测试作为发现和消除错误的主要机制使用统计的测试来获取认证被交付的软件的可靠性所必需的出错率信息。净室方法从使用盒结构表示的分析和设计模型入手一个“盒”在某特定的抽象层次上封装系统或系统的某些方面。通过逐步求精的过程盒被精化为层次其中每个盒具有引用透明性每个盒规约的信息内容对定义其精华是足够的不需要信赖于任何其他盒的实现。这使得分析人员能够层次地划分一个系统从在顶层的本质表示转移向在底层的实现特定的细节。净室方法主要使用三种盒类型黑盒、状态盒和清晰盒。净室方法是一种严格的软件工程方法它是一种强调正确性的数学验证和软件可靠性认证的软件过程模型其目标和结果是非常低的出错率这是使用非形式化方法难于或不可能达到的。2)结构化设计结构化方法由结构化分析、结构化设计、结构化程序设计构成它是一种面向数据流的开发方法。结构化分析是根据分解与抽象的原则按照系统中数据处理的流程用数据流图来建立系统的功能模型从而完成需求分析工作。①结构化设计原则②结构化设计步骤③结构化缺点在结构化设计中模块和模块之间的关系局限于信息流限制了对模块之间众多关系的表达也无法体现模块和模块之间其他的众多关系包含各种各样的结构、行为、依赖、包含在结构化设计中这种关系隐含在分层中、继承、关联关系等等。结构化设计仅解决了模块在封装和信息隐藏方面的问题。④结构化设计适合场景3面向对象设计面向对象的设计模型包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的活动图等。UML与41视图②设计原则③设计模式④面向对象设计适合场景4原型法结构化方法和面向对象方法有一个共同点在系统开发初期必须明确系统的功能要求确定系统边界。从工程学角度来看这是十分自然的解决问题之前必须明确要解决的问题是什么然而对于信息系统建设而言明确问题本身不是一件轻松的事情。①原型分类水平原型和垂直原型抛弃原型、演进原型和递增原型②原型类型的选择③原型法适合场景3.结合项目实践。针对实际参与的软件设计过程说明所采用的设计方法并描述其具体实施过程和效果。题目2019.11-论软件系统架构评估及其应用对于软件系统尤其是大规模复杂软件系统而言软件系统架构对于确保最终系统的质量具有十分重要的意义。在系统架构设计结束后为保证架构设计的合理性、完整性和针对性保证系统质量降低成本及投资风险需要对设计好的系统架构进行评估。架构评估是软件开发过程中的重要环节。请围绕“软件系统架构评估及其应用”论题依次从以下三个方面进行论述。1.概要叙述你所参与管理或开发的软件项目以及你在其中所承担的主要工作。2.详细阐述有哪些不同的软件系统架构评估方法并从评估目标、质量属性和评估活动等方面论述其区别。3.详细说明你所参与的软件开发项目中使用了哪种评估方法具体实施过程和效果如何。参考答案:1.简要描述所参与架构评估的软件系统并明确指出在评估过程中承担的主要工作。2.分析软件系统架构评估中所普遍关注的质量属性并详细阐述每种质量属性的具体含义。系统架构评估中普遍关注的质量属性包括1)性能性能是指系统的响应能力即需要多长时间才能对某个事件做出响应或者在某段事件内系统所能处理的事件个数。经常用单位事件内所处理事务的数量或系统完成某个事务处理所需的时间来对性能进行定量表示。2)可靠性可靠性是软件系统在应用或者系统错误面前在意外或者错误使用的情况下维持软件系统的功能特性的基本能力。3)可用性可用性是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。4)安全性安全性是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。5)可修改性可修改性是指能够快速地以较高的性能价格比对系统进行变更的能力包括可维护性、可扩展性、结构重构、可移植性。6)功能性功能性是系统所能完成所期望的工作的能力。一项任务的完成需要系统中许多或大多数构件的相互协作。7可变性可变性是指体系结构经扩充或变更而成为新体系结构的能力。8)互操作性互操作性是指作为系统组成部分的软件不是独立存在的经常与其他系统或自身环境相互作用。如程序和用其他编程语言编写的软件系统的交互作用就是互操作性的问题。3.分析软件系统架构评估种现阶段主要评估方法业界已开发出多种软件架构评估的方法按基于的技术手段来看可以分为三类基于调查问卷或检查表的方式、基于场景的方式和基于度量的方式。1)基于调查问卷或检查表的方式该方式的关键是要设计好问卷或检查表它充分利用系统相关人员的经验和知识获得对架构的评估。其缺点是在很大程度上依赖于评估人员的主观推断。2)基于场景的方式:基于场景的方式由SEI首先提出并应用在架构权衡分析法(ArchitectureTradeoffAnalysisMethod,ATAM)和软件架构分析方法(SoftwareArchitectureAnalysisMethod,SAAM)中。它是通过分析软件架构对场景(也就是对系统的使用或修改活动)的支持程度从而判断该架构对这一场景所代表的质量需求的满足程度。1)架构权衡分析方法ATAM是一种系统架构评估方法主要在系统开发之前针对性能、可用性、安全性和可修改性等质量属性进行评价和折中。ATAM可以分为4个主要的活动阶段包括需求收集、架构视图描述、属性模型构造和分析、架构决策与折中整个评估过程强调以属性作为架构评估的核心概念。2)SAAM是最早形成文档并得到广泛应用的软件架构分析方法。SAAM的主要输入是问题描述、需求说明和架构描述其分析过程主要包括场景开发、架构描述、单个场景评估、场景交互和总体评估。3基于度量的方式制定一些定量值来度量架构如代码行数等。要制定质量属性和度量结果之间的映射。4.针对实际参与的软件系统架构评估说明所采用的评估方法并描述其具体实施过程和效果。题目2019.11-数据湖技术及其应用论数据湖技术及其应用近年来随着移动互联网、物联网、工业互联网等技术的不断发展企业级应用面临的数据规模不断增大数据类型异常复杂。针对这一问题业界提出“数据湖(Data Lake)这一新型的企业数据管理技术。数据湖是一个存储企业各种原始数据的大型仓库支持对任意规模的结构化、半结构化和非结构化数据进行集中式存储数据按照原有结构进行存储无须进行结构化处理;数据湖中的数据可供存取、处理、分析及传输支撑大数据处理、实时分析、机器学习、数据可视化等多种应用最终支持企业的智能决策过程。请围绕“数据湖技术及其应用论题依次从以下三个方面进行论述。1.概要叙述你所参与管理或开发的软件项目以及你在其中所承担的主要工作。2.详细阐述数据湖技术并从主要数据来源、数据模式(Schema)转换时机、数据存储成本、数据质量、面对用户和主要支撑应用类型等5个方面详细论述数据湖技术与数据仓库技术的差异。3.详细说明你所参与的软件开发项目中如何采用数据湖技术进行企业数据管理并说明具体实施过程及应用效果。参考答案:1.简要叙述所参与的大数据或数据湖系统项目并明确指出在其中承担的职务和主要工作。2.分析并阐述数据湖技术1)大数据的由来和表现2)大数据5V特性3)大数据与数据仓库4)数据仓库的4个特性3.分析并阐述数据湖技术!1)数据仓库的缺点2)数据湖的技术特点3)数据湖的概,念4)数据库的特性4.分析并对比数据湖(Data Lake,DL)与数据仓库(DataWarehouse, Dw)1)数据来源DW:从外部数据源获取DL:既可从外部数据源获取也可从外部应用或外部存储获取1)数据模式(Schema)转换时机DW:采用ETLDL:既支持ETL也支持ELT2)数据存储成本DW:通常采用ODS-DWD-DW-DM-ST五层架构存储成本高DL:通常采用原始数据和流计算存储成本低3)数据质量DW:依赖数据治理规范ELT过程损失数据准确度和精度质量较低DL:存储原始数据不损失数据准确度和精度质量高5)面对用户和主要支撑应用类型DW:联机分析(OLAP)和决策支持(DSS)DL:物联网、人工智能和以智能制造、智慧城市等为代表的智能赋能应用5.结合自身参与项目的实际状况阐述数据湖技术在实际项目中的实施过程和应用效果。论数据湖技术及其应用1. 项目参与情况概述在我参与的**“智慧零售数据湖平台”项目中我担任数据架构师**角色负责整体数据湖架构设计、技术选型、数据治理策略制定以及核心模块开发。该项目旨在为某大型零售集团构建统一的企业级数据湖整合线上线下全渠道数据POS、ERP、APP、IoT、社交媒体等支撑实时营销、智能补货、用户画像、供应链优化等应用。2. 数据湖技术深度解析2.1 大数据的由来与表现由来移动互联网、IoT、工业互联网催生海量多源异构数据如RFID、日志、视频、传感器流。表现数据量从TB级跃升至PB级类型涵盖结构化交易记录、半结构化JSON日志、非结构化监控视频。2.2 大数据5V特性表格特性说明案例场景Volume日增数据量达10TBPOSIoT全国3000家门店实时库存数据Velocity实时流处理延迟1秒KafkaFlink秒杀活动实时风控Variety28种数据类型XML、Parquet、MP4用户上传的短视频商品评价Veracity原始数据缺失率30%需清洗IoT传感器异常值过滤Value数据驱动决策使缺货率下降18%基于AI的自动补货系统2.3 大数据与数据仓库的冲突数据仓库瓶颈强制Schema-on-Write需预定义模型无法存储原始IoT时序数据。存储成本采用Oracle Exadata1PB数据年存储成本超2000万。响应延迟T1更新无法满足实时营销需求如30分钟内调整促销策略。2.4 数据仓库的4个特性与数据湖对比表格特性数据仓库DW数据湖DL数据形态结构化为主星型/雪花模型原始格式保留如CSV、ProtobufSchema转换ETL提前建模Schema-on-WriteELT后置分析Schema-on-Read存储成本5000/TB/年SAN存储800/TB/年对象存储压缩用户群体业务分析师SQL接口数据科学家Python/R/ML工具3. 数据湖技术核心剖析3.1 数据仓库的三大缺陷数据丢弃无法存储非结构化数据如客服语音记录导致30%潜在价值流失。僵化建模新业务如直播电商需等待2周模型设计延误商机。成本黑洞扩展至PB级时MPP数据库 license 费用呈指数增长。3.2 数据湖技术特点存储-计算分离基于Hadoop OZoneS3计算资源按需扩容如Spark动态分配。多模型分析时序数据使用InfluxDB处理IoT传感器流。图数据通过Neo4j分析商品关联关系如“啤酒-尿布”升级版。数据版本控制Delta Lake支持时间旅行Time Travel可回滚至任意版本如恢复误删的促销数据。3.3 数据湖概念与实现定义一个集中式存储库允许以任意规模存储所有结构化和非结构化数据并按原样存储无需先对数据进行结构化处理。关键组件摄取层KafkaFlume实时接入Sqoop批量迁移。治理层Apache Atlas实现元数据血缘追踪如某报表字段溯源至原始POS字段。加速层Alluxio缓存热数据使Spark查询延迟从分钟级降至秒级。4. 数据湖 vs 数据仓库五维对比表格维度数据仓库DW数据湖DL项目实例数据来源仅业务系统ERP、CRM 外部数据天气、GIS、抖音API接入气象局数据预测雨伞销量Schema转换时机T1 ETL固定维度表实时ELTSchema-on-Read用户行为日志直接存储分析时动态解析存储成本50万/TBSSD备份1.2万/TBEC冷存3年节省存储预算800万数据质量依赖ETL规则易失真原始数据质量评分Great Expectations通过数据指纹技术识别异常订单面向用户业务人员Tableau仪表盘数据科学家JupyterTensorFlow开发CV模型识别货架缺货准确率92%5. 项目实施从0到1构建零售数据湖5.1 分阶段实施路线阶段1数据入湖3个月技术栈Kafka→Spark Streaming→Hudi增量更新关键突破解决小文件问题——通过Hudi Clustering将1亿个128MB文件合并为5万个大文件NameNode内存占用下降70%。阶段2数据治理2个月数据分类黄金数据交易记录采用Delta Lake保证ACID。原始日志APP崩溃日志直接存OZone保留90天后自动转冷存。质量监控规则引擎Deequ检测库存数据完整性如SKU不能为空。异常告警当某日订单量波动30%时触发钉钉通知。阶段3应用赋能持续迭代实时营销基于Flink CEP检测用户浏览→加购→支付事件链15分钟内推送优惠券转化率提升25%。供应链优化使用XGBoost预测商品需求结合数据湖中的天气、节假日数据使生鲜损耗率下降12%。5.2 应用效果量化表格指标实施前实施后提升数据准备时间3天ETL排程30分钟即席查询时间缩短95%存储成本2000万/年400万/年节省80%新应用上线周期2个月2周效率提升4倍数据科学家满意度45%调研92%调研显著提升5.3 经验总结关键成功因素业务驱动首期即上线“实时补货”场景用ROI说服董事会追加投资。数据民主化构建数据门户业务人员可通过拖拽式分析Superset自助生成报表。踩坑教训初期未做数据分层导致“数据沼泽”后引入** medallion架构** Bronze(原始)→Silver(清洗)→Gold(业务就绪)解决。题目2019.11-论负载均衡技术在Web系统中的应用负载均衡技术是提升Web系统性能的重要方法。利用负载均衡技术可将负载工作任务)进行平衡、分摊到多个操作单元上执行从而协同完成工作任务达到提升Web系统性能的目的。请围绕“负载均衡技术在Web系统中的应用”论题依次从以下三个方面进行论述。1.概要叙述你参与管理和开发的软件项目以及你在其中所承担的主要工作。2.详细阐述常见的三种负载均衡算法说明算法的基本原理。3.详细说明你所参与的软件开发项目中如何基于负载均衡算法实现Web应用系统的负载均衡。参考答案:1.简要叙述所参与管理和开发的Web系统项目并明确指出在其中承担的主要任务和开展的主要工作。2.分析并描述负载均衡在Web应用项目高并发、高性能、高可用三高架构中的意义和作用3.选择三种常见的通用负载均衡算法详细阐述负载均衡中的算法和每种算法的基本原理1)轮询算法2)随机算法3)比率算法4)优先级算法5)最少连接数算法6)最快响应时间算法4.结合实际项目详细阐述实际参与项目中采用了哪个或哪几个负载均衡算法实现说明如何在项目中实践应用的负载均衡并阐述负载均衡技术在项目中的应用效果。