软件开发过程分为5个阶段:分析  软件需求分析就是回答做什么的问题。
它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。
本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可。
需求分析的主要方法有结构化分析方法、数据流程图和数据字典等方法。
本阶段的工作是根据需求说明书的要求,设计建立相应的软件系统的体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系统进行具体设计定义,编写软件概要设计和详细设计说明书,数据库或数据结构设计说明书,组装测试计划。
设计  软件设计可以分为概要设计和详细设计两个阶段。
实际上软件设计的主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序的程序单元。
可以是一个函数、过程、子程序、一段带有程序说明的独立的程序和数据,也可以是可组合、可分解和可更换的功能单元。
模块,然后进行模块设计。
概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。
详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。
编码  软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的"源程序清单"。
充分了解软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。
  当前软件开发中除在专用场合,已经很少使用二十世纪80年代的高级语言了,取而代之的是面向对象的开发语言。
而且面向对象的开发语言和开发环境大都合为一体,大大提高了开发的速度。
测试  软件测试的目的是以较小的代价发现尽可能多的错误。
要实现这个目标的关键在于设计一套出色的测试用例(测试数据和预期的输出结果组成了测试用例)。
如何才能设计出一套出色的测试用例,关键在于理解测试方法。
不同的测试方法有不同的测试用例设计方法。
两种常用的测试方法是白盒法测试对象是源程序,依据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误。
结构错误包括逻辑、数据流、初始化等错误。
用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。
白盒法和黑盒法依据的是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。
其中接口错误包括内部/外部接口、资源管理、集成化以及系统错误。
黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。
黑盒法。
维护  维护是指在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后,对软件产品所进行的一些软件工程的活动。
即根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。
编写软件问题报告、软件修改报告。
  一个中等规模的软件,如果研制阶段需要一年至二年的时间,在它投入使用以后,其运行或工作时间可能持续五年至十年。
那么它的维护阶段也是运行的这五年至十年期间。
在这段时间,人们几乎需要着手解决研制阶段所遇到的各种问题,同时还要解决某些维护工作本身特有的问题。
做好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还可以使它扩展功能,提高功能,为用户带来明显的经济效益。
然而遗憾的是,对软件维护工作的重视往往远不如对软件研制工作的重视。
而事实上,和软件研制工作相比,软件维护的工作量和成本都要大得多。
  在实际开发过程中,软件开发并不是从第一步进行到最后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。
