产品的易用程度如何,执行速度如何,可靠性如何,当发生异常情况时,系统如何处理。这些被称为软件质量属性,而特性是指系统非功能(也叫非行为)部分的需求。
性能:性能就是一个东西有多快,通常指响应时间或延迟。
响应时间:从发出请求到收到响应所用的时间,比如用户点击网页中的超链接或桌面应用程序中的按钮。
延迟:消息从A点到B点,通过你的系统所用的时间。
就算构建的不是“高性能”软件系统,性能也可应用于Web应用系统、桌面应用系统、面向服务架构、消息系统等几乎所有你要构建的软件系统。
2.可用性
可用性是软件对服务请求的可操作和可见程度。你常会看到用“9”来衡量或指代可用性,如99.99%(四个9)或99.999%(五个9)。这些数字指的是正常运行时间的百分比 另一边是可以容忍的停机时间。99.9%(三个9)的正常运行时间意味着留给计划维护、升级和意外故障的时间每天只有1分多钟。
衡量可用性的数学指标如下:
- 服务平均无故障时间 MTBF(Mean Time Between Failure)
- 服务平均恢复时间 MTTR(Mean Time To Restoration)
- 可用性 = ( MTBF / (MTBF + MTTR)) * 100%
3.安全性
安全性涵盖了从认证和授权到数据在运输和存储中的机密性的所有事情。和性能一样,安全性很有可能在一定程度上对你很重要。对于部署到互联网的web应用程序,安全性应该被视为最基础的东西。开放Web应用程序安全项目(OWASP中文站, Open Web Application Security Project)是学习安全性的一个很好的出发点。
4.可维护性
可维护性往往被认为是一个需求。作为软件开发者,我们通常会努力打造“可维护”的软件,但值得我们思考的是,代码库以后将由谁维护。可维护性很难量化,所以应该认真思考我们可以遵循的架构和开发原则(架构规范和代码规范),因为这些是编写可维护代码的驱动。
5.可测试性
指通过测试揭示软件缺陷的难易程度。
特别地,假设软件中至少有一个错误,软件在下次测试运行时不能正常工作的可能性。
可测试性的响应度量处理的是测试在发现缺陷方面的效率以及想要达到某个期望的覆盖范围,需要用多长时间进行测试。
6.易用性
关注的是对用户来说完成某个期望任务的难易程度。
分为以下几个方面:
有效性、错误避免及错误处理、用户自信和满意度、可学习性。
供应链管理系统是利用ssh搭建一个信息管理系统,他在windows环境下,以mysql 为数据库 ,tomcat为服务器 采用struts2+spring+hibernate 开发企业信息管理系统
供应链管理系统需要多个动态网页之间进行连接,struts2提供了支持多种表现层次技术,如jsp,freeMarker等。而且struts2的输入校验可以指定方法进行校验。当Web浏览器请求一个资源时,过滤器Dispatcher查找方法,确定适当的Action。拦截器自动对请求应用通用功能,如验证和文件上传操作。Action的execute方法通常用来存储和重新获得信息。结果被返回到浏览器。Struts2提供了数据校验,Action 继承了 ActionSupport 类 ,而该类实现了 Action 、Validateable 、 ValidationAware 、TextProvider、LocaleProviderSerializable 接口。
供应链管理系统最主要的就是对数据库的操作。由于产品类型比较多,所用到的sql语句也是比较多的,如果用一般的数据库连接方式会比较繁琐。而Hibernate则对JDBC进行了封装。我们不用操作数据,直接操作它就行了。Hibernate是一个开源的ORM框架,它的作用就是在关系型数据库和对象之间做了一个映射。从对象映射到关系,再从关系映射到对象这样,我们在操作数据库的时候,不需要再去和复杂的SQL语句打交道,只要像操作对象一样操作它就可以了。因为hibernate做了持久层的封装,你就不知道数据库,你写的所有的代码都具有可复用性。因此hibernate有移植性。这也实现了质量属性中的可移植性和可重用性。
供应链管理系统需要的操作很多,同时也需要实例化较多的对象,这无疑增加了代码量。所以在这部分使用了spring框架。Spring中的IoC控制反转机制,对象创建责任的反转,在spring中BeanFacotory是IoC容器的核心接口,负责实例化,定位,配置应用程序中的对象及建立这些对象间的依赖。XmlBeanFacotory实现BeanFactory接口,通过获取xml配置文件数据,组成应用对象及对象间的依赖关系。service层要用dao层对象需要配置到xml配置文件中,至于对象是怎么创建的,关系是怎么组合的都交给了spring框架去实现。使用IoC容器更加容易组合对象直接间关系,面向接口编程,降低耦合。Aop可以更加容易的进行功能扩展,遵循ocp开发原则。也同时实现了质量属性中的可修改性。
现在企业,s2sh 已经逐渐变成主要开发框架。