原创,内容全部来自课件PPT。
一、判断题
(1)软件工程是在软件的开发,操作和维护过程中所应用的系统的,规范化的,可量化的方法。( )
答案:正确,见课件PPT内容“Software engineering is the application of a systematic, disciplined,quantifiable approach to the development, operation, and maintenance of software.”
(2)软件工程=技术+程序。( )
答案:错误,软件工程不仅包括技术和程序,还包括软件开发流程。
(3)用例即商业过程的抽象,一个用例必须完成一项商业任务。( )
答案:正确,课件PPT内容。
(4)在学生信息管理系统的设计中,“用户使用学号和身份证后六位进行登录”也是一个用例。( )
答案:错误,用户登录不满足此系统下用例的要求,并非核心功能模块。
(5)用例必须由actor开始,也必须由actor结束,actor也必须是人。( )
答案:错误,actor通常是人,但也可以是硬件,其他系统或本系统的另一个组件。
(6)对于用例的抽象,只需要做到从项目需求中提炼出“一个名词+一个动词”的程度就足够了,剩下的细节交给编码环节去实现。( )
答案:错误,用例抽象的层次有三:一个动词+一个名词(从项目需求中提炼出来)->准确表述用例开始和结束时的情况->用双列表一步步描述actor和system是如何交互以完成商业任务的。只做到第一步是不够的,无法继续进行后续的领域建模和顺序图的设计。
(7)在需求采集阶段,需求的确定需要所有stakeholders达成共识,我们还需要解决stakeholders的需求冲突,并为需求做优先级划分。( )
答案:正确,课件PPT内容。
(8)需求文档分两种,其中Requirements definition聚焦顾客想要实现的事物,Requirements specification聚焦系统应当具备的行为,二者毫无交集。( )
答案:错误,二者在系统接口这一部分是有交集的。
(9)需求的种类只有两种,即功能需求和质量需求。( )
答案:错误,还包括设计限制和流程限制等等。
(10)模块化设计的好坏可用内聚和耦合来进行,一般一个好的模块化应该满足高内聚,低耦合的要求。( )
答案:正确。分析略。
二、简答题
(1)简述统一开发流程的步骤,其与传统的瀑布模型有什么区别?
答案:统一开发流程的步骤:确认需求;产生用例满足需求;把用例配置到若干增量过程中;迭代增量过程。最大的区别在于UP会将传统瀑布模型的需求->设计->编码->测试->部署过程进行多次迭代。
(2)简述领域建模的步骤?
答案:
领域建模步骤
收集应用领域信息->头脑风暴->分类->可视化
收集:功能性的需求和其他需求
头脑风暴:列出重要的domain concepts;列出其属性以及其相互之间的关系
分类:将所列出的concepts分类至类/属性/关系
(3)什么叫模块化?
答案:模块化modularity 是指系统的不相关联的方面之间应该保持分离,这样每个方面都可以与其他方面隔绝开来进行单独研究。
(4)独墅湖图书馆请你和你的同学为其设计一套图书管理系统,这套图书管理系统将使得读者借书更容易,图书管理员管理更方便。馆方为了方便你们设计,还请来了从事图书管理多年,有着丰富经验的老馆长做你的顾问。目前你正在着手这个系统的需求采集阶段,请你列出至少三类stakeholders
答案:
客户:独墅湖图书馆的项目发起者。
用户:读者或者图书管理员。
参与设计的软件工程师。
领域专家:老馆长
(5)请你列举三种软件设计模式,并简述其设计目的与好处。
答案:略。