软件工程、MVC设计-面向对象总结

软件工程总结

序言

主要总结这几天考过了的班级的题目。

(一) 软件工程的生命周期

软件生命周期有:问题定义、可行性研究、需求分析、概要设计、详细设计、编码与测试、综合测试、软件运行与维护

1、问题定义

确定好要解决的问题是什么,通过对客户的访问调查,系统分析员扼要的写出关于问题性质、工程目标和工程规模的书面报告,经过讨论和必要的修改之后这份报告应该得到客户的确认。

2、可行性研究

确定该问题是否存在一个可以解决的方案。这个阶段的任务不是具体解决问题,而是研究问题的范围,套索这个问题是否值得去解决,是否有可行的解决办法。可行性研究的结果是客户做出是否继续进行这项工程的决定的重要依据,一般来说,只有投资可能取得较大的效益的那些工程项目才值得继续进行下去。

3、需求分析

深入具体的了解用户的需求,在所开发的系统要做什么这个问题上和用户想法完全一致。明确目标系统必须做什么,确定目标系统必须具备哪些功能。通常用数据流图、数据字典和简要的算法表示系统的逻辑模型。用《规格说明书》记录对目标系统的需求。

4、概要设计

概括的说,应该怎样实现目标系统,设计出实现目标系统的几种可能方案,设计程序的体系结构,也就是确定程序由哪些模块组成以及模块之间的关系。

5、详细设计

实现系统的具体工作,编写详细规格说明,程序员可以根据它们写出实际的程序代码。详细设计也称模块设计,在这个阶段将详细的设计每个模块,确定实现模块功能所需的算法和数据结构。

6、编码与测试(编码占全部开发工作量的10%-20%)

7、综合测试(测试占全部开发工作量的40%-50%)

分为集成测试和验收测试。

8、软件运行与维护

通过各种必要的维护活动使系统持久的满足用户的需求。主要分为 改正性维护、适应性维护、完善性维护、预防性维护。

(二) MVC设计模式

MVC的全名是Model View Controller,是模型(Model)-视图(view)-控制器(controller)的缩写,是一种设计模式。

**使用的MVC的目的:**它将这些对象、显示、控制分离以提高软件的的灵活性和复用性,MVC结构可以使程序具有对象化的特征,也更容易维护。 关键词:**代码复用、互不干涉 **

  • Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。理解:说句人话Model就是你的数据。 换个角度的理解: Model就像我们在做web开发时,使用面向对象的形式,通过各种类来对数据库的数据进行获取,并封装在对象当中。

  • View(视图)是应用程序中处理数据显示的部分。视图就是看到的东西,就比如PHP中,写完的代码可以直接在HTMl页面中进行数据展示。

  • Controller(控制器)是应用程序中处理用户交互的部分。理解:控制器就像一个指挥官,假设我要查询用户表的信息,控制器就会让专门处理用户表的家伙去处理这个请求,控制器本身不输出任何东西和做任何处理 ,只是指挥别人干活的。

(三) 面向对象

简述:面向对象是一种编程思想。面向对象程序设计的核心思想是以对象为核心。 面向对象的三大特性:封装、集成、多态

个人觉得一个非常好的思维说法:谈谈面向对象的看法

  • 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。在实际开发中,编写一个类就是对数据和数据操作的封装, 属性用变量定义,行为用方法进行定义,方法可以直接访问同一个对象中的属性。属性私有,方法公开,这样增强了数据的安全性,封装的方法用户只需要直接调用,无需在意如何实现,增强了代码的复用性。

  • 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继 承信息的类被称为子类(派生类)。子类拥有父类的所有属性和方法(除了private修饰的属性不能拥有)从而实现了实现代码的复用,增强了代码的可拓展性

  • 多态性:父类型的引用指向子类,同一操作作用与不同类的实例,将产生不同的执行结果,即不同类的对象收到相同的消息时,将得到不同的结果。 简单的说就是用同样的对象引用调 用同样的方法但是做了不同的事情。

理解多态:

多态可以简单理解为多种形态。比如人就可以有多种形态的,可以有老师、医生、会计师、程序猿,或者是儿子、爸爸、丈夫、妻子等等角色,但是大家都是人,所以我们可以把人都有的基本属性(如姓名、性别)和基本行为(如工作)定义一个共有的类,然后再根据这个共有的父类去拓展。人有可以工作的这个行为,教师的工作是教书育人,医生的工作是治病救人,程序员的工作是是打代码,职业不同,工作的内容不同,但是执行的操作都是’工作’。也就是说,多态能够让用同样的对象引用调用同样的方法但是做了不同的事情。

(四) 软件工程的目标

目标:

软件工程的目标就是在给点成本、进度的前提下,利用蒸汽的理论和科学的方法研制、开发和生产出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性的满足用户需求的高质量软件产品。

(五) 编程设计语言的选择

考虑因素:

  1. 软件系统的应用领域,在其他条件都局部的情形下,针对某一领域,尽量选择最合适该领域的程序设计语言。
  2. 软件开发人员的水平。软件开发人员对语言的熟悉程序也是选择程序设计语言必须考虑的因素。一般情况下,如果多数编程人员不熟悉一种一眼,那么尽量不选择该语言,因为培养的成本过于庞大。
  3. 软件系统用户的需求。如果软件系统是一个新开发的软件,而用户又特别指定了某种语言,那么尽量选取合适的开发人员。
  4. 软件的可移植性。如果需要系统在不同的操作系统下运行,,或者软件产品的预期寿命较长,尽量选择可移植性较高的程序设计语言。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值