五 面向对象软件开发

很多人在学完了python的class机制之后,遇到一个生产中的问题,还是会懵逼,这其实太正常了,因为任何程序的开发都是先设计后编程,python的class机制只不过是一种编程方式,如果你硬要拿着class去和你的问题死磕,变得更加懵逼都是分分钟的事,在以前,软件的开发相对简单,从任务的分析到编写程序,再到程序的调试,可以由一个人或一个小组去完成。但是随着软件规模的迅速增大,软件任意面临的问题十分复杂,需要考虑的因素太多,在一个软件中所产生的错误和隐藏的错误、未知的错误可能达到惊人的程度,这也不是在设计阶段就完全解决的。

所以软件的开发其实一整套规范,我们所学的只是其中的一小部分,一个完整的开发过程,需要明确每个阶段的任务,在保证一个阶段正确的前提下再进行下一个阶段的工作,称之为软件工程

面向对象的软件工程包括下面几个部:

1.面向对象分析(object oriented analysis ,OOA)

    软件工程中的系统分析阶段,要求分析员和用户结合在一起,对用户的需求做出精确的分析和明确的表述,从大的方面解析软件系统应该做什么,而不是怎么去做。面向对象的分析要按照面向对象的概念和方法,在对任务的分析中,从客观存在的事物和事物之间的关系,贵南出有关的对象(对象的‘特征’和‘技能’)以及对象之间的联系,并将具有相同属性和行为的对象用一个类class来标识。

    建立一个能反映这是工作情况的需求模型,此时的模型是粗略的。

2 面向对象设计(object oriented design,OOD)

    根据面向对象分析阶段形成的需求模型,对每一部分分别进行具体的设计。

    首先是类的设计,类的设计可能包含多个层次(利用继承与派生机制)。然后以这些类为基础提出程序设计的思路和方法,包括对算法的设计。

    在设计阶段并不牵涉任何一门具体的计算机语言,而是用一种更通用的描述工具(如伪代码或流程图)来描述

3 面向对象编程(object oriented programming,OOP)

    根据面向对象设计的结果,选择一种计算机语言把它写成程序,可以是python

4 面向对象测试(object oriented test,OOT)

    在写好程序后交给用户使用前,必须对程序进行严格的测试,测试的目的是发现程序中的错误并修正它。

    面向对的测试是用面向对象的方法进行测试,以类作为测试的基本单元。

5 面向对象维护(object oriendted soft maintenance,OOSM)

    正如对任何产品都需要进行售后服务和维护一样,软件在使用时也会出现一些问题,或者软件商想改进软件的性能,这就需要修改程序。

    由于使用了面向对象的方法开发程序,使用程序的维护比较容易。

    因为对象的封装性,修改一个对象对其他的对象影响很小,利用面向对象的方法维护程序,大大提高了软件维护的效率,可扩展性高。

 

    在面向对象方法中,最早发展的肯定是面向对象编程(OOP),那时OOA和OOD都还没有发展起来,因此程序设计者为了写出面向对象的程序,还必须深入到分析和设计领域,尤其是设计领域,那时的OOP实际上包含了现在的OOD和OOP两个阶段,这对程序设计者要求比较高,许多人感到很难掌握。

    现在设计一个大的软件,是严格按照面向对象软件工程的5个阶段进行的,这个5个阶段的工作不是由一个人从头到尾完成的,而是由不同的人分别完成,这样OOP阶段的任务就比较简单了。程序编写者只需要根据OOd提出的思路,用面向对象语言编写出程序既可。

原文地址:https://www.cnblogs.com/eric_yi/p/8452350.html

时间: 2024-10-13 17:45:22

五 面向对象软件开发的相关文章

c语言程序设计案例教程(第2版)代码笔记(五)-软件开发基础知识

零散知识点: 软件的主要特征 软件是一种逻辑产品,而不是有型的物质: 软件需要设计.开发,但不是传统意义上的产品制造: 软件不会磨损,但软件需要维护,即:修改代码或增加模块: 虽然软件行业正在向基于组件的组装方式发展,但是大多数软件仍旧需要定制 软件的生命周期 软件的生命周期是指从某个软件的需求被提出并开始着手开发到这个软件被最终废弃的整个过程.通常在这个过程中,包括制定计划.需求分析.系统设计.程序编码.系统测试.系统运行及维护阶段. 软件开发过程模型 软件开发过程模型是指软件开发全过程.活动

MOOC 面向对象软件开发实践之基本技能训练 第二单元作业

这几天期末考试周  bolg 比较忙 停更了几天 晚上还是抽空把金老师第二单元的作业给做了 基本功能都实现  对象多对多信息交换  对象序列化  等等内容 都一一实现了 确实对初学OOP的人来说 很有帮助  代码就不给了 很简单 自己努力google 或者留言你的问题

