Introduction of SE & OOAD
(软件工程和OOAD的简介)
软件工程定义
在IEEE93中,将系统化、规范化、可度量的方法应用在软件的开发、运行和维护上,并且对这种方法的研究,被定义为软件工程。
为什么需要软件工程
软件工程是在面临软件危机而被提出来的。 在20世纪70,80年代,正是很多大软件面临软件危机的时候,在人月神话中,FredBrooks就承认自己在OS 360系统中犯了一个价值数百万美元的错误。正是因为软件危机的出现,提醒我们需要利用工程化的方法去构建和维护有效的,实用的和高质量的软件,于是,软件工程也就应运而生。
其实和很多传统行业一样,软件业也同样需要不停的积累经验和方法。就像建筑业,人类的祖先从挖山洞开始,到现在积累出许许多多丰富的工程管理和技术经验,从而能够盖起一栋栋摩天大楼。软件业同样需要总结经验与方法去完成大软件的制作,而学习研究这些方法的学科就是软件工程。所以说,软件工程是必要的。
软件的生命周期
软件的生命周期可分为7个阶段
问题定义 | 主要是弄清楚软件为了解决什么问题,预期达到的目标是什么? |
可行性分析 | 从目前已有的经济,技术水平,人员,时间等多因素进行可行性分析。 |
需求分析 | 分析用户对软件的需求,确定系统要完成哪些工作,对目标系统提出完整、准确、具体的要求。 |
系统设计 | 根据需求分析的结果,对整体系统进行设计,包括框架设计,数据库设计等。 |
编码 | 将系统设计的结果编码成计算机可运行的程序代码以及生成可执行程序。 |
测试 | 对编码结果进行严格的测试,去发现并且解决存在的问题。 |
维护 | 对已经发布的程序,进行纠错性维护和改进性维护。 |
OOAD(面向对象的分析与设计)
面向对象分析,是指在问题中发现对象,并且描述对象。
面向对象设计,是指具体定义对象,并且设计出对象间协作以完成需求的方法。
例如,我们先看一个游戏的定义。让一个游戏者进行掷骰子游戏,掷两个骰子,如果总点数是7,则游戏胜利,否则游戏失败。在这个例子中,我们进行面向对象分析,则可以得到游戏中一共有2个对象,分别是游戏者和骰子。而面向对象设计的结果则是,让我们定义了玩家有掷骰子的行为,并且玩家可能存在姓名,年龄,财富等系列属性。而骰子则具有点数这个属性,以及一个返回掷出点数的模型。
利用UML时序图描述面向对象设计的结果可以是
结语
以上就是第一节系统分析与设计中,我学习到的一点心得。仅供参考,如果有哪些地方有错误,欢迎指出,我会及时思考并且做出相应修改。