相关推荐
《软件工程导论》第一章-软件工程学概述-笔记整理
参考教材:《软件工程导论》-张海藩第6版
关于软件工程
软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本。其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。
蚂蚁区块链第20课 可信存证司法链从入门到实施
1. 摘要 杭州互联网法院和司法区块链平台的技术建设方都是蚂蚁金服区块链。那么,如何借助蚂蚁的技术能力和服务能力,快速对接上司法链,便于后续打通存证/维权的闭环流程。本文介绍蚂蚁区块链可信存证的业务及特点,费用及接入方法等,具有实战指导意义。 2. 蚂蚁区块链可信存证的介绍 蚂蚁区块链可信存证具备全链路可信,司法权威节点见证,安全隐私保护,一站式接入能力,全国首家法律认可的区块链存证平台。 2...
软件工程:传统软件工程 vs 敏捷软件开发
转自我的博客园文章:http://www.cnblogs.com/katniss-smile/p/5982643.html首先给出软件工程和敏捷软件开发的定义: 软件工程(Software Engineering): 是一种层次化技术。 将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化的方法应用于软件。 研究”建立和使用一套合理的工作原则,以便经济地获得可靠的
Kubernetes集群环境搭建与初始化
Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。
无感无刷电机三段式启动避坑指南:从预定位到闭环切换的STM32代码实现
本文深入解析无感无刷电机的三段式启动流程,涵盖预定位、启动加速与闭环切换三大阶段。重点对比了恒频升压、恒压升频与升频升压三种核心启动策略的优劣,并提供了基于STM32的详细状态机代码实现与关键参数调试指南,帮助工程师有效规避启动失步、线圈过热等常见问题,实现稳定可靠的无感驱动。
软件工程(六)第一代软件工程(传统软件工程)—— 结构化分析与设计
结构化分析与设计的流程 瀑布模型由传统的生存周期过程演变而来。作为一种系统开发方法,结构化分析与设计是瀑布模型的首次实践。根据瀑布模型的上述流程,需求分析与软件设计是进入编码阶段前必须完成的任务。具体来说,系统开发从需求分析开始,首先建立系统的需求模型;接着通过 SD 方法提供的映射规则,把分析模型转化为初始设计模型;然后再优化为系统最终设计模型 基本任务 结构化分析 SA 有两项基本任务,即...
保姆级教程:STK 11.0 从下载到安装成功(附Matlab互联配置与常见问题解决)
本文提供STK 11.0的完整安装指南,包括下载、安装步骤、Matlab互联配置及常见问题解决方案。详细介绍了系统要求核查、分步安装流程、关键文件替换和许可证配置,确保用户能够顺利完成STK 11.0的部署并实现与Matlab的无缝对接。
关于大学中软件工程课程的开设问题——不要把实践性科学当作理论性学科来教授...
本文实际完成时间是2008年03月22日,今日翻看我的稿件存栏时翻到,于是,重新发布出来。里面涉及到我和几位大学讲师或者是教授的对抗性争议,我反对他们的做法和讲课以及定义的方式,但是最后我并不想做无意义的争论,于是退出了那个临时的群。当然,前面他们对我也算是捧了不少,也有一个不了解的上来就和我对抗。本文讨论到的相关内容都在下面这本书里有全面详实的解答,这本书中的一段两页不...
深入C6678启动流程:从BootRom参数表到多核镜像部署的完整解析
本文深入解析TMS320C6678 DSP的启动流程,从BootRom参数表到多核镜像部署的全过程。详细介绍了七种启动模式的工程选择、多核镜像构建技巧以及二级引导策略,帮助开发者掌握C6678的启动机制与调试方法,提升嵌入式系统开发效率。
西门子RS485自由口通信Modbus RTU 通信协议
部分西门子的RS485模块不能使用西门子自带的Modbus RTU通信指令,需要通过自己拼接、发送、接收和解析报文完成Modbus RTU通信。通过多次尝试完成该功能: #R_TRIG_Instance(CLK := #触发, Q => #触发上升沿); IF #触发上升沿 THEN // 触发后先将读取完成复位 #读写完成 := 0; END_IF; CASE #功能码 OF 1: // 线圈状态读取 ; 2:
软件工程- 第3章 传统软件工程方法学
文章目录软件工程第3章 传统软件工程方法学3.1 结构化设计结构化设计的概念与原理模块化抽象逐步求精信息隐蔽模块独立3.2 模块独立耦合内聚3.3 启发规则3.4 面向数据流设计方法软件结构图信息流类型面向数据流设计过程变换分析事务分析3.5 人机界面设计人机界面设计问题人机界面设计指南3.6 过程设计过程设计任务结构化程序设计结构化程序设计工具程序复杂度3.7 面向数据结构设计方法Jackson方法步骤 软件工程 第3章 传统软件工程方法学 3.1 结构化设计 传统软件工程方法学采用结构化设计技术(SD)
【雷达通信】雷达信号处理仿真【含Matlab源码 2509期】
雷达信号处理仿真 完整的代码,方可运行;可提供运行操作视频!适合小白!
软件工程学基础(初学 连载中)
第一章 软件工程学概述 第一节 软件危机 一. 软件· 定义: 软件: 软件包括程序·相关数据·说明文档; 程序:按事先设计的功能和性能要求执行的指令序列; 数据:是使程序能正常操纵信息的数据结构; 文档:是与程序开发、维护和使用有关的图文材料。 二. 软件· 特点: 软件是一种逻辑实体,具有抽象性; 软件是开发的,而不是制造的; 在软件的运行和使用期间,没有硬件那样的机械磨损,老 化问题...
深度学习工具包 DeepLearningToolbox
深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[](https://bitdeli.com/free "Bitdeli Badge")
Statistics and Machine Learning Toolbox
Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具
敏捷式开发与传统软件过程
在六十年代末期提出了软件危机的概念,因此提出了非常有纪律性的方法即软件工程学,试图从电子工程学、技术工程学提炼出一些东西来用于软件工程学,他们想从中提炼出一种方法,使得软件开发的流程更有预测性。但软件业的人在做软件的过程中发现这些方法并没有减少软件开发过程中遇到的问题。近年来有人发现软件工程学里一些基本的假设是不正确的,并使用了一些新的开发方法,称为敏捷式开发。敏捷式开发采用适应性方法,而传统的软
大中型超市收银系统(可直接运行)
光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开
敏捷式开发质疑传统软件过程
敏捷式开发质疑传统软件过程在六十年代末期提出了软件危机的概念,因此提出了非常有纪律性的方法即软件工程学,试图从电子工程学、技术工程学提炼出一些东西来用于软件工程学,他们想从中提炼出一种方法,使得软件开发的流程更有预测性。但软件业的人在做软件的过程中发现这些方法并没有减少软件开发过程中遇到的问题。近年来有人发现软件工程学里一些基本的假设是不正确的,并使用了一些新的开发方法,称为敏捷式开发。敏捷式开发
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
软件工程期末复习(一)
软件产品的核心特性是什么?A. 物质性B. 逻辑性C. 可复制性D. 消耗性:B在软件开发过程中,哪个环节最接近于传统制造业中的“生产”过程?A. 需求分析B. 编码C. 测试D. 研制(研发):D(虽然编码也是生产的一部分,但研制更全面地涵盖了从需求到实现的整个过程)软件工程学的出现主要是为了应对什么问题?A. 程序设计方法的落后B. 计算机硬件的快速发展C. 软件危机D. 信息安全问题:C软件工程的核心目标是什么?
《软件工程导论》(第6版)第1章 软件工程学概述 复习笔记
软件危机 软件工程 软件生命周期 软件过程
软件工程是一门研究如何以系统化、规范化、可量化的过程管理方法来开发和维护软件的学科
软件工程学是将工程学的原理、方法和技术系统化地应用于软件开发、运维与管理的学科,旨在提高软件质量、降低开发成本并控制项目风险。其核心目标是通过规范化流程解决“软件危机”(如需求失控、代码冗余、维护困难等问题)。
第一章 软件工程学概述
第1章 软件工程学概述 1.1 软件危机 1.1.1 软件危机简介 软件危机: 指在计算机软件开发和维护过程中所遇到的一系列严重问题。 包含以下两个方面的问题 如何开发软件,以满足社会对软件日益增长的需求。 如何更有效地维护数量不断膨胀的已有软件。 1.1.2 产生软件危机的原因 软件是计算机的逻辑部件,缺乏“可见性” 软件规模庞大,程序复杂性指数速度上升 1.1.3 软件是程序、数据及文档的完整集合。 程序是能够完成预定功能和性能的可执行的指令序列。 数据是使程序能够适当地处理信息的数据结构。
软件工程学
软件工程 概述——软件工程是指导计算机软件开发和维护的学科 软件工程的产生 软件工程的发展史 软件危机产生并越来越严重,因为逐步形成了研究如何消除软件危机,以及如何合理的开发和维护软件的学科——软件工程学 软件危机 软件危机是指在计算机软件开发和维护时所遇到的一系列问题。 1、 软件危机产生的原因 软件危机的产生的原因与软件的特点有关,也与软件开发的方式、方法、技术和软件开发人员本身的素质有关。具体来说,有以下几点: 1> 软件是计算机系统中的逻辑部件,软件产品往往规模庞大,给软件的开发和维护带来客观
软件工程导论—软件与软件工程
文章目录1. 软件与软件危机1.1. 软件的概念和特点1.2. 软件规模的分类与发展阶段1.3. 软件危机1.3.1. 软件危机的表现1.3.2. 软件危机产生的原因1.3.3. 软件危机如何解决2. 软件工程学2.1. 软件工程学的概念2.2. 软件工程项目的基本目标2.3. 软件工程的八项原则2.4. 软件工程的本质特征2.5. 软件工程的七条基本原理3. 软件工程方法学3.1. 软件工程方法...
软件工程期末考试复习(一)
软件工程学概述 软件危机 1、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 2、软件危机的主要典型表现: 对软件开发成本和进度的估计常常不准确 用户对已完成的软件系统不满意现象经常发生 软件产品的质量往往靠不住 软件常常是不可维护的 软件通常没有适当的文档资料 软件成本在计算机系统中所占的比例逐年上升 软件开发生成和计算机应用更新的速度不匹配 3...
1807



被折叠的 条评论
为什么被折叠?



