一、软件工程
软件危机:开发软件所需高成本和产品的低质量之间有着尖锐的矛盾。
所有软件过程包括的四个基本活动:软件描述、软件设计和实现、软件有效性验证、软件进化。
软件生命周期包括软件定义(包括可行性研究、计划、需求分析)需求分析、软件开发(包括设计、实现、测试)、软件运行维护,其中所花费用最多的阶段是软件维护。
二、软件性能
软件重用是提高软件开发生产率和目标系统质量的重要途径。
提高软件系统可靠性的手段:在客户端层设置本地化缓存、在数据库层设置分布式存储、为关键算法设置冗余。
KLOC:thousand lines of code,千行代码数。
对相同软件,如果模块数量增多,当模块数量处于某个区域时,达到最低的软件成本。
二、软件定义
功能需求描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。非功能需求是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。
原型模型的好处是能够在软件开发的早期帮助开发人员弄清用户的需求。快速原型模型的主要特点之一是及早提供工作软件。
范围说明书是项目队伍与项目客户之间通过确定项目目标及主要的项目可交付成果而达成协议的基础。
三、软件设计
软件设计包括软件的结构设计、数据设计、接口设计和过程设计。结构设计定义软件系统各主要部件之间的关系,数据设计将模型转换成数据结构的定义,接口设计定义软件内部、软件和操作系统间及软件和人之间如何通信,过程设计描述系统结构部件转换成软件的过程。
概要设计确定模块的功能和模块的接口,结果是提供一份模块说明书。详细设计确定每个模块的算法设计。软件详细设计主要采用的方法是结构化程序设计。
1、面向对象程序设计
面向对象方法:从事物的组成部件及每个部件的属性、功能来认识事物。
UML建模时常见的9种图:用例图、类图、对象图、活动图、状态图、时序图、协作图、组件图、部署图。
2、结构化程序设计
结构化程序设计主要强调程序的可读性。
程序的三种基本控制结构(顺序结构,选择结构,循环结构)的共同特点是只有一个入口和一个出口。
四、设计模式
设计模式分为三大类:
创建型模式:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
1.装饰者模式
装饰者模式动态地给一个对象添加一些额外的职责,就增加功能来说,比继承更灵活,是继承关系的一种替代方案。
适合使用装饰者模式的场景:
1、需要动态的、透明的为一个对象添加和撤销职责,即不影响其他对象。
2、需要增加由一些基本功能的排列组合而产生的非常大量的功能,从而使继承关系变的不现实。
2、策略模式
策略模式:许多相关类仅仅是行为有差异,核心是采用面向对象的多态性的思想,需要经算法和对象分开,使得算法的变化可独立于使用它的客户,避免暴露复杂的、与算法相关的数据结构。
五、软件测试
详细设计:单元测试;
概要设计:集成测试;
需求文档:确认测试,系统测试;
用户需求:验收测试。
六、软件维护
软件维护的副作用:因修改软件而造成的错误或其他不希望出现的情况。
七、框架
mvc框架:
模型 ( Model )表示数据以及处理数据的业务逻辑;视图 ( View ) 是对模型的(可视化)展示,它渲染模型的结果,典型的是一个用户接口元素(user interface element);控制器介于用户和系统之间,它接受用户的输入,指挥着模型和视图来完成输入对应的任务。
八、辨析
游戏软件与通用软件的区别:
1、通用软件中用户操作可预期,游戏软件很多需求不可预期。例如游戏平衡总是相对的。
2、通用软件开发过程中需求变更少,游戏软件开发过程中需求变更快。