软件设计

《实时控制软件设计》第一周作业

…衆ロ難τιáo~ 提交于 2020-01-16 05:42:32
作业内容: http://www.cnblogs.com/bingc/p/6093259.html#3564066 选择一个典型的实时控制系统(CNC/工业机器人/汽车ABS系统......)的软件系统(或其中的一个软件模块)做案例分析,列出: 该系统有哪些强实时功能需求?需要对哪些实时事件进行实时响应,对允许的实时延迟的数量级进行估计。 如果你是软件设计者,要实现这些实时功能,要设计几个实时任务? 这几个实时任务是时间触发的还是事件触发的,如果是时间触发的,周期大约是多少? 这几个实时任务之间是相互独立还是存在着一定的依赖关系?分析这种依赖关系。 这几个实时任务之间是否都需要使用一些共享的硬件资源?列出这种依赖性。 面对作业二,我是没有明确的思路的,不知道怎么下手。 作业总得完成,那就找个思路解决问题: 先从阅读《操作系统原理》第一章《操作系统概论》入手,以对操作系统的发展有个大概认识; 以“工业机器人 实时”为关键词,网上搜索论文,了解工业机械手中相关的实时任务有哪些; 查阅论文中了解到很多都是采用“RT-Linux&Linux”双内核方案构建的RTOS,与我们接下来的学习一致,那就以此方案分析。 以正在学习的工业机器人为目标,罗列出其实时性任务,再考虑作业中的各条内容,分类,作答。 首先构思情景: 一工业机械臂,在两固定位置往复搬运某一零件。 接着分析该机械臂涉及的实时任务

UML企业项目设计工具Visual Paradigm新功能详解之DoDAF 工具

让人想犯罪 __ 提交于 2020-01-15 16:06:01
Visual Paradigm 是包含设计共享、线框图和数据库设计新特性的企业项目设计工具。只需要这样单独的一款模型软件 Visual Paradigm就可以完成用UML设计软件,用BPMN去执行业务流程分析,用ERD企业设计数据库的任务。 视觉范式与DoDAF Visual Paradigm提供了一个易于使用的,模型驱动的解决方案,该解决方案支持DoDAF 2.02视图和模型的开发。 创建集成的DoDAF产品,并在视图之间保持可追溯性。 生成有助于组织有效地协调企业架构计划的架构文档。 通过网格视图进行有效的视图管理 DoDAF的网格介面助您有效地管架构工件。架构师可以通过此界面轻松访问特定视图。 创建符合DoDAF的架构视图 Visual Paradigm扩展了UML以提供一组新的图类型,并为DoDAF视图创建量身定制了新的图工具栏,以确保您的体系结构描述将符合DoDAF指南和规范。 重用架构构件 通过简单的拖放操作,可以在任何其他视图中可视化在视图中创建的建筑构件。 修改模型将导致所有“替代视图”中相同模型的自动更新。 保持不同视图之间的可追溯性 使用关系矩阵工具或分析图表工具展示建筑构件之间的可追溯性。 瞬间生成DoDAF报告 从创建的视图和描述立即生成架构文档,或通过智能报表生成器“ Doc”创建自己的DoDAF报表。 作曲家'。 文档自动存储在文件存储库中,以备将来检索

面向对象开发方法概述

