z-turn开发笔记

z-turn开发笔记
z-turn开发笔记

Z-turn开发笔记

1、Zynq启动配置

1.1 时钟要求

器件启动时拥有了稳定的电压后,还必须保证PS_PORT_B引脚拉高前,PS_CLK已经有稳定的时钟输入,通常PS_CLK采用33.3Mhz和50MHz的时钟。

ZYBO:50MHz

Z-turn: 33.3MH

1.2复位要求

PS_POR_B:这个复位保持PS在复位状态,直到所有PS的供电达到了所有的要求。在PS上电之前,必须为低。PS_POR_B由供电器件“Power-Good”信号提供。

PS_SRST_B:这个复位用于强制系统复位。它能被连接或者拉高,当在PS供电斜坡阶段,该信号为高。

1.3模式引脚配置

五个模式引脚,mode[4:0]用于表示启动源,用于JTAG模式和PLL旁路选择。两个电压模式引脚vmode[1:0],用于表示复用I/O组的电压模式。使用20K欧的上拉或者下拉电阻连接mode[4:0]和vmode[1:0]信号。

当ROM运行时,vmode信号用来设置各个MIO_PIN寄存器,为所有的MIO 引脚设置合适的LVCMOS18或者LVCMOS33 I/O标准。当完成BootROM后,在需要的时候,FSBL可以将I/O的标准从LVCMOS修改为HSTL或者LVTTL。Vmode[0]引脚用于设置第0组。。。。。

当PS_POR_B复位信号从低到高变化时,对mode和vmode信号采样三个PS_CLK时钟。当在上电复位采样时,将采样的模式值保存到SLCR内的BOOT_MODE寄存器中。vmode的值保存在GPIOB_DRVR_BIAS_CTRL。

模式引脚是MIO[6:2],vmode引脚是MIO[8:7],引脚使用如下:

MIO[2]表示JTAG模式;

MIO[5:3]选择启动模式;

MIO[6]是能PLL;

MIO[8:7]配置I/O组电压。

Boot Interface Options

The PS supports boot from Quad-SPI, NAND, and NOR devices. Boot devices do not impact system level dynamic power as the boot process only occurs once at device power up. Lower voltage 1.8V devices are of lower static power than higher 3.3V devices.

启动选择:1.8V启动优于3.3V启动。

2、移植

2.1 时钟要求

z-turn板采用zybo开发板的u-boot时候需要修改系统时钟,z-turn开发使用

33.333333MHz的时钟,zybo使用50.000000Mhz的时钟,需要修改文件如

下:zynq_zybo.h

/* Define ZYBO PS Clock Frequency to 50MHz */

/* #define CONFIG_ZYNQ_PS_CLK_FREQ 50000000UL */

#define CONFIG_ZYNQ_PS_CLK_FREQ 33333333UL

2.1 AR8035网口芯片移植

代码中已经包含了AR8035的驱动代码,但是在z-turn开发板无法找到有效的网络,导致网络不通,需要修改AR8035驱动的掩码,修改如下:static struct phy_driver AR8035_driver = {

.name = "AR8035",

.uid = 0x4dd072,

//.mask = 0xffffffef, //原来的mask掩码

.mask = 0x4fffff, //修改后驱动正常

.features = PHY_GBIT_FEATURES,

.config = ar8035_config,

.startup = genphy_startup,

.shutdown = genphy_shutdown,

};

3、程序的烧写

1.1 Z-turn开发板ramdisk映像文件烧写方法

Ramdisk映像文件制作完成后拷贝到sd中覆盖原有的文件,然后通过u-boot 命令“run qspiupdate”更新QSPI Flash即可实现ramdisk文件的更新。

1.2 Tftpboot加载方法

4、地址分配

2.1 Z-turn Board的内存地址分配

这是Z-turn Board配置文件关于内存的内容:

ps7_ram_0_S_AXI_BASEADDR : ORIGIN = 0x00000000, LENGTH = 0x00030000 ps7_ram_1_S_AXI_BASEADDR : ORIGIN = 0xFFFF0000, LENGTH = 0x0000FE00 ps7_ddr_0_S_AXI_BASEADDR : ORIGIN = 0x00100000, LENGTH = 0x40000000

可以看出内存的地址分配情况。

内部有两块RAM,

RAM0起始地址:0x00000000,大小:0x00030000

RAM1其实地址:0xFFFF0000,大小:0x0000FE00

外部DDR3:

DDR3起始地址:0x00100000,大小:0x40000000

2.2 文件存储地址

z-turn

zybo

2.3 驱动位置

米尔科技开发板提供的外设驱动位置如下

5、其他信息

3.1 fsbl调试信息打开方法

zynq vivado sdk已经自带了fsbl的调试宏,类似如下图,在没打开宏之前,这些信息是不能从串口输出调试信息的。

在FSBL源码的fsbl_debug.h头文件中,已经设置好调试宏定义。

所以,只要我们在SDK里面配置“FSBL_DEBUG_INFO”宏就可以了。在SDK中选择fsbl工程,选择菜单Project>Properties,在C/C++ Build> Settings >Tool Settings> ARM gcc compiler > Symbols 中添加“FSBL_DEBUG_INFO”宏,重新编译即可。

然后运行fsbl程序就可以从串口看到调试信息了。

PS:

1、本fsbl是基于z-turn板卡而来的,不同的硬件配置可能需要改动才能成功。

2、如果采用的硬件平台是z-turn板卡,添加宏之后仍然没有输出,可以恢复原始版本的fsbl代码试试,自定义添加的代码可能会影响调试信息输出。

3、fsbl的功能是将flash中的程序代码加载,所以在调试前必须通过sdk中的program flash 将程序烧写到qspi flash中。

z-turn FSBL代码信息打印如下:

Xilinx First Stage Boot Loader

Release 2014.3 Mar 30 2016-14:38:28

Devcfg driver initialized

Silicon Version 3.1

Boot mode is SD

SD: rc= 0

SD Init Done

Flash Base Address: 0xE0100000

Reboot status register: 0x60600000

Multiboot Register: 0x0000C000

Image Start Address: 0x00000000

Partition Header Offset:0x00000C80

Partition Count: 2

Partition Number: 1

Header Dump

Image Word Len: 0x00010C5B

Data Word Len: 0x00010C5B

Partition Word Len:0x00010C5B

Load Addr: 0x04000000

Exec Addr: 0x04000000

Partition Start: 0x000065D0

Partition Attr: 0x00000010

Partition Checksum Offset: 0x00000000

Section Count: 0x00000001

Checksum: 0xF7FC72BD

Application

Handoff Address: 0x04000000

In FsblHookBeforeHandoff function

SUCCESSFUL_HANDOFF

FSBL Status = 0x1

U-Boot 2013.10-svn7 (Apr 20 2015 - 20:49:24)

Memory: ECC disabled

DRAM: 1 GiB

myir_board_init

MMC: zynq_sdhci: 0

SF: Detected W25Q128BV with page size 256 Bytes, erase size 4 KiB, total 16 MiB *** Warning - bad CRC, using default environment

In: serial

Out: serial

Err: serial

Net: Gem.e000b000

