软件设计

软件设计项目进展01 2019/8/19

老子叫甜甜 提交于 2019-11-27 22:02:15
1.当天完成的工作: 在软件课程设计的第一天,仔细了解了软件开发实践课程的整体流程,为接下来一个月将要完成的事情搭起了整体框架。 主要完成了如下事情:1)组队:组名:fubuki 成员: 丁悦(我,组长),张玲瑀(组员),张楠(组员)。 2)选题完成:基于微信小程序的食堂订餐送餐系统设计与实现。 项目名称:懒人食堂 2.第二天的计划: 1)下载墨刀原型设计工具,仔细了解其功能和操作。 2)结合墨刀原型设计工具对微信小程序的需求功能进行合理的设计。 3.每日小结: 今天对一个软件开发的过程有了初步的认识,软件开发是一个并不容易的过程,需要较强的综合能力。然后经过考虑确认了项目的选择。相信自己经过一个月的坚持,学习与实践,能力将会有大的提升。 来源: https://www.cnblogs.com/dydy9999/p/11379184.html

第二次实验

心已入冬 提交于 2019-11-27 18:25:10
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1353 姓名:黎静 学号:20135338 成绩: 指导教师:娄嘉鹏 实验日期:2015.5.17 实验密级: 预习程度: 实验时间: 仪器组次: 必修/选修: 实验序号:2 实验名称: Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装、继承、多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计模式 实验要求 1.没有Linux基础的同学建议先学习《 Linux基础入门(新版) 》《 Vim编辑器 》 课程 2.完成实验、撰写实验报告,实验报告以博客方式发表在 博客园 ,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等)。报告可以参考范飞龙老师的 指导 3. 严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施。 4. 请大家先在 实验楼 中的 ~/Code 目录中用自己的学号建立一个目录,代码和UML图要放到这个目录中,截图中没有学号的会要求重做,然后跟着下面的步骤练习。 实验步骤 (一)单元测试 需求:我们要在一个 MyUtil 类中解决一个百分制成绩转成“优

面向对象的软件开发与作业介绍

我的梦境 提交于 2019-11-27 12:02:29
面向对象的软件工程包括下面几个部: 1.面向对象分析(object oriented analysis, OOA) 软件工程中的系统分析阶段,要求分析员和用户结合在一起,对用户的需求做出精确的分析和明确的表述,从大的方面解析软件系统应该做什么,而不是怎么去做。 面向对象的分析要按照面向对象的概念和方法,在对任务的分析中,从客观存在的事物和事物之间的关系,归纳出有关的对象(对象的‘特征’和‘技能’)以及对象之间的联系, 并将具有相同属性和行为的对象用一个类class来标识。建立一个能反映这是工作情况的需求模型此时的模型是粗略的。 2.面向对象设计(object oriented design , OOD) 根据面向对象分析阶段形成的需求模型,对每一部分分别进行具体的设计。 首先是类的设计,类的设计可能包含多个层次(利用继承与派生机制)。然后以这些类为基础提出程序设计的思路和方法,包括对算法的设计。 在设计阶段并不牵涉任何一门具体的计算机语言,而是用一种更通用的描述工具(如伪代码或流程图)来描述 3.面向对象编程(object oriented programming, OOP) 根据面向对象设计的结果,选择一种计算机语言把他写成程序,可以是python。 4.面向对象调试(object oriented test,OOT) 在写好程序后交给用户使用前,必须对程序进行严格的测试

DDD初学指南

痞子三分冷 提交于 2019-11-27 11:03:48
  因为不想对原文进行修改了,所以直接把评论贴上来了,现在看来,当年的认识确实有些问题,不只评论提到的,当年只是按部就班,其实真的做好应该是于无声处听惊雷,不过既然是给初学者看的,还是从简单的地方来吧,虽然有问题,但是对初学者来说也是有参考价值的,还是建议看一看想一想,尤其那些整天提DDD,但是书都没看过的 2016-05-31 12:46 ImCoOLeR 写得不错,好话我就不说了,浪费时间也没意义。我不同意的是DDD不适用于小项目,你说的一点我很肯定,就是DDD是设计方法,但是适不适合小项目要看DDD架构,DDD是适用于多架构的。当然小项目也许没有必要用DDD,但不等同于小项目不适合用DDD。 关于精炼我也有不同看法,精炼不仅仅是业务领域,模型或者设计元件的细分,剥洋葱的说法我不赞同。精炼是对模型的锤炼,是对业务深层次探索得出的。精炼不等于细化,而是聆听领域专家,是模型跟接近于现实中的业务领域。 我没有全部看完,大致上的看法就是这样,希望共同进步。 @ ImCoOLeR 刚看到。。。,这篇开始写的时候比较早差不多是14年写了大概,一直在草稿里15年发的,就现在来看,这篇博客里有很多不准确的地方,但是作为当年的学习的历程,所以不想改了 说不适合小项目大概是因为当时正在公司推DDD,也是一边学一边推,按部就班的落实到项目中,忽视了其实所有项目都是可以借鉴DDD思想的