在测试过程中的问题可能要求修改设计,用户可能会提出一些需要来修改需求说明书等。
编辑本段软件开发专业专业培养   计算机:软件开发专业主要培养德智体全面发展,具有一定计算机软硬件维护、网络组建、维护管理的高级实用技术型人才。
通过本专业的学习,能熟练掌握常用的计算机软件的使用、维护与技巧;
在硬件方面学生应了解计算机硬件的发展,熟练掌握计算机组装的方法,能熟练运用应用软件检测计算机功能、故障的范围所在,掌握硬件故障的一般处理方法;
在网络方面,学生应掌握目前流行网络的技术特点,掌握网络工程、网络维护、网络安全及应用方面的知识。
能胜任一般网络工程方案的设计、组建、网络维护、及简单网站的建设与维护。
同时,使学生了解由于IT技术的发展而引起的法律和道德方面的问题。
就业方向  本专业毕业生适合的工作岗位是计算机程序设计师。
适合于熟练地按照工程化的思路进行软件编制、软件测试的工作岗位,能担任各种企事业单位和各级工程建设部门、管理部门的计算机软件和硬件维护、网络的组建、维护等工作,也可从事计算机研究与应用、软件开发等方面的工作。
就业范围为:计算机软件公司、具有软件开发能力的大型企业及事业单位
2023/3/9 19:52:12 5.33MB 软件开发文档实例大全
1
针对智能小车自动循迹的要求,提出由车体模块、电源模块、单片机控制模块、电机驱动控制模块、电机模块、传感器模块等构成智能小车硬件系统,利用KeiluVision2集成开发工具进行C51高级语言程序设计,开发出控制软件。
利用红外传感器检测小车的循迹轨道,并以STC89C52RC单片机为控制芯片根据接收的轨迹信息发出相应的控制指令,通过L298N驱动控制模块来驱动小车以实现循迹的系统总体设计方案,并采用了"反转式转向模式"和"反转式刹车模式"。
实验结果表明,该智能小车硬件系统各模块选择合理,控制软件高效可行,小车整体功能优良,成功实现了自动循迹的功能,且采用"反转式转向模式"和"反转式刹车模式"实现了极好的转向及刹车效果。
2023/3/6 6:26:18 198KB C51高级语言 智能循迹小车
1
EESpro8.4破解版,无期限使用。
EES是工程方程解答器的英文字母的首字母缩写词。
EES的基本功能是解代数方程组。
EES也能解差分方程、有复杂变量的方程、做工程优化、提供线性和非线性回归并可绘出良好的二维图形。
EES的最早版本开发于AppleMacintosh计算机和Windows操作系统。
这本使用手册描述了基于Windows操作系统的EES版本,包括Windows95/98/2000和WindowsNT4。
EES和现有的方程组数值解程序之间有两个主要的差别。
首先,EES自动识别和求解必须同时求解的方程组。
这个特点简化了用户的工作并可使解答器永远在最佳效率下工作。
其次,EES提供了很多对工程计算非常有用的内置数学和热物性函数。
例如,EES中内置有蒸汽性质表,根据任意两个物性参数就可通过调用一个内置函数而获得其它的物性参数。
对于大多数制冷剂(包括一些新的混合制冷剂)、氨、甲烷、二氧化碳和很多其它流体,也提供了类似的功能。
空气性质表是内置的,很多常用气体的psychrometric函数和JANAF表中的数据一样也是内置的。
同样也提供了这些物质的迁移性质。
虽然EES中的数学函数和热物性函数库是强大的,但是并不能完全满足每个用户的需要。
EES允许用户用3种方式输入他/她自己的函数关系式。
首先,在EES中插入和添加表格数据非常方便,这样列表数据可以在方程组的求解过程中直接使用。
其次,EES语言支持用户用类似于Pascal和Fortran语言编写的函数和子程序。
EES也支持用户自己用EES语言编写的模块,这些模块可以被其他EES程序调用。
那些函数、子程序和模块可以当作文件储存,当启动EES时这些可自动读取。
第三,用任何一种高级语言(例如Pascal、C或者Fortran)编写的外置函数和子程序,可以通过使用Windows操作系统的动态连接程序库的功能而动态连接到EES。
添加的函数关系式的这三种方法为扩展EES的功能提供了非常强有力的手段。
提出EES的动机在于热力学和传热学的教学过程。
为了学习这些课程,学生经常需要解决问题。
对于学生来说,查找物性数据和求解决相似的方程组需要耗费大部分时间和精力,一旦学生熟悉了这些物性数据表,对这些物性数据表的进一步使用并不能对学生的能力有所帮助,对代数表达式的使用也是如此。
以通常的方式解决问题所需要的时间和精力实际上消耗了学生学习这些的学习兴味,因为它迫使学生去关心求解方程组所需要的语句(其实无关紧要)而使学习非常费力。
一些涉及到热力学和传热学的有趣的实际问题可能因为他们的数学复杂性而并没有解析解。
EES允许用户摆脱平凡杂事而集中更多心思于开发上。
对于需要确定一个或更多参数的设计问题,EES显得特别有用。
EES程序提供了物性参数表,这类似于一张电子表格。
用户需要确定独立变量并在表格里输入其数值,EES将计算出表格中其他物性参数的数值。
则表格内的参数的关系可以显示在平面图上。
EES也提供了实验数据误差引起计算变量误差的估计。
利用EES,设计问题并不比求解一个具有固定自变量的问题难。
EES的优势在于它提供一套简单而直观的命令,这样初学者能迅速掌握解决任何代数学问题的方法。
而且,这个软件的功能对于专业人员来说也是强大而实用的。
内置于EES软件中的庞大的关于热物性和迁移性质的数据库对于解决关于热力学、流体力学和传热学问题是大有裨益的。
EES可以用于很多工程问题;
尤其适用于在机械工程课程方面和解决实际工程问题的需要。
2023/2/14 12:20:13 3.92MB 软件
1
第一部分 面向过程的程序设计第1章 C++概述11.1 计算机语言与程序11.1.1 机器语言与程序11.1.2 汇编语言与程序11.1.3 高级语言与程序11.2 从C到C++21.3 程序设计方法21.3.1 结构化程序设计方法31.3.2 面向对象的程序设计方法31.4 简单的C++程序引见41.5 程序开发的步骤5习题15第2章 数据类型、运算符和表达式62.1 保留字和标识符62.1.1 保留字62.1.2 标识符62.2 C++的基本数据类型62.3 常量和变量82.3.1 常量82.3.2 符号常量92.3.3 变量102.4 基本运算符和表达式112.4.1 C++运算符及表达式简介112.4.2 算术运算符和算术表达式112.4.3 运算优先级和结合性112.4.4 关系运算符和关系表达式122.4.5 逻辑运算符和逻辑表达式122.4.6 位运算符和位运算表达式122.4.7 自增、自减运算符和表达式142.4.8 赋值运算符和赋值表达式142.4.9 逗号运算符和逗号表达式152.4.10 sizeof()运算符和表达式152.4.11 逻辑表达式运算优化的副作用152.5 类型转换162.5.1 赋值时的自动类型转换162.5.2 各种类型运算量混合运算时的自动类型转换172.5.3 强制类型转换17习题218第3章 简单的输入/输出193.1 传统的输入/输出函数实现方法193.2 cout输出流203.2.1 输出八进制数、十六进制数和用科学记数法表示的数223.2.2 输出字符或字符串233.3 cin输入流233.3.1 输入十六进制或者八进制数据253.3.2 输入字符数据263.4 总结27习题327第4章 C++的流程控制294.1 算法概述294.1.1 算法的作用和类别294.1.2 算法的设计原则304.1.3 算法的表示工具304.1.4 结构化程序设计中基本结构的表示314.2 C++程序的结构和语句334.3 选择结构语句的使用354.3.1 if语句354.3.2 if语句的嵌套使用374.3.3 条件运算符384.3.4 switch语句394.4 循环结构语句的使用424.4.1 goto语句及标号的使用424.4.2 while语句434.4.3 for语句434.4.4 do-while语句444.4.5 break语句和continue语句454.4.6 循环的嵌套474.5 控制语句的应用举例47习题452第5章 函数545.1 概述545.2 函数的定义与调用545.2.1 函数的定义545.2.2 函数的调用565.2.3 函数的参数585.3 函数的原型声明595.4 函数的嵌套调用和递归调用605.4.1 函数的嵌套调用605.4.2 函数的递归调用635.5 内联函数665.6 函数重载675.6.1 参数类型不同的重载函数675.6.2 参数个数不同的重载函数685.7 使用C++系统函数685.8 作用域和存储类别695.8.1 作用域695.8.2 存储类别725.8.3 全局变量的作用域的扩展和限制745.9 程序的多文件组织765.9.1 内部函数和外部函数765.9.2 多文件组织的编译和连接77习题577第6章 编译预处理796.1 宏定义796.1.1 不带参数的宏定义796.1.2 带参数的宏定义806.2 “文件包含”处理82*6.3 条件编译83习题685第7章 数组867.1 数组的定义及应用867.1.1 一维数组的定义及使用867.1.2 一维数组作函数参数887.1.3 多维数组的定义及使用967.1.4 二维数组作函数参数987.2 字符数组的定义及应用1017.2.1 字符数组的定义1017.2.2 字符数组的初始化1017.2.3 字符数组的使用1027.2.4 字符串和字符串结束标志1027.2.5 字符数组的输入/输出1037.2.6 字符串处理函数1047.2.7 字符数组应用举例106习题7108第8章 结构体、共用体和枚举类型1108.1 结构体的定义及应用1108.1.1 结构体类型的定义1108.1.2 结构体类型变量的定义1118.
2023/2/11 6:48:32 1.36MB 王珊珊 c++ 第二版
1
哈工大编译原理习题及答案1.1何谓源程序、目标程序、翻译程序、编译程序和解释程序?它们之间可能有何种关系?1.2一个典型的编译系统通常由哪些部分组成?各部分的主要功能是什么?1.3选择一种你所熟悉的程序设计语言,试列出此语言中的全部关键字,并通过上机使用该语言以判明这些关键字能否为保留字。
1.4选取一种你所熟悉的语言,试对它进行分析,以找出此语言中的括号、关键字END以及逗号有多少种不同的用途。
1.5试用你常用的一种高级语言编写一短小的程序,上机进行编译和运行,记录下操作步骤和输出信息,如果可能,请卸出中间代码和目标代码。
2023/2/6 2:31:34 3.92MB 哈工大编译原理习题及答案
1
用高级语言编写程序,模仿实现一个简单功能的操作系统。
(1)实现作业调度(先来先服务)、进程调度功能(时间片轮转)(2)实现内存管理功能(连续分配)(3)实现文件系统功能(选做内容)(4)这些功能要有机地连接起来广东工业大学操作系统,课程设计代码、文档
2023/1/16 12:57:49 279KB 课设 操作系统
1
第2章关系数据库1.试述关系模型的三个组成部分。
答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
2.试述关系数据语言的特点和分类。
答:关系数据语言可以分为三类:关系代数语言。
关系演算语言:元组关系演算语言和域关系演算语言。
SQL:具有关系代数和关系演算双重特点的语言。
这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。
4.试述关系模型的完整性规则。
在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?答:实体完整性规则是指若属性A是基本关系R的主属性,则属性A不能取空值。
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);
或者等于S中某个元组的主码值。
即属性F本身不是主属性,则可以取空值,否则不能取空值。
5.设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:1)求供应工程J1零件的供应商号码SNO:πSno(σSno=‘J1’(SPJ))2)求供应工程J1零件P1的供应商号码SNO:πSno(σSno=‘J1’∧Pno=‘P1‘(SPJ))3)求供应工程J1零件为红色的供应商号码SNO:πSno(σPno=‘P1‘(σCOLOR=’红‘(P)∞SPJ))4)求没有使用天津供应商生产的红色零件的工程号JNO:πJno(SPJ)-πJNO(σcity=‘天津’∧Color=‘红‘(S∞SPJ∞P)5)求至少用了供应商S1所供应的全部零件的工程号JNO:πJno,Pno(SPJ)÷πPno(σSno=‘S1‘(SPJ))6.试述等值连接与自然连接的区别和联系。
答:连接运算符是“=”的连接运算称为等值连接。
它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把反复的属性列去掉。
1
内容:主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:图书入库,按书名、出版社、价格、作者进行查询和分类统计。
操作界面要符合用户的一般习惯,图形或文本界面都可以。
要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计预备必要的知识;
提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;
初步了解软件开发的一般方法和步骤;
提高撰写技术文档的能力。
2019/11/27 1:51:21 213KB 图书管理
1
三、实验内容与要求1、熟悉windows的编程接口,使用系统调用编程实现将参数1对应文件1.txt和参数2对应文件2.txt的内容合并到参数3对应文件zong.txt中(上传文件名为学号后5位ex0701.c)。
2、使用windows提供的命令将文件1.txt和文件2.txt的内容合并到文件total.txt中(请将实现的操作命令写入下题批处理文件的第一行)。
3、主管助理小张经常接收公司员工发来的文件,开始为了节省时间,小张将下载的文件都保存在文件夹xiazai中(文件名如图1所示,下载后直接解压即可),这样不便于后期的统计和分类管理,现在领导要求必须为所有员工(90人)每人单独建立一个文件夹(以员工工号命名10201、10202......10290),然后将他们提交的文件分别剪切到各自对应的文件夹中(如图2所示)。
于是小张开始为7名员工建立文件夹,再一个一个的去做……同学们想想有没有一种方法能快速完成所要求的操作呢?请熟悉windows的命令接口,使用windows提供的常用命令copy、md、del等编写一个批处理文件(上传文件名为学号后5位ex0703.bat),实现所要求的功能:1、启动linux系统或通过windowstelnet到linux。
2、用huas用户名和密码123456登入系统中。
3、打开一终端窗口(在linux桌面上单击右键,选择从终端打开)。
然后在其中输入以下命令实验。
4、熟悉常用操作命令.5、编辑如下源代码(实验教材P861.进程的创建)并保存二、实验目的(1)加深对进程概念的理解,明确进程和程序的区别。
(2)分析进程竞争资源现象,学习解决进程互斥的方法。
(3了解Linux系统中进程通信的基本原理。
三、实验内容与要求(1)任务一:编写一段程序,使其实现进程的软中断通信。
要求:使用系统调用fork()创建两个子进程,再用系统调用signal()让父进程捕捉键盘上来的中断信号(即按DEL键);
当捕捉到中断信号后,父进程用系统调用Kill()向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止:ChildProcessllisKilledbyParent!ChildProcessl2isKilledbyParent!父进程等待两个子进程终止后,输出如下的信息后终止ParentProcessisKilled!(2)任务二:在上面的程序中增加语句signal(SIGNAL,SIG-IGN)和signal(SIGQUIT,SIG-IGN),观察执行结果,并分析原因。
(3)任务三:进程的管道通信编制一段程序,实现进程的管道通信。
使用系统调用pipe()建立一条管道线;
两个子进程P1和P2分别向管道中写一句话:Child1issendingamessage!Child2issendingamessage!而父进程则从管道中读出来自于两个子进程的信息,显示在屏幕上。
要求父进程先接收子进程P1发来的消息,然后再接收子进程P2发来的消息。
二、实验目的自行编制模拟程序,通过形象化的状态显示,加深理解进程的概念、进程之间的状态转换及其所带来的PCB内容、组织的变化,理解进程与其PCB间的一一对应关系。
三、实验内容与要求1)设计并实现一个模拟进程状态转换及其相应PCB内容、组织结构变化的程序。
2)独立编写、调试程序。
进程的数目、进程的状态模型(三状态、五状态、七状态或其它)以及PCB的组织方式可自行选择。
3)合理设计与进程PCB相对应的数据结构。
PCB的内容要涵盖进程的基本信息、控制信息、资源需求及现场信息。
4)设计出可视性较好的界面,应能反映出进程状态的变化引起的对应PCB内容、组织结构的变化。
二、实验目的存储管理的主要功能之一是合理地分配空间。
请求页式管理是一种常用的虚拟存储管理技术。
本实验的目的是通过请求页式管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。
三、实验内容与要求通过计算不同算法的命中率比较算法的优劣。
同时也考虑了用户内存容量对命中率的影响。
页面失效次数为每次访问相应指令时,该指令所对应的页不在内存中的次数。
计算并输出下属算法在不同内存容量下的命中率。
先进先出的算法(FIFO);
最近最少使用算法(LRU)二、实验目的死锁会引起计算机工作僵死,因此操作系统中必须防止。
本实验的目的在于使用高级语言编写和调试一个系统动态分配资源的简单模拟程序,了解死锁产生的条件和原因,并采用银行家算法有效地防止死锁的发生,以加深对课堂上所讲授的知识的理解。
三、实验内容与要求设计有n个进程共享m个系统资源的系统
2021/1/9 12:53:10 970KB 操作系统报告
1
对于C#、VB等高级语言而言,此时编译器完成的功能是把源码(SourceCode)编译成通用中间语言(MSIL/CIL)的字节码(ByteCode)。
最初运行的时候通过通用语言运行库的转换,编程最终可以被CPU直接计算的机器码(NativeCode)。
2019/5/25 8:18:49 80KB www
1
共 60 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