Hit any key to stop autoboot: 0

zynq-uboot>

3.2 裸机程序调试方法

连接miniusb串口线和xilinx cable usb仿真器,开发板设置JTAG启动方式,选择helloworld工程,如下所示。

选择GDB调试,新建平台,如下所示。

3.3 移植fsbl后u-boot出现QSPI搜索错误

如下打印信息:

3.4 第一个FSBL程序搭建

本篇主要是用米尔科技的Z-trun Board通过串口打印数据出来,只是使用了PS 部分来完成了这个功能,并没有使用PL部分。

(1)打开vivado 软件新建一个项目,选择RTL项目

都是按照默认选项点击下一步即可,芯片选型如下:

图1:芯片选择

(2)添加 IP 如下图所示

图2:添加IP

点击Add IP ,如图3所示:

图3:Add IP

双击下图的标示,添加CPU 如图4所示

图4:添加CPU

(3)设置CPU

点击Run Block Automation

图5:Run Block Automation

进入设置界面,只留下FIXED_IO.

PS-PL Configuration->General->Enable Clock Resets->去勾选FCLK_RESET0_N PS-PL Configuration->GP Master AXI Interface->去勾选M AXI GP0 interface Clock Configuration->PL Fabric Clocks->去勾选FCLK_CLK0

DDR Congiguration->去勾选Enable DDR

设置SD和UART引脚

MIO Configuration->Bank1 IO Voltage LVCMOS 1.8V.

MIO Configuration->IO Peripherals->选上SD 0, SD 0的引脚配置:

MIO Configuration->IO Peripherals->选上UART 1, UARRT 1的引脚配置:

点击OK返回Diagram界面, 把DDR接口删掉,配置之后的界面

如下图所示:

图6:IO配置

(4)生成设计文件

右击system项->Generate Output Products->直接点Generate,

右击system项->Create HDL Wrapper 选下面一项,点OK

如图7所示

图7:生成设计文件

(5)导出硬件设计文件到SDK

导出前要确保Block Design是打开的

File->Export->Export Hardware->直接点OK,这样会把硬件文件system_wrapper.hdf导到demo.sdk文件夹下,SDK工程也在该目录下

(6)启动SDK

File->Launch SDK-> 点OK

在SDK中->File->New->New Application Project->设置如下,点next->选demo (如图8所示)

图8:Demo工程

将ps7_init.c和ps7_init.h copy到demo/src目录下

修改demo/src/platform.c

init_platform函数,将ps7_init()函数和头文件#include "ps7_init.h" 注释去掉编译代码

修改Helloworld.c 文件即可。如下所示:

查看原代码

#include

#include "platform.h"

void print(char *str);

int main()

{

init_platform();

print("https://www.360docs.net/doc/ef14065465.html,\n\r"); cleanup_platform();

return 0;

}

生成BootImage :右击helloword工程->Create boot Image->Create Image

如图9所示:

图9:生成启动镜像

将生成的BOOT.bin 复制到使用过HP USB Disk Storage Format Tool格式化成启动盘的SD卡根目录下,插入到Z-trun Board上。

将Z-turn Board的JP跳槽设置成从SD卡启动

将Z-turn Board的USB-UART和电脑连接,启动即可看到串口打印的消息如图10所示:

图10:串口打印消息

软件开发

《软件开发工具》串讲笔记 一、绪论 1、简述软件开发工具的范围?在高级程序设计语言的基础上,为提高软件开发的质量和效率,从规划、分析、设计、测试、成文和管理各方面,对软件开发者提供各种不同程序帮助的一类新型软件。 2、简术用通用软件辅助软件开发的缺点?有许多工作是通用软件所无法完成的;用通用软件完成某些工作,只能表现出其表面的形式,而不能反映其逻辑内涵,只能做到“形似”,不能做到“神似”;难于保持一致性。 3、简述集成化软件开发工具产生的背景?集成的软件开发工具称为软件开发环境,是指包括支持全过程、全阶段的软件开发工具。以往的专用软件开发工具对软件的开发缺乏全面的、统一的支撑环境。这些零散地、分散地支持各个工作阶段、各项具体工作的专用工具之间没有有机地联系起来,必然会造成冲突与矛盾。这种冲突与矛盾对于用户来说,造成了沉重的负担,使用工具越多这种负担越重,以致抵消了工具带来的益处。这种情况导致了集成化软件开发工具的产生。 4、简述第四代语言与软件开发工具的区别?软件开发工具包括4GL的功能;软件开发工具支持系统分析、设计工作;软件开发工具支持文档工作。 5、简述软件开发总体设计阶段的工作要点?是根据软件功能说明书的要求,完成软件的总体设计,包括整个软件的结构设计、公用的数据文件或数据库的设计、各部分的连接方式及信息交换的标准等。 6、简述软件开发实现阶段的工作,以及应强调之点。包括程序的编写和文档的编写,应特别强调组织与协调,及时发现并纠正背离总体设计要求的情况。 7、简述软件开发工具认识与描述客观系统的功能要求?认识与描述客观系统是软件开发第一阶段所需的重要工作。该项工作不确定程度高,更需要经验,更难规范化,需要对复杂系统认识与理解,并在此基础上抽象出信息需求与信息流程。 8、简述软件开发的项目管理功能?为项目管理人员提供支持。项目管理包括进度管理、资源与费用管理、质量管理三个基本内容。还包括需要提出测试方案,提供测试环境和测试数据,并进行版本管理。 9、从人类科学技术发展的角度论述软件的意义?软件是广大使用者与计算机之间的桥梁,软件是人类在各个领域中积累的知识结晶,软件是使人类文明与知识得以延续的新的载体,软件是人类进一步成为一个整体、得以进一步相互联系的纽带。 10、论述第一代到第四代程序设计语言的主要特征?第一代程序设计语言就是计算机的指令系统。用户用机器指令编写程序。这种程序就是机器指令的序列,由“0”和“1”组成,难于阅读,难于维护,而且程序高度依赖于计算机硬件,难于移植。第二代语言是汇编语言,其中每个语句是用助记符动工表示的机器指令。虽然可读性和可移植性方面前进了一步,但依然依赖于计算机硬件。第三代语言也称为高级程序设计语言,其中的语句与机器指令并不一一对应,尤其是表达式的书写与人们的习惯基本相同。程序员需要逐行编写语句来实现算法的过程,因此,它属于过程化的语言。第四代语言是非过程化的程序设计语言,用户只说明要求做什么,而把具体的执行步骤交由软件自动执行。 11、说明软件开发工具和新的软件开发方法的主要特点?自动化程序提高;软件开发工作包括了需求分析;软件开发工作包括了项目管理和版本管理;吸收了许多管理科学的内容和方法。 12、说明软件产品开发过程各个阶段的主要任务。需求分析阶段:根据用户的初始要求形成严格的、明确的、可供实际开发使用的功能说明书;总体设计阶段:根据软件功能说明书的要求,完成软件的总体设计;实现阶段:程序的编写和文档的编写;测试阶段:测试软件是

自考软件开发工具串讲笔记

