注意:(暂未完善)根据来自于大数据专业画的重点,罗列了相关知识点、部分视频链接和习题,时间仓促,难免有小差错,望联系指正!
一、题型
简答题(30分 5,6个) 分析与设计题(70分)
- 简答题:都是比较大的概念,软件的定义、过程模型及各个阶段、敏捷开发、构建和模块、耦合与内聚
- 分析设计题:比较活,需求分析、识别用例、用例描述、用例叙述、uml设计、建模、画图的元素要对(实线、虚线、形状)、多写字
二、简答题(暂未完善,注意最小必要概念)
1.软件的定义
- 软件是计算机系统中与硬件相互依存的另一部分,它包括程序、数据、以及其他文档的完整结合。程序是指可完成预期功能和性能的可执行指令序列;数据是程序能够适当处理信息的程序集合;文档是开发、使用、维护程序所用到的图文资料。
2.过程模型及各个阶段
软件过程模型又叫软件开发模型,它是软件开发全部过程、活动和任务的结构框架。典型的软件过程模型有瀑布模型、增量模型、演化模型(原型模型螺旋模型)、喷泉模型、基于构建的开发模型、形式化方法模型、统一过程模型、敏捷方法等等。
各个阶段:沟通、策划、建模、构建、部署。
3.什么是敏捷开发?(第三章)
- 总述:以人为核心的、迭代、循序渐进的开发方法。
4.构件和模块(第十章)
构件
系统中模块化的、可部署的、可替换的部件,该部件封装了实现并对外提供一组接口。
三种构件:控制构件、问题与构件、基础设施构件
设计基于类的基本设计原则:
开闭原则(Open-Cloased Principle,OCP):模块(构件)应该对外延具有开放性,对修改具有封闭性。
Liskov替换原则:子列可以替换他们的基类。
依赖导致原则:依赖抽象,而非具体实现。
发布/服用等价性原则:复用的粒度就是发布的粒度。
共同封装原则:一同变更的类应该合在一起。
构件级设计指导方针
构件–确定为体系结构模型的一部分之后建立命名约定。
接口–接口提供关于通信和协作的重要信息。
依赖和继承–继承关系自底(导出类)向上(基类),依赖关系通过接口来实现。
实施构建级设计
Step1 标识出所有与问题相对应的设计类
Step2 确定所有与基础设施域相对应的类
Step3 细化所有未作为可复用构件获取的设计类
Step3.1 在类或构件写作时说明信息的细节
Step3.2 为每个构件确定适当的接口
Step3.3 细化属性,并且定义实现属性所需要的的数据类型和数据结构
Step3.4 详细描述每个操作中的操作流
Step4 描述持久数据源(数据库和文件)并确定管理数据源所需要的类
Step5 开发并且细化类或构件的行为表示
Step6 细化部署图以提供额外的实现细节
Step7 重构每个构件级设计表示,并且总是考虑其他可选方案
5.耦合与内聚
耦合主要描述的是模块与模块之间的关系,内聚则主要描述的是单个模块的内部构成。
内聚:构件只封装那些像话关联密切,以及与构建或类自身有密切关系的属性和操作。
耦合:类之间彼此联系程度的一种定性度量。
三、分析设计题(暂未完善)
比较活,需求分析、识别用例、用例描述、用例叙述、uml设计、建模、画图的元素要对(实线、虚线、形状)、多写字
用例图
活动图(用来补充用例图中的活动P105)
类图
状态图(分析类图中的类的状态)
时序图
UI设计
四、补充一些简答题(未完善)
1.软件生命周期都包含哪些阶段,并简述每个阶段的基本任务
(一)问题定义
- 关键任务:“要解决的问题是什么”
- 问题定义报告(文档):通过对客户的访问调查,系统分析员扼要地写出关于问题性质、目标工程和工程规模的书面报告
- 经过讨论和必要修改之后这份报告必须应得到客户的确认。
(二)可行性研究
- 关键任务:回答关键问题是:“对于上一个阶段所确定的问题有行的通的解决办法吗?”
- 在较抽象的高层次上进行的分析和设计过程。
- 目的:是客户作出是否继续进行这项工程的决定的重要依据
- 要求:应该比较简短
- 可行性研究报告(文档):经济(成本效益)、技术(技术可行)、社会(操作公共安全社会道德)
- 项目开发计划(文档):粗略
(三)需求分析
- 关键任务:目标系统必须做什么
- 目的:完整、准确、清晰、具体的建立系统逻辑模型,是以后设计和实现目标系统的基础。
- 要求:必须准确完整地体现用户的需求
- 需求规格说明书(重要文档):目标系统需求、最重要的一份文档、软件所有需要做什么、最终用户验收拿此文档比较
(四)总体设计
- 关键任务:怎样实现目标系统
- 根据需求设计方案,分析推荐最佳方案,设计软件结构等。
- 设计程序的体系结构,月就是确定程序有哪些模块组成以及模块之间的关系
- 总体设计说明书(文档):记录总体设计结果
(五)详细设计
- 关键任务:该怎样具体实现系统?
- 设计每个模块的算法和数据结构
- 详细设计说明书(文档):用适当表达工具表达算法和数据结构
(六)编码和单元测试
- 关键任务:选择语言、工具翻译详细设计结果、测试模块
- 实现阶段文档:
- 1、程序清单
- 2、单元测试报告
(七)综合测试
- 关键任务:通过各类型的测试(及相应的调试)是软件达到预定要求
- 测试报告(文档):测试计划、测试方案、测试结果
(八)软件维护
关键任务:通过各种必要的维护活动使系统持久地满足用户的需求
维护类型:
1、改正性维护:软件运行过程中发现错误进行维护
2、适应性维护:软件运行软件硬件环境变化进行的维护
3、完善性维护:用户要求改进或扩充软件进行的维护
4、预防性维护:为将来的维护作准备
2.硬性软件可维护性的7个因素
可理解性:软件的可理解性是指通过阅读源代码和相关文档,了解软件的功能和如何运行的容易程度。
可测试性:软件的可测试性是指验证软件程序正确的难易程度。
可修改性:软件的可修改性是指修改软件的难易程度。高内聚,低耦合
可靠性:一个软件的可靠性越高,需要维护的概率就会越低。
可移植性:软件运行环境的变化是软件维护的一种常见情形,可移植性好的软件会降低维护的概率。
可使用性:软件的可使用性是指用户使用软件的难易程度。
效率:效率是指软件既能很好地完成用户期望的功能、性能,又不浪费机器资源的程度。
五、相关习题
- 本文标题:软件工程复习提纲
- 创建时间:2023-02-14 17:06:54
- 本文链接:2023/02/14/软件工程复习提纲/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!