软件:是在计算机系统的支持下,能够完成特定功能和性能的程序、数据和相关文档。
软件危机:软件危机是指由于落后的软件生产力方式无法满足迅速增长的计算机软件应用需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
软件工程:将系统的、规范的方法应用于软件的开发、运行和维护的过程及上述方法的研究。
软件架构:是指一系列抽象模式,用于指导大型软件的各个方面的设计。
MVC架构:指 Model-View-Controller 三层架构。其中 Model 管理义务数据,Controller 管理用户的输入输出,View 管理界面,常常应用于应用软件的开发,能有效降低耦合提高内聚,达到高效复用的目的。
CQS架构:指的是 command query Separation 架构,将系统的查询功能与其他能够修改状态的功能分离,这样能够更好地把握细节,理解哪些操作会改变系统的状态。有效降低耦合,提高内聚。
设计模式:是指以设计复用为目的,采用一种良好定义的、正规的、一致的方式记录的软件设计经验总结。
交互图:描述对象之间通过消息传递进行的交互与协作。
软件生命周期:是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、编码、调试和测试、验收与运行、维护升级到废弃等阶段。
软件开发模型:是软件开发过程、活动和任务的结构框架
RUP:统一软件开发过程,是一个面向对象且基于网络的程序开发方法论。它描述了如何利用商业的有效的办法开发和部署大型软件,因此特别适用于大型软件开发项目。
具体流程有四步:
- 初始:为项目建立构想、范围和初始计划
- 细化:设计、实现、测试一个健全的体系结构并完成项目计划
- 构造:构造第一个可工作的系统版本
- 移交:把系统交付给它的最终用户
软件需求:是指用户为解决某个问题、或为实现某一目标,要求软件必须满足的条件或能力。软件需求的分为业务需求、用户需求、(功能需求和非功能需求)三个层次。
数据字典:是各类数据描述的集合。一个好的数据字典是一个数据标准规范,可以使数据库的开发者依此来实施数据库的建设、维护和更新,从而减低数据库的冗余度并增强整个数据库的完整性。
参与者:指将要与软件系统交互的外部实体
用例:用例是系统中的一个单元,是软件工程中通过用户使用场景获取需求的技术。
测试用例:是为特定的目的而设计的一组测试输入、执行条件和预期的结果。测试用例是执行的最小实体。
UML:(Unified Modeling Language,统一建模语言),是一种用于提取OOAD(面向对象分析和设计)过程的产物的图形化语言,它为交流面向对象的设计中的需求、行为、体现结构、和实现提供了一套综合的表示法。
驱动模块:是在进行单元测试是所设置的一种辅助测试模块,它用来模拟被测试模块的上一级模块,相当于被测试模块的主程序。
模块独立性:指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。
耦合:也称块间联系,指软件系统结构中各模块间相互联系紧密程度的一种度量。
内聚:又称块内联系,指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(如程序段之间)联系的越紧密,则它的内聚性就越高。
软件测试:是通过人工或者自动化的检测方式,检测被测对象是否满足用户要求或弄清楚预期结果与实际结果之间的差异,是为了发现错误而审查软件文档、检查软件数据和执行程序代码的过程。
黑盒测试:又称为功能测试或数据驱动测试。它是在已知软件所应具有功能的前提下,通过测试来检测每个功能是否都能正常使用。
白盒测试:也称结构测试或逻辑驱动测试。它是在已知程序内部结构和处理过程的前提下,通过测试来检测程序中的每条路径是否按预定要求正常运行。
四种软件维护:
1. 改正性维护:系统写算法时候出了bug
2.适应性维护:为了适应外界环境而做出的调整
3.完善性维护:增加新功能
4.预防性维护:主动性的预防措施