《软件开发工具》串讲笔记 第一章绪论 重点背诵: 1、对于CASE工具有两种理解,一种是“计算机辅助软件工程”,另一种是“计算机辅助系统工程”。 2、软件开发工具是引导人们建立正确、有效的概念模式的一种手段。 3、从几十年软件开发工具发展历史中,可以看到软件开发工具一个值得注意的特点是多样性和趋同性的并存。 4、进入二十一世纪以来,软件开发工具的发展有两个鲜明的特点,第一个特点是面向网络,另一个特点是开源软件的兴起和运用。 5、当前我们所要开发的信息系统不同于以前。其重要特征是具有复杂性、多样性和相互关联性。 1.1 软件开发工具的由来 (1)简述软件开发工具的范围? 在高级程序设计语言(第三代语言)的基础上,为提高软件开发的质量和效率,从规划、分析、设计、测试、成 文和管理各方面,对软件开发者提供各种不同程序帮助的 一类新型软件。 (2)软件开发工具的发展过程 包括以下四个阶段:工具产生之前、通用工具的使用、专用

工具的出现、一体化工具的出现。

论述工具产生之前,第一代到第四代程序设计语言的主要特征? 1)第一代机器语言阶段:使用“0”和“1”代码进行编程,难于阅读,难于维护,而且程序高度依赖于计算机硬件,难于移植;2)第二代汇编语言:使用助记符来编写程序,由汇编系统将汇编指令转化为机器指令,编程工作量大大降低,但依然依赖于计算机硬件。与此同时,操作系统的出现从另一方面改善了人们应用计算机的条件; 3)第三代高级程序设计语言,高级语言突破了与机器指令一一对应的限制,实现了对机器的独立性,从而大大提高了程序的可移植性。程序员需要逐行编写语句来实现算法的过程,因此它属于过程化的语言; 4)第四代语言(4GL)是非过程化的程序设计语言,用户只说明要求做什么,而把具体的执行步骤交由软件自动执行。 5)利用通用软件作为辅助工具的阶段 利用文字处理软件来编写文档,利用绘图软件来绘制流程图。6)专用软件开发工具阶段 专用软件开发工具是面对某一工作阶段或工作任务的工具,优点是能提高软件开发的质量和效率;缺点是一致性的保持,对软件开发缺乏全面的、统一的支撑环境。

软件工程笔记完整版

. 第一章软件工程概述 1.软件危机 (software crisis):是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。即“两低一高”问题:质量低、效率低、成本高。 软件危机也成为“软件萧条(depression)”或“软件困扰(afflication)” 2.软件危机主要表现 1)开发成本和进度估计不准 2)用户对“已完成的”软件系统不满意 3)软件质量往往靠不住 4)软件常常是不可维护的 5)软件通常没有适当的文档资料 6)软件成本逐年上升 7)软件开发生产率滞后于硬件和计算机应用普及的趋势 3.产生软件危机的原因 1)与软件本身的特点有关 a. 软件不同于硬件,是逻辑部件而不是物理部件 缺乏可见性 难于测试 管理和控制开发过程困难 不会因使用时间过长而被“用坏” 难以维护 b.软件不同于一般程序,规模庞大,而且程序复杂性随着程序规模的增加而呈指数上升 2)和软件开发与维护的方法不正确有关 a.对软件开发和维护有关的错误认识和作法 忽视软件需求分析的重要性 认为软件开发就是写程序 轻视软件维护 b. 对软件开发过程与方法的认识与应用 软件开发要经历一个漫长的时期(编程占10-20%) 程序仅是完成软件配置的一个组成部分 软件开发方法要有利于软件维护 4.软件的特点 (1)软件是无形的(intangible) (2)软件副本的大批量生产轻而易举 (3)软件业是劳动密集型的 (4)一个没有经过充分训练的软件开发人员很容易编写出难以理解和修改的软件 (5)软件本身很容易修改。但由于它的复杂性,又很难正确地修改。 (6)软件不像其他的工业产品那样会因使用而磨损,随着反复修改,它的设计会逐渐退化 5.消除软件危机的途径 1)对计算机软件的正确认识 2)认识到软件开发不是个体劳动的神秘技巧,而是一种组织良好、管理严密、各类人员协

(考研复试)软件工程笔记培训资料

(考研复试)软件工程 笔记

1:软件危机:问题1:如何开发软件,以满足对软件日益增长的需求。问题2:如何维护数量不断膨胀的软件。表现:对软件开发成本和时间估计不准,用户对已完成软件不满意,软件质量不可靠,软件不可维护,软件缺少文档,软件成本过高,软件跟不上硬件发展速度。原因:与软件本身特点有关,缺乏可见性,质量难以评价,规模庞大难以维护。与软件开发维护的不当方法有关,轻视需求分析和维护,对用户的要求没有完整准确的认识就编写程序,忽视程序,文档,数据等软件配置。 2:软件工程:采用工程的概念,原理,技术和方法开发与维护软件,把正确的管理技术和软件开发技术结合起来,经济的开发出高质量的软件并有效的维护。即把系统化的,规范的,可度量的途径应用于软件开发,运行和维护的过程。 3:软件工程7条基本原理:用分阶段的生命周期计划严格管理,坚持进行阶段评审,实行严格的产品控制,采用现代程序设计技术,结果应能清楚地审查,开发小组的人员应该少而精,承认不断改进软件工程实践的必要性。 4:软件工程领域:软件需求,设计,构建(写代码),测试,维护,配置管理,工程管理,工程过程,工程工具,软件质量。

5:软件生命周期:软件定义(问题定义,可行性研究,需求分析),软件开发(概要设计,详细设计,编码和单元测试,综合测试),运行维护(改正性维护,适应性维护,完善性维护,预防性维护)。、 生命周期模型 6:瀑布模型:就是把一个开发过程分成收集需求,分析,设计,编码,测试,维护六部分,只有完成前面一步才能开始后面一步,上一步的输出的文档就是这一步的输入文档,每一步完成都要交出合格的文档,每一步都会有反馈,如果反馈有错误就退回前一步解决问题。瀑布模型的缺点:实际的项目开发很难严格按该模型进行;由于用户只能通过文档来了解产品,客户往往很难清楚地给出所有的需求,而瀑布模型不适应用户需求的变化;软件的实际情况必须到项目开发的后期客户才能看到。 7:快速原型模型:就是根据用户的需求迅速设计出一个原型系统,原型系统具有基本的功能,然后用户使用原型并对原型提出需求和改变,开发人员再对原型进行修改和完善知道用户满意。优点:容易适应需求的变化;有利于开发与培训的同步;开发费用低、开发周期短且对用户更友好。缺点:快速建立起来的系统结构加上连续的修改可能会导致产品质量低下;使用这个模型的前提是要有一个展示

工作笔记_NetBeans 开发工具及开发问题

