说在前面:

本系列文章专注于软考备考复习内容梳理,文章内容是对教材中知识点和考点的提炼,备考过程中可以有针对的进行复习,减少阅读量,有的放矢。


导航目录:

  • 一、WebApp的特性
  • 二、WebApp需求模型
  • 三、WebApp设计

WWW的早期(大约从1990年到1995年),Web站点仅包含链接在一起的一些超文本文件,这些文件使用文本和有限的图形来表示信息。随着时间的推移,一些开发工具(例如XML、Java)扩展了HTML的能力,使得Web工程师在向客户提供信息的同时也能提供计算能力。因此,基于Web的系统与应用(总称为WebApp)诞生了。今天,WebApp已经发展成为成熟的计算工具,这些工具不仅可以为最终用户提供独立的功能,而且已经同公司数据库和业务应用集成在一起了。WebApp的特性使得大多数WebApp适合采用敏捷开发过程模型进行开发。

一、WebApp的特性

绝大多数WebApp具备下列属性。

(1)网络密集性。WebApp驻留在网络上,服务于不同客户全体的需求。网络提供开放的访问和通信(如Internet)或者受限的访问和通信(如企业内联网)。


(2)并发性。大量用户可能同时访问WebApp。很多情况下最终用户的使用模式存在很大的差异。


(3)无法预知的负载量。WebApp的用户数量每天都可能有数量级的变化。例如,周一显示有100个用户使用系统,周四就有可能会有10000个用户。


(4)性能。如果一位WebApp用户必须等待很长时间(访问、服务器端处理、客户端格式化显示),该用户就可能转向其他地方。


(5)可用性。尽管期望百分之百的可用性是不切实际的,但是对于热门的WebApp,用户通常要求能够24/7/365(全天候)访问。


(6) 数据驱动。许多WebApp的主要功能是使用超媒体向最终用户提供文本、图片、音频及视频内容。除此之外,WebApp 还常被用来访问那些存储在Web 应用环境之外的数据库中的信息。

二、WebApp需求模型

WebApp分析与传统的软件需求分析有所不同。虽然传统的软件需求分析的概念和原则全部可以应用于Web工程的分析活动,但WebApp分析的内容及参考的元素还是呈现出了其特殊性。并针对其特点,出现如面向数据的基于ER发展而来的WebML、模型对象基于UML的UWE等建模方法。严格意义上讲,这些方法并非均为结构化方法,但是为了集中描述WebApp的建模,将其归在本章介绍。



建模以需求工程中确定的用户类别、可用目标、使用场景、业务环节等各类需求等为输入,产生如下5种主要的模型类型。



(1)内容模型。


(2)交互模型。


(3)功能模型。


(4)导航模型。


(5)配置模型。

三、WebApp设计

好的WebApp应该具有的最相关的通用特性是可用性、功能性、可靠性、效率、可维护性、安全性、可扩展性以及及时性。WebApp的设计目标是简单性、一致性、符合性、健壮性、导航性、视觉吸引力与兼容性。WebApp设计根据其类型不同,适合采用混合的各种技术,进行一系列设计动作,包括∶架构设计、构件设计、内容设计、导航设计、美学设计、界面设计。很多情况下,多类设计并行进行。

1. 架构设计

WebApp描述了使 WebApp 达到其业务目标的基础结构,典型使用多层架构来构造,包括用户界面或展示层、基于一组业务规则来指导与客户端浏览器进行信息交互的控制器,以及可以包含WebApp的业务规则的内容层或模型层,描述将以什么方式来管理用户交互、操作内部处理任务、实现导航及展示内容。模型-视图-控制器(Model-View-Controller,MVC)结构是WebApp基础结构模型之一,它将WebApp功能及信息内容分离。

2. 构件设计

在WebApp中,内容和功能的界限通常并不清晰,因此首先明确WebApp构件:

①定义良好的聚合功能,为最终用户处理内容或提供计算或处理数据;

②内容和功能的聚合包,提供最终用户所需要的功能。因此,WebApp 构件设计通常包括内容设计元素和功能设计元素。