眉间皱痕 提交于 2020-01-14 10:10:01
一个优良的软件系统应该具备:可重用性,可扩展性,可维护性。 软件中的子系统应该具备:结构稳定性,可扩展性,内聚性,可组合性,松耦合。 两种开发方法:结构化开发和面向对象开发 1.1结构化软件开发简介(SASD) 它首先用结构化分析对软件进行需求分析,然后用结构化设计方法进行总体设计,最后进行结构化变成。这种开发方法使得开发步骤明确,SA、SD和SP相辅相成,一气呵成。 结构化设计是属于自顶向下的设计,无法灵活的适应用户不变变化的需求。 例:根据客户输入信息来打印图形,若客户需求改变,需要增加一个画某一种图形的功能,那么需要增加一个常量、增加一个方法、增加一个case分支。 可见,结构化开发制约了软件的可维护性和可扩展性,模块间的松耦合性不高。 1.2面向对象的软件开发简介 面向对象的开发方法把软件系统看成各种对象的集合,对象就是最小的子系统,一组相关的对象能够组合成更复杂的子系统。具有以下几个优点: ①把软件系统看成是各种对象的集合 ②软件需求的变动往往是功能的变动,二功能的执行者——对象一般不会有大的变化。这使得按照对象设计出来的系统结构比较稳定 ③对象包括属性(数据)和行为(方法),对象把数据及方法的具体实现方式一起封装起来,这使得方法和与之相关的数据不再分离,提高了每个子系统的相对独立性,从而提高了软件的可维护性。 ④支持封装、抽象、继承和多态,提高了软件的可重用性

《实时控制软件设计》第一周作业

拟墨画扇 提交于 2020-01-14 03:25:11
一、创建账号: 在博客园(cnblogs.com)上创建账号, 在github.com上创建账号,并把个人的姓名、学号、博客园账号名,github账号名一起发给助教汇总。 二、博客作业: 选择一个典型的实时控制系统(CNC/工业机器人/汽车ABS系统......)的软件系统(或其中的一个软件模块)做案例分析,列出: 该系统有哪些强实时功能需求?需要对哪些实时事件进行实时响应,对允许的实时延迟的数量级进行估计。 如果你是软件设计者,要实现这些实时功能,要设计几个实时任务? 这几个实时任务是时间触发的还是事件触发的,如果是时间触发的,周期大约是多少? 这几个实时任务之间是相互独立还是存在着一定的依赖关系?分析这种依赖关系。 这几个实时任务之间是否都需要使用一些共享的硬件资源?列出这种依赖性。 三、开发环境搭建: 参照github课程主页上的指导文档搭建本课程所使用的开发环境: https://github.com/RTCSD2016/notes/blob/master/xenomai开发环境.md 来源: https://www.cnblogs.com/bingc/p/6093259.html

软件工程——软件设计

半世苍凉 提交于 2020-01-13 22:07:48
1.软件设计的目标和任务:根据用信息域表示的软件需求,以及功能和性能需求进行数据设计、系统结构设计及过程设计。(技术观点) 2.从工程管理的角度看,软件设计分两步完成:概要设计(主要包括系统结构设计)和详细设计。(管理观点) 3.软件设计的过程:(1).制定规范 (2).软件系统结构的总体设计 (3).处理方式设计 (4).数据结构设计 (5).可靠性设计 (6).编写概要设计阶段的文档 (7).概要设计评审 4.软件设计基础:1.自顶向下,逐步细化 2. 软件结构 3.程序结构 4.结构图 5.模块化 6.抽象化 7.信息隐蔽 5.将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化。 6.软件结构包括两部分,程序的模块结构和数据的结构 7.程序结构分为树状结构和网状结构,树形结构层次分明,网状结构任何结点之间都可以产生联系。 8.结构图反映程序中模块之间的层次和调用关系 9.模块化能够把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。模块具有三个基本属性:功能、逻辑和状态。 模块独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,一般采用两个准则度量模块独立性,即模块间耦合和模块内聚。耦合度越高,模块独立性越差,内聚程度越高,独立性越好,模块耦合尽量使用数据耦合、少用控制耦合、限制公共耦合,完全不用内容耦合。 来源: CSDN 作者: 刘爽

设计模式在软件开发中的应用——2012年 11 月 25 日高级软件工程课程小论文

