软件工程领域 相关概念
设计相关:
1、框架(framework)概念?
框架是一个框子——指其约束性,也是一个架子——指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题。框架这个广泛的定义使用的十分流行,尤其在软件概念。
2、软件框架(Software framework)概念?
通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。软件框架其实就是将代码放到一个我们看不到的容器中,规定架构。当我们使用的时候直接调用。
编码相关:
1、模块和组件的区别?
模块(Module)和组件(Component)是一对容易混淆的名词,也常常用来相互替换。两者是否有差异往往取决于专业背景、所在领域、以及视角。
Module:中文名为模块或模组。 它的核心意义是分离职责,本身是一组具有一定内聚性代码的组合,职责明确。 对外的接口可以是松散的或集中的。 它以问题分解的新式,来解决软件设计问题。 它更强调一个内聚的概念,形势上可以使Java中的包,也可以是一个源代码目录。
在实际编码中,模块就是实现特定功能的一组方法。
只要把不同的函数(以及记录状态的变量)简单地放在一起,就算是一个模块。
Java编码中,一个类(成员变量+成员方法)就是最简单的、最小的一个模块。
也可以说,模块是比对象更高一级别的抽象,比如把功能相近的对象放在一个包作为一个模块。
总之,模块可大可小,可以是单个对象,也可以是一个包。同时,模块的初衷和主要目的是为了重用,同时也带来了提升系统的可维护性、可靠性等便利。
(参考模块化编码:http://www.ruanyifeng.com/blog/2012/10/javascript_module.html)
Component:中文名为组件,或者构件。 它的核心意义在于复用,是可以复用的模块,概念上与模块基本等同,但对于依赖性有更高的要求。 它除了完成某个特定的功能外,还要具备如下条件的代码组合:符合特定的接口要求(交互的要求); 具有明确的上下文依赖(复用的要求); 它可以是独立发布(二进制或源代码的形式),也可以进行组合,这样软件开发就编程组件的组装了。 和OOP中的Objects相比,一个类也可以视为一个组件,如JavaBean,但更多情况下,组件提供了更为高层的系统视觉。Component如同一片树林,Object如同树。
因此(个人理解),从软件设计上来看,模块强调职责(负责完成某部分功能,模块可大可小);组件强调复用,或者说组件是达到可复用要求的模块(可以在多个系统中使用,如Log4j)。
2、持久层:即 persistence。就是把数据保存到可掉电式存储设备中。
大多数情况下特别是企业级应用,数据持久化往往也就意味着将内存中的数据保存到磁盘上加以固化,而持久化的实现过程则大多通过各种关系数据库来完成。
那么什么是持久层呢?
延续思路,所谓“持久层”,也就是在系统逻辑层面上,专著于实现数据持久化的一个相对独立的领域(Domain)。
持久层是负责向(或者从)一个或者多个数据存储器中存储(或者获取)数据的一组类和组件。这个层必须包括一个业务领域实体的模型(即使只是一个元数据模型)。
不过这里有一个字需要特别强调,也就是所谓的“层”。
对于应用系统而言,数据持久功能大多是必不可少的组成部分。那不就是说,我们的系统中,已经天然的具备了“持久层”概念?
也许是,但也许实际情况并非如此。
之所以要独立出一个“持久层”的概念,而不是“持久模块”,“持久单元”,也就意味着,我们的系统架构中,应该有一个相对独立的逻辑层面,专著于数据持久化逻辑的实现.与系统其他部分相对而言,这个层面应该具有一个较为清晰和严格的逻辑边界。
持久层框架:
Hibernate
Hibernate 是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Eclipse平台下的Hibernate辅助开发工具:【Hibernate Synchronizer】【MiddlegenIDE】
MyBatis
使用MyBatis 提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象, 这一层与通过Hibernate 实现ORM 而言基本一致,而对于具体的数据操作,Hibernate 会自动生成SQL 语句,而MyBatis则要求开发者编写具体的SQL 语句。相对Hibernate等 “全自动”ORM机制而言,MyBatis 以SQL开发的工作量和数据库移植性上的让步,为系统 设计提供了更大的自由空间。作为“全自动”ORM 实现的一种有益补充,MyBatis 的出现显 得别具意义。
数据库相关:
E-R图:也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。
实体:是问题领域中的对象,E-R图中的实体不是具体的实体,而是抽象出来的实体类。
联系:也称关系,信息世界中反映实体内部或实体之间的关联。共三种:一对一联系、一对多联系和多对多联系。
软件工程领域 相关概念相关推荐
- 在软件工程领域,搞科研的这十年!
文 | 刘杨 出品 |<新程序员>编辑部 技术的发展离不开科研的创新和工程的落地,本文作者刘杨的程序人生起于兴趣,成于夜以继日地编程和科研,而后他将工程与科研相结合,对软件工程数字化进行深 ...
- 华东理工计算机系专业考研难度,华东理工大学软件工程领域考研专业怎么样
考研交流群296795122 考研专业的选择要考虑以下几个方面:学科热度.就业形势.个人兴趣.本科专业的限制.为了帮助同学们了解考研院校的专业情况,中公研招网小编帮各位考研的小伙伴们整理了一篇&quo ...
- 2019年下半年软件工程领域各大会议投稿时间(包含会议信息介绍及CCF推荐会议最新目录)
文章目录 前言 1 CCF会议最新排名 1.1 基本信息 1.2 软件工程领域相关会议 A类 B类 C类 2 下半年软工会议投稿时间(A类会议) 2.1 PLDI 2.2 POPL 2.3 FSE/E ...
- 2019年软件工程领域各大会议投稿时间
##前言 本文旨在记录2019年软件工程(Software Engineering)领域各大会议投稿时间 一. 顶会(CCF A类会议) 1.1 ICSE 2019 1)名称 ICSE 2019 (4 ...
- 软件工程领域CCF B类会议:SANER介绍(以SANER 2019为例)
文章目录 前言 1 基本信息(包括对其7个track的介绍) 1)Research Track 2)ERA Track 3)Industrial Track 4)Tool Demo Track 5)R ...
- 新工科的新视角:面向可持续竞争力的敏捷教学体系
https://mp.weixin.qq.com/s/r3ZZvzILZGi637oASP387g 新工科的新视角:面向可持续竞争力的敏捷教学体系 原创: 徐晓飞 李廉 等 中国大学教学 今天 摘 ...
- 《软件工程导论》考研复试整理
一.名词解释 DFD 数据流图Data Flow Diagram PDL 过程设计语言 Process Design Language PAD 问题分析图 Problem Analysis Diagr ...
- 首经贸电子信息复试软件工程导论
一.名词解释 DFD 数据流图Data Flow Diagram PDL 过程设计语言 Process Design Language PAD 问题分析图 Problem Analysis Diagr ...
- 《软件工程导论》全书知识点整理
引言:这是自己为了应付期末考试整理的全书知识点. 一 什么是软件危机?它有哪些典型表型?为什么会出现软件危机? 软件危机的介绍:软件危机是指在计算机开发和维护过程中所遇到的一系列严重的问题 主要包含以 ...
最新文章
- 开源 | 蚂蚁金服分布式中间件开源第二弹:丰富微服务架构体系
- MySQL基础之增删改查
- CentOS Linux使用logrotate分割管理日志
- centos7服务器安装无线网卡,CentOS 7 安装无线网卡驱动方法实例教程
- 电脑html怎么连接投影仪,笔记本Win10电脑外接显示器(投影仪)的设置步骤
- 电大计算机原理及应用,电大《ERP原理与应用》试题及答案.doc
- ArcGIS中裁剪(clip)出现000117错误的解决办法
- Scheme语言--简介
- ExtJS实战教程~~前言
- 计算机网络安全技术保护措施,计算机网络安全技术保护措施
- 计算机缓存Cache以及Cache Line详解
- 运筹学作业——社会网络中的信息传播优化问题
- 【重磅推荐】基于truffle-contract库实现的以太坊solidity合约调用案例(注:web3.js切勿和truffle-contract库同时使用,否则报错,无法修复!)
- 您还没有登录或登录已超时,请重新登录
- 计算机专业未来的畅想规划,计算机专业职业生涯的规划书
- 20日盗版XP系统黑屏的解决办法
- onConfigurationChanged
- hiredis linux 编译,Linux系统整合hiredis
- 有深度的报道--柴静
- android手机网速,你的手机网速太慢?可以试一下调整这个设置,网速瞬间提升...