2014-02-09 21:23:31 time_hunter 阅读数 730
  • webservice入门到精通(备java基础,xml,javaee框架...

    Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。

    11209 人正在学习 去看看 任亮

本文参考张海藩老师和牟永敏老师的《软件工程导论》

如果出现了下列情况,两个模块就发生了内容耦合

  1. 一个模块访问另一个模块的内部数据。
  2. 一个模块不通过正常的入口而转到另一个模块的内部。
  3. 两个模块有一部分程序代码重叠。
  4. 一个模块有多个入口。


2019-09-16 17:32:45 u013732378 阅读数 60
  • webservice入门到精通(备java基础,xml,javaee框架...

    Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。

    11209 人正在学习 去看看 任亮

一,什么是总体设计

把系统的功能需求分配到一个特定的软件系统结构中。

1.模块结构图

2.层次图

3.HIPO图:H就是层次图+IPO是输入/处理/输出图

模块图例子:

层次图例子:

HIPO图例子

二、总体设计的步骤

将DFD图(流程图)转换成“高内聚,低耦合”的模块结构图。

怎么转换了,两种映射方法

1.变换设计:一个线性的顺序结构,由输入,输出和变换中心三部分组成,变换中心让数据发生一个本质的变换。输入把物理输入变成逻辑输入,输出臂把逻辑输出变成了物理输出。

2.事务设计:有一个事务的处理中心,它将输入分为许多相互平行的加工路径,然后根据输入的属性,选择某一加工路径。

上图中的实心黑点加一个箭头的符号是表示底层像上层传递了一个控制信号。

菱形表示的选择,根据控制信号决定究竟要调哪个。

三,模块化及其启发式规则(什么是启发式规则呀?)

模块:有模块接口和模块体组成

模块化:把一个待开发的软件分解成若干个简单的,具有高内聚低耦合的模块,这一过程称为模块化

四,模块耦合

两个模块之间相互依赖程度的一种度量。

模块之间的耦合越低越好,非得耦合的时候,最差的是内容耦合,最好的是数据耦合

五,模块内聚

一个模块内部成分之间相互关联程度的度量。也就是说,内聚是对模块内各处理动作强度的一种度量。内聚越大越好。

2014-07-20 16:01:59 u012904383 阅读数 1505
  • webservice入门到精通(备java基础,xml,javaee框架...

    Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。

    11209 人正在学习 去看看 任亮

    最近在看软工视频,跟软工视频比起来,敲代码太容易了。。跟我的题目一样,我对软工的第一印象就是它是软件设计的灵魂,发挥着指导思想的作用。

    视频感觉很抽象,名词都搞不懂,但是还是跟着做笔记,在讲例子的时候会揣摩一下。师傅说软工视频重点是各个开发的步骤明白,各个步骤需要针对性的写什么搞清楚就可以了,像那些高内聚低耦合什么的以后用着用着就懂了。吸取写SQL视频总结的教训,这次先分着小总结,再进行大总结。


(一)第一章 软工的概述(第1-3讲)


    根据视频的顺序,先来小总结一下 第一章 软工的概述(第1-3讲)这章比较简单(PS:开头都很简单),主要向我们概括的介绍了两个对象,软件和软件工程。软件是计算机系统中与硬件相互依存的另一部分,她是包括程序,数据及其相关文档的完整集合。网上搜索关于软件工程的概念还挺多的,很多人都对它进行了定义。简单的说它就是将我们的软件开发过程贴近低成本,高效率的目标。软件开发过程中,可以有几个模型供开发者使用,各有优缺点,常用的模型是:瀑布模型,原型模型,渐增模型,螺旋模型,喷泉模型等。

    软件跟我们人一样具有生存期,它们也会经历孕育,诞生,成长,成熟,衰亡的生存过程,这就是所谓的软件生存期,也是本章重点内容。用专业的术语来说,软件生存期分为以下六个阶段:制定计划,需求分析和定义,软件设计,程序编写,软件测试,运行维护。







(二)第二章 软件计划(第4-5讲)


    第一章概述之后,整套视频是根据软件开发顺序,依次进行介绍,下面 第二章 软件计划(第4-5讲)在这一阶段是软件的定义阶段,会产生可行性研究报告和项目开发计划书这两个文档。

    制定项目开发计划的目的是用文件的形式,把对于在开发过程中各项工作的负责人员,开发进度,所需经费,硬件软件条件等问题作出的安排记载下来,以便根据本计划开展和检查本项目的开发工作。

    可行性研究报告目的并不是解决问题,而是看看这个问题能不能解决,从经济可行性,技术可行性,社会因素可行性等方面的考虑问题。这个文档是供决策者参考,看看是否该工程可行。








(三)第三章 需求分析(第6-9讲)


    第三章 需求分析(第6-9讲)是软件定义时期的最后一个阶段,需求分析准确的回答了“系统必须做什么”的问题。在这个阶段会产生一个文档叫做需求规格说明书。本章的重点是结构化分析方法的理解,这种方法适合对数据进行分析的软件。在学习结构化分析方法时学习了数据流图的画法,还有数据字典。

    在这里还会形成数据要求说明书(提供关于处理数据的描述和数据采集要求的技术信息),初步完成用户手册(详细描述软件的功能、性能和用户界面,使用户了解如何使用该软件),项目开发计划书的修改和完善。






(四)​小结


    到这里,软件开发的定义时期的内容就交代完了,这个时期分为两个阶段(计划,需求分析),五个文档(可行性研究报告,项目开发计划,软件需求说明书,数据要求说明书,用户手册)。下一篇博客,将会介绍软件的开发时期。我的理解比较浅显,还希望各位提出宝贵意见。




2016-03-04 16:05:19 qq_20453707 阅读数 164
  • webservice入门到精通(备java基础,xml,javaee框架...

    Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。

    11209 人正在学习 去看看 任亮

MVC(Model View Control):

模型:对数据库的操作

视图:用户与程序交互的界面

控制器:接收用户的输入并且调用模型可用户视图来完成用户需求

MVC优点:

1 低耦合

2 高重用性和可适用性

3 较低的生命周期成本

4 快速的部署

5 可维护性好

6 有利于软件工程化管理

Struts2工作流程:

1 客户端提交一个(HttpServletRequest)请求

2 请求被提交到一系列的过滤器(Filter)。过滤器顺序ActionContext CleanUp->其他过滤器->FilterDispatcher

3 FilterDispatcher接收请求,询问ActionMapper是否要调用某个Action来处理这个(HttpServetRequest),如果ActionMapper决定调用某个Action,FilterDispatcher把请求交给ActionProxy

4 ActionProxy通过Configuration Manager(struts.xml)询问框架的配置文件,找到调用的Action类

5 ActionProxy创建一个ActionInvocation实例,同时ActionInvocation通过代理模式调用Action。但在调用之前,ActionInvocation会根据配置加载Action相关的所有Interceptor(拦截器)

6 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果result。然后根据返回的结果呈现给客户。

Struts2下载地址:

http://struts.apache.org/

Struts2文件夹结构:

apps:存放Struts2的实例应用

docs:存放Struts2的相关文档

lib:存放Struts2框架的核心类库,以及Struts2的第三方插件

src:存放Struts2框架的全部源代码

创建项目:

File->New->Project...

MyEclipse->Java Enterprise Project->Web Project->Next

输入ProjectName->Finish

Struts2类库:

struts2-core-xxx.jar;(Struts2的核心类库)

xwork-xxx.jar;(xwork项目,Struts2就是在此基础上构建的)

common-logging-xxx.jar;(用于插入其他的日志系统)

freemarker-xxx.jar;(所有的Struts 2的UI标签模板)

ognl-xxx.jar(OGNL表达式语言)

把类库添加到项目中:

拷贝所有的jar文件到web-inf/lib文件夹下

配置web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
  <display-name>MyProject</display-name>
  <!-- 设置项目运行时的欢迎界面 -->
  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
  </welcome-file-list>
  <filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  </filter>
  <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern><!-- 表示所有的请求都有它处理 -->
  </filter-mapping>
</web-app>

创建struts.xml:

<?xml version="1.0"  encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="struts-default">
<action name="login" class="org.action.LoginAction">
<result name="success">/welcome.jsp</result>
</action>
</package>
</struts>

编写LoginAction.java:

package org.action;
public class LoginAction {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String execute(){
return "success";//不做任何判断直接返回"success"
}
}

编写login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登陆界面</title>
</head>
<body>
<form action="login.action" method="post">
<table align="center" border=1 width="250" bgcolor="#F5FFE1">
<tr>
<td colspan="2" align="center" width="250" bgcolor="#CCCCFF">用户登录界面</td>
</tr>
<tr>
<td width="50">姓名:<input type="text" name="username" /></td>
</tr>
<tr>
<td width="50">密码:<input type="password" name="password"
size=22 /></td>
</tr>
<tr>
<td align="center" colspan=2><input type="submit" value="登陆" />
<input type="reset" value="重置" /></td>
</tr>
</table>
</form>
</body>
</html>

编写welcome.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>  
    <title>欢迎界面</title>
  </head>
  <body bgcolor=#f5ffe1>
  欢迎您!${username}
  </body>
</html>

部署运行:

Project->Add->tomcat 7.0->finish

浏览器输入:

http://localhost:8080/YourProjectName/login.jsp
























2008-03-03 01:34:00 kavianp 阅读数 339
  • webservice入门到精通(备java基础,xml,javaee框架...

    Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。

    11209 人正在学习 去看看 任亮

IOC基本概念
全称:Inversion of Control(反转控制)
别名:Dependency Injection(注入依赖)

IOC的优点
从软件工程角度看:低耦合
从Java程序设计语言看:时间和空间的对称美

中国男子找情人的例子:
1.青梅竹马
2.梅妁之言
3.婚姻媒介

青梅竹马:
打从还没有出生的时候就贿月老,自小就给我一个可人儿,以后就很难甩掉了,在这个过程中的所经历的心酸,又有谁能明白呢.

  1. public class Boy{
  2.   //没出生时就跟月老定义了一个如何如何的女孩给我
  3.   private MiniGirl miniDarling = new MiniGirl();
  4.  
  5.   public void kiss(){
  6.     mimiDarling.kiss();
  7.   }
  8. }

媒妁之言:
通过自定义来选择适合自己的对象,然后通过媒婆去提亲,米以成炊之后,口味突然变了,怎么办呢?而且媒婆接触的女孩是有限的

......


详情:

http://www.kavian.com.cn/?p=49

 

类和类之间的关系

阅读数 9991

没有更多推荐了,返回首页