面向对象设计的六大原则

好久不见. 提交于 2019-11-27 09:25:58
https://blog.csdn.net/dhj199181/article/details/90637862 1) 单一职责原则:   一个合理的类,应该仅有一个引起它变化的原因,即单一职责,就是设计的这个类功能应该只有一个;   优点:消除耦合,减小因需求变化引起代码僵化。 2) 开-闭原则:   对扩展开放,对修改关闭   优点:降低了程序各部分之间的耦合性,其适应性、灵活性、稳定性都比较好。当已有软件系统需要增加新的功能时,不需要对作为系统基础的抽象层进行修改,只需要在原有基础上附加新的模块就能实现所需要添加的功能。增加的新模块对原有的模块完全没有影响或影响很小,这样就无须为原有模块进行重新测试。 3) 里氏代换原则:   很严格的原则,规则是“子类必须能够替换基类,否则不应当设计为其子类。”也就是说,子类只能去扩展基类,而不是隐藏或覆盖基类。任何基类可以出现的地方,子类一定可以出现。   优点:可以很容易的实现同一父类下各个子类的互换,而客户端可以毫不察觉。 4) 依赖倒换原则:   “设计要依赖于抽象而不是具体化”。换句话说就是设计的时候我们要用抽象来思考,而不是一上来就开始划分我需要哪些哪些类,因为这些是具体。   优点:人的思维本身实际上就是很抽象的,我们分析问题的时候不是一下子就考虑到细节,而是很抽象的将整个问题都构思出来,所以面向抽象设计是符合人的思维的

软件工程作业

烂漫一生 提交于 2019-11-27 09:15:26
软件工程作业1 (第1 ~4 章) 一、选择题: 1. 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( C )。 A. 软件工程 B.软件周期 C.软件危机 D.软件产生 2. 瀑布模型本质上是一种( A )模型。 A. 线性顺序 B.顺序迭代 C.线性迭代 D.早期产品 3. 瀑布模型存在的问题是( B )。 A .用户容易参与开发 B.缺乏灵活性C.用户与开发者易沟通 D.适用可变需求 4. 螺旋模型是一种将瀑布模型和( A )结合起来的软件开发模型。 A .增量模型 B.专家系统 C.喷泉模型 D.变换模型 5. 原型化方法是用户和设计者之间执行的一种交互构成,适用于( A )系统。 A .需求不确定性高的 B.需求确定的 C.管理信息 D.实时 6. 下列有关软件工程的标准,属于国际标准的是( D ) A.GB B.DIN C.ISO D.IEEE 7. 结构化方法是一种基于( D )的方法。 A. 数据结构 B.程序结构 C.算法 D.数据流 8. 软件可行性研究实质上是要进行一次( A) 需求分析、设计过程。 A 、简化、压缩的 B、详细的 C、彻底的 D、深入的 9. 可行性研究的目的是( D ) A 、分析开发系统的必要性 B、确定系统建设的方案 C 、分析系统风险 D、确定是否值得开发系统 10. 设年利率为i,现存入p元,不计复利

6.每周总结

感情迁移 提交于 2019-11-26 22:40:46
这周做的事 正在自学了UML和java; 练习pta平台基础编程; html进行了简单的了解和软件的下载sublime和eclipse; 下周将做的事: 1.进入PTA平台进行程序的编写; 2.阅读java程序设计 用java练习一些小程序 3.每天自学1-2个小时的JAVA; 5.自学html和UML; 来源: https://www.cnblogs.com/zzmds/p/11334201.html

Java程序员应当知道的10个面向对象设计原则