筅森魡賤 提交于 2020-01-13 00:34:36
摘要: 设计模式通常是对某一类软件设计问题提出的通用的解决方案,将设计模式引入软件设计和开发过程,目的就在于充分利用已有的软件开发经验,甚至是已有的代码框架。最近一些年,设计模式已经成为软件项目团体中最热门的话题之一,并且经常在社区引起激烈的讨论。 本文介绍了设计模式的概念、描述、法则、分类以及程序设计语言与设计模式的关系,以实际案例介绍设计模式在软件开发中的应用,并在此基础上提出了一些软件设计与开发过程中使用设计模式存在的问题。 关键词: 设计模式;软件设计与开发;面向对象; 1 引言 面向对象的实质是一种系统建模技术,面向对象思想只是一种高级编程规范,我们只有利用它,并且在总结和继承前人开发经验的基础上使用有特色的面向对象软件开发方法,才可能充分地利用其优越性,来解决我们系统的各种需求及需求变更。 模式是一种方案,利用这种方案,我们可以完成某项工作;模式也是一种途径,通过这种途径,我们可以达到某个目的;同时,模式也是一种技术,我们必须获取并利用有效的技术。设计模式也是一种模式,是一种完成某个目的或构思的方案。它要求使用某种面向对象提供的类及相关机制 [1] 。 2 设计模式概述 2.1 设计模式概念 模式(pattern)的概念最早由建筑大师 Christopher Alexander 于 20 世纪 70年代提出,应用于建筑领域。20 世纪 80 年代中期由 Ward

模式和原则 [原]

