用户登录
用户注册

分享至

软件工程 在线 在线考试系统软件工程

  • 作者: 选择75222135
  • 来源: 51数据库
  • 2020-04-15

软件工程 在线

软件工程设计方法有哪些?

设计方法 设计通常被描述为一个多步的过程,其主要任务是从信息需求中综合出数据结构的表示、程序结构、接口特征和过程细节。

Freeman在[FRE80]中对设计有较为详细的描述: 设计是一项主要考虑进行重要决策的活动,这些决策通常都与结构有关。

设计与编程都要考虑抽象信息表示,但其详细程度与编程有很大的不同。

设计的结果是一个一致的、合理计划的程序表示,主要描述高层各部分的相互关系和低层所需的逻辑操作… 在前一章我们已经指出,设计是由信息驱动的。

各种软件设计方法主要考虑分析模型中的三个域,因此数据、功能和行为三个域是整个设计创建活动的指南。

本章将讨论多种用于创建设计模型(见图13-1)的各个层次的方法,本章的目标是提供一个系统地完成设计的方法,设计的结果就是构造软件的蓝图。

14.1 数据设计 数据设计是实施软件工程中的四个设计活动的第一个(有人也认为是最重要的一个)。

由于数据结构对程序结构和过程复杂性都有影响,数据结构对软件质量的影响是很深远的。

信息隐蔽和抽象数据的概念为数据设计提供了基础。

Wasserman在参考文献[WAS80]中总结了数据设计的过程: 数据设计的主要活动是选择对需求定义和规约过程中找出来的数据对象(数据结构)的逻辑表示。

选择过程可以包括对候选结构进行算法分析,以决定出效率最高的结构;选择过程也可以只使用一组模块(一个包),在对象的某种表示上提供需要的操作。

设计中的另一个相关的活动是标识要直接作用于逻辑数据结构的程序模块,这样,各个数据设计决策的影响域就受到了约束。

无论采用哪种设计技术,好的数据设计将改善程序结构和模块划分,降低过程复杂性。

Wasserman[WAS80]提出了一组用于数据规约和设计的原则。

在实际应用中,数据设计在创建分析模型(见第12章)就已经开始了,考虑到需求分析和设计经常要重叠,我们主要考虑以下一组数据规约原则[WAS80]: 1.用于功能和行为的系统分析原则也应用于数据。

我们通常要在导出、复审和刻画功能需求和初步设计上花很多时间和工作量;数据对象及其关系、数据流和内容的表示也应该按步骤进行开发和复审,其他可选的数据组织结构也应加以考虑,数据模型对于软件设计的影响也应得到正确的评估,例如,一个多环链表可能可以很好地满足数据需求,但它也可能导致过于复杂的软件设计,而其他替代的数据组织结构可能会得到更好的结果。

2.应该标识所有的数据结构以及其上的操作。

设计一个高效的数据结构必须考虑其上的操作(见参考文献[AHO83]),例如,考虑一个由不同数据元素组成的数据结构,在许多重要的软件功能中都要操作这个数据结构。

通过评估该数据结构上的操作,可定义一个抽象数据类型,以便在以后的软件设计中使用。

抽象数据类型的规约将大大简化软件设计。

3.应当建立数据字典,并用于数据设计和程序设计。

数据字典的概念在第12章中已经介绍,数据字典明确表示了数据对象间的关系以及对数据结构中的元素的约束。

如果有一个类似字典的数据规约存在,那些必须利用某些特定关系的优秀算法的定义将得到简化。

4.低层的设计决策应该推迟到设计过程的后期。

数据设计可以采用逐步求精的过程,也就是说,总体的数据组织可以在需求分析阶段定义,在概要设计中进行精化,并在以后的设计迭代中进行详细描述。

在数据设计中应用自顶向下方法的优点与在软件设计中应用自顶向下方法的优点类似:主要的结构属性要首先进行设计和评估,以便建立数据的体系结构。

5.只有那些需要直接使用数据结构内部数据的模块才能看到该数据结构的表示。

信息隐蔽的概念以及相关的耦合概念为软件设计质量的评估提供了依据。

本原则不但强调了这两个概念的重要性,还强调了“将数据对象的逻辑视图和物理视图分开的重要性”[WAS80]。

6.应该开发一个由有用的数据结构和应用于其上的操作组成的库。

数据结构和操作都应被看作可用于软件设计的资源,数据结构的设计可以考虑到复用。

数据结构模板(抽象数据类型)库可以减少数据规约和设计的工作量。

7.软件设计和程序设计语言应该支持抽象数据类型的规约和实现。

如果没有办法对已有的数据结构直接进行规约,复杂数据结构的实现(以及对应的设计)将变得非常困难。

例如,如果目标语言是Fortran的话,实现(或设计)一个链表或多层异构数组将是非常困难的,因为Fortran不支持直接对这些数据结构进行规约。

以上这些原则为数据设计提供了基础,它们既可以应用在软件工程的定义阶段,也可以应用在开发阶段。

在本书的其他部分我们已经指出,清晰的信息定义是软件开发成功的关键。

ACCP软件工程师培训哪里有中心,在线等?

ACCP培养目标:1、具备一年以上软件开发经验;符合IT企业入职技术要求;2、熟练java和.net开发相关技能;3、熟悉软件项目开发流程;具备胜任各岗位基本技术条件;4、有良好的程序编写能力和编程习惯;5、良好的语言表达、沟通能力、工作责任心和团队意识。

Java培训:适合人群:1、年满20周岁2、适合大学生、在职提升、转行或待业人群等有志于进入IT软件行业发展的人群。