扶醉桌前 提交于 2019-11-26 17:02:08
面向对象设计原则是OOPS编程的核心, 但我见过的大多数Java程序员热心于像Singleton (单例) 、 Decorator(装饰器)、Observer(观察者) 等设计模式,而没有把足够多的注意力放在学习面向对象的分析和设计上面。学习面向对象编程像“抽象”、“封装”、“多态”、“继承” 等基础知识是重要的,但同时为了创建简洁、模块化的设计,了解这些设计原则也同等重要。我经常看到不同经验水平的java程序员,他们有的不知道这些OOPS 和SOLID设计原则,有的只是不知道一个特定的设计原则会带来怎样的益处,甚至不知道在编码中如何使用这些设计原则。 (设计原则)底线是永远追求高内聚、低耦合的编码或设计。 Apache 和 Sun的开源代码是学习Java和OOPS设计原则的良好范例。它们向我们展示了,设计原则在Java编程中是如何使用的。Java JDK 使用了一些设计原则:BorderFactory类中的工厂模式、Runtime类中的单例模式、java.io 类中的装饰器模式。顺便说一句,如果您真的对Java编码原则感兴趣,请阅读Joshua Bloch 的Effective Java,他编写过Java API。我个人最喜欢的关于面向对象设计模式的是Kathy Sierra的Head First Design Pattern(深入浅出设计模式)

UML和OO

余生长醉 提交于 2019-11-26 15:03:50
UML和OO: UML是描述、构造和文档化系统制品的可视化语言。UML是标准的图形表示法,用来绘制和展示与软件相关的图形,是项目组相关人员的交流沟通工具;是一套标准的建模工具; 应用UML的三种方式: 1.作为草图使用---一种非正式的、不完整的UML图形,借助于UML讨论问题或方案的复杂部分。 2.作为蓝图使用---相对详细的设计图。 3.作为编程语言使用---使用UML进行自动代码生成。MDA等,目前技术还不是很成熟,还在发展阶段。 UML不可能与设计和对象思想同等重要,相对UML,面向对象的思想更值得学习,设计是一项极不寻常且更为重要的技能,特别是怎样使用面向对象的思维进行思考和解决问题的能力,他不是通过学习UML表示法或Case/MDA工具就可以掌握的,UML并不是OOA/D,也不是方法,只是个图形表示法而已,如果没有真正掌握如何创建优秀的面向对象设计,或如何评估和改善现有设计,那么学习UML或UML Case工具则毫无意义。 分析是对需求的调查研究,不是解决方案。设计是为了满足需求的概念上的解决方案。分析和设计可以概括为:做正确的事(分析)和正确地做事(设计)。OOA强调的是在问题领域内发现和描述对象;OOD强调的是定义软件对象以及它们之间是如何协作也实现需求。 在OO开发中,至关重要的能力是熟练地为软件对象分配职责。无论是作UML图还是进行OOA/D/P

面向过程&面向对象 UML&RUP

一世执手 提交于 2019-11-26 15:03:20
面向过程&面向对象 面向过程和面向对象其实都是一种软件技术,我们一般把面向过程归纳为结构化分析方法,常使用DFD图、ER模型、UC矩阵等,把面向对象则归纳为继承、封装、多态等具体技术,事实上,所有的技术都只是人们采用不同方法来认识和描述这个世界时所采用的工具。 我们引用Booch的话: 我对面向对象编程的目标从来都不是复用,相反,对我来说,对象提供了一种处理复杂性问题的方式,这个问题可以追溯到亚里士多德:你把这个世界视为过程还是对象?在面向对象兴起运动之前,编程以过程为中心,如结构化设计方法。然而,系统已经达到了超越其处理能力的复杂性极点。有了对象,我们能够通过提升抽象级别来构建更大的、更复杂的系统---我认为,这才是面向对象编程运动的真正的胜利。 归纳起来,面向对象这种认识论能够帮助我们构建更为复杂的系统来解释越来越复杂的现实世界。 面向对象,认为这个世界的本质是由对象构成的,一切皆为对象,平时看上去相互无关的对象在不同的驱动力和规则下体现不同的运动过程,然后这些过程便展现了我们这个生动的世界。 面向过程,认为世界的一切都不是孤立的,它们互相紧密地联系在一起,缺一不可,互相影响,互相作用,形成一个个具有严格因果关系的小系统,更多小系统组成大系统,所有小系统之间的联系也是紧密和不可分割的。 把世界视为过程这个方法本身有一个假设前提,即这个过程是稳定的,这样我们才有分析的基础