软件开发与设计实例分析复习题1004Word文档下载推荐.docx
《软件开发与设计实例分析复习题1004Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《软件开发与设计实例分析复习题1004Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。
、基于结构化方法的架构软件项目实例
()项目立项:
立项背景、可行性分析、开发计划
()需求分析:
需求调研、数据分析、功能定义、需求分析文档
()概要设计:
开发环境、架构设计、数据设计、界面设计、模块设计、概要设计文档
()详细设计:
接口定义、数据结构定义、算法设计、详细设计文档
()编码实现:
编程实现、编码文档
()系统测试:
测试方案、测试过程、测试评估
、基于面向对象方法的架构软件项目实例
接口类定义、数据结构定义、算法设计、详细设计文档
、基于架构的网站开发软件项目实例
二、基本概念
1、软件工程的三段论是指软件项目管理、软件项目开发和软件过程改进。
、软件项目管理过程是项目管理者规划软件开发、控制软件开发的过程。
管理过程是伴随开发过程进行的过程。
、软件项目开发过程相当于生产线上的生产过程。
软件生产线上的工序主要包括:
需求分析、概要设计、详细设计、编码、测试、提交和维护等。
、软件过程是为了获得高质量软件所需要完成的一系列活动的框架,它规定了完成各项活动的工作步骤。
、软件由用户需求驱动的。
、软件需求关注的是软件需求的获取、分析、规格和验证。
、软件概要设计的核心内容就是依据需求规格或规格定义,合理、有效地实现产品规格中定义的各项需求。
它注重框架设计、总体结构设计、数据库设计、接口设计、网络环境设计等。
概要设计是将产品分割成一些可以独立设计和实现的部分,保证系统的各个部分可以和谐地工作。
、概要设计主要是根据需求规格完成软件模块的划分并描述模块之间的关系,设计过程是不断地分解系统模块,从高层分解到低层分解。
、传统(结构化)的设计方法
传统的结构化设计方法主要有功能模块划分设计、面向数据流设计、面向事务设计、输入/输出设计等。
、功能模块划分设计
这个设计方法是根据功能进行分解,分解出一些模块,设计者从高层到低层一层一层进行分解,每层都有一定的关联关系,每个模块具有特定、明确的功能,每个模块的功能是相对独立的,同时是可以集成的。
模块划分应该体现信息隐藏、高内聚、松耦合的特点。
、设计模型
设计模型主要包括四类模型:
数据设计、架构设计、界面设计、模块设计。
、架构设计中以数据为中心的架构中,数据(例如数据库、文件等)是整个架构的中心,其他的模块经常对这些数据进行增加、删除、修改等操作。
以数据为中心的架构改进可以是渐近的。
修改一个模块或者增加一个模块不用关心其他模块,因为模块的独立性很好。
、架构设计中基于数据流的架构是根据输入的数据,经过一系列的处理之后,变为输出数据的架构。
、架构设计中调用返回的系统可以使得软件设计人员开发一个比较容易修改和扩展的程序结构,它包括主程序、子程序架构和远程调用模式。
主程序、子程序架构是将程序分割为一系列可以控制的树形模块,有一个主程序,它调用很多其他的程序模块,然后每个程序模块可能又调用其他的模块。
、模块设计的最终目的是将数据模型、架构模型、界面模型变为可以操作的软件。
、主要的架构设计有以数据为中心的架构、基于数据流的架构、调用返回的结构、面向对
象的体系结构、分层体系结构等。
、数据模型可以分为概念数据模型和物理数据模型,概念数据模型设计的目标是产生反应系统信息需求的整体数据库概念结构;
物理数据模型是将概念结构转换成特定数据管理系统所支持的数据模型的过程。
数据库的设计是数据设计的核心,可以采用面向数据的方法,为此需要掌握数据库设计的原理和规范。
、用户界面设计的过程包括个明显的主要活动是:
用户、任务、环境的分析和建模;
界面的设计;
界面的实现;
界面的验证。
、是一种设计模式,它强制性地将应用程序的输入、处理和输出分开。
将应用程序分为三个核心模块:
模型、视图和控制器。
、程序可以有种实现注释的风格:
块注释、单行注释、尾端注释和行末注释。
二、简答题
、面向对象的软件开发技术思想与特点。
面向对象的程序设计思想是将客观世界中的事物看成对象,对象是由数据及对数据的操作构成的一个不可分离的整体。
对同类型的对象抽象出其共性,形成类。
类中的大多数数据,只能用本类的方法进行处理。
类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行联系。
封装、继承和多态性是面向对象程序设计的主要特性。
封装是指对象在把数据与操作结合为一个整体时,其数据的表示方式及对数据的操作细节是尽可能地被隐藏的。
继承是指特殊类的对象拥有其一般类的全部属性结构的操作行为。
多态性是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或不同的行为,这使得同一个属性或行为在一般类及各特殊类中具有不同的语义。
2、组件化的软件开发技术思想与特点。
基于组件的开发是一种利用可重用的软件组件构建应用程序的技术。
组件是一个独立的可传递的操作的集合。
它是具有特定功能,能够跨越进程的边界实现网络、语言、应用程序、开发工具和操作系统的“即插即用”的独立的对象。
组件的开发工程,主要是一个组装和集成的过程,其基本活动过程是:
·
收集组件
改善组件质量
使组件能相互适应
·
组装组件
更新组件
、软件需求关注的内容。
软件需求关注的是软件需求的获取、分析、规格和验证。
需求获取的内容包括需求源和需求获取技术。
需求分析的内容包括需求分类、概念模型、架构设计与需求的部署和需求协调。
需求规格的内容包括系统定义文档、系统需求规格和软件需求规格。
需求确认的内容包括需求评审、原型及模型确认、接收测试。
、需求验证的内容
需求规格提交后,开发人员需要与客户对需求分析的结果进行验证,以需求规格说明为输入、通过符号执行、模拟或快速原型等途径,分析需求规格的正确性和可行性。
验证包括以下内容。
)需求的正确性。
)需求的一致性。
)需求的完整性。
)需求的可行性。
)需求的必要性。
)需求的可检验性。
)需求的可跟踪性。
)最后的签字。
、设计模型中的主要内容。
设计模型主要包括四类模型:
数据设计将需求分析阶段产生的信息模型转化为实现软件的数据结构。
架构设计定义软件中各个主要结构元素之间的关系,架构模型主要是确定一种设计模式。
界面设计定义了软件内部的通信、与系统的交互以及人机操作界面等。
模块设计的最终目的是将数据模型、架构模型、界面模型变为可以操作的软件。
每个模块的功能是相对独立的,同时是可以集成的。
、架构设计中面向对象的体系结构、分层体系结构的设计内容。
面向对象的体系结构,在构造模块的时候依据抽象的数据类型,每个模块是一个抽象数据类型的实例。
所以,面向对象的体系结构有两个重要的特点:
对象必须封装所有的数据,每个对象的数据对其他对象是黑盒子。
这个架构封装了数据和操作。
分层的体系结构,系统定义很多的层,每层操作逐步接近机器的指令,最外层是用户界面层,最里面层执行操作系统的指令。
中间层提供很多的服务和应用。
、计算机软件的体系结构中主机多用户系统的特点。
世纪~年代,计算机基本上是单机系统,也就是软件所有的功能都在一台计算机上实现,系统只有一台计算机。
世纪年代出现了主机/多用户系统,尽管本质上就是一台计算机在工作,但是多个终端用户可以同时上机,并行操作,每个终端都有独占主机资源的感觉。
主机/多用户系统的终端不是一台完整的计算机,而是一台分时共享主机的输入输出设备。
这样,主机/多用户的应用软件系统就是一层的结构,也就是所有的负担都由主机承担,当这个负担过重的时候,终端用户的数量就要受到限制。
、浏览器/服务器()结构的特点。
无须开发客户端软件,维护和升级方便;
可跨平台操作,任何一台机器只要装有浏览器软件,均可作为客户机来访问系统;
具有良好的开放性和可扩充性;
可采用防火墙技术来保证系统的安全性,有效地适应了当前用户对管理信息系统的新需求。
因此该结构在管理信息系统开发领域中获得飞速发展,成为应用软件研制中一种流行的体系结构。
任何时间、任何地点、任何系统,只要可以使用浏览器上网,就可以使用系统的终端。
、多层体系结构的发展过程及特点。
实际上体系结构是把二层结构的事务处理逻辑模块从客户机的任务中分离出来,由服务器单独组成一层来负担其任务,这样客户机的压力减轻了,而把负荷分配给了服务器。
不过,采用结构,客户端只能完成浏览、查询、数据输入等简单功能,绝大部分工作由服务器承担,这使得服务器的负担很重。
二层的结构弊端,尤其在服务器负担过重时,客户机异地操作不容易,因此,有必要在客户端和服务器端新建立一个层,负责事务处理,我们称之为应用逻辑层,这样可以帮助“胖客户机”或者“胖服务器”减肥,这样就形成了三层结构,
三层结构(表示层、应用逻辑层、数据库服务层)。
随着软件系统规模的增大,也可以将应用逻辑层分为很多层,这样就演变为多层体系结构。
这个中间层也衍生了很多的中间件产品。
这些三层结构是一种逻辑上的结构,物理上分多少层可以根据需求来决定。
三层(多层)结构中的任意层的修改,对其他层的影响很少。
、应用程序框架的概念和特点。
应用程序框架结构是一个可以重复使用的,大致完成的应用程序。
可以通过对其进行定制开发成一个客户需要的真正的应用程序。
框架结构提供给程序员可以重用的骨干模块,程序员使用这些模块来构造自己的应用,重用的骨干模块具有如下特征:
它们被证明可以与其他应用程序一起来很好地工作;
它们可以立即在下一个程序中使用;
它们可以被其他项目使用。
、设计模式的概念及内容。
是一种设计模式,已经被广泛使用,近几年被推荐为公司平台的设计模式,受到了越来越多的开发者的欢迎。
它强制性地将应用程序的输入、处理和输出分开。
它们分别负担不同的任务。
视图:
视图是用户看到并与之交互的界面,视图向用户显示相关的数据,并接收用户的输入数据,但是并不进行任何实际的业务逻辑,视图可以向模型查询业务状态,但不能改变模型,视图还能接受模型发出的数据更新事件,从而对用户界面进行同步更新。
控制器:
控制器接受用户的输入并调用模型和视图完成用户的需求,当用户发送表单时,控制器接收请求并调用相应的模型组件去处理请求,然后调用相应的视图显示模型返回的数据。
模型:
模型是应用程序的主体部分,模型表示业务数据和业务逻辑。
一个模型能为多个视图提供数据,由于同一个模型可以被多个视图重用,所以提高了应用的可重用性。
、体系结构如何遵循设计模式。
体系结构基本遵循了模式。
其中:
模型()是代表应用数据的对象,它不包含数据应当如何展现给用户的部分;
视图()是