(1)构件级内容设计。
关注内容对象,以及包装后展示给最终用户的方式,应该适合创建的WebApp特性。一般情况下,内容对象不需要被组织成构件,加以分别实现。但是,随着WebApp、内容对象及其关系的规模和复杂度的增长,组织内容是必要的。

(2)构件级功能设计。


将 WebApp 作为一系列构件加以交付,这些构件与信息体系结构并行开发,以确保一致性。并且需要在一开始就考虑需求模型和初始信息架构,然后再进一步考查功能如何影响用户与系统的交互、要展示的信息以及要管理的用户任务。在架构设计中,往往将 WebApp 的内容和功能结合在一起来设计功能架构,描述关键的功能构件及其交互。

3. 内容设计

WebApp的内容结构(线性或非线性)也影响架构,因此设计内容体系结构。内容体系结构着重于内容对象(诸如网页的组成对象)的表现和导航的组织,通常采用线性结构、网格结构、层次结构、网络结构四种结构及其组合。当内部交互可预测顺序很常见时,采用线性结构,如帮助文档、产品订单输入顺序等。当 WebApp 内容按类别组织成十分规则的二维或多维时,可以采用网格结构,如销售网站水平代表要出售的商品准类,垂直表示制造商。层次结构可以设计成是控制流水平地穿过垂直分支(通过超文本)的方式,即同层之间可以通过超链接相连。网络结构一般是对网页进行设计,使其能够将控制通过超链接传递到系统中几乎所有的网页。将上述设计结构进行组合,就形成复合结构。

4. 导航设计

建立了WebApp的体系结构及其构件后,定义导航路径,使用户可以访问WebApp的内容和功能。为每一类用户角色定义一组类,包含一个或多个内容对象或者包含 WebApp 的功能。当用户与WebApp进行交互时,会接触到一系列导航语义单元,即信息(导航节点)和相关的导航结构(导航链接)的集合,它们相互协作共同完成相关的用户请求的一部分。定义导航机制,如导航链接,水平或垂直导航条(列表),标签或者一个完整的站点地图入口。用户界面是围绕着运行在客户端上的浏览器的特性进行设计的,数据层位于服务器上。

未完待续。。。

更多知识传送:

  • 计算机操作系统–基础知识
  • 计算机操作系统–进程管理
  • 计算机操作系统–存储管理
  • 计算机操作系统–设备管理
  • 计算机操作系统–文件管理
  • 计算机操作系统–作业管理
  • 计算机操作系统–网络操作系统和嵌入式操作系统
  • 计算机操作系统–UNIX操作系统
  • 软件工程基础知识–认识软件工程
  • 软件工程基础知识–软件过程模型
  • 软件工程基础知识–需求分析
  • 软件工程基础知识–系统设计
  • 软件工程基础知识–运行和维护
  • 软件工程基础知识–软件项目管理
  • 软件工程基础知识-软件质量
  • 结构化开发方法–系统分析及设计概述

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

以上内容整理参考《软件设计师教程(第5版)》和《软件设计师考试同步辅导(第四版)》(忘记是哪个老师的了,侵删)。本文章内容旨在帮助更多想要进军软考,给自己镀金的小伙伴。有兴趣的小伙伴可以共勉。

结构化开发方法--WebApp设计与分析相关推荐

  1. 结构化开发方法之系统分析与设计概述

    目录 一.总体结构 二.系统分析 三.系统设计的基本原理 四.总结结构设计 五.系统文档 一.总体结构 1.结构化方法总的指导思想:自顶向下,逐层分解. 2.基本原则:功能与分解的抽象 3.应用领域: ...

  2. 【中级软考】结构化开发方法是啥,主要包含哪些内容?

    体系结构设计 主要是指要开发的系统中包含哪些部件,这些部件与部件之间的关系就是就是体系结构的设计. 数据设计 也称为数据库设计,主要包含数据库的设计和这个数据所包含的核心表的设计. 接口设计 用于子系 ...

  3. 《基于模型的软件开发》——1.2 结构化开发

    本节书摘来自华章计算机<基于模型的软件开发>一书中的第1章,第1.2节,作者:[美]H. S.莱曼(H. S. Lahman)著, 更多章节内容可以访问云栖社区"华章计算机&qu ...

  4. 软件设计师——结构化开发与方法

    软件设计师备考笔记 上午题 下午题 计算机网络概述 数据流图设计(下午试题一) 程序设计语言基础知识 数据库设计(下午试题二) 标准化和知识产权 UML分析与设计(下午试题三) 数据库 面向对象程序设 ...

  5. 软件设计师(结构化开发)

    结构化开发 模块独立 每个模块完成一个相对独立的特定子功能,并且与其他模块之间的联系简单 耦合(低) 是模块之间的相对独立性的度量.耦合取决于每个模块之间接口的复杂程度.调用模块的方式以及通过接口的信 ...

  6. 针对SEO优化的网页摘要和结构化数据方法(微数据)

    针对SEO优化的网页摘要和结构化数据方法(微数据) 关于丰富网页摘要和结构化数据 谷歌丰富摘要和结构化数据旨在让Google更了解您网页上的内容,创建丰富网页摘要,为用户具体查询提供更详尽的信息. 丰 ...

  7. 碎片数据收集利器-结构化动态表单设计思路

    本文基于面向基本公共卫生的业务系统设计经验,抽象出一套适合大型ERP系统的表单业务数据模型,目标是最大限度保留系统弹性的同时,尽可能降低系统复杂度和开发成本.enjoy~ 背景 填写表单应该是所有业务 ...

  8. 结构化大数据分析平台设计

    前言 任何线上系统都离不开数据,有些数据是业务系统自身需要的,例如系统的账号,密码,页面展示的内容等.有些数据是业务系统或者用户实时产生的,例如业务系统的日志,用户浏览访问的记录,系统的购买订单,支付 ...

  9. android 登录组件开发,Android组件化开发路由的设计

    调研了一下目前的路由框架,ARouter(阿里的),ActivityRouter都使用了apt技术 编译时注解,个人想法是一口吃不成胖子,先做个比较实用的. VpRouter路由框架主要应用于组件化开 ...

最新文章

  1. 腾讯优图开源首个医疗AI ML预训练模型
  2. JavaEE(1) - Weblogic 服务器管理的数据源
  3. EasyUI –tree、combotree学习总结
  4. 剑指Offer #02 替换空格(字符串处理)
  5. 什么可以搜python答案_超星Python程序设计答案章节测试答案免费,能搜索网课答案的公众号...
  6. esp8266驱动_ESP8266配置windows版
  7. linux 文件夹中过滤文件内容,【shell】对指定文件夹中文件进行过滤,并修改文件内容的shell脚本...
  8. GetWindowRect,GetClientRect,ScreenToClient MoveWindow SetWindowPos 用法说明
  9. AMD OpenCL Programming Guide - OpenCL Architecture
  10. 高并发场景设计与解决方案
  11. 群晖、任务计划、python、虚拟环境
  12. 从赛马游戏看CyclicBarrier,从斗地主看CountDownLatch
  13. 开关电源补偿环路设计(1):基础部分-以Buck 为例
  14. 龟虽寿-曹操(东汉)
  15. AlphaFold2源码解析(4)--模型架构
  16. windows 10系统下Nexus的下载安装
  17. 分布式强化学习之D4PG
  18. Linux fork炸弹的分析
  19. 代码坏味道之代码臃肿
  20. Cache Aside Pattern

热门文章

  1. 灵遁者:我特别能理解很多人对某东西,某事物上瘾或者着迷
  2. 用Git在coding上面拉取代码
  3. 深度学习:MAE 和 RMSE 详解
  4. Mac外接显示器时打开扩展桌面模式和视频镜像模式的方法步骤
  5. VCS后仿 Warning-[NTCDNC] Negative Timing Check Did Not Converge
  6. 【推荐】50份2021年稀土开发者大会(PPT汇总)
  7. QML入门教程(5):Label、TextField用法介绍
  8. axios 重定向问题解决_axios 解决跨域问题
  9. 浅谈软件开发架构模式
  10. 使用VS2013做简单的C程序解析