软件系统设计思路

要设计一个面向对象的系统,建议遵循如下思路:

1.  调研,完成一份详细的需求文档

(1)系统要实现什么功能

(2)性能上有什么特别的要求

(3)哪些是技术难点,可以的话对技术难点首先测试攻关

2.  确定系统的运行环境

(1)系统运行的操作系统:widows,linux,unix等

(2)使用何种编程语言:c/c++,java,C# 等

(3)使用何种界面交互环境:console,MFC,WTL等等

(4) 需要使用哪些第三方库:如 openCV,STL,Boost等

3.  划分系统模块,设计总体框图

(1)整个系统从大的方向来划分的话,可以分为哪几个模块,每个模块又可以继续划分为哪几个小模块。

(2)每个模块的提供的功能是什么

(3)模块之间怎么交互

4.  分析模块的需求,抽象出实现模块功能的各个类

(1)本模块可以设计哪些类,哪些类是作为本模块对外的接口?

(2)模块内部的类之间怎么交互?模块间的类之间怎么交互?

(3)类的设计时,需要考虑是否可以通过继承、组合等方式简化设计

(4)画出简单的UML设计图

5.   设计每个类的属性和方法

(1)每个类有哪些成员变量?提供哪些功能函数?

(2)哪些功能通过继承获取,哪些功能需要用到重载,哪些功能需要利用多态?

(3)完成类的头文件的定义

6.   实现每个类的功能及集成测试

(1) 编码实现每个类的功能

(2) 根据前面的设计,完成类之间的交互代码,实现系统所需要的功能

(3)集成和测试,优化代码,修改bug

时间: 2024-11-04 13:46:31

软件系统设计思路的相关文章

[Django]用户权限学习系列之设计自有权限管理系统设计思路

若在阅读本片文章遇到权限操作问题,请查看本系列的前两章! http://www.cnblogs.com/CQ-LQJ/p/5609690.html和http://www.cnblogs.com/CQ-LQJ/p/5604331.html 现在步入正题,这篇文章是关于自有权限管理系统设计的思路描述,自有权限管理系统是抛弃django自带的后台管理界面,基于自己编写的权限管理界面对用户权限的管理! 首先上图:(自己设计的权限系统界面,代码将后续文章中写出) 权限管理界面主要是添加和删除权限,查看官方

nmap软件使用思路及常见用法

一.扫描思路 二.常见用法 1.使用nslookup 解析出域名的IP地址 2.使用 nmap -sL 查询该IP网段中包含的ip地址(不检测存活状态,仅列表) 3.使用nmap -sn 查询网段中关注主机或者整个网段的IP存活状态 nmap -sn nmap针对局域网和广域网(会根据源目的是否在同一网段进行判断)有两种不同的扫描方式 当目标主机与源主机不在同一网段时: Nmap会发送四种不同类型的数据包来探测目标主机是否在线. 1)  ICMP echo request 2)  a TCP S

软件系统设计工具集

该换换装备了 今天在看一个模拟器的源码,一个包里有多个类,一个类里又有多个属性和方法,如果按顺序看下来,不仅不能对整个模拟器的框架形成一个大致的认识,而且只会越看越混乱,所以,想到有没有什么工具可以将这些个类以及它们之间的依赖关系转化成UML图,这样一看图就能一目了然.立刻搜了看,没想到这样的工具一大堆,下面罗列最经典的6款.参考:http://www.csdn.net/article/2012-09-12/2809862-6-java-to-uml-tools 1.Eclipse MDT 模型

软件系统设计文档模板

各位同学: 课程作业:软件设计说明书模板链接: 链接:http://pan.baidu.com/s/1cJmTFS 密码:joqv 主要内容如下,请各位同行批评指正. 四川师范大学 软件设计说明书 XXXX系统软件设计说明书 团队名称 [日期] 目录 文档变更记录... 0 引言... 0 1.1         项目介绍... 0 1.2         开发团队... 0 1.3         使用的文字处理和绘图工具... 0 静态体系设计... 0 2.1         全局数据结构

UdPloyer交付系统设计思路

宏观愿景: 一键搞定项目依赖环境,将软件交付过程管理化,实现DevOps研发测试运维一体化. 一.一站式版本交付生命周期管理  业务线[私有权限] 1.SVN源码交付 合主干.版本归档.拉分支.版本回滚 2. 自动化部署与集成 数据库实例执行 实现脚本跟着版本走,通过版本号自动化刷库(约定脚本交付路径“可见提测六元素”) 服务应用构建(项目 + 应用容器 + 部署模版 + 邮件模板 [项目初始化时,按需进行配置]) 实现一对多.多对多项目部署模式 一指的是项目,一对一:一个项目对应一个容器: 一

外包:卡卡软件简要思路

卡卡理念:让用户在茫茫人海中随机配对聊天,让陌生人成为知己,好友卡卡用户群:14-30岁的年轻人群卡卡功能:随机配对,文字聊天,语音聊天,语音对讲,视频聊天,网络互动(未来增值服务,类似于网络游戏平台和论坛/问答系统)卡卡用户集中策略:每天固定时间段开启,集中用户同时在线进行配对.卡卡平台:安卓+IOS+web卡卡未来整合业务:随机配对+兴趣组(在同一话题/兴趣下继续配对.比如,我喜爱天文学,我就在天文版随机配对)卡卡第一版开发需求:后台:用户管理,设定开启/关闭时间段/每天,每N天上传头像/建

iOS软件更新思路

需要更新版本数组 needUpdateVersions{1.2.61.2.8} 历史版本数组 historyUpdateVersions1.2.41.2.51.2.6 更新数据库1.2.71.2.8 更新数据库 lastTowToFinalVersions倒数第二个版本到当前版本1.2.71.2.8如果只有一个历史版本,那么取当前版本1.2.8 finalNeedUpdateVersions需要更新版本数组中找到 >倒数第二个版本 <=最新版本 的版本数组1.2.8

环境企业表单权限分配填报数据系统设计与实现

本科生毕业论文(设计) Undergraduate Graduation Thesis(Design) 题目Title:环境企业表单权限分配填报数据   系统设计与实现                 院 系 School (Department):数据科学与计算机学院  专 业 Major:   软件工程   学生姓名 Student Name:                     学 号 Student No.:                    指导教师(职称) Superviso

《我们不一样》团队项目软件设计方案

1.博文中要突出对完善内容的陈述说明,修改部分要陈述修改理由:https://github.com/ilyar1015/Word 1)软件系统详细设计说明书的完善 在测试计划当中加入了关于UI测试的测试目的,测试要点.测试目的当中加入了第四条测试目的:"确保用户界面会通过测试对象的功能来为用户提供相应的访问浏览功能":测试要点中加入了用户界面功能测试,测试用户界面的正确性.友好性.人性化.易操作性. 2)软件系统设计说明书的完善 尚未解决的问题的补充 目前用户界面处于优化阶段,用户界面