从新闻发布系统看软件工程
来源:互联网 发布:此宝贝可用爱淘宝红包 编辑:程序博客网 时间:2024/05/16 11:40
最近看牛腩老师的新闻发布系统,听他一步一步边做边讲。
实现一项工程,尤其是前期准备/设计到代码,所谓建模。
(注意:以下例子均以新闻发布系统为例)
-
一、前期准备,从硬件设备到软件安装。硬件不多说,软件的安装就要尽量周到齐全、专业。
例如,一个web系统的开发:
必备软件(开发工具):
Visual Web Developer,SQL Server,SQL Server Management
其他软件(辅助工具):
Dreamweaver,Flash,Photoshop
浏览器(测试效果):
Firefox,Opera,Chrome,IE6/7/8,IETester,
UML画图工具:
JUDE/Rose/EA
-
二、建模阶段:
首先要给这项工程分配一个WorkSpace工作空间,以存放有关此工程的所有文件。
其次,开始设计或阅读我们的文档(需求分析、概要设计、详细设计)
主要概括为以下几点:
(1)系统介绍,即主要功能概括。
(能够实现后台人员添加新闻,浏览者能够在前台浏览新闻并发表评论。)
(2)功能,功能详述。
角色 对象 操作
前台:浏览者(浏览新闻,发表评论,搜索新闻)
后台管理员:新闻类别(增加,删除,修改);新闻管理(增加,修改,删除);评论管理(删除,添加在前台,不能修改,只能删除))
(3)数据库设计,根据功能来抽象实体类
新闻发布系统,需要管理类别,管理新闻,管理评论,抽象出基本实体类及他们的属性及属性数据类型。
类别表category(一级分类):id:int(自增长类型);name:string;
新闻表news:id:int;title:string;content:string;createTime:Date;caId:int(一对多)
评论表comment:id:int;cotent:string;createTime:date;newsId:int(一对多的关系);userIp:string
(4)生成数据库文档:
名称 类型 说明
(5)界面模拟图设计
i 首先是页面框架,也就是母版页。比如顶部应该有一个logo和banner了,可以安置一个搜索栏啦,中间是内容区域,尾部有一个版权声明啦之类。
ii 然后设计网站主体内容,首页,新闻列表页和新闻内容页。
首页,首页套用母版页,内容可仿照其他网站首页模式,放置一些网站重要功能的内容。如新闻发布系统,主要功能是让人们浏览新闻,首页就要放置一些和帮助人们浏览新闻有关的内容,如新闻分类、最新新闻、热点新闻之类。
由首页新闻分类可进入新闻列表页,以便查看某一类别新闻,并方便切换到其它分类的新闻列表。
单击某一新闻的新闻标题,进入内容项,这里是新闻的主要内容,同时也要方便导航到其他新闻页,比如母版页中的logo或banner导航到首页,新闻分类导航到其他分类页。新闻下部是其他浏览者都该新闻的评论,并可添加评论。
iii 再然后是一些功能页,包括辅助功能(搜索结果页)和后台管理(登陆页,后台管理页),还有就是错误页。
(6)数据表操作类设计,针对各个表,有哪些操作
例如:
对类别表操作类:
取出当前所有新闻分类
增加类别
修改类别
删除类别(连同其下的新闻及新闻评论一起删除)
判断类别名称是否已存在
对新闻表操作类:
取出最新10条新闻(所属分类,新闻标题,发布时间)
取出10条热点新闻(所属分类,新闻标题,发布时间)
根据类别ID取出该类别下的所有新闻(所属分类,新闻标题,发布时间)
根据新闻ID取出该条新闻主体内容(所有,分类,标题,内容,发布时间)
根据标题搜索新闻
根据内容搜索新闻(全文索引更好些,这里用单纯的sql语句)
增加新闻
修改新闻
删除新闻(连同其下新闻评论一起删除)
对评论表操作类:
根据新闻ID取出该新闻的所有评论(评论ID,评论内容,时间,IP)
添加评论
(注册用户能够修改他发表的评论)
删除(违禁)评论
(7)代码规范
数据库命名,类命名及属性/方法名命名,变量命名等。
(8)代码
--
写的比较零散,由前期准备(硬软件),然后初步文档(展现功能),UML图建立架构辅助文档,数据库设计,界面设计(可放置后面),类设计(针对功能)。
- 从新闻发布系统看软件工程
- 从新闻数据组中提取TF-IDF特征
- 从牛腩新闻发布系统看css
- 从新闻“雅虎发公告,宣布停止 YUI 的所有新开发”得到的启示
- 个性化推荐路线将成产品主流模式,先从新闻客户端开始
- 最近在看软件工程
- 从SRTP看软件工程
- 从软件工程看沟通
- 床上用品选购提示:看标识闻味道选颜色
- magento1.4 -- 从新闻插件看出Magento开启预编译后对代码的要求更加严格规范
- 首闻百度网页搜索小偷V1.0 正式发布!
- 大新闻!Django 2.0 发布,不再支持 Python 2
- 从牛腩新闻发布系统看B/S
- 软考(4)——看图心想 系统开发和软件工程
- 从"OA系统"开发设计看软件工程中的几张模型图
- 软件工程 之 系统设计
- 软件工程 之 系统编码
- 软件工程 图书信息管理系统
- 信息安全与pki
- [Oracle,SQL Server,Sybase]迁移至MySQL
- /etc/hosts文件
- 查看JAVA中各基本类型的取值范围
- 项目经理 问题
- 从新闻发布系统看软件工程
- Android内核移植,以及从普通文件系统启动后手动挂载android文件系统
- GTK 隐藏鼠标
- HttpModule防sql注入
- 解决在VS2005中“当前不会命中断点。源代码与原始版本不同”的问题
- linux服务开机启动设置详解
- C++程序的设计机制1:NVI机制(Non-Virtual Interface )
- 弹框居中 ShowMessage
- Increasing the maximum number of tcp/ip connections in linux