2018年四川理工学院软件工程考试大纲(面向对象的软件开发技术概述)

2018年四川理工学院软件工程考试大纲(面向对象的软件开发技术概述)   1.面向对象软件开发,需要建立哪三种模型 ①.对象模型(用于描述系统的数据结构,定义了系统"对谁做") ②.动态模型(定义了系统"何时做") ③.功能模型(定义了系统"做什么") 2.面向对象软件开发 对象是指生活中的具体事物,面向对象软件开发是指根据生活中具体的事物为基本单位所进行的软件开发 3.面向对象软件开发的过程 面向对象分析(OOA).面向对象设计(OOD).面向

结构化方法和面向对象方法在软件开发中的对比

学习过C语言和JAVA的同学们一定清楚,这两种语言代表了两种不同的开发方式,即以C语言为代表的结构化开发方法和JAVA代表的面向对象的开发方法.由于二者在程序结构上有着很大的区别,因此,在软件开发领域中,根据自己的需求来选择合理的开发方式就显得尤为重要. 开发软件通常有三个层次: 1.满足用户需求 2.可维护性,即可修改性,让软件能随着用户需求的变更而容易改变 3.可重用性(在其它软件中,能尽量重用该软件的模块) 通过对软件的这三个主要层次的分析,我们就能在实际开发中确定我们的选择. 结构化方法

软件开发一般分为五个阶段

软件开发一般分为五个阶段:1.问题的定义及规划此阶段是软件开发与需求放共同讨论,主要确定软件的开发目标及其可行性.2.需求分析在确定软件开发可行性的情况下,对软件需要实现的各个功能进行详细需求分析.需求分析阶段是一个很重要的阶段,这一阶段做的好,将为整个软件项目的开发打下良好的基础.“唯一不变的是变化本身”,同样软件需求也是在软件爱你开发过程中不断变化和深入的,因此,我们必须定制需求变更计划来应付这种变化,以保护整个项目的正常进行.3.软件设计此阶段中偶要根据需求分析的结果,对整个软件系统进行设

软件开发工具(五)——开发与发展

软件开发工具(五)-开发与发展 从前面我们从理论和技术方面了解了软件开发工具,现在我们一起总结总结生活中实 际的.使用者与购买这较多讨论,比如首先是购买商品化的软件开发工具还是自己研发 专用的工具呢?他的历史发展.现在的发展方向并结合Eclipse工作台来详细了解.   一.使用与开发: 1.开发还是购买权衡: 1)软件开发工作性质与要求(一般是小购,大自研发) 2)开发人员实际需要 3)工作环境 4)人员因素 2.选买之前为何要设明确.有限目标? 在选择与购置软件开发工具时,最最重要的就是设置

在你步入职业软件开发生涯那天起就该知道的五件事

这是一篇译文.个人觉得很不错,就发到博客上来了. 我的软件开发生涯开始于大约15年以前. 但是直到最近5年,我才真正地看到它的提高. 下面这些事情,我希望在进入软件开发领域时我已经知道了.如果我早点知道这些事儿,我将会变得更加成功. 1.软件开发中没有"正确的方式" 在我开发生涯的早期,我在学习和争论上浪费了大量的时间.我错误地认为,在软件开发的诸多方面都存在一种绝对"正确的方式". 但是,关于软件开发,几乎每一件我当时认为是正确的事到头来都被证明是错的. 更重要的

看《快速软件开发》的五个问题

1. 在文章的第一个关于Square_Tech的案例中,代码测试和优化都是在所有程序完成以后才进行的,这应该也不符合快速软件开发的要求吧.如果测试工程师在最开始的时候就加入到软件开发中的话,软件开发进程会不会更快呢? 2.我一直分不清楚几个PM之间的区别.虽然在网上查了一些资料,但还是不明白Product Manager 和 Program Manager之间的区别是什么.在<编程之美>一书中了解到微软中的PM属于R&D,就是说Program Manager属于研发岗,但是<移山

保证产品开发顺利实施的五个软件度量方法

开发一款高质量的软件产品属于软件工程范畴.变幻莫测的用户需求和苛刻的项目计划表很容易导致预算超支或者交付延迟.所以,项目做得越大,其功能也越复杂.正因为存在这么多因素的影响,项目质量很容易失去把控. 没有哪个工程可以离开精确的计量,而量化必须要借助一些度量方法才能实现. 因此,开发者需要一些软件度量方法来实现产品透明而又高质量的交付.因为当你在衡量你所说的话时,你需要用数字来体现你的失败或成功.你需要有一个计算公式来显示你在哪里薄弱,在哪里做得好.用Bob Parsons的话来说,"量化和监督能