软件工程静态对象图 静态对象 软件工程
发布日期:2020-08-18摘要:求个软件工程作业 面向对象与结构化方法的比较研究 xxx (xxxxxxxxxx) 摘要:随着计算机的硬件及通讯技术的发展,计算环境发生了深刻的变化。计算环境的变迁和不断增长的软件需求对程序设计方法学...
求个软件工程作业
面向对象与结构化方法的比较研究 xxx (xxxxxxxxxx) 摘要:随着计算机的硬件及通讯技术的发展,计算环境发生了深刻的变化。
计算环境的变迁和不断增长的软件需求对程序设计方法学提出了一个又一个的挑战,程序设计方 法学也在挑战中前进。
首先回顾软件工程程序设计方法的发展历史,指出结构化和面向对象是软件工程程序设计方法中的2个核心思想,分析、探讨了结构化程序设 计方法与面向对象的方法的区别,并就如何在实践中正确应用给出了一些建议。
关键字:程序设计方法; 面向对象; 结构化1引言:随着计算机硬件及通讯技术的发展,计算机环境发生了深刻的变化,计算机环境的变迁和不断增长的软件需求对程序设计方法提出了一个有一个挑战,程序设计方法也在挑战中前进。
计算机发展经历了3个主要阶段:大型主机,客户/服务器以及网络计算。
与此相对应,软件工程的设计方法的发展可分为4代。
1.1第一代面向过程的程序设计方法 面向软件系统的信息流程图,采用面向过程的程序设计语言或面向进程的程序设计语言,实现软件设计流程图所描述的信息处理过程的功能,称为面向过程的程序设计方法或面向进程的程序设计方法。
这种方法适用于设计小规模专业软件包,软件的通用性、重用性和扩展性差。
1.2 第二代面向模块的程序设计方法 结构上将软件系统划分为若干功能模块或实体,分别采用模块化程序设计语言,如:pascal 编程实现,再由各模块联结,组合成相应结构的软件系统,称为面向模块的程序设计方法或模块化程序设计方法,也称为面向实体的程序设计方法。
这种方法适用于设计模块化、结构化程序,可提高软件系统的模块化和结构化水平,设计和组装较大规模的软件系统,有助于提高软件的通用性、重用性和扩展性。
1.3 第三代面向对象的程序设计方法 所谓对象是指具有一定结构、属性和功能的实体,采用对象和对象类,以及对象之间的相互通信的消息,描述客观世界中的各种事物及其相互关系,建立面向对象和消息的具有层次结构的世界模型。
面向对象的程序设计方法基于上述面向对象世界模型。
采用面向对象的程序设计语言,如c++、smalltalk 等编程实现。
这种方法具有通用性,适用于广泛应用领域的大规模软件系统设计。
有助于提高软件的重用性、扩展性和移植性,提高编程效率和程序自动化水平。
1.4 第四代面向智体的程序设计方法 面向智体的程序设计方法是面向对象的程序设计方法的发展。
在程序设计方法的发展演变历程中,结构化和面向对象思想是最核心的思想方法。
结构思想体现了人们抽象思维和复杂问题分解的基本原则与要求,而面向对象则反映了客观世界由对象组成这一本质特点。
2 软件工程程序设计方法的出发点 从程序结构来看,每个子问题形成整个程序结构的一个构件,这个构件称为一个模块。
程序的算法结构,就是一个由模块连接成的层次结构。
在软件工程中,把这种设计方法归结为软件工程设计方法学。
该方法学的基本表述为:自顶向下,逐步求精,模块化层次结构设计。
程序设计方法的本质是问题的抽象与分解,各种程序设计方法的区别在于其分解的因子不一样,处理数据对象及相关操作的方法不一样,也就是出发点不一样。
3 结构化程序设计方法 结构化程序设计方法包含以下内容。
3.1 结构化技术 结构化技术包括结构化分析(S A )、结构化设计(SD )、结构化程序设计(SP )3 方面内容,对应于软件开发时期的分析、设计和编码阶段。
3.2 结构化分析 结构化分析是70 年代中期由DeMarco 和Yourdon等倡导的一种基于功能分解的分析方法,即使用数据流程图、决策表、决策树等工具,来建立一种符合用户需求的结构化说明书。
3.3 结构化设计 结构化设计是一种面向数据流的设计方法,也就是采用最佳的可能方法设计系统的各个组成部分以及各成分之间的内部联系的技术,目的在于提出满足系统需求的最佳软件的结构,完成软件层次图或软件结构图。
4 面向对象的方法 面向对象技术:面向对象技术包括面向对象分析(O O A )、面向对象设计(O O D )及面向对象程序设计(O O P )3 部分内容。
O O P 是在结构化程序设计的基础上,于8 0 年代初涌现的一种程序设计方法,但其真正显示力量和被产业界所重视还是最近几年的事。
封装是整个O O P 方法的基础,主要用于在数据段外围构造保护层,以限制外界变化的影响,所有的数据访问都由保护层内的过程间接处理。
应用程序员不必再按照将程序设计语言逐句拼装的方式来构造整个软件,只需组合、重用由系统程序员开发、可供他人用来装配的软件集成块即可。
例如,Visual Basic(VB)是一种面向对象的程序设计语言,与传统DOS 下的Basic 或Quick Basic 最大的差别在于它运用了面向对象的概念。
V B 建立了一个事件驱动的环境,供用户直接调用。
程序设计人员只要专心数据的运算处理,其余诸如W i n d o w s 应用程序下所见的滚动条、按钮、下拉式菜单和对话框等,都已经有对象供用户进行调用,而且每个对象又都有许多事件、属性和方法,供用户填入适当值或程序码,从而形成一个应用程序。
5 结构化程序设计方法与面向对象的程序...
软件工程简述活动图和状态图的区别
UML活动图和状态图一、UML活动图:◆流程图常被用来建立算法模型◆UML活动图与流程图类似,不同在于它支持并行活动.◆缺点:不能清楚的表示二、作用:1、描述一个操作的执行过程中所完成的工作或者动作2、描述对象内部的工作3、描述用例的执行4、处理多线程5、显示如何执行一组相关的动作,以及这些动作如何影响周围对象三、以下情况不用UML活动图1、显示对象之间的合作2、显示对象在其生命周期内的运转情况。
这两点是通过序列图和协作图完成的。
四、UML活动图的基本要素:◆活动状态◆活动状态之间的转移(箭头)◆判断(决策点)◆保证条件◆同步条:活动之间的同步◆起点和终点--起点有且只有一个,终点可以有n个。
软件工程这个专业如何?
软件工程专业: 主修课程:主干学科:马克思主义理论、大学外语、高等数学、大学物理、物理实验、线性代数、概率论与数理统计、程序设计语言、数据结构、离散数学、操作系统、编译技术、软件工程概论、统一建模语言、软件体系结构、软件需求、软件项目管理该专业除了学习公共基础课外,还将系统学习离散数学、数据结构、算法分析、面向对象程序设计、现代操作系统、数据库原理与实现技术、编译原理、软件工程、软件项目管理、计算机安全等课程,根据学生的兴趣还可以选修一些其它选修课。
实践环节:毕业实习、课程设计、计算机工程实践、生产实习、毕业设计(论文)。
就业方向:本专业学生毕业后可以从事各级各类企事业单位的办公自动化处理、计算机安装与维护、网页制作、计算机网络和专业服务器的维护管理和开发工作、动态商务网站开发与管理、软件测试与开发及计算机相关设备的商品贸易等方面的有关工作。
除考取国内外名牌大学研究生外,主要毕业去向是计算机软件专业公司﹑信息咨询公司﹑以及金融等其它独资、合资企业。
就业前景:中国的软件行业规模不是很大,有些软件企业在软件制作上,也只是采用了一些软件工程的思想,距离大规模的工业化大生产比较还是有一定的差距;原因有管理体制的问题,市场问题,政策问题,也有软件工程理论不全面和不完善的问题。
所以软件工程的研究和应用,以及中国软件行业的进一步发展,都需要一定的既有软件工程的理论基础和研究能力,又有一定的实践经验的软件工程科学技术人员来推动。
软件工程的前途是光明的。
软件服务外包属于智力人才密集型现代服务业。
大量著名外包企业落户宁波。
主要就业去向包括软件外包与服务企业、信息产品与服务企业,担任程序员、软件测试员、项目经理等工作岗位。
就业岗位:Java方向:JAVA初级程序员、JAVA计算程序员 、 JAVA工程师 、J2EE系统工程师等。
.Net方向: .Net程序员网站开发工程师 .Net工程师等。
其它方向: 简单的管理信息系统开发和维护人员 、网页制作和客户端脚本程序编写人员 、初级数据库管理和 维护人员 、数据库开发工程师 、系统分析设计工程 、软件项目配置管理员 、文档编写工程师。
...
在软件工程一体化中,有哪些面向对象模型?有哪些建模工具?
统一建模语言(UML是 Unified Modeling Language的缩写)是用来对软件密集系统进行可视化建模的一种语言。
UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。
统一建模语言 (UML)是非专利的第三代建模和规约语言。
UML是在开发阶段,说明,可视化,构建和书写一个面向对象软件密集系统的制品的开放方法。
UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。
UML可以贯穿软件开发周期中的每一个阶段。
被OMG采纳作为业界的标准。
UML最适于数据建模,业务建模,对象建模,组件建模。
UML作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现。
当模型建立之后,模型可以被UML工具转化成指定的程序语言代码。
IBM的Rational Rose和MS的Visio都是UML工具。
同时还有一些免费的UML工具:http://java-source.net/open-source/uml-modeling一. 标准建模语言UML的出现 公认的面向对象建模语言出现于70年代中期。
从1989年到1994年,其数量从不到十种增加到了五十多种。
在众多的建模语言中,语言的创造者努力推崇自己的产品,并在实践中不断完善。
但是,OO方法的用户并不了解不同建模语言的优缺点及相互之间的差异,因而很难根据应用特点选择合适的建模语言,于是爆发了一场“方法大战”。
90年代中,一批新方法出现了,其中最引人注目的是Booch 1993、OOSE和OMT-2等。
Booch是面向对象方法最早的倡导者之一,他提出了面向对象软件工程的概念。
1991年,他将以前面向Ada的工作扩展到整个面向对象设计领域。
Booch 1993比较适合于系统的设计和构造。
Rumbaugh等人提出了面向对象的建模技术(OMT)方法,采用了面向对象的概念,并引入各种独立于语言的表示符。
这种方法用对象模型、动态模型、功能模型和用例模型,共同完成对整个系统的建模,所定义的概念和符号可用于软件开发的分析、设计和实现的全过程,软件开发人员不必在开发过程的不同阶段进行概念和符号的转换。
OMT-2特别适用于分析和描述以数据为中心的信息系统。
Jacobson于1994年提出了OOSE方法,其最大特点是面向用例(Use-Case),并在用例的描述中引入了外部角色的概念。
用例的概念是精确描述需求的重要武器,但用例贯穿于整个开发过程,包括对系统的测试和验证。
OOSE比较适合支持商业工程和需求分析。
此外,还有Coad/Yourdon方法,即著名的OOA/OOD,它是最早的面向对象的分析和设计方法之一。
该方法简单、易学,适合于面向对象技术的初学者使用,但由于该方法在处理能力方面的局限,目前已很少使用。
概括起来,首先,面对众多的建模语言,用户由于没有能力区别不同语言之间的差别,因此很难找到一种比较适合其应用特点的语言;其次,众多的建模语言实际上各有千秋;第三,虽然不同的建模语言大多雷同,但仍存在某些细微的差别,极大地妨碍了用户之间的交流。
因此在客观上,极有必要在精心比较不同的建模语言优缺点及总结面向对象技术应用实践的基础上,组织联合设计小组,根据应用需求,取其精华,去其糟粕,求同存异,统一建模语言。
1994年10月,Grady Booch和Jim Rumbaugh开始致力于这一工作。
他们首先将Booch 93和OMT-2 统一起来,并于1995年10月发布了第一个公开版本,称之为统一方法UM 0.8(Unitied Method)。
1995年秋,OOSE 的创始人Ivar Jacobson加盟到这一工作。
经过Booch、Rumbaugh和Jacobson三人的共同努力,于1996年6月和10月分别发布了两个新的版本,即UML 0.9和UML 0.91,并将UM重新命名为UML(Unified Modeling Language)。
1996年,一些机构将UML作为其商业策略已日趋明显。
UML的开发者得到了来自公众的正面反应,并倡议成立了UML成员协会,以完善、加强和促进UML的定义工作。
当时的成员有DEC、HP、I-Logix、 Itellicorp、 IBM、ICON Computing、MCI Systemhouse、Microsoft、Oracle、Rational Software、TI以及Unisys。
这一机构对UML 1.0(1997年1月)及UML 1.1(1997年11月17日)的定义和发布起了重要的促进作用。
UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。
它溶入了软件工程领域的新思想、新方法和新技术。
它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
面向对象技术和UML的发展过程可用图形来表示,标准建模语言的出现是其重要成果。
在美国,截止1996年10月,UML获得了工业界、科技界和应用界的广泛支持,已有700多个公司表示支持采用UML作为建模语言。
1996年底,UML已稳占面向对象技术市场的85%,成为可视化建模语言事实上的工业标准。
1997年11月17日,OMG采纳UML 1.1作为基于面向对象技术的标准建模语言。
UML代表了面向对象方法的软件开发技术的发展方向,具有巨大的市场前景,也具有重大的经济价值和国防价值。
UML是一个标准的图形表示法,它不是面向对象的分析和设计,...
系统的流程图是属于软件工程哪一模块
面向对象软件设计说明书模板 1 概述 1.1 系统简述 对系统要完成什么,所面向的用户以及系统运行的环境的简短描述,这部分主要来源于需求说明书的开始部分。
1.2 软件设计目标 这部分论述整个系统的设计目标,明确地说明哪些功能是系统决定实现而哪些时不准备实现的。
同时,对于非功能性的需求例如性能、可用性等,亦需提及。
需求规格说明书对于这部分的内容来说是很重要的参考,看看其中明确了的功能性以及非功能性的需求。
这部分必须说清楚设计的全貌如何,务必使读者看后知道将实现的系统有什么特点和功能。
在随后的文档部分,将解释设计是怎么来实现这些的。
1.3 参考资料 列出本文档中所引用的参考资料。
(至少要引用需求规格说明书) 1.4 修订版本记录 列出本文档修改的历史纪录。
必须指明修改的内容、日期以及修改人。
2 术语表 对本文档中所使用的各种术语进行说明。
如果一些术语在需求规格说明书中已经说明过了,此处不用再重复,可以指引读者参考需求说明。
3 用例 此处要求系统用用例图表述(UML),对每个用例(正常处理的情况)要有中文叙述。
4 设计概述 4.1 简述 这部分要求突出整个设计所采用的方法(是面向对象设计还是结构化设计)、系统的体系结构(例如客户服务器结构)以及使用到的相应技术和工具(例如OMT、Rose) 4.2 系统结构设计 这部分要求提供高层系统结构的描述,使用方框图来显示主要的组件及组件间的交互。
最好是把逻辑结构同物理结构分离,对前者进行描述。
别忘了说明图中用到的俗语和符号。
4.2.1 顶层系统结构 4.2.2 子系统1结构 4.2.3 子系统2结构 4.3 系统界面 各种提供给用户的界面以及外部系统在此处要予以说明。
如果在需求规格说明书中已经对用户界面有了叙述,此处不用再重复,可以指引读者参考需求说明。
如果系统提供了对其它系统的接口,比如说从其它软件系统导入导出数据,必须在此说明。
4.4 约束和假定 描述系统设计中最主要的约束,这些是由客户强制要求并在需求说明书写明的。
说明系统是如何来适应这些约束的。
另外如果本系统跟其它外部系统交互或者依赖其它外部系统提供一些功能辅助,那么系统可能还受到其它的约束。
这种情况下,要求清楚地描述与本系统有交互的软件类型(比如某某某数据库软件,某某某EMail软件)以及这样导致的约束(比如只允许纯文本的Email)。
实现的语言和平台也会对系统有约束,同样在此予以说明。
对于因选择具体的设计实现而导致对系统的约束,简要地描述你的想法思路,经过怎么样的权衡,为什么要采取这样的设计等等。
5 对象模型 5.1 系统对象模型 提供整个系统的对象模型,如果模型过大,按照可行的标准把它划分成小块,例如可以把客户端和服务器端的对象模型分开成两个图表述。
对象图应该包含什么呢? 在其中应该包含所有的系统对象。
这些对象都是从理解需求后得到的。
要明确哪些应该、哪些不应该被放进图中。
所有对象之间的关联必须被确定并且必须指明联系的基数(一对一、一对多还是多对多,0..1,*,1..*)。
聚合和继承关系必须清楚地确定下来。
每个图必须附有简单的说明。
可能经过多次反复之后才能得到系统的正确的对象模型。
6 对象描述 在这个部分叙述每个对象的细节,它的属性、它的方法。
在这之前必须从逻辑上对对象进行组织。
你可能需要用结构图把对象按子系统划分好。
为每个对象做一个条目。
在系统对象模型中简要的描述它的用途、约束(如只能有一个实例),列出它的属性和方法。
如果对象是存储在持久的数据容器中,标明它是持久对象,否则说明它是个临时对象(tansient oject)。
对每个对象的每个属性详细说明:名字、类型,如果属性不是很直观或者有约束(例如,每个对象的该属性必须有一个唯一的值或者值域是有限正整数等)。
对每个对象的每个方法详细说明:方法名,返回类型,返回值,参数,用途以及使用的算法的简要说明(如果不是特别简单的话)。
如果对变量或者返回值由什么假定的话,Pe-conditions和Post-conditions必须在此说明。
列出它或者被它调用的方法需要访问或者修改的属性。
最后,提供可以验证实现方法的测试案例。
6.1 子系统1中的对象 6.1.1 对象:对象1 用途: 约束: 持久性: 属性描述: 1. 属性:属性1 类型: 描述: 约束: 2. 属性:属性2 方法描述: 1. 方法:方法1 返回类型: 参数: 返回值: Pe-Condition: Post-Condition: 读取修改的属性: 调用的方法: 处理逻辑: 测试例:用什么参数调用该方法,期望的输出是什么…… 7 动态模型 这部分的作用是描述系统如何响应各种事件。
例如,可以建立系统的行为模型。
一般使用顺序图和状态图。
确定不同的场景(Scenaio)是第一步,不需要确定所有可能的场景,但是必须至少要覆盖典型的系统用例。
不要自己去想当然地创造场景,通常的策略是描述那些客户可以感受得到的场景。
7.1 场景(Scenaios) 对每个场景做一则条目,包括以下内容: 场景名:给它一个可以望文生义的名字 场景描述:简要叙述场景是干什么的以及发生的动作的顺序。
顺序图:描述各种事件及事件发生的相对时间顺序。
7.1.1 ...
系统的流程图是属于软件工程哪一模块
软件开发阶段包括需求分析、总体设计、概要和详细设计、编码、测试、安装及维护。
关于数据库的设计,需求分析中获得业务对象模型,也就是现实中的实体。
在分析阶段来对数据库进行设计,不过一定要注意任何实体的属性一般一定要有根据的。
总体设计中必须体现出数据库设计的内容,然后在详细设计中完成。
不过,若用面向对象的分析方法,就没有明确的界限可分,写在总体设计或者详细设计部分都行。
下一篇:单片机设计软件 logo设计软件
-
给我们打电话
7*24小时服务热线:1399999999
全国客服热线:400-0000-000 -
百度地图
福建省三明市 -
给我们发邮件
E-mail:[email protected]
在线沟通