NetBeans 开发工具 NetBeans 乱码 不太明白,看看我理解的对不对。你是不是在导入别的代码时,其中的汉字显示不正常,而自己敲进去汉字显示是正常的。 NetBeans默认的编码方式:UTF-8,而其他IDE不同,所以会有显示错误 试试在“项目/文件/服务”的项目窗口中,你的项目名上右击,选择“项目属性”,“常规”类别中的“编码”栏中选择GBK,ISO-8859-1等看看能不能显示正常。。。 补: 建议你到https://www.360docs.net/doc/ef14065465.html,/downloads/index.html 直接下NetBeans6.9 (语言:简体中文NetBeans IDE 下载包all)的吧。执行中出现https://www.360docs.net/doc/ef14065465.html,ng.RuntimeException: https://www.360docs.net/doc/ef14065465.html,ng.RuntimeException: Uncompilable source code - Erroneous sym type: (https://www.360docs.net/doc/ef14065465.html,ng.String,https://www.360docs.net/doc/ef14065465.html,ng.String,,javax.servlet.http.HttpServletRequest) 应该是该方法没有实现或者清理并重新生成编译。 IE浏览器问题 我的IE8 开发人员工具怎么打不开啊?就是只有一面透明的。。然后什么都没,以前还能编辑的,现在不能了 A:当你用F12打开开发工具时,整个开发者工具光是显示一片透明的区域,选中之后怎么都出不来。这个问题那会困扰了我很久,后来发现一个办法可以解决。就是在工具栏上将鼠标移到那个开发人员工具窗口图标上,注意,是图标,不是窗口。然后右键,选择最大化,这个时候,熟悉的开发人员工具窗口就出现了

(完整版)(考研复试)软件工程笔记

1:软件危机:问题1:如何开发软件,以满足对软件日益增长的需求。问题2:如何维护数量不断膨胀的软件。表现:对软件开发成本和时间估计不准,用户对已完成软件不满意,软件质量不可靠,软件不可维护,软件缺少文档,软件成本过高,软件跟不上硬件发展速度。原因:与软件本身特点有关,缺乏可见性,质量难以评价,规模庞大难以维护。与软件开发维护的不当方法有关,轻视需求分析和维护,对用户的要求没有完整准确的认识就编写程序,忽视程序,文档,数据等软件配置。 2:软件工程:采用工程的概念,原理,技术和方法开发与维护软件,把正确的管理技术和软件开发技术结合起来,经济的开发出高质量的软件并有效的维护。即把系统化的,规范的,可度量的途径应用于软件开发,运行和维护的过程。3:软件工程7条基本原理:用分阶段的生命周期计划严格管理,坚持进行阶段评审,实行严格的产品控制,采用现代程序设计技术,结果应能清楚地审查,开发小组的人员应该少而精,承认不断改进软件工程实践的必要性。 4:软件工程领域:软件需求,设计,构建(写代码),测试,维护,配置管理,工程管理,工程过程,工程工具,软件质量。 5:软件生命周期:软件定义(问题定义,可行性研究,需求分析),软件开发(概要设计,详细设计,编码和单元测

试,综合测试),运行维护(改正性维护,适应性维护,完善性维护,预防性维护)。、 生命周期模型 6:瀑布模型:就是把一个开发过程分成收集需求,分析,设计,编码,测试,维护六部分,只有完成前面一步才能开始后面一步,上一步的输出的文档就是这一步的输入文档,每一步完成都要交出合格的文档,每一步都会有反馈,如果反馈有错误就退回前一步解决问题。瀑布模型的缺点:实际的项目开发很难严格按该模型进行;由于用户只能通过文档来了解产品,客户往往很难清楚地给出所有的需求,而瀑布模型不适应用户需求的变化;软件的实际情况必须到项目开发的后期客户才能看到。 7:快速原型模型:就是根据用户的需求迅速设计出一个原型系统,原型系统具有基本的功能,然后用户使用原型并对原型提出需求和改变,开发人员再对原型进行修改和完善知道用户满意。优点:容易适应需求的变化;有利于开发与培训的同步;开发费用低、开发周期短且对用户更友好。缺点:快速建立起来的系统结构加上连续的修改可能会导致产品质量低下;使用这个模型的前提是要有一个展示性的产品原型,因此在一定程度上可能会限制开发人员的创新。 8:增量模型:就是把软件分成许多个构件,每个构件分别当做一个软件来分析,设计,编码,测试。开发人员一次一

软件工程笔记(注释)(完整版)

第一章软件工程概述 1.软件危机 (software crisis):是指在计算机软件的开发和维护过程中所遇到的一系列 严重问题。即“两低一高”问题:质量低、效率低、成本高。 软件危机也成为“软件萧条(depression)”或“软件困扰(afflication)” 2.软件危机主要表现 1)开发成本和进度估计不准 2)用户对“已完成的”软件系统不满意 3)软件质量往往靠不住 4)软件常常是不可维护的 5)软件通常没有适当的文档资料 6)软件成本逐年上升 7)软件开发生产率滞后于硬件和计算机应用普及的趋势 3.产生软件危机的原因 1)与软件本身的特点有关 a. 软件不同于硬件,是逻辑部件而不是物理部件 缺乏可见性 难于测试 管理和控制开发过程困难 不会因使用时间过长而被“用坏” 难以维护 b.软件不同于一般程序,规模庞大,而且程序复杂性随着程序规模的增加而呈指数上 升 2)和软件开发与维护的方法不正确有关 a.对软件开发和维护有关的错误认识和作法 忽视软件需求分析的重要性 认为软件开发就是写程序 轻视软件维护 b. 对软件开发过程与方法的认识与应用 软件开发要经历一个漫长的时期(编程占10-20%) 程序仅是完成软件配置的一个组成部分 软件开发方法要有利于软件维护 4.软件的特点 (1)软件是无形的(intangible) (2)软件副本的大批量生产轻而易举 (3)软件业是劳动密集型的 (4)一个没有经过充分训练的软件开发人员很容易编写出难以理解和修改的软件 (5)软件本身很容易修改。但由于它的复杂性,又很难正确地修改。 (6)软件不像其他的工业产品那样会因使用而磨损,随着反复修改,它的设计会逐渐退 化 5.消除软件危机的途径 1)对计算机软件的正确认识 2)认识到软件开发不是个体劳动的神秘技巧,而是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目 3)推广使用成功的软件开发技术和方法

软件工程复习笔记总结

软件工程复习笔记总结 软件危机包含两方面的问题:一是如何开发软件,怎样满足人们对软件日益增长的需求?二是如何维护软件,使它们持久地满足人们的要求。v 软件工程学定义:把软件当作一种工业产品,采用工程学的原理来管理和组织软件的开发和维护,称为软件工程。v 软件是指程序、数据和文档三者共同构成的配置。v 包含与数据处理系统操作有关的程序、规程、规则以及相关文档的智力创作称为软件。文档是描述程序开发过程的,是智力创作的真实记录,是创作活动的历史档案和结晶。v 软件的描述性定义:软件由计算机程序,数据结构和文档组成。v 软件质量定义为“与软件产品满足规定的和隐含的需求能力有关的特征和特性的全体” 具体来说:1)软件产品中能满足给定需求的性质和特性的总体;2)软件具有所期望的各种属性的组合程度。v 将软件质量属性划分为六个特性(功能性、可靠性、易用性、效率、维护性和可移植性),这六个属性是面向用户的观点面向管理的观点,且是定性描述的。v 软件质量度量体系:内部度量可用于开发阶段的非执行软件产品,外部度量只能在生存周期过程中的测试阶段和任何运行阶段使用。v 软件工程项目的基本目标:(1)低成本;(2)满足功能要求;(3)高性能;(4)易移植;(5)易维护。v 软件工程方法学就是要从技术和管理上提供如何去设计和维护软件。v 软件开发方法:面向数据流(约旦)方

