步骤

 

1 软件过程:

 

1软件的定义

2可行性研究:技术、经济、运行和法律可行性

3需求分析:研究系统需要做什么

4概要设计:设计软件系统结构,数据结构,数据库。完成设计文档

5编码:

6测试

7维护和管理

 

2 软件=程序、数据、文档。分为系统软件和应用软件。

3 软件工程:指导软件开发和维护的,按工程化的原则和方法组织软件开发,解决软件危机

4 软件危机:不能满足需求,开发成本超标,质量不足,不好维护,速度慢

 

5 软件工程的基本原理

 

严格控制每个阶段生命周期

每隔一段时间进行评审

采用现代程序设计技术

开发小组人员少而精

不断改进

 

设计准则:

模块化:把程序分成可独立访问的模块,每个模块完成一个子功能。

抽象:抽象出事物特性,从而构成类

信息隐藏:(封装)只知道方法,但是不知道实现细节

低耦合,高内聚

 

6 典型模型:

瀑布模型

软件工程知识点总结

 

线性模型、整体开发模型。

优点:原理简单、各个阶段都有验证和确认

缺点:不能适应用户的需求变化、返回上一级代价很大、线性的开发模型,回溯性差

场景:希求明确的中小型软件开发

 

 

快速原型模型:

 

优点:增强了开发者与用户间的交流,用户可以即使发现问题

缺点:缺乏强有力的软件工具和开发环境,对设计人员水平要求高

场景:需求模糊的小型软件开发

 

渐增模型

软件工程知识点总结

 

重复执行的多个瀑布模型

优点:可分批次提交软件产品,以组件为单位进行开发

缺点: 对整个的需求没有一个完整的定义,所以给总体设计上带来麻烦

新开发一个构建然后继承到现有的结构时,不能破坏原有的产品

使用:容易分块的大型软件开发

 

喷泉模型

 

软件工程知识点总结

 

各阶段相互重叠,并行性软件开发

以分析为基础,资源消耗呈塔形,在分析阶段消耗资源最多。

场景:面向对象的软件开发。

 

螺旋模型:

软件工程知识点总结

典型的迭代模型,是风险驱动模型,用于面向对象开发

优点:灵活,可以在项目各个阶段进行变更。客户始终参与各个阶段的开发,保证满足要求

缺点:迭代次数过多,可能会导致开发成本的增加,延迟提交时间。

场景:风险比较大的大型软件开发

 

软件工程知识点总结

 

7 软件开发方法:

1 结构化方法:按功能分解成一个个的结构,可重用性差。

2 面向对象方法:(对象+类+继承+消息传递)用对象分解取代结构化方法的功能分解,把所有对象分成类,把若干个相关的类组织成具有层次结构的系统,下层的类继承上层的类所定义的属性和服务。对象之间通过发送消息进行联系。

 

优点:开发软件时,可以重复使用对象和类,降低了成本。适应需求变化、稳定性好、可用性好、可维护。

 

 

 

结构设计:

耦合性:模块之间相互依赖的紧密程度。取决于模块之间接口的复杂程度。模块之间联系越少,耦合性越低,这也是系统想要的

内聚:是一个模块内部各个元素之间的紧密程度。一个理想的模块只完成一个功能,所以应尽可能高内聚。

 

应该达到:高内聚,低耦合:

面对对象:

 

掌握面向对象的基本概念;(135)

理解面向对象与面向过程的区别;

UML

熟悉静态建模和动态建模的方法;

 

什么是面向对象:面向对象是模型化。抽象出一个类,然后封装。需要什么功能直接使用就可以了。

 

面向对象的三大特点:封装。继承。多态:

 

C语言面向结构,c++和java 是面向对象的。提出struct 或者class , 有这些操作,把性质功能封装在一起。 C语言没有把操作封装在一起。

 

面向对象 = 对象+类+继承+消息传递

原则:模拟人的习惯的思维方式,

 

Java 的接口和类的区别:接口中的操作只有一个名字,继承下来必须实现,类里面方法都写了,直接使用就可

 

对象:由属性和一些方法组成。

类class:一些对象的集合,这些对象有相同的属性和服务。(指明了属性和方法)对象相当于类的一个实例。 比如animal 和 dog的区别

封装encapsulation:信息隐蔽技术:封装让对象称为两个部分,接口部分和实现部分。用户可以看到并访问接口,但是实现部分看不到。

继承性:父类和子类之间共享数据和方法的机制。

       新类可以在已有的类的基础上进行,可以直接继承这个类的属性和方法。

多态:同一个事件发生在不同的对象上会产生不同的结果

重载:不同的函数使用相同的函数名,但是函数的参数个数或类型不同。调用的时候根据函数的参数来区别不同的函数

 

类和类之间的关系:关联、继承、实现

 

UML

 

例图use case diagram:有小人和圆圈组成的,表示系统实现什么功能,不关心怎么实现的

静态图:

类图:由一些矩形和线条组成,分别表示类 以及类和类之间的关系(关联,继承,依赖等)

对象图:是类图的实例,展现了一组对象和他们之间的关系。

动态图:

时序图Sequence diagram:描述一组对象和它们之间如何进行消息传递的.时序图强调消息传递的时间顺序

协作图:描述对象之间交互关系,哪些对象之间有消息传递

实现图:描述系统的物理实现

 

测试:

步骤:分析需求,制定测试计划,编写测试用例,测试,提交错误报告,生成测试总结。

 

白盒测试:结构测试。测试人员根据程序内部的逻辑结构及有关信息设计测试用例。对所有的逻辑(真假)取值都要测试一次。检查是否都按预定的要求正确地工作。

 

用于:对模块的测试

 

黑盒测试:行为测试。把测试对象看做一个黑盒子。测试人员完全不考虑程序内部的逻辑结构特性,按照说明书检查功能是否复合要求。

可用于各种测试。用于发现功能是否一楼,界面错误等

 

测试步骤:模块测试 子系统测试 系统测试 平行运行

 

开机:BIOS 然后加载到内存。

 

面向对象设计的准则

  • 模块化
  • 抽象
  • 信息隐藏(封装)
  • 低耦合度
  • 高内聚

 

相关文章: