WEB信息系统开发实训1
- 格式:doc
- 大小:65.58 KB
- 文档页数:18
然后估计网站的规模,并从经济可行性、技术可行性、社会可行性、操作可行性等几个方面分析项目的可行性。如果问题没有可行性的解决方案,分析人员应该建议停止开发这项工程,以避免时间、资源、人力和金钱的浪费;如果问题可行,分析人员应该推荐一个较好的解决方案,并为工程制定一个初步的计划。 本阶段涉及的活动如图1.1所示。 与客户见面 理解客户的期望 确定项目的规模 分析项目的可行性 图1.1 可行性研究与计划中涉及的活动
1. 经济可行性 经济上的考虑往往是“成本——收益分析”、“短期——长远利益分析”两方面。 (1) 成本是个很容易理解的概念,比方说开发一个网站的人员工资、硬件费用、宣传费用、运营费用等开支就属于成本。收益就是网站上线后的收入。 如果成本过大,收益偏小,自然没什么可行性而言。至于成本多大不为过,收益多小可以忍受,不同的公司有不同的标准。 (2) 短期利益是那种能够快速看得到效果的利益。这好比集体买股票,明天涨了赶紧卖,做短线交易。长期利益则要很大的投入。在Internet时代有许多软件都是免费的。QQ可以免费使用,搜狗输入法也可以免费使用……但真的是完全免费吗?实际上相关的公司考虑的都是长期利益——想使用QQ的魔法表情就只能交钱成为会员。不少网站的策略是,先把客户吸引过来,等占据了市场再收费,或者在高级功能上收费,还有一些在考虑怎么从广告商哪里挣钱。考虑长期利益往往需要冒一定的风险。
2. 技术可行性 技术可行性往往包括以下几点: (1)网站功能是否能按时完成。如果网站中有很难克服的技术困难,轻则影响项目进度,的、重则使项目夭折。 网站功能能否按时完成取决于开发团队的技术储备、开发人员的研发能力。 (2)网站的质量是否可以保证。比如说用户需求中要求某个颜面刷新一次不超过一分钟,结果开发出来的网站刚开始还满足要求,但是用了不到一年,随着数据规模的剧增,网站性能开始出问题,导致这个页面刷新一次至少要五分钟,客户频繁地发牢骚。软件公司在技术可行性上没有充分论证,没有考虑将会带来什么样的后果。这样的网站会给客户的利益带来损失,虽然网站也可以“先有后优”(先开发出功能再进行优化),但是不经过仔细论证,网站开发公司很可能就此丢掉客户,丢掉口碑。 技术可行性往往最难判断,因为做技术可行性分析时,系统的目标、功能比较模糊,一般与系统的评估、分析过程并行进行。 3. 社会可行性 社会环境主要考虑国家政策,当前的市场环境等因素。非法的网站即便利润丰厚,也绝不能做。
4. 操作可行性 网站项目开发的核心是人。拿到项目,对于人力,往往考虑人力够不够,团队成员的质量,现有成员如何配置,是否缺人手,缺什么样的人等等。 表面上我国每年的大学毕业生有几百万,计算机本科生有几十万,技术人员似乎一点都不缺。但是实际情况是,很多软件公司找不到人,很多人找不到工作。 根据现有人员情况编订项目开发计划可以衡量操作可行性:为项目实施方案制定出具体计划,应该包括各部分工作的负责人员、开发的进度、开发经费的预算。所需的硬件及软件资源等。作出了可行的计划,也就可以进入网站开发的下一阶段——需求分析了。
1.2.2 需求分析 此阶段的主要目的是为了获取用户对网站功能的具体要求并加以分析。需求分析的任务还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。 在分析网站需求和书写《网站需求说明书》的过程中,分析员和用户都起着关键的、必不可少的作用。只有用户才真正知道自己需求什么,但是他们并不知道这样用网站实现自己的需求,用户必须把他们对网站的需求尽量准确、具体的描述出来;分析员知道这样用网站实现人们的需求,但是在需求分析开始时他们对用户的需求并不十分清楚,必须通过与用户沟通获取用户对网站的需求。 获取用户需求的方法主要有如下几个: (1) 与用户交谈,向用户提问题,向用户群体发调查问卷。 (2) 参观用户的工作流程,观察用户的操作。 (3) 与同行、专家交谈,听取他们的意见。 (4) 分析已经存在的同类产品,提取需求。 (5) 从行业标准、规则中提取需求。 (6) 从Internet上查找相关资料。 当得到用户的需求以后,再加以分析,主要是分析所得到的需求是否有不清晰的地方,是否都可以用软件来实现,是否存在矛盾和二义性等。 需求注意的是需求分析实际上是一个循序渐进的过程,要求分析人员一次性得到完整确切的分析是很困难的。所以需要及时邀请用户参与其中。而在开发阶段,需求仍然可能会不断变更,大到一个模块功能,小到用户界面的改动。因为客户本身对自己的需求也是一个深入的过程。此时,对于某些变化,分析员是必须遵守的,比如新增的业务模块,而有些内容,分析人员可以根据自己的设计、开发经验,给予用户一些合理化的建议,引导用户这样做好,甚至避免某些需求的改变(千万不能自话自说,指手画脚,否则客户也会反感),这样去做需求既可以保证需求分析文档的稳定性,也可以增进用户对软件公司开发人员的信任。如果用户说什么,分析人员就改动什么也是不好的。 针对需求分析人们提出了许多解决方法和自动化分析工具,如结构化分析方法和面向对象方法、CASE技术等。解决问题的方法很多,但要遵循一般性的原则。 (1) 把复杂的问题按照某种分解方式进行分解并可逐层细化。 (2) 必须能够表达和理解问题的数据域和功能域。 (3) 必须具有良好的模型建立能力,能够准确地把问题用“图表”的形式表达出来。 (4) 需求分析完毕时形成需求说明书,并准备进入网站的设计阶段。
1.2.3 设计阶段 设计阶段的主要目的是设计如何把已经确定的需求转换成实际的网站,它包括以下六点。 1. 制定图形用户界面标准 在设计应用程序时,必须遵循应用程序在流程和观感方面的标准。这些标准用于为整个应用程序从外观上提供一致性。 图形用户界面标准与应用程序的外观有关。项目经理和团队成员在实际开发网站之前一定要对网站的整个外观进行可视化设计必须按照图形用户界面标准进行定义,以便使待开发的每个屏幕在外观和流程方面保持一致。各屏幕显示的颜色、字体样式、标题和标签的大小、页眉以及控件的位置和大小都在此定义。 2. 构建原型(Prototype) 接着创建网站的原型,并展示给客户请求批准。 网页的原型一般由美工师(网页UI设计师)制作,美工师可能对HTML都不懂,对编程没有概念。他的职责是用Photoshop等软件制作UI效果。这些效果可能有主页的效果、其他页面的效果等等。 网页效果出来后一般会让用户去确认、评审。 客户必须批准以下几页: (1) 页面的浏览顺序。 (2) 页面的外观。 (3) 在完全开发以后网站将要实现功能。 当网页的UI效果最终确认后,美工师将开发出原型委托给Web前端开发工程师。后者敬爱那个UI界面用HTML、CSS等技术展现出来,做出网页原型(Demo)。 原型是应用程序外观的模型,通过原型,客户就可大致了解应用程序的浏览顺序。原型还可帮助客户了解所完成了解所完成的应用程序将要实现的功能。原型创建后,仍然要得到客户的评审和确认。 3. 设计数据库 本阶段根据用户提供的需求考虑都需要保存哪些数据(例如网吧中需要保存卡号、计算机号、上机时间等),然后决定保存在这些数据需要几个数据库表。 4. 划分模块 根据功能需求,分析实现用户所有的功能需要几个模块。模块化建设把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能以满足用户的需求。 5.制定编码标准 设计编码标准涉及一些命名规范的建立。编码标准有助于提高代码的可读性并使其易于维护。使用标准命名后,即使标准命名后,即使是非开发人员也能通过变量名、表单名和模块名辨别其意图。这一步内容往往可以复用之前项目中的编码标准,毕竟同一个公司的编码标准不能每个项目都变一次。
经 验 需求分析文档和设计文档是需要及时更新的。在开发的过程总以及维护工作中,用户的需求会不断地改变,有的公司(比如作坊式的软件公司)因为工期进度的原因直接就修改了系统,而忽略了需求文档的变更,这样导致的后果是,如果开发、维护人员有变动,当接收工作的人接到程序和文档后发现两者相差甚远,导致维护工作举步维艰。
软件设计有以下几个基本的原理: (1) 抽象。即对将要用软件来完成的工作在本质上进行抽象,抛开无关紧要的和多余的部分,构造出一个网站需要完成的功能的逻辑结构。 (2) 信息隐蔽。这是对抽象的进一步回应,信息隐蔽的实质是“各管各的数据”。 (3) 模块化。就是做到所有模块尽可能的相对独立,对别的模块的依赖越小越好。模块化还有几个相关的属性:接口、功能、逻辑、状态。 6.分配和监督任务 项目开发工作启动时,项目经理需要对完成该项目所需的人力和时间进行预算并要为此制定一份任务表。 任务表用于记录一下各项: (1) 完成该项目所需的人日数。 (2) 项目的计划起始日期。 (3) 项目的计划完成日期。 (4) 项目团队所需的成员数量。 (5) 分配给每个项目成员的模块名称和规范。 (6) 完成每个模块所需的时间。 (7) 进展状况。 提示 有了任务表,项目经理就能监督和跟踪项目开发的各个阶段,并能预见是否可能出现延期,从而主动地采取防范措施。
1.2.4 开发阶段
本阶段包括以下内容。 (1) 对在圆形创建阶段构建的用户界面进行最后的修改。 (2) 用数据库工具软件构件数据库。 (3) 编写代码。 编码是用程序设计语言将设计文档表达的过程,是对设计的具体化。