法、面向数据结构方法、面向对象方法。v 结构程序设计是进行以模块功能和处理过程设计为主的详细设计的基本原则。它的主要观点是采用自顶向下、逐步求精的程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、循环三种基本控制结构构造。v 用来辅助软件开发、运行、维护、管理、支持等过程中活动的软件称为软件工具(CASE)。v 软件生存周期定义:软件产品从形成概念开始,经过开发、使用和维护,直到最后不再使用的整个过程。各阶段的任务彼此间尽可能的相对独立,同一阶段内各项任务的性质尽可能的相同。软件的开发就是“按软件顺时间发展的过程分阶段进行”的。v 软件生存周期模型:瀑布模型(阶段间具有顺序型和依赖性,清楚地区分逻辑设计与物理设计、尽可能推迟程序的物理实现,是文档驱动模型,遵循结构化设计);原型模型(软件产品的开发是线性顺序进行的,本质是快速,用途是获知用户的真正需求,一旦需求确定,原型将被抛弃)。其核心都是将软件开发划分为:分析、设计、编码、测试和维护。v 软件生存周期划分为以下几个阶段:可行性研究与计划、需求分析、总体设计、详细设计、实现、组装测试、确认测试、使用和维护。v 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤v 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型v 软件工程过程是软件生存周期中各个可能的过程,这些过程可进一步划分成为

2019年自考软件开发工具资料笔记

2019年自考软件开发工具资料笔记 软件开发工具资料笔记 第1章绪论 1.1 软件开发工具的由来 1、软件产品的(质量)(效率)(价格)已成为各方面关注的十分重要的问题。 (多选题) 2、名词解释:软件开发工具在高级程序设计语言的基础上,为提高软件的质量和效率,从规划、分析、设计、测试、成文和管理各方面,对软件开发者提供各种不同程度帮 助的一类广泛的软件。 3、简答:如何理解软件开发工具的概念 (1)是一类软件,是开发软件用的软件 (2)它是在第三代语言的基础上发展起来的。 (3)强调对软件开发全过程中各个阶段的支持,即不仅包含狭义的编程阶段,而是 包括了相当广泛的范围和相当丰富的内容。 4、60年代初期的高级语言有(FORTRAN)(ALGOL)(COBOL)。(多选或填空题) 5、第三代语言实现了对机器的(独立性),(抽象)地(逻辑)地描述处理和算法,提高了程序地(移植性)。(填空题) 6、第三代语言地瓶颈-(处理过程的描述)(单选或填空题) 7、名词解释:软件危机认识到软件工作地重要性地同时,也认识到了软件工作地困 难性。 8、简答:软件的重要性 (1)软件是计算机的灵魂 (2)软件是使用者与计算机之间的桥梁 (3)软件是人类在各个领域中积累的知识的结晶 (4)软件是人类文明与知识得以延续的新的载体 (5)软件是人类进一步成为一个整体,得以进一步相互联系的纽带 9、简答:软件的困难性

(1)人类社会和客观世界的复杂性,决定了软件本身的复杂性 (2)人类知识的丰富多彩,决定了软件的极大的多样性 (3)客观世界的动态性,决定了软件对可维护性、可重用性越来越高的要求。 10、通用软件的弱点 (1)有许多工作是通用软件所无法完成的 (2)用通用软件完成某些工作,只能表现其表面的形式,而不能反映其逻辑内涵 (3)用通用软件来帮助人们完成软件开发工作时,常常遇到难于保持一致性的困难 11、属于专用软件开发工具的有(代码生成器:报表生成器、菜单生成器、对话生成器)(第四代语言)(数据字典管理系统DDMS)(画数据流程图、ER图或程序框图的绘 图软件)(多选题) 12、进入集成的软件开发环境阶段的标志是IBM公司(AD/Cycle理论框架的提出)(单选题) 1.2 软件开发工具的概念 1、简答:软件开发工具概念的要点 (1)它是在高级程序设计语言之后,软件技术进一步发展的产物 (2)它的目的是人们开发软件过程中给予人们各种不同方面、不同程度的支持或帮 助 (3)它支持软件开发的全过程,而不是仅限于编码或其它特定的阶段 2、认识软件开发工具的概念,应同时认识它的(继承性)与(创造性)(填空题) 3、指令是人们在实践中形成的工作(规范)与(步骤)(填空题) 4、软件应当包括(程序)和(文档)两个不可缺少的组成部分。(填空题) 5、目前软件开发的新阶段是以(应用软件开发工具)为标志的新阶段。(单选、填 空题) 6、软件和软件开发过程的实质是知识的(提炼)(表述)(固化)的作用。(多选、填空题) 7、简答:软件开发新阶段的特点(表现) (1)自动化程度的提高

软件开发工具和环境复习笔记

1、数据库管理系统的特点和功能 数据库管理系统是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。他对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。 Oracle:Oracle公司产品。具有关系型数据库的一般功能,还有以下特点:可移植性、集群服务、数据挖掘、空间数据库、开发工具 SQL Sercver:微软公司产品。关系型数据库、复制服务、管理工具、开发工具等,同时集成了数据仓储、分析和生成报表功能,还有数据集成功能、分析服务、报告服务、商业智能及Office集成等。 Sybase:Sybase公司产品。自适应服务器企业版是一个处理关键业务计算的最有效的数据管理平台之一,其产品性能良好;优势数据库服务是一个全功能、易于嵌入、基于客户/服务的数据库管理系统,提供了基于表和基于SQL的索引顺序访问方法对数据进行访问。 DB2:IBM公司产品。采用多进程、多线索体系结构,并分别根据相应平台环境做调整和优化,以便达到较好的性能。特色如下:支持面向对象的编程、支持多媒体应用程序、强大的备份和恢复能力、支持存储过程和触发器、支持异构分布式数据库访问、支持数据复制。 MySQL:MySQL AB公司产品,被sun收购。使用C和C++编写,支持多种操作系统,为多种编程语言提供了API,支持多线程,优化的SQL查询算法,提供多种语言支持,提供TCP/IP、ODBC和JDBC等多种数据库连接途径,提供用于管理、检查、优化数据库操作的管理工具、可以处理拥有上千万条记录的大型数据库。 2、数据库管理工具的特点和功能 功能:创建概念数据模型功能、创建物理数据模型功能、数据库连接、数据迁移与备份恢复、浏览数据库对象、数据库的库表操作、用户管理、检查设计与逆向工程、性能监视、调试存储过程。 特点: SQL Developer:Oracle公司产品。可以用于将DB2数据库、SQL Server数据库、MySQL数据库迁移到Oracle数据库。 Navicaat Lite:用于MySQL时可以管理开发触发器、存储过程、函数、事件、视图和用户等对象;用于SQL Server是,可以管理开发触发器、函数、视图等对象;用于Orcale时,可以管理开发目录、表空间、同义词、物化视图、触发器、序列、类型等对象。软件画面简洁,操作简单。 Eclipse:在软件开发过程中,如果能够将程序员使用的所有功能集成到一个IDE 中,使用起来会十分简单方便。可以免去启动和切换工具软件,达到节省开发时间,减少使用计算机CPU和内存的效果。

