《软件开发技术综述》由会员分享,可在线阅读,更多相关《软件开发技术综述(36页珍藏版)》请在金锄头文库上搜索。
1、软件开发技术综述 原仓周yuancangzhou 主要内容 软件开发技术概述软件运行环境单机 网络软件开发环境软件粒度跨网络开发跨平台开发从程序到可执行文件从可执行文件到进程程序的效率我们设想的学习路径 你适合做软件工程师吗 软件开发人员的性格指标 麦布二氏行为类型量表将人分成四类 外向 Extroversion 或内向 Introversion 外向的人天生比较喜欢走向人群和外界的事物 而内向的人比较喜欢待自己的世界里 拥有自己的想法 感知 Sensing 或直觉 Intuition 这项指标是看这个人喜欢接受决策性资料的程度 感知倾向的人较专注在已知的事实 确定的资料和经验 而直觉倾向的人
2、较喜欢追求不确定的事物 较专注于概念或理论 思考 Thing 或感受 Feeling 这项指标是指这个人的决策风格 思考型的人根据客观的分析和逻辑做出他的决策 而情感型的人则依主观情绪来做决策 观察 Perceiving 或判断 Judging 观察型的人喜欢弹性和未知的各种可能性 而判断型的人则喜欢一切有秩序 一切能控制 软件开发人员平均性格比例最高的是ISTJ型 软件开发需要的职业品质 在软件设计期间 是建筑师在设计使用者接口时 是艺术家在建构程序时 是手艺精巧的工匠而在测试时 是个不折不扣的混蛋 目前的软件运行和开发平台 关于现状的思考 单机和网络的硬件组成 发展趋势 单机和网络的系统软
3、件组成发展趋势 网络可实现的共享 文件 内存 CPU Web应用的组成浏览器有哪些功能 OS为浏览器提供哪些支持 服务器有哪些功能 操作系统及中间件为服务器提供哪些支持 系统软件开发方法 运行高效 维护 扩展 方便应用软件开发方法 开发高效 重用 解耦 维护 扩展 方便 硬件及通信技术的发展 普适计算 各种环境的无缝结合 服务器 多CPU 虚拟化技术 高性能I O 桌面 方便的人机交互设备 嵌入式 移动 卡片高速发展的 无线 网络技术足以能够将其有效的连接在一起 当光连接可用于 廉价 的应用当网络的速度赶上总线的速度 运行环境和开发环境发生了哪些变化 运行环境并发 并行操作系统网络操作系统集群
4、其他中间件技术 构件 编译和运行时技术开发环境IDEOO及构件 组件 库 框架 中间件 基础构件 ALM及其他CASE 单台计算机上的软件层次结构 硬件 各层之间如何交互 下层向上层提供调用接口调用接口通常以函数 API 的形式提供接口由谁规定 上层利用下层完成特定的功能下层负责具体细节的实现开发软件时需要比较了解其直接的运行平台下层通常不关心上层的功能例如 web中间件提供session的概念 但并不限制用户何时 以何种形式使用它 网络计算机 软硬件 系统组成 操作系统为程序提供运行环境 如何方便地开发跨网络系统 语言编译程序的平台相关性 JAVA的跨平台性 JAVA虚拟机 中间件 JAVA
5、虚拟机 操作系统 目前的软件开发粒度 常见的开发方法 面向过程面向对象面向构件面向体系结构面向服务SOA应用程序框架是特定体系结构和设计模式的具体实现 各开发方法的定位 OOSOA 初始信息 结果信息 计算机 二进制 机器语言 人 现实世界 自然语言 业务 程序 从高层处理逻辑到低层处理逻辑的映射 软件开发的本质 MVC NET和J2EE如何支持MVC J2EE规范 J2EE组成 J2EE J2EESpecification J2EEReferenceImplementation J2EECompatibilityTestSuite J2EEBluePrints J2EE核心技术 Win32a
6、ndthe NETFramework 如何跨平台开发 如何跨平台开发 对特定平台的应用进行适当的包装提供别的平台能够识别的方式和使用接口纯文本是跨平台的最好工具网络的应用层是跨平台开发的必要支撑 Webservices services WhatIsanXMLWebService XMLWebServiceArchitectures WebServicesInPractice Design TimeorDynamic Runtime HTMLorXMLwithlinktoWSDL XMLwithservicedescriptions XML SOAPBODY http www uddi org
7、 LinktoDISCOorWSDLdocument XMLWebserviceClient UDDI WebService 软件开发技术总结 集成开发环境的发展 集成开发环境的发展 对面向对象 组件 WebService 设计模式 应用框架的支持对平台概念的支持对源代码的管理对软件开发过程的支持 IBM软件开发解决方案 RSA VisualStudioTeamSystem ChangeManagement WorkItemTracking Reporting ProjectPortal VisualStudioTeamFoundationServer IntegrationServices
8、ProjectManagement ProcessandArchitectureGuidance DynamicCodeAnalyzer VisualStudioTeamEditionSoftwareArchitects StaticCodeAnalyzer CodeProfiler UnitTesting CodeCoverage TeamExplorer includesTeamFoundationServerCAL VisualStudioProfessionalEdition LoadTesting ManualTesting TestCaseManagement Applicatio
9、nDesigner SystemDesigner LogicalDatacenterDesigner VisualStudioTeamEditionSoftwareDevelopers VisualStudioTeamEditionSoftwareTesters VisualStudioIndustryPartners TeamBuild ClassDesigner inVisualStudioStandardEditionandhigher DeploymentDesigner VisioforEnterpriseArchitects inMSDNPremiumSubscription 我们设想的学习路径 面向系统的应用程序的编程 不过多考虑设计 逻辑 算法 内存的使用 数据结构 底层的技术是上层的基础和支撑了解了底层 上层相对容易比如 虚函数与COM组件的实现相当类似面向应用业务的应用程序的设计体系结构的设计 OOA和OOD方法 过程和工具 从宏观的角度把握整体概念清晰是一切的基础 将时髦的技术挂在嘴边 不如把成熟 过时 的技术记在心里