软件开发所经历的生命周期
来源:互联网 发布:淘宝店主回复好评 编辑:程序博客网 时间:2024/06/05 06:19
总的来说,软件开发都会经历一下生命周期
- 分析需求:分析问题领域,了解用户的需求
- 软件设计:设计软件的总体架构,把整个软件系统划分成大大小小的多个子系统,设计每个子系统的具体结构
- 软件编码:用选定的编程语言来编写软件功能,实现软件设计阶段所勾画出来的软件蓝图
- 软件测试:测试软件是否实现特定的功能,以及软件的运行性能
- 软件部署:为用户安装软件系统,帮助用户正确的使用软件
- 软件维护:修复软件中存在的BUG,当用户的需求发生变化时(增加新的功能,或更改现有功能的实现方式)修改相应的软件模块
为了提高软件的开发效率,降低软件的开发成本,一个良好的软件系统应具备以下特点
- 可重用性:减少软件的重复代码,避免重复编程
- 可扩展性:当软件系统的需求必须放生更改时,可以方便的在现有架构的基础上构建新的子系统,也不需要改变软件系统的现有结构且不影响其它以存在的子系统
- 可维护性:当软件系统的某个功能需要更改时只需修改相关子系统的少量代码即可,而不需要修改软件系统中的多个子系统。
如何才能使软件系统具备以上特点呢?加入吧整个软件系统分解成多个小的子系统,每个子系统之间相对独立把这些子系统像最积木一样灵活的组装起来构成整个大的软件系统。这样设计出来的软件肯定能获得以上的优良特性。软件系统中的子系统具备以下特性:
- 结构稳定性:软件设计阶段把一个软件系统划分成更小的子系统时,设计合理,是系统的结构健壮能适应用户变化的需求
- 可扩展性:当软件必须增减新的功能时,能够在现有子系统的基础上创建出新的子系统,该子系统继承了原有子系统的一些特性,并且还具有一些新的特性,从而提高的系统的可重用性及可扩展性
- 内聚性:每个子系统只完成特定的功能,每个子系统不会有功能的重叠
- 可组合性:若干个小的子系统组合起来就成了一个完整的大系统,子系统的可组合性会提高软件的可维护性及可重用性 并简化开发过程
- 松耦合:每个子系统之间相对独立,修改一个子系统不会影响到其它的子系统。
面向对象开发:
咋面向对象的开发方法中把软件系统看成是各种对象的集合,对象就是最小的子系统,一组相关的对象能够组合成更复杂的子系统。面向对象的开发方法具有以下优点
- 把软件系统堪称是各种对象的集合,这更符合人类的自然思维方式
- 软件需求的改动往往是功能的改动,而功能的执行者————对象一般不会有太大的变化这使得按照对象设计出来的系统结构比较稳定
- 对象包括属性(数据)和行为(方法)把对象的数据及方法的实现方式一起封装起来,这使得方法以及与之相关的数据不再分离,提高的子系统的相对独立性,从而提高的软件的可维护性
- 支持封装、继承、多态和抽象,提高的系统的可重用性、可维护性和可扩展性
对象模型:
在面向对象的分析和设计阶段,致力于建立模拟问题领域的对象模型,建立对象模型包括自底向上的抽象过程也包括自顶向下的分解过节过程。
建立对象模型的第一步使从问题领域入手,彻底搞清用户的需求,然后建立正确的对象模型,开发人员需要进行一下自低向上的抽象思维
- 吧问题领域的属性和行为抽象成具体的对象
- 把具有相同属性和行为的对象抽象成类
- 若多个类中存在共性(具有相同的属性和行为)把这些共性抽象到父类中
在自底向上的抽象过程中,为了使子类能更好的继承父类的属性和行为,可能需要自顶向下的修改,从而使类体系更加合理。由于这种类体系的构造是由具体到抽象,再从抽象到具体,符合人类的思维规律,因此能更好更快的完成任务。
0 0
- 软件开发所经历的生命周期
- 软件开发过程中所使用的生命周期模型比较
- 我的考研经历(从华工应数到中大软件所)
- 软件开发生命周期的管理
- 软件开发生命周期的管理
- 软件开发生命周期的管理
- 软件开发的生命周期模式
- 我的软件开发经历和收获
- 十年经历:软件开发的“三重门”
- 转行做软件编程开发的经历
- 软件的生命周期和软件开发模型
- WSFISP软件开发经历
- 软件开发所需要的三种人
- [转贴]软件开发所需要的三种人
- 软件开发所需要的三种人
- (转载)软件开发所需要的三种人
- 软件开发所需要的十三个文档
- 软件开发所需几种文档的概述
- Tomcat使用Log4j输出catalina.out日志
- 迄今见过的最好的职业规划文章
- skiplist跳表
- angularjs实现地址的三级联动
- 树形和仿树形下拉框
- 软件开发所经历的生命周期
- 15个必须知道的chrome开发者技巧(GIF)
- 网络优化步骤
- IntentService 详解
- Spring4报org.aopalliance.intercept.MethodInterceptor问题解决方法
- 关于安卓调试桥adb.exe被金山wps软件导致冲突问题。
- const volatile同时限定一个类型int a = 10
- reality editor MIT黑科技
- ASPxGridView-根据记录值来控制命令按钮(CommandButton)或子表命令列(CommandColumn)的显示与可用
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
新生儿突然噎住怎么办
孩子得了哮喘怎么办
新生儿气喘怎么办
小孩子咳嗽气喘怎么办
新生儿咳嗽气喘怎么办
宝宝喘怎么办
宝宝气管炎喘怎么办
憋得慌喘不上气怎么办
小孩咳喘性肺炎怎么办
娃娃变异性哮喘怎么办
宝宝一醒就咳嗽怎么办
宝宝咳嗽喘息怎么办
宝宝老喘怎么办
小孩哮喘咳嗽怎么办
宝宝一岁半哮喘怎么办
宝宝气喘咳嗽怎么办
宝宝有点喘怎么办
鼻炎咳嗽严重怎么办
哮喘病人发烧怎么办
哮喘病人发作怎么办
哮喘病人感冒怎么办
反复性鼻炎怎么办
急性哮喘病咳嗽怎么办
呛到气管怎么办
小腹岔气怎么办
跑步后胸闷怎么办
哮喘反复发作怎么办
呼吸气促怎么办
喝完就手抖怎么办
喝完酒手抖怎么办
激动颤抖怎么办
年轻人得了哮喘怎么办
原发性震颤遗传怎么办
喝酒后手抖怎么办
酒精性手抖怎么办
老年人手发抖怎么办
老人家手抖怎么办
运动后手抖怎么办
青少年手抖怎么办
更年期肾阴虚怎么办
孕妇肾阴虚怎么办