面向对象软件工程包括以下几个部分(面向对象的软件工程包括)

发表时间:2024-02-26 08:24:07 编辑:星光 标签:手机版

面向对象软件工程包括以下几个部分很多人对这个问题比较感兴趣,下面让我们一起来看面向对象的软件工程包括吧,希望可以帮助到你。

面向对象软件工程包括以下几个部分

面向对象开发方法包括三部分

面向对象开发方法包括OOA、OOD、OOP三部分。

1、OOA

Object-Oriented Analysis:面向对象分析方法。OOA是指在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。OOA与结构化分析有较大的区别,OOA强调在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。

2、OOD

面向对象设计(Object-Oriented Design,OOD)方法是OO方法中一个中间过渡环节。其主要作用是对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受。面向对象设计(OOD)是一种软件设计方法,是一种工程化规范。这是毫无疑问的。按照Bjarne Stroustrup的说法,面向对象的编程范式(paradigm)是【Stroustrup,97】。

3、OOP

面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。

面向对象软件工程的内容简介

《面向对象软件工程》分为两个部分:第一部分介绍了面向对象软件工程的基本理论;第二部分以工作流的形式介绍了软件生命周期。
《面向对象软件工程》特色
●包括面向对象生命周期模型、面向对象分析、面向对象设计,以及面向对象软件的测试和维护。
●讨论了文档、维护、复用、可移植性、测试和CASE工具等的重要性。
●包括了能力成熟度模型(CMM)和人员能力成熟度模型(P-CMM)的内容。
●与语言无关。实例代码对于C++和Java语言背景的读者同样清晰。
●包括600余篇当前热点研究文章、经典文献和书籍的参考文献。
●包含2个哪凳用于说明完整软件生命周期的运行实例,还有7个较小的实例,分别用于突出说明特定的主题。
●包括5种类型的习题,分别是概念理解、项目分析、课程设计、论文研读和实例修改。
面向对象软件工程方法具有下述4个特点:燃岩
(1) 把对象作为融合了数据及在数据上的操作行为的统一软件构架,用对象分解取代了传统方法的功能分解
(2) 把所有对象都划分为类。每个类定义了一组数据和一组操作,类是对具有相同数据和相同操作的一组相似对象的定义
(3) 按照父类与子类的关系,把若干个相关类组成一个层次结构的系统。下层派生类自动拥有上层基类中定义的数据和操作,李段旅这种现象称为继承
(4) 对象彼此之间仅能通过发送消息互相联系,对象的所有私有信息都被封装在该对象内,不能从外界直接访问,这就是封装性

面对对象的软件工程包括哪些主要内容

简单肆旁衫来说,主要包含:面向对象启余的分析(OOA)、面向对象的设计(OOD)、面向对象的编程(OOP)三个步骤。整个步骤以对象和类的分析为主线,前一步骤分析设计的类,往往在后一步骤中被细化或完裂腔善。

面向对象的开发过程一般分为哪几个部分?简述每一部分的任务

软件开发的过程:
1、需求分析(25-30%):在面试时说明自己参与了某个项目的某个模块从需求到设计到开发的所有过程,
一定客户签字认可,在合同中要说明验收时以需求说明书的内容为准,
若有改动,需与商务另行商议。
成果:
需求说明书,具体内容如下:
demo(界面原型):需求的可视化
需求特征列表:简要的说明系统的功能,确定优先级及风险度
用例图:说明系统整体的功能
角色:
角色:系统的参与者
用例:一个功能
系统边界:功能范围
关系:
角色与角色:泛化(实线+三角)
用例与用例:
扩展:---extend-->可用可不用
包含:---include---->必须调用
角色与用例:调用(实线+箭头)
用例说明:
1、用流程图(活动图)说明
开始
结束
判断
分支
泳道
汇集
2、写用例说明文档,其有六大元素
功能描述
参与者
前置条件:前提
后置条件:结果
基本流:最正常的情况
扩展流:可能及出斗樱错的情况
2、整体设计空行丛(20-30%)
1、分析业务流程
bbs
登陆注册
浏览、发新帖、回复
短消息
用户管理
版块管理
帖子管理
2、根据业务设计业务实体及类图
讨论区(1) 版块(0..n)
版块(1) 主帖(0..n)
主带颂帖(1) 回帖(0..n)
用户(1) 帖子(主帖、回帖)(0..n)
用户(1) 消息(0..n)
e-r图的的过程
1、外模型:根据业务找业务实体,与具体技术无关
2、概念模型:与具体的技术整合在一起
过程:
找实体
拉关系
写属性
三级范式:
有主键(projectID employeeID)
projectID projectName employeeID empoyeeName position hourSalary workHours
完全依赖于主键
projectID projectName
employeeID empoyeeName position hourSalary
projectID employeeID workHours
不出现传递依赖
projectID projectName
employeeID empoyeeName position
position hourSalary
projectID employeeID workHours
类图:
角色:
接口

