为了解决软件危机。一些IT前辈国产软件project这个词汇,软件project它被引入到整个软件开发过程的维护。

软件project从程序的设计角度能够分为两类。一类是面向结构的软件project。还有一类是面向对象的软件project。以下我们先宏观把控一以下向对象的软件project,然后在对当中的面向对象的分析在做进一步的解释。

一、面向对象的软件project导图

面向对象的软件project能够分为五个阶段:1、OO分析; 2、OO设计。3、OO编程。 4、OO測试; 5、OO维护。

二、面向对象的分析

三、图解

用面向对象方法开发软件,通常须要建立3种形式的模型它们各自是:描写叙述系统数据结构的对象模型、描写叙述系统控制结构的动态模型和描写叙述系统功能的功能模型。

假设将这三个模型表示做一件事的步骤的话。对象模型表示的是对谁做?功能模型表示的是何时做?动态模型表示的是做什么?

对象模型中的对象、类、主题分别描写叙述的是两个不同级别的抽象,对象抽象成类。类抽象成主题,然后在找出当中的关联和属性,最后在优化。

动态模型的核心是事件的跟踪图和对象的状态图,这两表示“做一件事”是信息流的传递方向与状态。

动态模型中须要编写脚本来描写叙述每个动态交互过程动作序列的信息,构造与用户交互的界面好让用户来输入信息。

功能模型就表示做什么的事情了,三个模型中对象模型是基础,在三个模型的构建中我们还有不断的优化。就相当于结构设计中的每个阶段都要进行评审一样。

四、小结

面向对象分析的关键是找出问题域的对象,并分析它们相互间的关系。终于建立起问题域的简洁、精确、可理解的正确模型。面向对象的程序设计相对于面向结构的程序设计而言是一个“升级”。

面向对象目的在于让代码有更好的可读性,可维护性与可扩展性,这样一来就减少了软件的开发与维护工作工作量,给我们节省了大量的时间。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

面向对象的软件project——面向对象分析的更多相关文章

  1. 5.15 python 面向对象的软件开发&领域模型

    1.面向对象的软件开发 参考地址::http://www.cnblogs.com/linhaifeng/articles/6182264.html#_label14 面向对象的软件工程包括下面几个部: ...

  2. Python--反射(重点)、面向对象内置方法:如__str__、面向对象的软件开发

    复习: Python3统一了类与类型 类的名称空间在定义阶段产生,看名称空间:类.__dict__ Python3特点:可以多继承 Python3都是新式类 继承意义:解决重复代码   组合:也是解决 ...

  3. day34 反射、面向对象内置方法:如__str__、面向对象的软件开发

    Python之路,Day21 = 反射.面向对象内置方法:如__str__.面向对象的软件开发 几个内置查看的方法使用 .__base__ 查看类的继承结构.mro() 对象找属性的顺序存在里面 -- ...

  4. 从软件project的角度写机器学习3——主要监督学习算法的project性分析

    主要机器学习算法的project适用性分析 前段时间AlphaGo跟李世石的大战及相关的深度学习的新闻刷了一遍又一遍的朋友圈.只是这件事情,也仅仅是在机器学习的深度上进一步拓展,而机器学习的广度(也即 ...

  5. 《软件project》课程报告 —国土资源执法监察管理信息系统建模

    ***********************************************声明*************************************************** ...

  6. 项目之软件project(我专业四年都未曾知道这四个字的含义,几句话便懂了)

    潘鹏在CSDN上原创.如其它站点转载请注意排版和写明出处: 软件project的本质 一级标题 控制 质量 二级标题  成本  扩展  高内聚低耦合 效率 控制: 成本:企业要求的是以最快的速度完毕可 ...

  7. 软件project(六)——需求分析

           需求分析是软件开发期的第一个阶段,是关系到软件开发成败的关键步骤.需求分析的任务就是明白系统必须完毕那些工作,以下是对需求分析这一章做的简要总结. 导图: 解释说明:        我将 ...

  8. Java面向对象编程 第一章 面向对象开发方法概述

    一.软件开发经历的生命周期: ①软件分析 ②软件设计 ③软件编码 ④ 软件测试 ⑤ 软件部署 ⑥软件维护 二.为了提高软件开发效率,降低软件开发成本,一个优良的软件系统应该具备以下特点: ① 可重用性 ...

  9. 软件project(一)——宏观总结

    曾经看视频,看过去就忘.不想再这样子下去了,所以总结了好久.想让自己忘不了.这个过程花费时间有点长,可是假设让自己忘不了.一切都值了. 以下先来一张导图来总结一下<软件project>这门 ...

随机推荐

  1. POJ 2299 Ultra-QuickSort (求序列的逆序对数)

    题意:废话了一大堆就是要你去求一个序列冒泡排序所需的交换的次数. 思路:实际上是要你去求一个序列的逆序队数 看案例: 9 1 0 5 4 9后面比它小的的数有4个 1后面有1个 0后面没有 5后面1个 ...

  2. Django中的一些同步Model和数据库的命令

    1 最简单而又令人兴奋的命令: manage.py syncdb 创建了指定app中的model相应的数据库表,假设是第一次使用此命令,会提示是否创建超级用户,输入username,Email和pas ...

  3. mysql字符串替换

    数据库是Mysql的.我想把lesson表中的slide_path_dx字段中的类似 http://www.site.com/y/k/aote-02.rar 替换成E:\web\manhua\y\k\ ...

  4. OpenCms创建网站的过程示意图——专用OpenCms人们刚开始学习

    很多人听说过OpenCms,我知道它的强大,只需下载并安装,最后,我们看到了久违OpenCms,我们看到了它的简单的界面,喜悦之后,但难免困惑.如何用这个东西,我如何用它来网站,从哪里开始,无从下手. ...

  5. USACO comehome Dijkstra

    USER: Kevin Samuel [kevin_s1] TASK: comehome LANG: C++ Compiling... Compile: OK Executing... Test 1: ...

  6. unrecognized selector sent to instance 0x10b34e810

    一个错误: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSURLEr ...

  7. 线性表实现简单vector

    实现一个简单的vector Vector基于数组实现,可以复制并且其占用的内存可以自动回收(通过析构函数),可以调整Vector的大小,以及容量(容量的改变是通过为基本数组分配一个新的内存块,然后复制 ...

  8. Codeforces Round #258 (Div. 2) B. Sort the Array

    题目链接:http://codeforces.com/contest/451/problem/B 思路:首先找下降段的个数,假设下降段是大于等于2的,那么就直接输出no,假设下降段的个数为1,那么就把 ...

  9. hdu1964之插头DP求最优值

    Pipes Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  10. AC自己主动机

    AC自己主动机 AC自己主动机是KMP和Trie的结合,主要处理多模板串匹配问题.以下推荐一个博客,有助于学习AC自己主动机. NOTONLYSUCCESS  这里另一个Kuangbin开的比赛,大家 ...