自考软件开发工具笔记

自考软件开发工具笔记 1 一、绪论1、简述软件开发工具的范围在高级程序设计语言的基础上为提高软件开发的质量和效率从规划、分析、设计、测试、成文和管理各方面对软件开发者提供各种不同程序帮助的一类新型软件。 2、简术用通用软件辅助软件开发的缺点有许多工作是通用软件所无法完成的用通用软件完成某些工作只能表现出其表面的形式而不能反映其逻辑内涵只能做到“形似”不能做到“神似”难于保持一致性。 3、简述集成化软件开发工具产生的背景集成的软件开发工具称为软件开发环境是指包括支持全过程、全阶段的软件开发工具。以往的专用软件开发工具对软件的开发缺乏全面的、统一的支撑环境。这些零散地、分散地支持各个工作阶段、各项具体工作的专用工具之间没有有机地联系起来必然会造成冲突与矛盾。这种冲突与矛盾对于用户来说造成了沉重的负担使用工具越多这种负担越重以致抵消了工具带来的益处。这种情况导致了集成化软件开发工具的产生。 4、简述第四代语言与软件开发工具的区别软件开发工具包括4GL的功能软件开发工具支持系统分析、设计工作软件开发工具支持文档工作。 5、简述软件开发总体设计阶段的工作要点是根据软件功能说明书的要求完成软件的总体设计包括整个软件的结构设计、公用的数据文件或数据库的设计、各部分的连接方式及信息交换的标准等。 6、简述软件开发实现阶段的工作以及应强调之点。包括程序的编写和文档的编写应特别强调组织与协调及时发现并纠正背离总体设计要求的情况。 7、简述软件开发工具认识与描述客观系统的功能要求认识与描述客观系统是软件开发第一阶段所需的重要工作。该项工作不确定

程度高更需要经验更难规范化需要对复杂系统认识与理解并在此基础上抽象出信息需求与信息流程。8、简述软件开发的项目管理功能为项目管理人员提供支持。项目管理包括进度管理、资源与费用管理、质量管理三个基本内容。还包括需要提出测试方案提供测试环境和测试数据并进行版本管理。9、从人类科学技术发展的角度论述软件的意义软件是广大使用者与计算机之间的桥梁软件是人类在各个领域中积累的知识结晶软件是使人类文明与知识得以延续的新的载体软件是人类进一步成为一个整体、得以进一步相互联系的纽带。10、论述第一代到第四代程序设计语言的主要特征第一代程序设计语言就是计算机的指令系统。用户用机器指令编写程序。这种程序就是机器指令的序列由“0”和“1”组成难于阅读难于维护而且程序高度依赖 于计算机硬件难于移植。第二代语言是汇编语言其中每个语句是用助记符动工表示的机器指令。虽然可读性和可移植性方面前进了一步但依然依赖于计算机硬件。第三代语言也称为高级程序设计语言其中的语句与机器指令并不一一对应尤其是表达式的书写与人们的习惯基本相同。程序员需要逐行编写语句来实现算法的过程因此它属于过程化的语言。第四代语言是非过程化的程序设计语言用户只说明要求做什么而把具体的执行步骤交由软件自动执行。11、说明软件开发工具和新的软件开发方法的主要特点自动化程序提高软件开发工作包括了需求分析软件开发工作包括了项目管理和版本管理吸收了许多管理科学的内容和方法。12、说明软件产品开发过程各个阶段的主要任务。需求分析阶段根据用户的初始要求形成严格的、明确的、

北京交通大学901软件工程考研真题及复习笔记

北京交通大学901软件工程考研真题及复习笔记 2021年北京交通大学软件学院《901软件工程》考研全套目录 ?北京交通大学软件学院《901软件工程》历年考研真题汇编 ?全国名校软件工程考研真题汇编 说明:本部分收录了本科目近年考研真题,方便了解出题风格、难度及命题点。此外提供了相关院校考研真题,以供参考。 2.教材教辅 ?张海藩《软件工程导论》(第6版)笔记和课后习题详解 ?[预售]张海藩《软件工程导论》(第6版)配套题库【考研真题精选+章节题库】说明:以上为本科目参考教材配套的辅导资料。 ? 试看部分内容

软件工程学概述 1.1 复习笔记 一、软件危机 1软件危机的介绍 (1)概念 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 (2)典型表现 ①对软件开发成本和进度的估计不准确。 ②用户对“已完成的”软件系统不满意的现象经常发生。 ③软件产品的质量往往靠不住。 ④软件常常是不可维护的。 ⑤软件通常没有适当的文档资料。 ⑥软件成本在计算机系统总成本中所占的比例逐年上升。 ⑦软件开发跟不上计算机应用迅速普及深入的趋势。 【注意】考试中常考查软件的概念,记住公式:软件=程序+数据+文档。 2产生软件危机的原因 (1)客观原因 ①软件是计算机系统中的逻辑部件,缺乏“可见性”,因此管理和控制软件开发过程相当困难。 ②软件维护通常意味着改正或修改原来的设计,因此软件较难维护。

③软件规模庞大,而程序复杂性将随着程序规模的增加而呈指数上升。(2)主观原因 ①存在与软件开发和维护有关的许多错误认识和做法。 ②对用户要求没有完整准确的认识就匆忙着手编写程序。 ③开发人员只重视程序而忽视软件配置的其余成分(文档和数据等)。 ④软件开发人员轻视维护。 3消除软件危机的途径 (1)应该对计算机软件有一个正确的认识。 (2)应该充分认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。 (3)应该推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研究探索更好更有效的技术和方法。 (4)应该开发和使用更好的软件工具。 二、软件工程 1软件工程的介绍 (1)概念 采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。(2)本质特征 ①软件工程关注于大型程序的构造; ②软件工程的中心课题是控制复杂性;

软件开发工具串讲笔记

软件开发工具串讲笔记 SANY标准化小组 #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#