关系:
继承:实线+三角
依赖:虚心+箭头
实现接口:虚心+三角
关联:实线+箭头
聚集:实线+空心菱
组成:实线+实心菱
3、确定项目的技术框架
框架设计的原则:上层依赖于下层,尽量减少下层对上层的
依赖,层与层之间通过接口调用。
模式的目的:提高代码的可扩展、可维护性
模式的原则:增加开放,修改关闭,面向接口抽象类编程
常用的模式:
最好画图
simplefactory:简单工厂,有三个角色
工厂:产生具体产品返回抽象产品
抽象产品:一个接口或抽象类
具体产品:具体的实现
增加一个产品时不用修改客户端,只需修改工厂,
如果用了返回,就不用修改工厂,只需修改配置,spring
用的就是返射,是超级工厂。
单例:整个虚拟机中只有一个实例。三大特征:
1、私有所构造子
2、私有的静态属性
3、公有的静态方法,对象为空时产生一个新的,
不为空直接返回
代理:代理与真实对象实现的是同一接口,将真实对象作为代理的属性
向客户端公开的代理,客户端调用代理的方法时,代理找到真实对
象,调用真实对象方法,在调用之前之后可以提供事务、日志、安
全等服务。
模板:父类提供抽象方法及具体方法,具体方法调用抽象方法,
抽象方法由子类实现,向客户端公开的子类,客户端通过
父类的具体方法调用子类实现的抽象方法,为子类
提供服务。
装饰:有三个角色,通用接口,本原,装饰,将通用接口聚集到
装饰中,所在可以将本原或装饰通过构造子注入到另一个装饰中,
装饰可以有很多子类,可以将本原或装饰通过构造
子注入到另一个装饰中,将多个装饰的功能随意组合。
轻量级的框架
jsp&servlet&dao&jdbc:用的model2,速度是最快的,开发效率不高。
M:
facade&dao&jdbc
C:
serlvet
V:
jsp
通过jsp将请求发给servlet,servlet通过
FacadeFactory产生具体的Facade返回一个IFacade接口,通过IFacade接口
调用Facade的具体方法。
Facade通过dao的抽象工厂产生具体的工厂,通过具体的工厂产生具体的dao,
返回dao接口给业务层。
Facade执行完后将结果返回给servlet,servlet转发到下一个页面。
Servlet用了模板模式可以提供错误处理、事务、页面跳转的服务。
struts&dao&hibernate:速度较快,因为我们要自己实现工厂,并不是所有的一切
都是返射,相对spring来说速度更快一些。
struts:
mvc,请求处理过程
用一个模板模式提供通用错误、事务、跳转服务。
将IFacade接口作业其属性,通过FacadeFactory工厂产生具体的Facade
返回一个Facade接口。
facade
IFacade接口
Facade实现类
FacadeFactory:facade工厂
dao接口作为Facade的属性,通过AbstractFactory调用具体的DaoFactory
产生具体的dao实例,返回dao接口。
dao:
dao
daoImpl
DaoFactory:产生daoImpl实例,返回dao接口
AbstractFactory:通过返射、工厂、单例产生具体的DaoFactory,返回
AbstractFactroy,因为具体的工厂继承于抽象的工厂,客户端
调用的还是具体工厂方法。
hibernate
核心类
核配置文件
struts&spring&hibernate/ibatis:这是当前最通用、最快速、藕合度最低的开发方式
但也有一个问题spring一切都是返射,速度慢。
struts/hibenate/ibatis要解析xml文件、要大量用到返射,所以速度慢。
一般适合于中小型系统(并发量<500),大型系统有些不适合需要调整。
struts已是MVC
spring是一个超级工厂,在spring中配置的都是实现类,在代码中得到都是接口。
hibenate/ibatis是o/r Mapping
框架结构:
struts:
mvc
请求处理过程
在spring中加入bean标签,配置具体的action,通过set方法将Facade代理
注入到action的IFcade接口中。
Facade
IFacade接口
Facade实现类
在applicationContext.xml配置具体的Facade类,在配置Facade的Aop服务时,
先配置抽象代理AbstractProxy其是TransactionProxyFactoryBean,说明装备
TransactionManager,说明连接点TransactionAttributes。再配置具体的
代理,继承于AbstractProxy,通过target指向真实的对象。
通过set方法注入将具体的Dao注入到Facade的Dao接口属性中。
Dao
dao接口
dao的实现 extends HibernateDaoSupport/SqlMapClientSupport
在applicationContext.xml中配置具体的dao,向Facade返回dao接口。
hibernate
在applicationContext.xml中配置dataSource、sessionFactory,
通过set方法注入将sessionFactory注入到dao实现类中。
ibatis:
在applicationContext.xml中配置dataSource、sqlMapClient,
通过set方法注入将sqlMapClient注入到dao实现类中。
3、详细设计
对于开发能力比较强的团队,可以不做详细设计。
时序图:
作用:找类、找方法、验证系统的正确性
元素:
纵轴:时间、对象的生命周期
横轴:说明对象与对象的交互
4、编码(25-30%)
5、测试(10%)

0
猜你喜欢