




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程哈尔滨工业大学(威海)计算机科学与技术学院孟凡超Email:Tele考教材软件工程-原理、方法与应用(第3版).史济民等,高等教育出版社。软件工程. 张海藩. 人民邮电出版社。Software Engineering: Theory and Practice(软件工程). Shari Lawrence等,人民邮电出版社。UML2 and the Unified Process Practical Object-Oriented Analysis and Design(UML2.0和统一过程).Jim Arlow.机械工业出版社。课程情况课程编号:T104021
2、0-0.上课时间表:周1第一大节(N118)、周3第一大节(G203)、周5第一大节(N114).考试情况平时成绩30分(作业20分,出勤10分)期末考试成绩70分上课要求提前5分钟到教室课堂上应关闭手机1. 绪论2. 软件生存周期与软件过程3. 结构化分析与设计4. 面向对象与UML5. 需求工程与需求分析6. 面向对象分析7. 面向对象设计8. 编码与测试9. 软件维护10. 软件复用11. 软件工程管理主要内容本章主要内容软件和软件危机软件工程学的范畴软件工程的发展软件工程的应用绪论常用软件绪论软件=程序+文档可执行部分不可执行部分文档1文档2文档3程序软件:软件是能够完成预定义功能和性
3、能的计算机程序,包括使程序正常执行所需的数据,以及有关描述程序操作和使用的文档。简而言之,可以表述为:软件=程序+文档。绪论程序程序是为了解决某个特定问题而用程序设计语言(C/C+/Java/HTML/JSP/SQL)描述的适合计算机处理的语句序列。程序需要经过编辑、编译、链接等过程才能成为在计算机上执行的机器语言序列。程序执行一般需要一定的输入数据,同时也会输出运行结果。绪论源程序编辑程序编译程序连接程序目标程序库程序可执行代码文档文档:软件开发活动的记录,主要供人们阅读,既可用于专业人员和用户之间的通信和交流,也可以用于软件开发过程的管理和运行阶段的维护。文档类型:需求分析文档、软件设计文
4、档、软件测试文档、用户使用说明书等。编写文档的目的促进对软件的开发、管理和维护;便于各种人员(用户、开发人员)的交流。绪论软件的特征软件开发不同于硬件设计软件开发更依赖人员素质、智力、组织、合作和管理开发成本、进度很难估算软件生产不同于硬件制造软件生产只需复制软件维护不同于硬件维修不会老化维护困难和复杂绪论软件的类型系统软件:计算机系统软件是计算机管理自身资源(如CPU、内存、外存、外设等),提高计算机使用效率并为计算机用户提供各种服务的基础软件。例如,操作系统、数据库管理系统等。实时软件:监测、分析和控制现实世界发生的事件,能以足够快的速度对输入信息进行处理,并在规定的时间内作出反应的软件。
5、例如,各种设备运行监控软件等。绪论嵌入式软件:嵌入式计算机系统将计算机嵌入在某一系统之中,使之成为该系统的重要组成部分,控制该系统的运行,进而实现某一特定的物理过程。用于嵌入计算机系统的软件称为嵌入式软件。例如,航空航天系统、指挥系统、汽车控制系统等。科学和工程计算软件:它们以数值算法为基础,对数值量进行处理和计算,主要用于科学和工程计算。例如,数值天气预报、导弹计算、石油勘探、计算辅助设计(CAD)等。事务处理软件:用于处理事务信息,特别是商务信息的计算机软件。事务信息处理是软件最大的应用领域。例如,企业资源计划系统(ERP)、物流管理系统等。绪论人工智能软件:支持计算机系统产生人类某些智能
6、的软件。它们求解复杂问题不是用传统的计算或分析方法,而是采用诸如基于规则的演绎推理技术和算法。应用领域有专家系统、模式识别、自然语言理解、人工神经网络、程序验证、自动程序设计、机器人学等。CASE工具软件:CASE工具软件一般为支撑软件生存周期中不同活动而研制,包括项目管理工具、需求分析工具、编程环境(编辑器、编译器、链接器和测试器于一体)、软件测试工具等。其它软件绪论绪论软件概念的演变= 软件软件是一种产品setup计算机就是软件CADERPGameEmailOACRM软件即服务(SaaS)绪论云计算DNS服务器网站服务器Internet用户云计算的变革计算存储网络软件服务各种联网设备云计算
7、中的云云计算是一种新型的计算模型,把IT资源、数据、应用作为服务通过互联网提供给用户。云计算也是一种基础架构管理的方法论,大量的计算资源组成IT资源池,用户动态创建高速虚拟化的资源提供用户使用。绪论云架构的基本层次基础设施层基础设施即服务(Infrastructure as a Service, IaaS)平台层平台即服务(Platform as a Service, PaaS)应用层软件即服务(Software as a Service, SaaS)公有云混合云私有云软件危机什么是软件危机软件危机的表现软件危机的根源软件危机的解决途径绪论软件危机软件危机是指在计算机软件的开发和维护过程中所遇
8、到的一系列严重问题。两个主要问题如何开发软件,以满足对软件的日益增长的需求。如何维护数量不断膨胀的已有软件。绪论软件危机的表现软件成本高IBM 360 OS, 5000多人年,耗时4年(19631966),花费2亿多美元。美国空军:1955年软件占总费用(计算机系统)的18%,70年60%,85年达到85。美国全球军事指挥控制系统,硬件1亿美元,软件高达7.2亿美元。绪论软件质量得不到保证软件应用面的扩大:科学计算、军事、航空航天、工业控制、企业管理、办公、家庭。软件越来越多的应用于安全犹关(safety critical)的系统,对软件质量提出更高的要求。80年代欧洲亚丽安娜火箭的发射失败,
9、原因是软件错误。美国阿托拉斯火箭的发射失败,原因是软件故障。英国1986年开发的办公室信息系统Folios经4年,因性能达不到要求,1989年取消。日本第5代机因为软件问题在投入50亿美元后于1993年下马。绪论软件进度难以控制项目延期比比皆是由于进度问题而取消的软件项目较常见只有一小部分的项目能够按期完成软件维护非常困难软件维护的多样性软件维护的复杂性软件维护的副作用绪论软件成本占系统总成本的比例逐年上升软件、硬件成本变化趋势 绪论软件危机的根源与软件本身的特点有关。软件不同于硬件,它是计算机系统的逻辑部件而不是物理部件。在写出程序代码并在计算机运行之前,软件开发过程的进展情况较难衡量,软件
10、开发的质量也较难评价。因此,管理和控制软件开发过程相当困难。软件不易于维护。软件维护通常意味着改正或修改原来的设计,客观上使软件较难维护。软件不同于一般程序,它的规模大,不易于维护。在软件开发过程中,或多或少地采用了错误的方法和技术。对用户需求没有完整准确的认识,就匆忙着手编写程序。绪论软件危机的解决途径技术措施:使用更好的软件开发方法和开发工具。组织管理措施:软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。绪论本章主要内容软件和软件危机软件工程学的范畴软件工程的发展软件工程的应用绪论绪论“软件工程”首次提出: 1968年,北大西洋公约
11、组织在原西德召开计算机科学会议,首次提出了“软件工程”的概念。提出背景:解决软件危机。软件工程学软件工程学软件开发技术软件工程管理软件开发方法学软件工具软件工程环境软件管理学软件经济学软件度量学绪论软件开发方法学结构化程序开发 面向对象开发 分布式对象/系统基于构件的开发面向服务的开发19701980199020002010软件开发方法学演化绪论软件工具作用:提高软件开发效率,促进软件生产的自动化。编码阶段工具:编辑程序、编译程序、连接程序以及集成开发环境等。源程序编辑程序工具编译程序工具连接程序工具目标程序库程序可执行代码编码阶段主要软件工具绪论运行阶段工具:应用服务器、各种中间件、数据库管
12、理系统、操作系统等。绪论软件工程环境软件开发方法学与软件工具相结合,再加上配套的软、硬件支持就形成软件工程环境。例如,UNIX环境、Windows环境等。软件工程管理软件工程管理的目的是为了按照进度及预算完成软件计划,实现预期的经济和社会效益。软件工程管理包括:成本估算、进度安排、人员组织、质量保证等内容,另外还涉及到管理学、度量学和经济学等多个学科的知识。本章主要内容软件和软件危机软件工程学的范畴软件工程的发展软件工程的应用绪论绪论软件编程范型范型:又称为科学基质,代表科学共同体成员所共有的信念、价值、技术手段的总称。简单地说,范型是某一学科在一定时期内展开研究活动共有的基础和准则。编程范型
13、:是指导和制约编程活动的范型,通常在编程语言中体现。目前主要的编程范型有:过程式编程范型面向对象编程范型基于构件的编程范型面向服务的编程范型绪论过程式编程范型:过程式编程范型遵循“程序=数据结构+算法”的思路,把程序理解成一组被动的数据和一组能动的过程所构成。典型过程式编程语言包括COBOL、Fortran、Pascal和C等。内存(程序和数据) 控制器 运算器 I/O 地址数据CPUVon Neumann式计算机体系结构命令式编程范型是对Von Neumann式计算机的顺序执行机制的直接抽象。绪论面向对象编程范型:指用封装了数据和对数据操作的对象以及对象之间的消息传递描述计算的编程范型。Ja
14、va、C#等是典型的面向对象编程范型语言。面向对象编程范型的示意图数据操作对象数据数据消息对象对象“对象+消息”的机制取代了“数据结构+算法”的思路,因而较好地解决了解空间与问题空间的一致性。绪论例. 银行储蓄处理事务。数据:帐户余额;操作:存款、取款、利息结算。帐户余额存款取款利息结算过程式编程范型帐户余额存款取款利息结算“银行帐户”对象面向对象编程范型绪论基于构件的编程范型:指以构件的创建,构件的管理以及复用已有的构件组装形成应用为基本活动的编程范型。目前主要的构件开发技术有:COM/DOCM、CORBA、EJB、Spring、OSGi等。数据对象数据数据消息对象一个封装了多个对象的构件构
15、件的接口构件:模块化的、可部署、可替换的软件系统组成部分,它封装了内部的具体实现并对外提供一组接口。绪论面向服务的编程范型:指以服务的创建、服务的管理以及复用已有的服务组装形成应用为基本活动的编程范型。 目前面向服务开发的技术有Web Service、SCA等。服务1服务2服务3服务4服务(Service):是自治、开放、自描述、与实现无关的网络构件。异构系统的功能被封装为服务以方便复用应用1(J2EE)应用2(.Net)应用3(Legacy)服务层应用层绪论LINIXUNIXWindows Fortran Java Application 屏蔽计算机硬件的异构性发展了操作系统.Net/COM
16、J2EE/EJBWeb service屏蔽不同中间件之间的异构性发展了Web服务 Architecture framework design pattern Support software middleware C/C+ 屏蔽应用软件和开发平台之间的差异产生了体系结构/框架/设计模式屏蔽操作系统之间和编程语言之间的异构性出现了支撑软件和中间件软件工程技术发展途径绪论 4代软件工程从编程范型到软件开发过程程序编码与软件开发过程是内涵不同的两个概念,二者既有联系,也有区别:编写程序仅是软件开发过程的一部分内容。软件开发过程通常包括:需求分析、软件设计、软件开发(编写程序)、软件测试等多个阶段。编
17、写程序是建立在编程范型的基础之上的,有什么样的编程范型,一般对应有什么样的软件开发过程。绪论软件工程分代传统软件工程:以结构化程序设计为基础,其开发过程一般包括:结构化分析结构化设计面向过程的编码软件测试。面向对象软件工程:以面向对象程序设计为基础,其开发过程一般包括:面向需求建模面向对象分析面向对象设计面向对象的编码与测试。基于构件的软件工程:以软件复用为目标,其开发过程一般包括两个阶段:领域工程和应用工程,连接两个阶段的纽带是可复用构件库。面向服务的软件工程、云计算环境下软件工程、本章主要内容软件和软件危机软件工程学的范畴软件工程的发展软件工程的应用绪论绪论在各种规模软件开发中的应用分类程
18、序规模子程序数开发时间开发人数极小500行以下10-201-4周1人小1K-2K行25-501-6月1人中5K-50K行250-10001-2年2-5人大50K-100K行2-3年5-20人甚大1M行4-5年100-1000人极大1M-10M行5-10年2000-5000人软件规模分类表绪论极小程序个人软件,由个人开发和使用。一般不需要正式的分析和详细的设计文档,也不必制定完整的测试计划。小程序与其它外部程序没有什么联系,开发者通常一人,无需或很少需要和用户或其他开发人员打交道。例如,求解数值问题的科学计算程序,生成报表或完成数据操作所用的小型商业应用程序,大学生的课程设计程序等。贯彻软件工程
19、中的技术标准和表示方法,按标准编写文档,并系统地进行复审,但并不是非常严格。绪论中规模程序与其它程序有少量联系,开发人员与用户间或开发人员之间存在一定联系。例如,汇编程序、小型MIS系统、仓库系统以及用于过程控制的应用程序等。在开发过程中如果能够系统地应用软件工程的原理,对改进软件质量、提高开发人员效率和满足用户需求有很大帮助。大型程序与其它程序或软件系统有种种联系,开发人员一般由几个开发小组组成,在组与组间、组内不同成员间、开发人员同管理人员及用户之间,都存在着大量通信,在长期的开发过程中,存在人员的变动问题。严格按照软件工程的方法开发。绪论甚大型程序大型数据库系统军事部门指挥与控制系统操作系统极大型程序空中交通管制系统洲际导弹防御系统大型军事指挥控制系统绪论软件工程发展趋势趋势一:开放计算开放计算融合了开放标准、开放架构和开源软件三个方面。通过坚持“开放标准”,不同企业开发和使用的软件可以互联互通,不同的软件工程工具能够更好地集成,不同国界和不同文化能够更好地协作交流。“开放架构” 的典型代表就是面向服务体系结构SOA,它通过一组开放的架构标准和技术, 有效地解决了商业模式的创新对汀灵活性要求的增加和现有IT 环境的复杂度之间的矛盾,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025四川九强通信科技有限公司招聘采购员等岗位56人笔试参考题库附带答案详解
- 2024福建福州市可持续发展城市研究院有限公司招聘7人笔试参考题库附带答案详解
- 2024湖北恩施州云栖大数据产业发展(巴东)有限责任公司招聘2人笔试参考题库附带答案详解
- 2024年四川资阳城建投资集团有限公司及下属子公司市场化招聘人员4人笔试参考题库附带答案详解
- 2024四川绵阳市绵投置地有限公司第三批次客服管理岗拟录用人选笔试参考题库附带答案详解
- 2024中国黄金集团有限公司总部及所属企业领导人员岗位招聘9人笔试参考题库附带答案详解
- 食管癌围术期的管理
- 2024年学年九年级语文上册 第七单元 忧乐天下 第26课《岳阳楼记》教学实录1 沪教版五四制
- 第三单元 草原牧歌-《牧歌》教学设计 2024-2025学年人音版初中音乐七年级上册
- 全国清华版信息技术小学一年级下册新授课 第12课 在网上交流信息 教学设计
- 文学作品与名著勾连阅读专题复习-中考语文二轮专题
- 认证咨询机构设立审批须知
- 部编版道德与法治六年级下册第三单元《多样文明 多彩生活》大单元作业设计
- 设备安装施工方案与调试方案
- GB/T 7971-2007半导电电缆纸
- GB/T 34938-2017平面型电磁屏蔽材料通用技术要求
- GB/T 31989-2015高压电力用户用电安全
- GB/T 26049-2010银包铜粉
- DNA的复制课件【新教材备课精讲精研】高一下学期生物人教版必修2
- CB/T 749-1997固定钢质百叶窗
- 江苏省事业单位招聘考试综合知识与能力素质真题及解析(管理类和其他类)
评论
0/150
提交评论