一个软件工程师的软件工程知识技能水平高低主要体现在哪些方面?
1. 是否掌握了程序员的基本功:键盘输入速度,快捷键,编译和调试工具等,熟练掌握常用的工具集—VSCode/Vim、正则表达式等。
2. 严格规范的代码风格,合理使用空格、空行、缩进、注释,代码逻辑清晰,没有冗余和重复,遵从架构与设计原则,熟练使用各种编程库和API,编写出简洁、规范、可读性强、健壮安全的代码。
3. 熟悉解决问题的流程:分析问题、形成方案、探索尝试解决问题、单元测试、重构程序以满足不断变化的需求。
4. 在理解业务的基础上进行需求分析,准确地表达出用户的需求,开发出高质量的软件。
5. 编写的代码结构清晰,具有良好的可靠性、鲁棒性、可移植性和可重用性,满足高内聚低耦合的要求,并掌握一些优秀的设计模式。
6. 能按时完成开发工作,在编码完成后,对可运行的结果对照需求分析文档进行严密的测试。如果测试发现问题,需要修复,最终测试完成后,形成测试报告。
7. 软件正式运行使用后需继续维护,修复错误和增加功能,交付时需要提供使用说明文档。
针对以上内容提供一份软件工程知识技能水平的测评试题:
一、选择题:
二、判断题:
三、名词解释题:
1. 重构 Refactoring
答:重构就是通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。
2. 观察者模式 Observer Pattern
答:观察者模式又称为发布/订阅模式,它是软件设计模式中的一种。观察者模式定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
3. 发布订阅的架构风格 Publish-Subscribe
答:在软件架构中,发布订阅是一种消息范式,消息的发送者(称为发布者)不会将消息直接发送给特定的接收者(称为订阅者)。而是将发布的消息分为不同的类别,无需了解哪些订阅者(如果有的话)可能存在。同样的,订阅者可以表达对一个或多个类别的兴趣,只接收感兴趣的消息,无需了解哪些发布者(如果有的话)存在。
4. 设计模式 Design Pattern
答:设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。
5. 对象组合 object composition
答:对象组合要求被组合的对象具有良好的接口,并且通过从其他对象得到的引用在运行时运态定义。所以可以将对象组合到其他对象中,以构建更加复杂的功能。由于对象的内部细节对其他对象不可见,它们看上去为“黑箱”,这种类型的复用称为黑箱复用。使用对象组合来替代继承,优先使用组合而不是继承,它的耦合程度更低,内聚程度更高。
四、简答题:
1. 简述软件模块设计原则?(来自教学PPT)
答:模块设计的6个原则为:模块化、接口、信息隐藏、增量开发、抽象、通用性。
2. 什么是统一过程?(来自教学PPT)
答:统一过程是用例驱动,以架构为中心,增量且迭代的过程。
五、