本文由709108678贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 《软件开发工具》串讲笔记 一、绪论 1、简述软件开发工具的范围?在高级程序设计语言的基础上,为提高软件开发的质量和效率,从规划、分析、设计、测试、成文和管理各方面,对软件开发者提供各种不同程序帮助的一类新型软件。 2、简术用通用软件辅助软件开发的缺点?有许多工作是通用软件所无法完成的;用通用软件完成某些工作,只能表现出其表面的形式,而不能反映其逻辑内涵,只能做到“形似”,不能做到“神似”;难于保持一致性。 3、简述集成化软件开发工具产生的背景?集成的软件开发工具称为软件开发环境,是指包括支持全过程、全阶段的软件开发工具。以往的专用软件开发工具对软件的开发缺乏全面的、统一的支撑环境。这些零散地、分散地支持各个工作阶段、各项具体工作的专用工具之间没有有机地联系起来,必然会造成冲突与矛盾。这种冲突与矛盾对于用户来说,造成了沉重的负担,使用工具越多这种负担越重,以致抵消了工具带来的益处。这种情况导致了集成化软件开发工具的产生。 4、简述第四代语言与软件开发工具的区别?软件开发工具包括 4GL 的功能;软件开发工具支持系统分析、设计工作;软件开发工具支持文档工作。 5、简述软件开发总体设计阶段的工作要点?是根据软件功能说明书的要求,完成软件的总体设计,包括整个软件的结构设计、公用的数据文件或数据库的设计、各部分的连接方式及信息交换的标准等。 6、简述软件开发实现阶段的工作,以及应强调之点。包括程序的编写和文档的编写,应特别强调组织与协调,及时发现并纠正背离总体设计要求的情况。 7、简述软件开发工具认识与描述客观系统的功能要求?认识与描述客观系统是软件开发第一阶段所需的重要工作。该项工作不确定程度高,更需要经验,更难规范化,需要对复杂系统认识与理解,并在此基础上抽象出信息需求与信息流程。 8、简述软件开发的项目管理功能?为项目管理人员提供支持。项目管理包括进度管理、资源与费用管理、质量管理三个基本内容。还包括需要提出测试方案,提供测试环境和测试数据,并进行版本管理。 9、从人类科学技术发展的角度论述软件的意义?软件是广大使用者与计算机之间的桥梁,软件是人类在各个领域中积累的知识结晶,软件是使人类文明与知识得以延续的新的载体,软件是人类进一步成为一个整体、得以进一步相互联系的纽带。 10、论述第一代到第四代程序设计语言的主要特征?第一代程序设计语言就是计算机的指令系统。用户用机器指令编写程序。这种程序就是机器指令的序列,由“0”和“1”组成,难于阅读,难于维护,而且程序高度依赖于计算机硬件,难于移植。第二代语言是汇编语言,其中每个语句是用助记符动工表示的机器指令。虽然可读性和可移植性方面前进了一步,但依然依赖于计算机硬件。第三代语言也称为高级程序设计语言,其中的语句与机器指令并不一一对应,尤其是表达式的书写与人们的习惯基本相同。程序员需要逐行编写语句来实现算法的过程,因此,它属于过程化的语言。第四代语言是非过程化的程序设计语言,用户只说明要求做什么,而把具体的执行步骤交由软件自动执行。 11、说明软件开发工具和新的软件开发方法的主要特点?自动化程序提高;软件

软件开发工具笔记