懵懂的女人 提交于 2020-01-13 00:29:48
模式和原则 设计模式介绍 模式:每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。 这是关于模式最经典的定义,作者是建筑大师 Christopher Alexander 。如果是第一次看到这句话,多数人会觉得有些抽象难懂。其实“模式”两个字只是一个代号,就像我叫 Justin ,如果我改叫 Tom 也没什么问题,只是我更喜欢 Justin 这个名字,所以从 Christopher 开始,有了“模式”这个词,人们也都把关于“重复发生的问题的描述和解决办法”统称为模式。 “模式”这个词是不局限于软件开发行业的,它几乎无处不在,它其实就是一种经验的积累,就象大多数人的教育经历都是从小学到初中再到高中再到大学,这也是一种模式,是中国的教育模式;现在越来越火的出国热,也是另一种模式,海外留学模式。因为 GOF 的《设计模式:可复用面向对象软件的基础》一书描述的 23 种经典设计模式,奠定了模式在软件行业的地位,从此人们提到“设计模式”就是默指“面向对象设计模式”,但是如前文所述,模式绝对不局限于软件行业,即使在软件行业,也不局限于 GOF 描述的 23 种设计模式,例如最著名的 Martin Flower 的《企业架构模式》,还有我们常用的 MVC 、 IOC 等。 [ 说到这里,有必要声明一下的是,在该系列文章中,凡提到模式,都是指软件行业的基于 GOF 的

程序设计语言发展回顾与展望

夙愿已清 提交于 2020-01-12 19:25:20
文章转载自:计算机世界网,原文链接地址:http://www2.ccw.com.cn/1995/13/138106.shtml 编者按:程序设计语言是与现代计算机共同诞生、共同发展的,至今已有40余年的历史,早已形 成了规模庞大的家族。进入80年代以后,随着计算机的日益普及和性能的不断改进,程序设 计语言也相应得到了迅猛发展。 《程序设计语言发展回顾与展望》一文对程序设计语言的发展历程进行了回顾,并对一 些著名语言的背景、特点、长处与不足,及其对程序设计语言发展的贡献作出了评述。 《面向对象方法、语言与支撑环境的特征与缺陷》一文对面向对象方法、语言与支撑 环境的优缺点进行了详细的评述,并对其发展方向做出了展望。 《实时程序语言的过去、现在和将来》一文中,阐述了计算机实时应用中对程序设计语 言的特殊要求,介绍了一些具有代表性的实时语言的设计和使用,并指出了实时程序设计语 言的发展方向。 《三种Windows Basic的介绍》一文中,介绍了用于Windows环境下的Basic语言的发展 情况。对Windows下的CA-Realizer 2.0、GFA Basic 4.1O和Visual Basic 3.0进行了介绍 和比较。 本期技术纵横:《奔腾(Pentium)芯片的瑕疵》。文中对Pentium芯片在做双精除法时出 现错误的发现过程做了详细介绍,并分析了这种瑕疵产生的原因

《火球——UML大战需求分析》(第2章 耗尽脑汁的需求分析工作)——2.3 给客户带来价值,需求分析之正路

∥☆過路亽.° 提交于 2020-01-12 08:22:16
第2章 耗尽脑汁的需求分析工作 摘要 :怎么又变了?当初就应该让客户书面签字 确认 !你可能会经常发这样的牢骚,可是就算客户书面确认,客户还是会“赖账”的! 软件 项目 的其中一项不变真理:人是会死的, 需求 是会变的!本章将会和你一起来体验软件 需求分析 工作的风风雨雨,找出需求分析工作的根本之道,了解 UML 如何帮助我们提升需求分析的水平。 2.3 给客户带来价值,需求分析之正路 手机短信订餐系统 接下来我将会介绍一个手机短信订餐系统的故事,这是一个由真实个案改编的故事,通过这个故事来体会 需求分析 工作背后的道理。 某IT公司规模不大,员工100来人。公司有一个简单的定餐系统,员工每天可以在公司内部网站上提交当天午餐定餐,前台汇总各人定餐后,将定餐汇总传真给餐厅,餐厅根据传真送餐。 可是有这样的问题:部分员工因为上午请假或者外出工作,无法再网站上提交订餐,以至于中午回到公司时没有饭吃。 于是老板想出了这样的办法:做一个手机短信定餐系统,不在公司的员工可通过手机短信定餐。 于是成立了手机短信定餐 项目 小组,购买了手机短信收发的硬件,解决了选餐单、定餐、取消定餐等技术问题。但这个系统一会灵一会不灵,问题是出在 软件 、硬件,还是中国移动都难以搞清楚!做项目做麻烦的事情之一就是遇到“幽灵问题”,时而出现时而正常,项目小组挥汗如雨地试图解决这些问题,可一直没有办法搞定。

第2章 理解面向对象

落花浮王杯 提交于 2020-01-12 04:28:34
理解面向对象 本章要点: 面向对象编程方法 1.结构化程序设计 2.面向对象程序设计 UML(统一建模语言)介绍 面向对象设计方式由OOA(面向对象分析)、OOD(面向对象设计)和OOP(面向对象编程)三个部分组成。其中OOA和OOD已经采用UML(统一建模语言)来描述。因此本章主要分为两部分,首先介绍OOP(面向对象编程)面向对象编程,接着介绍UML(统一建模语言)的面向对象编程分析思想。 本章要点: 面向对象编程方法 软件开发领域有两种主流的开发方法:结构化开发方法和面向对象开发方法。 1.结构化程序设计 1) 结构化程序设计简介 ​ 结构化程序设计里最小的程序单元是函数,每个函数都负责完成一个功能,用以接收一些输入数据,函数对这些输入数据进行处理,处理结束后输出一些数据。整个软件系统是由一个个函数组成,程序首先调用主函数,主函数再依次调用其他函数,普通函数之间也可以依次调用,这样就完成了软件系统的功能。下图是结构化软件的结构示意图。 从上图中可以看出,结构化程序设计采用自上而下的设计方式,在这个过程中需要考虑每个模块应该分解成哪些子模块,每个子模块又可以分解成哪些更小的模块,依次下去….,直到模块细化成一个函数为止。 结构化编程的缺点: 设计不够直观 适应性差,可扩展性不强 2) 结构化程序的三种基本结构 程序设计的三种基本结构包括: 顺序结构:源代码排列顺序依次执行