1、软件需求分为三个层次:业务需求、用户需求和功能需求。
其中,业务需求处于软件需求的最高层次,反应了客户对软件系统最高层次的要求。业务需求从项目的投资人、购买商品的用户、实际用户的管理员等人那里收集,描述了组织为什么要开发这个软件系统。
用户需求处于软件需求的中间层次,描述了用户使用软件需要完成的任务。
功能需求处于软件需求的最低层次,是根据用户需求来考虑。功能需求是软件开发人员根据用户需求写出的软件产品必须实现的软件功能,用户通过这些功能来完成任务。
2、软件需求有三类:功能需求、非功能需求和设计约束。
功能需求要求软件开发人员必须实现的软件功能。
非功能需求是系统呈现给用户的行为和执行的操作,例如窗口、交互界面、软件产品的性能要求等。
设计约束是开发人员必须遵从的标准,例如必须采用的数据库系统,必须才用的技术。
3、需求工程
因为需求总是改变的,需求工程要做的就是怎么满足不断变化的需求。
需求工程包括四个阶段:需求获取、需求分析、需求验证和需求管理。
其中,软件需求验证和需求管理需求工程是一个闭环。
4、需求获取
需求获取包括确定项目范围、用户确定、用例确定等。
项目的范围即什么功能要做,什么功能不需要,是用户需求的集合。
用户确定即要确定用户和分类。
用例确定即事件流,要充分了解用户要完成的任务。
5、需求分析
需求分析活动贯穿了整个系统开发的整个生命周期,是软件工程的基础。
软件分析最重要的是写出软件规格需求说明书,规格说明书要求实现共享和不断更新。
6、数据字典
即一类实体的共性的描述。
7、用户的需求只是约束,真正推动软件从一个状态转向下一个状态的是相应的背景知识。
8、系统边界
哪些问题是待开发软件需要解决的,哪些问题是不需要解决的,但是对软件有约束。
9、Java的三大特征:继承、封装、多态。
封装是把属于同一类的事物的共性归到同一类中。
由于封装,使得有共同特征的同一类事物归到同一类中,但我们知道,这不是万能的,有些事物有共性,也存在区别。继承就是吸收有共性的类的特征,并扩展自己的特征。
方法的重写、重载与动态连接构成了多态性。
10、建模的三个方面:结构建模、功能建模、行为建模。(这个没有搜到)
用户建模包括三方面:如何获得用户的有效信息;用户模型表示方法;如何将前面两个问题结合起来,从而产生出用户的类型。
所有的计算机都是图灵机,计算机最高领域的奖项为图灵奖。