培训目标:1、精通JavaEE平台开发的java软件工程师,能够胜任各种行业的企业级软件开发工作;2、具备一年以上软件开发经验;3、熟悉java软件开发流程;具备解决目前主要问题的能力;4、良好的语言表达、沟通能力、工作责任心和团队意识。

体系:java软件工程师毕业后可获取北大青鸟颁发的java软件工程师证书和国家劳动和人力资源社会保障部颁发的Java高级软件开发专家证书。

软件工程有哪些过程?

软件工程过程是为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。

软件工程过程通常包含四种基本的过程活动: P(Plan):软件规格说明。

规定软件的功能及其运行的限制; D(Do):软件开发。

产生满足规格说明的软件; C(Check):软件确认。

确认软件能够完成客户提出的要求; A(Action):软件演进。

为满足客户的变更要求,软件必须在使用的过程中演进。

事实上,软件工程过程是一个软件开发机构针对某一类软件产品为自己规定的工作步骤,它应当是科学的、合理的,否则必将影响到软件产品的质量。

我是学习软件工程的,但是现在就觉得自己对这个专业不怎么适合,...

喜欢干就继续干 我们的情况很相似 半年前我和你一样的想法 我也是个坐不住的人 我原来是网络专业 结果找工作莫名其妙找到份软件公司当程序员 很多东西不会 一直在质疑自己是否需要继续做 一直这样想了好久 感觉自己给自己的压力好大 现在干脆什么都不想 就这样做下去 能学多少是多少 确实找份工作不容易 我的软件基础一塌糊涂 反正慢慢来吧 如果有一份相关的行业 就踏踏实实做下去 加油

写一个软件工程的需求分析,有没有类似的网站可以参考?而且这个软...

(1)FIPSl35是美国国家标准局发布的《软件文档管理指南》。

(2)ISO5807是国际标准化组织公布的《信息处理——数据流程图、程序流程图、程序网络图和程序资源图的文件编制符号及约定》,现已被选用为中国国家标准。

GIS标准的主要内容分为硬件设备的标准、软件方面的标准、数据和格式的标准、数据集标准。

软件工程的方法与技术方向是什么?

需求分析是发现、求精、建模、规格说明和复审的过程。

为了发现用户的真正需求,首先应该从宏观角度调查、分析用户所面临的问题,也就是说,需求分析的第一步是尽可能准确地了解用户当前的情况和需要解决的问题。

例如,仅仅知道“用户需要一个计算机辅助设计系统,因为他们的手工设计系统很糟糕”是远远不够的。

除非开发人员准确地知道目前使用的手工系统什么地方很糟糕,否则新开发出的计算机辅助设计系统很可能也同样糟糕。

类似地,如果一个个人计算机制造商打算开发一个新的操作系统,他首先应该做的工作就是评价目前使用的操作系统并准确地分析它不能令人满意的原因。

只有开发人员对用户面临的问题有了清楚的了解之后,才能正确地回答出“什么是新产品必须做到的”这个关键问题。

如果软件是新开发的计算机系统的一个组成部分,则系统工程师所确定的软件职责范围,可以作为软件需求分析的出发点。

分析员对用户提出的初步要求应该反复求精多次细化,才能充分理解用户的需求,得出对目标系统的完整、准确和具体的要求。

为了更好地理解问题,人们常常采用建立模型的方法。

所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。

通常,模型由一组图形符号和组织这些符号的规则组成。

在技术层次上,软件工程是从一系列建模活动开始的,这些建模活动导致对要求开发的软件的完整的需求规格说明和全面的设计表示。

结构化分析就是一种建立模型的活动,通常建立数据模型、功能模型和行为模型等三种模型。

除了用分析模型表示软件需求之外,还要写出准确的软件需求规格说明。

模型既是软件没计的基础,也是编写软件规格说明的基础。

在分析软件需求和编写软件规格说明的过程中,软件开发者和软件用户都起着关键的、必不可少的作用。

只有用户才真正知道他们需要什么,用户必须尽量把他们对软件功能和性能的模糊需求准确、具体地描述出来,而开发者则是软件需求的询问者、顾问和实现者。

表面看来,需求分析和规格说明好像是比较简单的工作,实际上完全相反,这是一项相当艰巨复杂的工作。

用户与开发者之间需要通信、沟通的内容非常多,在双方交流信息的过程中很容易出现误解或遗漏,也可能存在二义性。

因此,不仅在整个需求分析过程中应该采用行之有效的通信技术,集中精力过细工作,而且对需求分析的结果(分析模型和规格说明)必须严格审查。

尽管目前存在许多不同的结构化分析方法,但是,所有这些分析方法都遵守下述准则 必须理解和表示问题的信息域,根据这条准则应该建立数据模型。

必须定义软件应完成的功能,这条准则要求建立功能模型。

必须表示作为外部事件结果的软件行为,这条准则要求建立行为模型。

软件工程的特点有哪些?

1 是一种逻辑产品,与物质产品有很大的区别。

2 软件产品的生产主要是研制,生产成本主要在开发和研制,开发研制完成后,通过复制就产生了大量软件产品。

3 软件产品不会用坏,不存在磨损,消耗。

4 生产主要是脑力劳动,还末完全摆脱手工开发方式,大部分产品是"定做"的。

5 开发软件的费用不断增加,致使生产成本相当昂贵 按软件的功能划分-

转载请注明出处51数据库 » 软件工程 在线

软件
前端设计
程序设计
Java相关