1、需求分析的步骤
2、功能性需求和非功能性需求
在一般使用中,需求按照功能性(行为的)和非功能性(其它所有的行为)来分类。
功能性需求是说有具体的完成内容的需求。
例如:比如客户登录、邮箱网站的收发收发邮件、论坛网站的发帖留言等。
非功能性需求是指软件产品为满足用户业务需求而必须具有且除功能需求以外的特性,包括系统的性能、可靠性、可维护性、可扩充性和对技术和对业务的适应性等。
例如:性能要求:要求系统能满足100个人同时使用,页面反应时间不能超过6秒;
可靠性: 系统能7×24小时连续运行,年非计划宕机时间不能高于8小时。要求能快速的部署,特别是在系统出现故障时,能够快速的切换到备用机。
其他软件特性
在统一过程(UP)中,需求按照“FURPS+”模型进行分类。
功能性(Functional):特性、功能、安全性;
可用性(Usability):人性化因素、帮助、文档;
可靠性(Reliability):故障频率、可恢复性、可预测性;
性能(Performance):响应时间、吞吐量、准确性、有效性、资源利用率;
可支持性(Supportability):适应性、可维护性、国际化、可配置性。
“FURPS+”中的“+”是指一些辅助性的和次要的因素,比如:
实现(Implementation):资源限制、语言和工具、硬件等;
接口(Interface);强加于外部系统接口之上的约束;
操作(Operation):对其操作设置的系统管理;
包装(Packaging)例如物理的包装盒;
授权(Legal):许可证或其他方式。
需求工程
需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的特征和规模的一门学科。它通过合适的工具和记号系统地描述待开发系统及其行为特征和相关约束,形成需求文档,并对用户不断变化的需求演进给予支持(版本控制)。分为需求获取、需求建模、需求验证、需求管理几个步骤。
软件工程
将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件。
软件质量
包括三类:正确性、健壮性、效率、完整性、可用性、风险(产品运行);可理解性、可维修性、灵活性、可测试性(产品修改);可移植性、可再用性、互运行性(产品转移)。
螺旋模型
是瀑布模型和快速原型的迭代的结合。
SSH框架
集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。
其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转。
利用Hibernate框架对持久层提供支持;
Spring做管理,管理struts和hibernate。
系统的基本业务流程是: 在表示层中,首先通过JSP页面实现交互界面,负责接收请求(Request)和传送响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。
SSH的好处:
采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。