答:①软件具有抽象性、②软件的生产与硬件的制造不同、③软件会退化、④软件的开发尚未完全摆脱手工艺的开发方式、⑤软件开发和运行必须依附于特定的计算机系统环境
答:①用分阶段的生命周期计划进行严格的管理
②坚持进行阶段评审
③实行严格的产品控制
④采用现代程序设计技术
⑤软件工程结果应能被清楚地审查
⑥开发小组的人员应该少而精
⑦承认不断改进软件工程实践的必要性
答:过程、方法、工具
答:①结构化方法
②面向数据结构方法
③面向对象方法
④形式化方法
答:软件产品的生命周期是指从设计该产品的构想开始,到软件需求的确定、软件设计、软件实现、产品测试与验收、投入使用以及产品版本的不断更新,到最终该产品被市场淘汰的全过程。软件生命周期这个概念从时间的角度将软件的开发和维护的复杂过程分解为了若干个阶段,每个阶段都完成特定的相对独立的任务。由于每个阶段的任务相对于总任务难度会大幅度降低,在资源分配、时间把握和项目管理上都会比较容易控制。合理地划分软件生命周期的各个阶段,使各个阶段之间既相互区别又相互联系,为每个阶段赋予特定的任务。
答:业务建模、需求、分析和设计、实现、测试和部署
答:核心价值观:
①个体与交互高于过程和工具
②可运行软件高于详尽的文档
③与客户协作高于合同(契约)
④对变更及时响应高于遵循计划
体现:
敏捷方法对传统方法的“反叛”体现在以人为中心,不再依靠文档来控制过 程,认为传统过程过于僵化,文档繁琐,主张对传统过程“瘦身”,在上述价 值观的支配下,做到能够为准。
答:需求分析是一个非常重要的过程,它完成的好坏直接影响了后续软件开发的质量。
答:结构化的需求分析方法是一种面向数据流的需求分析方法,其中数据作为独立实体转换,数据建模定义了数据的属性和关系,操作数据的处理建模表明当数据在系统流动时处理如何转换数据。
答:数据字典用于定义数据流图中各个图元的具体内容,为数据流图中出现的图形元素做出确切的解释。
答:软件设计就是要把需求规格说明书中归纳的需求转换为可行的解决方案,并把解决方案反映到设计说明书里。需求分析回答软件系统能“做什么”的问题,而软件设计就是要解决“怎么做的问题”。
答:模块是数据说明、可执行语句等程序对象的集合,是构成程序的基本构件,可以被单独命名并通过名字来访问。
模块化是把系统或程序划分为独立命名并且可以独立访问的模块,每个模块完成一个特定的子功能。
软件模块化的目的是建立可重用的软件组件,在不需要修改或仅作少量修改的情况下,可再次用来组建新的软件系统,提高软件的开发周期和可靠性。
答:主要是指依据一定的映射规则,将需求分析阶段得到的数据描述、系统的输入端到输出端所经历的一系列变换或处理的数据流图转换为目标系统的结构描述
答:可以清晰地表示层次结构,易于对自顶向下的结构进行描述;
结构易懂、易用,并且比较直观、形象;
不仅可以表示数据结构,也可以表示程序结构;
答:面向对象的方法是为了模拟现实世界,使各种不同的现实世界系统在计算机中得以实现,进而为工作、学习、生活提供帮助
面向对象的特点:
答:UML的作用:UML是一种通用的可视化建模语言,可以用来描述、可视化、构造和文档化软件密集系统的各种工作
UML的优点:
答:类之间的外部关系:关联、依赖、泛化、实现
关联:表达模型元素间的一种语义关系
依赖:表示的两个元素之间语义上的联系
泛化:描述类的一般-特殊关系
实现:将一个模型连接到另外一个模型
答:①首先要找到系统的操作者,既用例的参与者
②可以把参与者执行的每一个系统功能都看作一个用例
③确定了系统的所有用例之后,就可以开始识别目标系统中的对象和类了,把具有相似属性和操作的对象定义为了一个类
答:动态模型描述对象和关系的状态、状态转换的触发事件、对象的服务(行为)。
答:对象模型描述了现实世界中的“类与对象”以及它们之间的关系,表示了目标系统的静态数据结构
答:功能模型表明了系统中数据之间的依赖关系,以及有关的数据处理功能,它由一组数据流图组成
答:规范软件开发的基础结构;便于开发人员与用户的沟通;模块化、层次化设计,有利于减少返工,提高效率;便于系统开发前期、后期的筹备与服务
答:软件质量属性是指软件系统在其生存周期过程中所表现出的各种特征
答:
答:MVC可以最大化地重用代码,且灵活性极高
答:①模块化、②抽象化、③信息隐藏、④低耦合、⑤高内聚、⑥复用性
答:系统设计关注于确定实现系统的策略和目标系统的高层结构。
对象设计以问题域的对象设计为核心,其结果是一个详细的对象模型
答:重要性:具有良好编程风格的源程序具有较强的可读性、可维护性、同时还能提高团队开发的效率。良好的个人编程风格是一个优秀程序员素质的一部分。
<2>①版权和版本声明、②程序版本、③注释、④命名规则、⑤数据说明、⑥语句构造、⑦输入\输出、⑧效率
答:①机器语言
优点:执行速度快
缺点:对程序员的要求较高,花费时间长,直观性差,容易出错
②汇编语言
优点:可高效地访问、控制计算机的各种硬件设备
缺点:不能直接识别汇编语言
③高级语言
优点:易懂、易记、易改、移植性较强
缺点:经过解释或编译才能被计算机识别、执行,其效率比汇编语言还低
④超高级语言
优点:易懂、易记、易改、移植性较强
缺点:经过解释或编译才能被计算机识别、执行,其效率比汇编语言还低
答:注释有利于软件开发人员之间以及开发人员和用户之间进行交流的重要途径,有利于日后的软件维护。