软件工程设计选题 软件工程毕业设计 - 电脑|办公 - 电脑办公-杀毒安全-网络-V3学习网
微商网
 
 
导航:首页 |电脑|办公|正文

软件工程设计选题 软件工程毕业设计

时间:2021-04-01 08:31:19
软件工程毕业设计选题问题 设计方法 设计通常被描述为一个多步的过程,其主要任务是从信息需求中综合出数据结构的表示、程序结构、接口特征和过程细节。Feeman在[FRE80]中对设计有较为详细的描述:
作者:

软件工程设计选题

软件工程毕业设计选题问题

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

软件专业毕业设计要选题啦,大家给帮帮忙哈

防火墙不错 不过难度有点大 当时我毕业的时候想做这两个 但是出于其他考虑最好还是做的管理系统 不过你可以在界面上下点功夫其实你也可以考虑做个播放器之类的小软件 比较实用还能锻炼能力做个聊天软件也很不错 如果加上你说的那些功能的话 实际的工作量也不小说到这 可以给你点提示 首先做成聊天室 然后支持单独聊天 OK 界面在美化一下 哈哈 这样你就成你们学校偶像了嗯 我又思考了一下 做个这种软件是非常可行的 而且还能锻炼你多方面的能力 多线程 I/O 还有SOCKET编程 另外界面的话 你也可以考虑使用java的Look and feel(非常漂亮) 这些都用上 我不信还有人比这个还好PS.其实保存历史聊天记录等也可以用数据库来实现 这样看来技术就全面了

【软件研究生论文课题】求软件工程自考本科毕业论文选题可以给一...

实时系统的设计 实时计算系统的设计是一个软件工程师所能从事的最有挑战性和最为复杂的任务。

由于这个特点,用于实时系统的软件需要其他应用领域没有涉及到的分析、设计和测试技术。

实时软件是外部世界高度耦合的,也就是说,实时软件必须在问题域规定的时间框架内对该问题域(现实世界)作出响应。

由于实时软件必须在严格的性能约束下操作,因此软件的设计常常是被硬件及软件体系结构、操作系统特性、应用需求和编程语言的变化所驱动的。

Robert Glass[GLA83]在他关于实时软件的书中,对实时系统主题给出了一段很有帮助的介绍: 数字计算机在我们所有人的日常生活中正变得日益普及。

计算机不但可以让我们玩游戏,还可以报时、优化最新一代汽车的汽油里程以及控制我们的家用电器……[在工业上,计算机可以控制机器、协调过程,并逐渐用自动化系统和“人工智能”来代替手工操作和人的参与。

] 所有上述的计算——不论是有帮助的还是强行引入的——都是实时计算的例子。

计算机正在控制着某些东西与外部世界的实时交互,事实上,时间是交互的核心……反应迟钝的实时系统比完全没有系统还要糟糕。

就在十年前,实时软件开发还被认为是一种黑色的艺术,它的从事者是那些充满嫉妒地保卫着他们封闭世界的巫师们。

如今,巫师们已经供不应求了!然而,实时软件的开发毫无疑问需要特殊的技能。

在本章里我们将对实时软件进行研究,并讨论建造实时软件所需的某些开发技能。

15.1系统考虑 与其他任何基于计算机的系统一样,一个实时系统必须将硬件、软件、人力和数据库元素集成起来,以恰当地实现一组功能和性能需求。

在第10章中,我们探讨了基于计算机的系统任务分配,并指出,系统工程师必须对系统元素分配功能和性能。

实时系统的问题在于恰当的分配。

实时性能常常与功能一样重要,但却很难有把握地作出与性能相关的分配决策。

一个处理算法能满足严格的时间约束吗,或者说我们应该建造特殊的硬件来完成这个工作?一个购买来的操作系统能够满足我们进行高效的中断处理、多任务和通信的需求吗,或者说我们应该使用自定义的执行程序?与推荐的软件配对的特定硬件能够满足性能标准吗?所有这些以及其他许多问题都需要由实时系统工程师来回答。

对实时系统所有成分的详细讨论已经超出了本书的范围,在[SAV85]、[ELL94]和[SEL94]等文献中有大量好的有关这方面的信息,但是,在讨论软件分析和设计问题前我们对实时系统的各个元素能有所理解还是非常重要的。

Everett[EVE95]定义了实时软件开发不同于其他软件工程的三个特征: ·实时系统的设计是受资源约束的。

时间是实时系统的首要资源,关键是要在指定数目的CPU周期内完成一个定义好的任务,除此以外,其他系统资源,如内存大小等,在实现系统目标时都有可能和时间进行折衷。

·实时系统是紧凑而复杂的。

尽管一个复杂的实时系统可能包含上百万行的代码,但软件中有关时间标准的代码一般只占很小一部分。

这一小部分代码是最为复杂的(从算法的角度来说)。

·实时系统的运行常常不需要用户的参与。

因此,实时软件必须能检测到导致故障的问题,并在对数据和控制环境造成破坏前改正这些问题。

在下面一节中,我们将探讨一下实时系统不同于其他类型计算机软件的一些关键性属性。

15.2 实时系统 实时系统产生某种动作以响应外部世界。

为了完成这个功能,它们能高速地获取数据,并在严格的时间和可靠性约束控制下。

由于这些约束是如此苛刻,实时系统通常只用于满足单个的应用。

实时系统广泛地用于各种应用领域,包括军用的命令与控制系统、消费者电器、过程控制、工业自动化、医疗和科学研究、计算机图形、局域和广域通信、航天系统、计算机辅助测试以及大量的工业仪器。

15.2.1集成和性能问题 为了将一个实时系统组织在一起,系统工程师需要作出困难的硬件和软件决策。

(实时系统与硬件相关的分配问题超出了本书的范围;更多的信息请参阅文献[SAV85]。

)一旦分配好软件成分,就要建立详细的软件需求,并必须开发出一个基本的软件设计。

许多实时设计关心的是实时任务间的协调、系统中断的处理、保证不丢失数据的I/O处理、指定系统的内部和外部时间约束、以及确保数据库的准确度等。

实时设计关注的每个部分都必须应用到系统性能这个语境中。

在大多数情况下,一个实时系统的性能是由一个或多个与时间相关的特征来测度的,但也可能用容错性之类的指标来测度。

某些实时系统是设计来用于那些只关注反应时间或数据传输率的应用中,其他实时应用还需要对峰值负载条件下的这两个参数进行优化,而且,实时系统必须在执行一系列并发任务时处理它们的峰值负载。

大家还关注
    
阅读排行
推荐阅读