第一章 1.软件开发工具的范围大致可以描述为:在高级程序设计语言的基础上,为提 高软件开发的质量和效率,才能够规划、分析、设计、测试、成文和管理各方面,对软件开发者提供各种不同程度的帮助的一类广泛的软件。 2.用通用软件帮助软件开发有三个主要的弱点:(1)有许多工作是通用软件所 无法完成的。(2)用通用软件完成某些工作,只能表现其表面形式,而不能反映其逻辑内涵。(3)用通用软件来帮助人们完成软件开发工作时,尝尝遇到难于保持一致性的困难。 3.计算机语言发展阶段:机器语言,汇编语言,高级程序设计语言,非过程化 语言 4.CASE:计算机辅助软件工程/计算机辅助系统工程 5.可视化编程:Visual Programming 最终用户计算:End User Programming 组合编程:Component Programmng 即插即用编程:Plug and Play Programming 组合软件:Components Software 软件开发工具学:Software Development Methodology 6.软件开发的过程:需求分析—>总体设计-->文档编制和代码设计→模块测试→ 总体测试→应用。总体设计文件包括:结构图、模块清单、公用数据结构 7.软件开发工具应提供的各类支持工作归纳成五方面:(1)认识与描述客观系 统。(2)存储及管理开发过程中的信息。(3)代码的编写或生成。(4)文档编制或生成。(5)软件项目的管理。项目管理包括:进度管理,资源与费用管理,质量管理三个基本内容 8.软件功能是指软件能做什么事,所谓性能是指事情做到什么样的程度。对于 软件开发工具来说,功能的说明告诉我们它能子啊软件开发过程中提供哪些帮助,而性能的说明则要求说明这些支持或帮助的程度如何。 9.对于软件开发的工具来说,以下五项应当是特别重要的性能:(1)表达能力 或描述能力。(2)保持信息一致性的能力(3)使用的方便程度(4)工具的可靠程度(5)对硬件和软件环境的要求 10.软件开发工具的类别:(a)按工作阶段划分为:设计工具(在实现阶段对人 们提供帮助的工具,出现得最早数量最大的)、分析工具(用于支持需求分析的工具,出现得较晚,数量也少一些)、计划工具(从更宏观的角度去看待软件开发)。(b)按集成程度划分:集成化的软件开发工具也常常称为软件工作环境.(c)按与硬件、软件的关系划分:一般来说,设计工具多是依赖于特定软件的,因为它生成的代码或测试数据不是抽象的,而是具体的某一种语言的代码或该语言所要求的格式的数据,而分析工具与计划工具往往是独立与机器与软件的,集成化的软件开发工具又常常依赖于机器和软件的。 11.作为一般的使用者,学习软件开发工具的目的在于:了解软件开发工具的概 念、理论基础、基本功能、发展现状与前景,以便在实际工作中正确的选择与使用软件开发工具,在必要的时候能够参加或组织软件开发工具的自行研制,从而达到提高软件工作水平与效率的目标。 12.软件开发工具及新的软件及开发方法来说,它的发展主要表现在四个方面:(1) 自动化程度提高(2)工作明确的把需求分析包括进了软件工作的范围之内,从而使软件开发过程进一步向用户方面延伸,离用具更近了(3)把软件开发工作延伸到项目及版本管理,从而超出了一次编程的局限,而扩展到了作为一个不断发展的客体生长完善的全过程(4)这一阶段的研究几首了许多管理科学的内容和方法,如程序员的组织,质量的控制等。总之,软件开发工具的提出与使用,是软件开发技术发展的一个新的阶段。 第二章 1.软件开发的基本问题(两个转换):第一个转化是用户对软件功能的理解与程 序员对软件功能的理解之间的转换。第二个转换所要解决的是人和机器之间的交流与协调问题:人和机器之间在思维方式、工作方式上都有许多根本的区别。做好第二个转换的关键在于程序员的知识水平与实际经验。 2.大型软件开发中的困难:(1)一致性的保持成为十分困难的问题(2)测试的 困难大大增加(3)工作进度难以控制(4)文档与代码协调十分困难(5)版本更新带来的困难 3.大型软件开发中困难产生的原因:(1)大系统的复杂性(2)许多具有主动性 的个人之间的组织与协调本身(3)各个应用领域之间的差别(4)时间的因素。变化的因素 4. E.Yourdon把程序结构分解成三种基本模块:处理单元、循环机制、二分决策 机制 5.模块的划分要符合三条基本的要求:(1)模块的功能在逻辑上尽可能的单一 化、明确化、最好做到模块与任务的一一对应。(2)模块之间的联系及互相影响尽可能的少,对应必须得联系都应当加以明确的说明。如参数的传递,共享文件的内容与格式。(3)模块的规模应当足够小,以便是它本身的调试易于进行 6.怎么实施模块的划分:应当采取自顶向下的方法,都采取自上而下、逐步分解 的办法将其分成若干部分,并且把他们之间的关系明确的表达出来,画出系统结构图,知道最低层的模块达到所要求的规模为止。 7.结构化程序设计的原则:限制甚至不用GOTO拒绝,绝对禁止超越模块边界 的GOTO遇见;子程序尽可能做到只有一个入口,一个出口;程序风格应尽量明确清晰,包括适当增加注释,书写格式体现层次结构,变量名称的选用尽量具有逻辑意义;在程序编写的同时完成有关的文档编撰,不要拖延时间。 8.面向对象的程序设计的基本思想包括:(1)客观世界的任何事物都是对象, 它们都有一些静态属性,也都有一些有关的操作。作为一个整体,这些对象对外不必公开这些属性与操作,这就是所谓的“封装”。(2)对象之间有抽象与具体、群体与个体、整体与部分等几种关系。(3)抽象的、较大的对象所具有的性质包括静态属性和动态操作,自然地成为它的子类的性质,不必加 以重复说明和规定,这就是所谓的“遗传性”。(4)对象之间可以互送消息,这一消息可以是传递一个参数,也可以是使这个对象开始某个操作。 9.即插即用的意思:一部分人专门生产软件组件(芯片),而另一部分人则设计 整个软件的结构(计算机结构),并且把软件组件插入这个结构,以便迅速完成大型软件的研制工作。 10.即插即用的困难:标准化的问题、软件部件的提供方式 11.可视化程序设计:是指用图标、图像、图表,甚至随手画得素描等可视化的 元素来编制程序。它用到这类可视元素时所用到的技术手段有三:指点与卡嗒、删剪与粘贴、拖拉与扔下。 12.好软件评价的主要方面:(1)正确地实现所要求的功能,准确地给出预定的 输出结果(2)用户界面友好,符合实际用户的使用习惯于知识水平(3)具有足够的速度,能在符合用户要求的时间限度内,给出所要求的处理结果(4)具有足够的可靠性,能在各种干扰下保持正常的工作。(5)程序易读,结构良好,文档齐全,从而保证系统易于修改 13.好的程序员与好的项目组并不是完全相同的:(a)就单个程序员来说,主要 的指标包括:(1)具有程序设计所需要的基本知识与技能,如关于数据逻辑的知识与训练,关于各类数据结构的概念及处理方法等(2)对本项目所在的领域有较深入的了解,从而能够准确的理解用户的信息需求,正确的把握有关的信息流程与信息处理原则(3)对于软件开发的技术环境比较熟悉,包括硬件设备,软件环境和网络环境,特别是对于所用的语言,应当有最够的实际运用的经验。(b)对于规模超出单个程序员工作量的大型软件来说,跟踪要的是要使自己的工作融入到整个系统,与其他部分协调一致的工作,实现这样的要求要做到:(1)保证严格得在本模块范围内操作,决不要使用可能干扰其他模块的命令或函数(2)严格按总体设计的要求和理解去传递参数值,决不要随意修改其内容或含义(3)在对公有的文件或数据库进行存取时,必须完全的准确的按统一规定的格式去操作,决不能擅自改变(4)在使用标示符时,应按照统一的原则,应经尽量使用易于看出逻辑含义的名称(5)严格按照统一的要求编写文档,在内容、格式、表达方式、符号使用上遵循项目组的统一规定(6)尽量保持程序风格的一致。总之,作为项目组成员,必须放弃自己的某些自由去接受项目组的限制和约束,服从项目组的严格管理,可以说,作为项目组的一员参加大型软件的开发,必须具有高度的组织纪律性和团队精神。 14.一个好的项目组至少应当具备以下几个条件:(1)有严格的、成文的工作规 范和文档标准,二期应当为全体成员所熟知,并且切实得到遵守(2)人员之间有严格的分工,除了程序员外,必须有专门的秘书(负责文档的手机、审核及保管),必须有专门的测试人员(负责测试和验收相关的部分),特别是要有专职的、不陷人具体编程的项目负责人(3)每个项目都要事先制定星系的时间表,并且得到严格执行。每一项目完成之后都有完整的资料,并得到妥善保存,一旦需要修改或更新版本时可以立即使用 第三章 1. 软件开发工具的目的:从与开发过程有关的信息管理和信息处理方面,给予软件开发人员帮助与支持。 2 .软件开发工具用到的理论和方法很多,其中比较重要的有以下六项:(1)认知科学中关于概念模式的概念与方法(2)数据库技术的理论与方法(3)编译技术的有关方法(4)关于人及界面的理论与方法(5)管理科学中关于项目管理与版本管理的理论与方法(6)系统科学与系统工程中的有关理论与方法 3. 概念模式:“概念模型”指人们在认识事物过程中,对某一事物或某一系统形成的抽象的、一般化的概念框架。意义:(1)概念模式是人们认识客观世界的一种方法、工具。(2)是人们在长期的实践活动中逐渐形成的。(3)总是在一定的理论思想指导下形成的,同时又不断地根据实际情况得到修正。(4)在认识过程中十分重要,同时作为交流与表达工具也是十分重要的。 4. 概念模式的评价和比较可以根据:表达能力,是否方便易用、是否严格、有没有二义性等。作为一种表达与交流的的工具,必须具备简单明了、易于理解的特点、 5. 软件开发中常用到的八种概念模式: (1)框图:是人们在编写软件是最早使用的一种概念模式,用来描述程序执行的逻辑过程,它把程序的基本步骤归纳为:处理、判断、输入输出、起始或者终结结构基本功能。适用范围:软件规模不太大 (2)结构图:在结构化程序设计中引用结构图,用以表示大型软件的层次结构。以模块的调用关系为线索,基本调用方式有三种:顺序调用、选择调用、循环调用。好处:能够体现层次观点,由粗到细、自顶向下的描述程序。特别是它可以迫使人们逐个的详细划分与描述模块,体现结构化程序设计的思想。 (3)数据流程图:基本思想是把信息看做一个组织或系统运作的线索,力图简明扼要的勾画出全局。与结构图相比,它更适合客观描述,而结构图则重要软件模块之间的控制。数据流程图的基本元素是:外部实体、数据处理、数据存储。 (4)实体关系图:是用于描述静态数据结构的gian模式,以实体、关系、属性三个基本概念概况数据的基本结构。 (5)数据字典:描述数据内容的概念模式,用表格格式列出数据的基本属性以及相互关系。适于记录各种细节。 (6)时序网络:主要描述系统状态及其转换方式,用于实时控制方面的软件功能,基本概念是状态和转换。 (7)数学与逻辑模型描述客观世界的状态与规律的方法。 (8)计算机模拟模型:作为一种不需要事先作为更多理论假设的概念模式 (9)直观模型:用可视化的图标、图像、图表甚至随手画得素描等元素描述心目中的系统。VBFORM就是一个典型。 6. 数据库:指在文件系统基础上发展起来的一种数据管理技术,它的重点在于合理的组织数据,体现出数据之间的逻辑关系,并尽可能的帮助用户检索,减少冗余

相关文档
最新文档