`
isiqi
  • 浏览: 16025838 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论
阅读更多


第一章
主要知识点:
软件:(三部分)

1.运行当中的指令集(程序);

2.似的程序正常运行的数据结构;

3.文档。

软件特点:逻辑实体,具有抽象性;通过人们智力活动把知识与活动转化为信息的一种产品;没有“季节摸准”;开发和运行守硬件限制;开发费用越来越高;没摆脱手工操作。

软件分类:不同标准不同分类。
功能、规模、使用频率。

软件工程:定义比较多,是指导计算机的软件开发和维护的一个工程学科。通过工程的概念原理来开发维护软件,把经过实践考验而证明正确的管理技术,和当前最好的管理方法结合起来。

软件工程研究目标:

1.定义良好方法学,面向计划,开发维护整个软件生命周期;

2.确定软件成分,记录软件生存周期每一步的文档;

3.可预测的结果。

软件工程最终目标:较少的投资获得容易维护、易理解、高效率的软件。

软件工程原则:

1.分解(问题分解);

2.独立性;

3(描述),一致性;

4.确定性。

软件工程的原理:

1、分阶段的生命周期计划严格管理(按照瀑布模型划分阶段);

2.坚持阶段评审;

3.严格的产品控制;

4.采用现代程序设计技术(结构化、模块..);

5.结果能清楚地审查;

6.合理安排软件开发小组的人员。

软件的生存周期:时间角度来说软件开发与维护,将软件生存漫长的周期分解为若干阶段,每个阶段都有相对独立的任务,慢慢完成任务。使用到维护最后废弃。
分为六个阶段:
1.问题定义(问题的定义域),问题的描述;

2.需求分析,可行性研究(四个方面:经济、技术、法律、操作可行性);

3.设计(两部分:详细、概要);

4.编码(实现);

5.测试(单元、集成、确认、系统测试);

6。运行与维护。
(三大阶段:计划阶段、开发阶段、维护阶段)

软件危机:软件开发和维护过程中遇到的严重问题,现有技术不能很好的解决。

软件危机的表现:

1.产品不合用户需要;

2.软件开发生产率满足不了用户需求,远远低于硬件发展,软件开发滞后于硬件发展;

3.质量不可靠,非常差;

4.软件开发成本和估算不准确,一般估算误差不超过20%;

5.软件可维护性差;

6.文档不合格;

7.软件的价格成本逐年上升。

软件危机的原因:

1.从软件特点看它不同于硬件,属于逻辑部件;

2.给开发和估算带来不确定性;

3.开发管理人员只重视开发,轻视了定义,或开发手段比较单一。

软件开发模型:主要是,瀑布模型(特点、基本思想,功能、不足,)、螺旋模型、圆形开发。(注意:开发模型的设计思想和特点)


第二章 可行性研究

重点掌握:系统流程图;
一般掌握:可行性研究的任务和步骤、成本效益分析(软件项目管理中提到一些算法);

系统流程图:描述物理系统的传统工具,用符号,以黑盒子形式描述内层部件。
表达部件的信息流程,而不是对信息控制加工的过程。

系统流程图功能:

1.制作过程是系统分析人员全面了解系统的过程;

2.是系统分析人员、系统管理人员、开发人员沟通的工具;

3.系统分析员画出可以计算机处理的部分;
4,分析业务流程的合理性。

可行性研究的任务:技术、经济、法律、操作(运行)角度研究。

可行性研究步骤:(基本是9个步骤)

成本效益分析:主要目的是从经济角度分析开发的新系统是否可行。

成本的估算:自顶向下、自底向上、算法模型估算(中级模型,静态单变量、懂太多变量)。

度量方法:投资回收率、纯收入等。

任务分解技术:40% 20% 等。

(注意:货币的时间价值法,列表回答问题,会计算。)
(可行性分析报告的格式)


第三章 需求分析
在我们设计开发的时候,可行性分析进行获得认可后进行需求分析。
重点掌握:需求分析的方法、面向数据流的分析方法。
一般掌握:需求分析的任务和原则。

需求分析的方法:数据域、功能域进行描述,这种方法表示系统逻辑视图、物理视图。多是通过数据流来描述。
特性:

1。支持数据域分析的机制;

2.功能表示的方法;

3.接口的定义;

4.问题分解的机制,以及对抽象的支持;

5.逻辑视图、物理视图;

6.系统的抽象模型。

面向数据流的分析方法:结构化分析方法(使用DFD,DB数据字典来描述)。
适合数据处理类型软件描述
特点:简抽象,自顶向下,逐步细化。
注意:图的画法:数据字典的描述(格式)

需求分析任务:

1.准确回答系统必须做什么,综合需求,(功能、性能、运行和将来可能提出的一些需求。);

2,分析数据需求,逻辑模型进行分析,导出系统的逻辑模型(通过现有的物理模型推断系统的逻辑模型);

3.成本

4.修正系统开发计划;

5,开发原型系统,对修正好的开发计划迅速构造一个样机,来反复运行测试。


需求分析四个步骤:调查研究、分析综合、书写文档、需求分析的评审。

需求分析的原则:

1.表达理解数据域和功能与;

2.自定向下逐层分解,

3.给出系统逻辑、物理视图。

数据流图的定义:描述数据处理过程的一个工具。

数据流图的含义:从数据传递到加工的角度,以图形方式可画数据流,从输入到输出的一个传输 变化的一个过程,表示系统内部信息流向和逻辑处理的功能。

数据流图的特性:抽象、概括、层次。

数据流图的基本符号:

数据流与加工之间的关系:分层来画,注意编号。

数据流图的作用:自顶向下的分析系统流程;图上可以画出可以计算机处理的部分;进一步做数据分析;根据数据流向定出数据存储方式。
不足:不直观。
画法:自外向内、自顶向下。
需求分析的评审:一般从从一致性、完整性、现实性和有效性,角度分析评审软件需求的正确性。


第四章 概要设计

重点掌握:设计的过称和方法;
一般掌握:设计文档和评审;
概要设计任务:系统分析员审查软件计划、软件需求分析提供的文档,提出最佳推荐方案,用系统流程图,组成系统物理元素清单,成本效益分析,系统的进度计划,共专家审定,审定后进入设计;
确定模块结构,划分功能模块,将软件功能需求分配给所划分的最小单元模块;
编写概要设计说明书,用户手册,测试计划,选用相关的软件工具来描述软件结构,结构图是经常使用的软件描述工具。

概要设计过程:概要设计要先进性系统设计,复审系统计划于需求分析,确定系统弄个具体的实施方案;然后进行结构化设计,确定软件结构。

几个概念:模块化、抽象(对每个事物抽取最本质的,信息隐蔽、信息局部化)、模块独立性(每个模块内部子功能)、耦合(模块间的连接紧密程度)、内聚(模块内部)。


逻辑结构设计的原则:逐渐提高模块独立性的成分,改进软件结构,模块规模适度,扇出扇入都有要求,尽量降低模块接口复杂性。

面向数据结构的分析设计方法:
1.Jackson系统开发方法:JSD 是一种典型的面向数据结构的分析设计方法,它是以信息驱动的,是将信息转换成软件的程序结构。
2.Warnier方法:另一种面向数据结构的设计方法,又称逻辑结构程序的方法。

第五章 详细设计
重点掌握:详细设计的任务和方法
一般掌握:详细设计的原则以及详细设计规格与评审

主要知识点:
详细设计的任务:

1.为每一个模块确定采用的算法;

2.确定每一个模块使用的数据结构;

3.确定模块接口的细节(包括系统用户接口和外部接口);

4.要为每一个模块设计一组测试用例。

详细设计的方法:程序流程图;N-S图;PAS图。顺序选择循环三种结构。
HIPO图是改进的IPO图,IPO图由输入、处理和输出的三个框组成。
详细设计的规模与评审:

第六章 面向对象的分析方法
重点掌握:面向对象的基本概念和特征
一般掌握:面向对象的分析方法

面向对象的基本概念:一整套如何看待软件系统与世界的关系,运用对象、消息传递、类、继承、封装、聚合、多态性的概念来构造系统的软件开发方法。
从问题域中客观问题出发抽取我们的对象,对象的属性与服务结合为一个实体,这就是封装。

面向对象方法的基本特征:
1.从问题域中客观存在的事物出发来构造软件系统,用对象作为对这些事物的抽象表示,并以此作为系统的基本构成单位。
2.事物的静态特征用对象的属性表示,事物的动态特征用对象的服务表示。
3.对象的属性与服务结合为一体,成为一个独立的实体,封装起来,对外屏蔽其内部细节。
4.对事物进行分类。
5.通过在不同程度上运用抽象的原则,得到较一般的类和特殊的类。特殊类要继承全部一般类的属性。
6.复杂的对象可以用简单的对象作为其构成部分,称为聚合。
7.对象之间通过消息进行通信,以实现对象之间的动态联系。
8. 通过关联表达对象之间的静态关系。


面向对象的分析方法:OOD
面向对象的设计方法:
主动对象被动对象,动态模型静态模型。


第七章 编码
重点掌握:程序设计语言的特点,编程风格,程序效率和编程安全。
一般掌握:面向对象程序设计步骤。
主要知识点:
程序设计语言的特点:名字、类型说明、初始化、程序对象的局部性、程序模块、循环控制结构、分支控制结构、异常处理、独立编译。

编程风格: 。
数据说明:
语句结构:少用goto。
源程序的文档化:注释和一些版本。
编程安全、
面向对象程序设计步骤:
软件系统的动态模型、静态模型、最后的实现

第八章 软件质量与质量保证
重点掌握:软件质量的有关概念、结构化的软件测试。
一般掌握:软件维护过程。

软件质量:

1.软件需求是度量软件质量的基础。不符合需求的软件就不具备质量。

2.在各种标准钟定义了一些开发准则,用来指导软件人员用工程化的方法来开发软件。

3.往往会有一些隐含的需求没有明确提出来。

软件质量保证策略:
1.审查;

2.复查和管理复审;

3.测试。

结构化的软件测试:
测试:用已知的输入在已知的环境中动态的执行系统,查看产生的结果与预期结果误差有多大。

软件测试:主要是对软件的计划、编码进行测试。
程序测试:主要是对代码进行测试。

测试的原则:

1.测试之前认定被测的软件有错,不要认为软件没有错;

2.要预先确定被测的软件的测试结果;

3.要尽量避免测试自己编写的程序(这是在集成测试,单元测试还是要自己测试);

4.测试要兼容合理输入数据;

5.测试要以软件需求规格说明书为标准;

6.要明确找到的新错与已找到的旧错成正比;

7.测试是相对的,不能穷尽所有的测试,要据人力物力安排测试,并选择好测试用例与测试方法;

8.测试用例留作测试报告与以后的反复测试试用,重新验证纠错的程序是否有错。

测试方法:静态分析技术、动态分析技术、白盒法(针对结构逻辑)、黑盒法(针对功能)。首选黑盒测试,然后是白盒测试。

软件测试步骤:

1.单元测试,驱动模块和桩模块;

2.集成测试(组合测试),消除接口问题;

3.确认测试(验收测试或合格性测试);

4.系统测试(恢复测试、安全测试、强度测试、性能测试等这都是针对某项具体的,有针对性的。)。

软件的维护、软件维护的种类。
软件维护:人们在程序运行和维护阶段对程序的修改就是维护。
维护种类:改正性、适应性、完善性。

维护的问题:多是定义计划和开发方法存在问题。

软件维护的步骤:分析和理解程序;修改程序;重新验证程序。


第九章 项目计划与管理

重点掌握:软件项目特点及软件管理功能;
一般掌握:软件配置管理过程;
主要知识点:
软件项目特点:

1.智力密集,可见性差;

2.单件生产;

3.劳动密集,自动化程度低;

4.使用方法繁琐,维护困难;

5.软件工作渗透了人的因素。

软件管理的功能:制定计划;建立组织项目;配备人员。

关于SCM 软件配置管理 考虑的一些问题:
采用什么样的方式标识和管理许多已存在的程序的各种版本?
使得变化能够有效的实现?
在软件交付用户之前和之后,如何控制变化?
谁有权批准和对变化安排优先级?
如何保证变化得以正确的实施?
利用什么办法估计变化可能引起的其它问题?

拔高思考题:
一、了解软件的概念、特点、分类方法?
二、了解软件的发展和软件危机的起因?
三、了解软件工程的概念以及基本目标和原则?
四、了解软件需求分析的目标和任务?
五、了解软件需求的获取方法?
六、了解知识需求分析的原型化方法?
七、掌握模块化划分的准则。
八、掌握结构化设计的方法。
九、掌握常用详细设计表达方式。
十、什么是结构化程序设计,它的原则是什么?
十一、掌握环域的方法,及特点。
十二、软件测试的目的和原则。
十三、了解软件测试的过程和策略。
十四、软件测试的用例的设计方法。
十五、了解软件质量的定义。
十六、软件维护的类型和策略。
十七、面向对象的基本概念。
十八、了解面向对象的OMT方法。
十九、了解成本估算的一些概念和一些方法。
二十、了解风险管理、种类。
二十一、了解软件进度安排方法,及使用工具。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics