美文网首页软件工程
理解软件工程

理解软件工程

作者: 江小强 | 来源:发表于2017-12-17 10:56 被阅读0次

软件工程就是经过时间考验、实践证明的思想和方法论的集合,是一门经验学科。

1 例如软件的生命周期

问题定义与可行性分析、需求分析、设计、编码、测试、运维,。

2 面向对象编程的原则

2.1 “开放-封闭”原则(The Open-Closed),简称开闭原则

开闭原则我认为可以算是两个设计原则,不过它们两个是相关的罢了。

开放(面向扩展:开放):指的是模块行为必须是开放的、可扩展的。

封闭(面向修改:封闭):指的是尽量不要修改旧的代码(以免影响系统其它部分的运行)。

举个栗子,现在有这样一个需求,要设计一个“人吃饭”的系统,“人”,他拥有吃饭的这个方法,他还要依赖于“饭”这个类。我们一般会想着像下面这样写:

Public class CookedRice{}

public class peopl{

//...

public void eatCookedRice(CookedRice cookedRice){

//吃饭...

}

}

可是在软件的生命周期内,因为用户的需求的变化、或是对原有系统进行优化升级、维护时,例如我们人不仅是吃米饭,现在系统要求还得吃水果,则需要对软件原有代码进行修改,这是可能会给旧代码引入错误,也可能会使我们不得不对整个功能进行重构,并且需要对重构后的代码再重新进行测试,这是违反软件工程的主要矛盾软件复用的,因此,我们在进行“软件设计”生命周期阶段时一定要注意这个问题,一个健壮的系统离不开一个好的架构设计。于是我们上面的代码应该改成如下写法:

Public interface food {}

Public class CookedRice implements food{}

Public class Fruit implements food{}

public class peopl{

//...

public void eatFood(food food){

//吃食物

}

}

无论以后我们人是想吃什么都可以不用改变旧代码,只需要将吃的东西实现food接口就可以直接吃了。

因此我们在进行面向对象程序的软件设计时要以面向扩展开放、面向修改封闭的原则来进行软件设计。

如果有什么地方理解错误的,还请指出,共同进步,感谢。

2.2 单一职责原则

类的的职责必须是原子的、单一的。

2.3 接口隔离原则

将臃肿的一个接口拆分为多个独立的接口,从而使得实现接口的类不必实现冗余的方法。

2.4 依赖倒置原则

顶层设计不能依赖于底层实现,底层实现依赖于顶层设计;抽象不能依赖于具体,具体需依赖抽象;也就是我“人吃食物”不能依赖于“人吃米饭”。解决方案是,上下层共同依赖于接口,上层调用接口,下层实现接口。

相关文章

  • 软件测试工程师所需要具备的软件技能是什么?

    软件工程技能可以分成三大块:理解软件工程的规则,了解计算机编程和操作系统知识。 理解软件工程“规则”。...

  • 理解软件工程

    软件工程就是经过时间考验、实践证明的思想和方法论的集合,是一门经验学科。 1 例如软件的生命周期 问题定义与可行性...

  • 第 1 章 概述

    简介 本章目标是介绍软件工程的概念。读完本章将会: 理解软件工程是什么 理解开发不同类型的软件系统可能需要不同的软...

  • 软件工程的理解

    1,管理,沟通,流程化管理 2,学习他人架构设计,易维护 3,熟悉业务,画流程图,熟悉本公司对自己有帮助

  • Part2 基础理论

    01 | 到底应该怎样理解软件工程? 什么是软件工程? 什么是工程,有人参与、有计划、有步骤地造一件产品,我们通常...

  • 对软件工程的理解

    软件:是客观世界问题空间与解空间的具体表达;它追求表达能力强、更符合人类思维模式,具有构建性和易演化性的计算模型。...

  • 《软件工程》考后感

    《软件工程》是我看的第三科,用了5天左右,《软件工程》是这次自考里名词概念最多的一科,而且理解难度不亚于《...

  • 软件工程

    对软件工程的理解软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。 典型设计模式设计模式...

  • 面试问题(四)

    16、说说主流的软件工程思想(如CMM、CMMI、 RUP XP PSP.TSP等)的大致情况及对他们的理解 CM...

  • 怎样学好软件工程

    软件工程知识架构 在《软件工程——实践者的研究方法》这本经典软件工程教材中,作者 Roger S.Pressma...

网友评论

    本文标题:理解软件工程

    本文链接:https://www.haomeiwen.com/subject/eajywxtx.html