第一篇:中南大學軟件學院架構復習大全
? 使用Hibernate框架進行ORM,可大幅度減少開發時手工使用SQL和JDBC的出錯。優點:簡單。缺
點:多了查詢,慢(但實際對于一個JAVA EE應用而言,hibernate通常的處理流程是:從數據看里加載記錄->將信息發送到表現層供用戶修改或刪除->將所做修改重新保存到數據庫。在這種處理流程下,應用本身就需要兩條SQL語句)。
?
? iBats---半自動化ORM框架 提供了基于JDBC之上的一層簡單抽象,是一種基于SQL語句映射的低級別ORM方案,使用原生態SQL作為查詢語言。OGNL是Object Graph Navigation Language,對象圖導航語言。ONGL是一種強大的表達式語言,它通
過簡單一致的表達式語法來讀取和設置Java對象的屬性,調用對象的方法,遍歷整個對象的結構圖,實現字段類型轉換等功能。WEB容器是指一種安裝在服務端計算機中的特定軟件。此類軟件遵循HTTP協議,主要功能是負責偵聽指定端口,接收客戶端的請求并解析,然后將指定的響應頁面發送到客戶端。EL表達式EL是一種簡單而強大的語言,提供了在JSP腳本元素范圍外使用運行時表達式的功能。Web Services應用程序組件,使用開放協議進行通信,獨立的并可自我描述,可通過使用UDDI來發現,可以被其他應用程序使用,XML是其基礎。
? Mybatis一個持久數據映射框架,提供了基于JDBC之上的一層簡單抽象,是一種基于SQL語句映射的低級別ORM方案,使用原生態SQL作為查詢語言,用來完成數據持久化MyBaits基本原理:在XML文件中定義SQL語句,預留參數占位符;在運行時,占位符被指定的參數值取代,參數可能來自參數映射表、JavaBean屬性、或者簡單的參數對象。在執行SQL查詢時,結果字段被映射到對象,映射的方式與參數映射一樣。
? ORM框架ORM, Object-Relational Mapping, 對象-關系數據庫映射框架。在關系型數據庫和業務實體對
象之間作一個映射,這樣,我們在具體的操作業務對象的時候,就不需要再去和復雜的SQL語句打交道,只要像平時操作對象一樣操作它就可以了。
? 攔截器(Interceptor)是Struts2的一個重要特性。Struts2的大多數核心功能都是通過攔截器來實現的,如類型轉換、對象組裝、輸入校驗、文件上傳等。Struts2將其大多數核心功能通過攔截器來實現,而不是分散在Action中實現,有利于系統的解耦,實現“hot-plug”。需要某個功能就“plug-in”一個攔截器,而不需要修改和業務相關的Action代碼。編寫一個用于安全驗證的攔截器第一步:修改UserAction第二步:編寫攔截器類AuthenticationInterceptor extends AbstractInterceptor第三步:配置攔截。
? DI強制將組件的構建和使用分開。(組件的生產、組件的使用、接口的定義、運行時注入)。借
助spring框架,實現工廠的效果。如果類與類之間沒有依賴(不能提取接口),則不用IOC(如果橫向有依賴,即action與action之間有關系,說明沒有設計好)功能太小,也不用IOC,spring是做大系統的。DI有兩種最常用的方式:構造注入——保留依賴的先后順序。Set注入——更多使用 步驟:定義組件接口:墨盒接口ink;紙張接口paper;使用接口開發打印機:printer(使用ink和paper接口)組裝打印機:在printer里。給ink和paper創建set方法創建或得到ink和paper的實現類。組裝——在src下創建applicationContext.xml(依賴注入)。運行打印機
? Spring框架的一項最基本的功能就是充當創建對象的工廠,具體步驟為:第一步:讀取并
分析spring配置文件(如XML配置文件);第二步:通過反射機制,創建并集成上述配置文件中的對象;第三步:將創建的對象傳回給應用代碼。
一、輸入校驗(自定義驗證器的開發)
1、編寫ValidationCodeAction,用于產生驗證碼圖像;
2、編寫自定義的結果類型,用于輸出驗證碼;
3、在struts.xml中配置自定義結果類型和ValidationCodeAction;
4、修改UserAction,添加驗證碼屬性;
5、修改login.jsp,添加驗證碼輸入框;
6、編寫字段驗證器類ValidationCodeValidator;
7、注冊字段驗證器類ValidationCodeValidator;
8、為驗證器編寫驗證規則。
二、Ajax應用的處理流程
1、一個客戶端事件觸發一個Ajax事件;
2、創建XMLHttpRequest對象的一個實例;
3、向服務器做出請求;
4、服務器完成業務邏輯;
5、請求返回到瀏覽器;
6、處理響應數據。
三、MyBatis實現步驟
1、編寫Configuration.xml文件;
2、獲取SqlSessionFactory;
3、編寫映射器UserMapper.xml;
4、編寫UserDao的實現。
四、使用Hibernate的步驟(三個準備,七個步驟)
三個準備:
1、導入Hibernate庫(jar包);
2、添加Hibernate配置文件
3、添加對應表的實體類和映射文件。
七個步驟:
1、configuration2、創建SessionFactory3、打開Session4、開始一個事務
5、持久化操作
6、提交事務
7、關閉Session
六、為什么需要AOP
AOP可以說是OOP的補充和完善。OOP引入封裝、繼承和多態性等概念來建立一種對象層次結構,用以模擬公共行為的一個集合。
然而OOP在某些場合無能為力,比如當需要分散的、不具有繼承層次的對象引入公共行為的時候,OOP則無法避免代碼的重復。
抽象的說,OOP允許定義從上倒下的關系,但并不適合定義從左到右的關系。
具體而言,比如安全驗證和記錄日志功能,這類代碼往往平均的分散在所有對象層次中,而與它所散步到的對象的核心功能毫無關系。
Spring AOP采用純java實現,無須特別編譯。不僅提供AOP基礎框架,還提供很多現成的切面實現。
Spring AOP和Spring IoC容器無縫的集成,AOP組件享受Spring提供的一切優勢,比如可將攔截器、切入點都當做Spring Bean來管理。
七、Model I和Model II的區別
本質區別在于處理批量請求的位置不同。
Model1:結合JSP頁面和JavaBean來開發Web應用程序。jsp頁面獨自響應請求并將處理結果返回客戶端。這里仍然存在表達和內容的分離,因為所有的數據存取都是由bean完成的。缺點:內容和表示沒有完全解耦,jsp頁面內被嵌入大量的腳本片段或java代碼 Model2:采用MVC的設計模式,C負責轉發請求,對請求進行處理,V顯示數據,M封裝與應用程序的業務邏輯相關的數據以及對數據的處理方法。
八、同步通信和異步通信
同步通信方式---請求響應模型,在傳統的web應用模型下,大部分的用戶操作都會發送一個http請求給服務器,然后服務器開始處理(接收數據,執行業務邏輯,訪問數據庫),最后向瀏覽器返回html頁面。
異步通信方式---XMLHttpRequest對象,異步發送請求,消除了傳統的“發送請求-等待-發送請求-等待”的特性,極大的提高了用戶體驗。
九、Spring1、核心關注點:完成業務邏輯的關注點
2、橫切關注點:實現代碼散落在很多個類或方法之中的關注點。
3、切面:一個切面是對一個橫切關注點的模塊化,它將那些散落在各處的、實現關注點的代碼歸整在一起。
十、持久化對象的狀態
? 持久化對象的臨時狀態
不在Session的緩存中,不與任何的Session實例相關聯。在數據庫中沒有與之相對應的記錄
? 持久化對象的持久化狀態
存在Session的緩存中。持久化對象映射了數據庫中的相關記錄。Session在清理緩存時,會同步更新數據庫。Session的load()或get()方法返回的對象總是處于持久化狀態
? 持久化對象的游離狀態
脫離Session緩存。
游離對象在數據庫中可能存在與之對應的紀錄,但游離對象與數據庫記錄失去了映射關系
名詞解釋
1、AJAX
一種異步交互技術,JavaScript、CSS、DOM、XmlHttpRequest四種技術的集合體,主要應用于異步獲取后臺數據和局部刷新。消除了傳統的“發送請求-等待”的特性,極大的提高了用戶體驗。
2、XMLHttpRequest(XHR)對象
XMLHttpRequest是Ajax的核心機制,是一種支持異步請求的技術。JavaScript可以及時向服務器提出請求和處理響應,而不阻塞用戶,達到無刷新的效果。
3、JSTL
JSP Standard Tag Library,由許多公司共同開發完善的開放源代碼的jsp標簽庫,是由apache維護的。
4、Web Services
應用程序組件,使用開放協議進行通信,獨立的并可自我描述,可通過使用UDDI來發現,可以被其他應用程序使用,XML是其基礎。
5、MVC
一種軟件架構模式,把軟件系統分為三個基本部分:模型(Model)、視圖(View)和控制
器(Controller)
6、AOP
面向切面編程,AOP思想的核心是“橫切”,將對象剖開,抽出一些內部的屬性和行為,處理后再將剖面復原,不留痕跡。
7、Hibernate---全自動化ORM框架
Hibernate是一個對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以使用對象編程思維來操縱數據庫,主要用來完成數據持久化的重任。
8、iBats---半自動化ORM框架
提供了基于JDBC之上的一層簡單抽象,是一種基于SQL語句映射的低級別ORM方案,使用原生態SQL作為查詢語言。
9、ORM
用Java語言設計的程序是面向對象(Object)的,而持久數據是存儲在關系型數據庫(Relation)中的,所以需要一種映射機制(Mapping)。
10.OGNL
ONGL對象圖導航語言。ONGL是一種強大的表達式語言,它通過簡單一致的表達式語法來讀取和設置Java對象的屬性,調用對象的方法,實現字段類型轉換等功能。
11、國際化(Internationalization)是使程序在不做任何修改的情況下,就可以在不同的國家或地區和不同的語言環境下,按照當地的語言和格式習慣顯示字符,又被稱為I18N。
12、AOP
意為面向切面編程,可以通過預編譯方式和運行期動態代理實現在不修改源代碼的情況下給程序動態統一添加功能的一種技術。
13、IOC
控制反轉,強制將組件的創建和使用分離,通過反射機制,動態的創建組件已達到解耦目的。
14.WEB容器
是指一種安裝在服務端計算機中的特定軟件。此類軟件遵循HTTP協議,主要功能是負責偵聽指定端口,接收客戶端的請求并解析,然后將指定的響應頁面發送到客戶端。
15.SERVLET
Servlet是一種獨立于平臺和協議的服務器端Java應用程序。Servlet由Servlet容器加載和運行,在Java Web環境中Servlet容器一般嵌入在Web容器中。主要功能就是響應來自客戶端的請求。
16.JSP
用Servlet來編寫Web應用,導致服務端代碼過于繁瑣和復雜,將Servlet中的靜態部分和動態部分分開來編寫,同時提供類似HTML的寫法.JSP是一種建立在Servlet規范提供的功能之上的動態網頁技術
17.JSP頁面的執行過程
1客戶端發出請求(Request:Counter.jsp);2.JSP容器將JSP轉譯成Servlet的源代碼;
3編譯Servlet,并加載到內存執行;4將結果響應(Response:Output.html)至客戶端。
18.EL表達式
EL是一種簡單而強大的語言,提供了在JSP腳本元素范圍外使用運行時表達式的功能
19.jdbc
JDBC是Java數據庫連接(Java Database Connectivity)的簡稱。
是Java平臺(JavaSE)中用來規范客戶端程序如何來訪問數據庫的應用程序接口(API),提供了諸如查詢和更新數據庫中數據的方法。
軟件開發人員使用這些標準API來連接和操作數據庫,實現數據庫應用程序的開發。
第二篇:中南大學軟件學院架構超強復習
? JDBC是用來執行SQL的Java API,開發人員可以使用這些標準API來迎接和操作數據庫,實現數據庫
應用程序的開發。JDBC是Java的規范,考慮到規范的適應性,JDBC只提供了最直接的數據庫操作規范,在Java.sql包中。2種主要的JDBC連接方式:ODBC橋驅動技術和JDBC純驅動模式。ODBC驅動程序是由微軟設計和開發的一種通用的標準的操作數據庫的API,也可以認為是一種數據庫系統應用程序的接口規范。純驅動技術是一種由各個數據庫廠商提供的驅動程序,其通過協議的方式,將應用程序的SQL語句直接發送到數據庫的DBMS執行,并返回結果。JDBC 可做三件事:與數據庫建立連接執行SQL 語句、處理結果。使用JDBC直連DB的缺點:1.在某一時刻連接必須服務于一個用戶,以免造成事務沖突。2.創建連接需要耗費時間。3.保持連接打開狀態的代價很大。使用數據庫連接池的優點:1.資源重用 2. 更快的系統響應速度 3. 統一的連接管理,避免數據庫連接泄漏? Servlet是一種獨立于平臺和協議的服務器端的Java應用程序,可以生成動態的Web頁面。Servlet
能干什么:1.根椐請求創建并響應整個 HTML Web 頁面,根據客戶請求的性質而具有動態內容。2.創建 HTML Web 頁面的動態部分,并嵌入到現有靜態 HTML 頁面中。3.使用服務器上的其他資源,如數據庫、其他Java程序。4.處理與多個 Web 客戶端的連接,接收來自多個 Web 客戶端的輸入信息。生命周期包括加載、實例化、處理客戶端請求和移除,該生命周期由javax.servlet.Sercvet接口的init、setvlet、destroy方法實現。該生命周期由部署Servlet的容器來控制。
? JSP是Servlet來編寫服務端代碼過于繁瑣和復雜,所以將響應頁面的動態部分和靜態部分分開。JSP
與Servlet的關系:1 JSP是一種建立在Servlet規范提供的功能之上的動態網頁技術 2.JSP文件在用戶第一次請求時,會被編譯成Servlet,然后由這個Servlet處理用戶的請求 3.JSP可以看成是運行時的Servlet。JSP執行過程:1.客戶端發出請求(Request)2.JSP 容器將JSP轉譯成Servlet的源代碼 3.編譯Servlet,并加載到內存執行 4.將結果響應(Response)至客戶端。JSP語法提供3種腳本元素:1.聲明(Declarations)——聲明變量或方法 2.Scriptlets——編寫有效的Java程序片段 3.表達式(Expressions)——合法的Java表達式。servlet 對象包括:page和config。JSP中會話跟蹤的方法:
1.隱藏域 2.URL傳值 3.session 4.cookie
? JavaBean往往封裝了程序的頁面邏輯,它是可重用的組件。通過使用JavaBean,可以減少在JSP中
腳本代碼的使用,這樣使得JSP易于維護。JavaBean 的優點:變更方便、可重用組件、可在多個應用程序中使用、可以跨平臺
? 頁面關聯:Web應用程序最突出的優點是其能夠聚合大量的信息資源。單個Web組件所提供的信
息和功能是有限的,因此需要通過Web組件間的關聯來實現信息資源和功能的聚合。Web組件之間共有三種關聯關系:請求轉發、請求重定向、包含。Web作用數據域:頁面范圍、請求范圍、會話范圍、應用范圍‘
? MVC模式(三層架構模式)(Model-View-Controller)
織代碼用一種業務邏輯和數據顯示分離的方法。把軟件系統分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller)??刂破髫撠熮D發請求,對請求進行處理。視圖實現數據的顯示。模型封裝與應用程序的業務邏輯相關的數據以及對數據的處理方法
? Model1和model2的區別 Model1模式的實現比較簡單,適用于快速開發小規模項目。但從工程
化的角度看,它的局限性非常明顯:JSP頁面身兼View和Controller兩種角色,將控制邏輯和表現邏輯混雜在一起,從而導致代碼的重用性非常低,增加了應用的擴展性和維護的難度。Model2已經是基于MVC架構的設計模式。在model2架構中,servlet作為前端控制器,負責接受客戶端發送的請求,在servlet中只包含控制邏輯和簡單的前端處理;然后,調用后端的JavaBean來完成實際的邏輯處理;最后,轉發到相應的JSP頁面處理顯示邏輯。區別:本質區別在于處理批量請求的位置不同。說明Strusts2是如何實現MOdel2的?在struts2中,Model對應業務邏輯組件,它通常用于實現業務邏輯方法以及以及與底層數據庫的交互等;View對應視圖組件,通常是指JSP頁面,但也適用于其他視圖顯示技術,如Velocity或者Excel文檔;Control對應系統核心控制器和業務邏輯控制器,系統核心控制器為Struts2框架提供的FilterDispatcher,它根據請求自動調用相應的Action。而業務邏
輯控制器是指開發人員自行定義的一系列Action,在Action中負責調用相應的業務邏輯組件來完成處理。
? JSTL(JSP Standard Tag Library)是基于SUN公司所定義規范,由許多公司共同開發完善的開放源代
碼的jsp標簽庫,為實現Web應用程序中常用功能提供了一個單一的標準解決方案,是由apache維護的。
? Servlet過濾器是Web中的一個小型組件,它能攔截來自客戶端的請求和響應信息,進行查看提取
或者對客戶端和服務器之間交換的數據信息進行一些特定的操作。Servlet過濾器常用的應用場景:
1、對用戶請求進行統一認證
2、用戶的訪問進行記錄和審核
3、對用戶發送的數據進行過濾或替換
4、轉換圖像格式
5、對響應內容進行壓縮,減少傳輸量
6、對請求和響應進行加解密處理 ? 什么是Ajax?AJAX是一種異步交互技術,是JavaScript、CSS、DOM、XmlHttpRequest四種技術的集合體,主要應用于異步獲取后臺數據和局部刷新。異步交互方式:異步發送請求,消除了傳統的“發送請求-等待-發送請求-等待”,極大的提高用戶體驗。異步:發送請求后不等返回結果,由回調函數處理結果。JavaScript:向服務器發起請求,獲得返回結果,更新頁面。XML:封裝數據。Ajax應用的處理流程
1、一個客戶端事件觸發一個Ajax事件;
2、創建XMLHttpRequest對象的一個實例;
3、向服務器做出請求;
4、服務器完成業務邏輯;
5、請求返回到瀏覽器;
6、處理響應數據。Ajax框架:瀏覽器端1.Dojo 2.Google AJAXSLT 3.jQuery 服務器端1.JSON/JSON-RPC 2.Rails 3.DWR
? XMLHttpRequest是ajax的核心機制,是一種支持異步請求的技術。簡單的說,也就是javascript可
以及時向服務器提出請求和處理響應,而不阻塞用戶,達到無刷新的效果。XMLHttpRequest對象的常用方法:1.Open(”method”,”url”):建立對服務器的調用。Method參數可以是POST,GET或PUT。url路徑可以使絕對路徑也可以是相對路徑。另外這個方法還有三個可選的參數。2.Send(content):向服務器發送請求。
? AJAX優點:
1、最大的一點是頁面無刷新,在頁面內與服務器通信,給用戶的體驗非常好。
2、使用
異步方式與服務器通信,不需要打斷用戶的操作,具有更加迅速的響應能力。
3、可以把以前一些服務器負擔的工作轉嫁到客戶端,利用客戶端閑置的能力來處理
4、基于標準化的并被廣泛支持的技術,不需要下載插件或者小程序。AJAX缺點:1.缺少一個沒有標準之爭、沒有back和history的瀏覽器2.對搜索引擎的支持不好3.安全問題4.語言問題
? 同步通信和異步通信 同步通信方式---請求響應模型,在傳統的web應用模型下,大部分的用戶操
作都會發送一個http請求給服務器,然后服務器開始處理(接收數據,執行業務邏輯,訪問數據庫),最后向瀏覽器返回html頁面。異步通信方式---XMLHttpRequest對象,異步發送請求,消除了傳統的“發送請求-等待-發送請求-等待”的特性,極大的提高了用戶體驗。
?
? JavaScript是一種廣泛用于客戶端的腳本語言,一種動態、弱類型、基于原型的語言,內置支持類 XML(可拓展標記語言)是SMGL的子集,其目標是允許普通的SGML在Web上以目前HTML的方式被服務、接受和處理,被設計成易于實現,且可在SGML和HTML之間互相操作。商業優勢:信息共享、單一應用使用、內容交付。技術優勢:數據重用、數據和表示分離、可拓展性、語義信息、容易理解、易于編程
? 由于軟件已經實現了基本的MVC架構,開發者可以基于這個軟件,添加自己特定的業務邏輯,這樣的軟件就可以被稱為Web框架。通過Web框架:規范軟件的架構、減輕開發的難度、提高效率、降低維護成本。
?
? Struts1的缺陷:Formbean與ActionServlet有關、控制器無法脫web、不能做單元測試 Struts2的大致工作流程可描述為: 瀏覽器發送請求。Control中的核心控制器FilterDispatcher
根據請求調用相應的業務邏輯控制器(Action)。WebWork的攔截器鏈自動對請求應用通用功能,如數據校驗和文件上傳等功能。回調Action中的execute()方法,并在方法體內調用業務邏輯組件來處理請求(Model)。execute()方法將調用業務邏輯組件(Model)得到的數據返還并更新視圖層(View)。
? Struts2應用的開發步驟:第一步:在web.xml文件中定義核心Filter來攔截用戶請求;第二步:
如果需要以POST方式提交請求,則定義包含表單數據的JSP頁面。如果僅僅是以GET方式發送請求,則無須經過這一步;第三步:定義處理用戶請求的Action類;第四步:在Struts.xml中配置action;第五步:在Struts.xml中配置處理結果和物理視圖資源之間的對應關系;第六步:編寫資源視圖.Struts 2的配置文件: web.xml:Web部署描述符,包括所有必需的框架組件。Struts.xml:主要的配置文件,包含result映射、action映射、攔截器配置等。struts.properties:Struts 2的屬性配置。struts-default.xml:Struts 2的默認配置文件。struts-plugin.xml:Struts 2框架的插件所用的配置文件。Action映射:將一個請求URI映射到一個action類。name action的名字,用于匹配請求URI。Class Action實現類的完整類名。method 執行Acition時調用的方法。Converther 應用于action的類型轉換器的完整類名。Result映射 daspatcher 轉發。Redirect 重定向到另外的URL。redirectAction 重定向到另外的Action。chain 用于Action的鏈式處理。plainText 用于顯示某些特定頁面的原始內容。Xslt 用于顯示XML的內容。? 輸入校驗:輸入校驗的內容一般包括驗證輸入數據的有效性和驗證失敗后向用戶提供錯誤信息兩部
分。輸入驗證的方式可分為客戶端驗證和服務器端驗證。手動驗證:1.在Action的方法中編寫驗證代碼。2.在validateXxx方法中編寫驗證代碼。validateXxx即可由框架在業務代碼執行前自動被調用。如果多個方法調用同一段驗證代碼,則可以將驗證代碼編寫在名為validate的方法中即可。內置驗證框架:通過在外部配置文件中定義驗證規則的方式來簡化對輸入數據的驗證,驗證框架通過validator攔截器來調用,通過讀取驗證文件中的驗證規則對輸入數據進行驗證,驗證文件的命名為ClassName-alias-validation.xml。ClassName表示實際的Action類名,alias表示在struts.xml中配置的Action的名字。其中,驗證器還分為普通驗證器和字段驗證器。自定義驗證器(以實現驗證碼功能為例):1.編寫ValidationCodeAction,用于產生驗證碼圖像。2.編寫自定義的結果類型,用于輸出驗證碼。3.在struts.xml中配置自定義結果類型和ValidationCodeAction。4.修改UserAction,添加驗證碼屬性。5.修改login.jsp,添加驗證碼輸入框。6.編寫字段驗證器類ValidationCodeValidator 7.注冊驗證器類ValidationCodeValidator 8.為驗證碼編寫驗證規則。? 類型轉換::在Http協議中,瀏覽器(客戶端)和服務器端的傳輸都是字符串形式的數據,但在服
務端的java程序中數據是有各種類型的,所以類型轉換是不可避免的。(1)使用合法的OGNL表達式命名表單元素時,Struts2就會自動的進行類型轉換。(2)Struts2提供基本的類型轉換功能。String—int,long,double,boolean,char,date,array,collection(3)Struts2對集合類型的轉換提供了很好的支持。(4)當Struts2提供的內置類型轉換器不能滿足應用需求時,還可以編寫自己的類型轉換器。
? 什么是AOP?面向切面編程(也叫面向方面),可以通過預編譯方式和運行期動態代理實現在不修改
源代碼的情況下給程序動態統一添加功能的一種技術。為什么需要AOP?AOP可以說是OOP的補充和完善。OOP引入封裝、繼承和多態性等概念來建立一種對象層次結構,用以模擬公共行為的一個集合。然而OOP在某些場合無能為力,比如當需要分散的、不具有繼承層次的對象引入公共行為的時候,OOP則無法避免代碼的重復。抽象的說,OOP允許定義從上倒下的關系,但并不適合定義從左到右的關系。具體而言,比如安全驗證和記錄日志功能,這類代碼往往平均的分散在所有對象層次中,而與它所散步到的對象的核心功能毫無關系。Spring AOP采用純java實現,無須特別編譯。不僅提供AOP基礎框架,還提供很多現成的切面實現。Spring AOP和Spring IoC容器無縫的集成,AOP組件享受Spring提供的一切優勢,比如可將攔截器、切入點都當做Spring Bean來管理。
? AOP的一些概念:關注點:一個關注點可以是一個特定的問題、概念、或是應用程序一個關注點可
以被識別為核心關注點或橫切關注點。核心關注點:完成核心業務邏輯的關注點。橫切關注點:在AOP中,將那些具有公共邏輯、與其他模塊的核心邏輯糾纏在一起的行為稱為“橫切關注點”,它不是給定編程模型的核心職責。比如:身份驗證、日志記錄。切面(Aspect):一個切面是對一個橫切關注點的模塊化,它將那些散落在各處的、實現關注點的代碼歸整在一起,其實就是共有功能的實現。如日志切面、權限切面、事務切面等。在實際應用中通常是一個存放共有功能實現的普通Java類。連接點(join point):它是指應用中執行的某個點,即程序執行流程中的某個點??赡苁欠椒ㄕ{用、字
段訪問、異常拋出。建議或通知(Advice):是切面的具體實現。以目標方法為參照點,根據放置的地方不同,可分為前置通知(Before)、后置通知(AfterReturning)與環繞通知(Around)。切入點(Pointcut):一組join point的總稱,用于定義通知應該切入到哪些連接點上。不同的通知通常需要切入到不同的連接點上。主要的功能是:日志記錄,性能統計,安全控制,事務處理,異常處理等等。主要的意圖是:將日志記錄,性能統計,安全控制,事務處理,異常處理等代碼從業務邏輯代碼中劃分出來,通過對這些行為的分離,我們希望可以將它們獨立到非指導業務邏輯的方法中,進而改變這些行為的時候不會影響業務邏輯代碼。AOP的實現技術:JavaSE動態代理、動態字節碼生成、Java代碼生成、語言擴展。建議(advice)是point cut的執行代碼,是“切面”執行的具體邏輯。前置建議(before advice)在連接點調用之前,先調用advice。后置建議(after advice)在連接點調用之后,再調用advice成功執行后(after returning advice)拋出異常后(after throwing advice)不管是否異常后(after advice)環繞建議(around advice)完全控制所有連接點引介(introduction)為一個現有的Java類或接口添加方法或字段?;烊肜^承(mixin inheritance)一個混入類封裝了一組功能,這組功能可能被“混入”到現有的類中,并且無需求助于傳統的繼承手段。在AOP里,mixin通過introduction來實現。織入(weaving)將切面整合到完整的執行流程或完成的類。動態橫切:通過切入點和連接點在一個切面中創建行為的過程。動態橫切通常用于幫助向對象層次中的各種方法添加安全驗證或日志記錄。在很多應用場景中,動態橫切基本代表了AOP。動態橫切的核心技術包括連接點、切入點、建議、切面。靜態橫切:靜態橫切和動態橫切的區別在于,靜態橫切不修改一個給定對象的執行行為。相反,它可以把擴展和實現附加到對象的基本結構中。此外,它通過引入附加的方法字段和屬性來修改對象的結構。在AOP的實現中,通常靜態橫切也就是引入或混入。
? 什么是IOC?控制反轉,強制將組件的創建和使用分離,通過反射機制,動態的創建組件已達到解
耦目的。IOC最大的好處是什么?因為把對象生成放在了XML里定義,所以當我們需要換一個實現子類將會變成很簡單(一般這樣的對象都是實現于某種接口的),只要修改XML就可以了,這樣我們甚至可以實現對象的熱插撥(有點象USB接口和SCSI硬盤了)IOC最大的缺點是什么?(1)生成一個對象的步驟變復雜了(事實上操作上還是挺簡單的),對于不習慣這種方式的人,會覺得有些別扭和不直觀。(2)對象生成因為是使用反射編程,在效率上有些損耗。但相對于IoC提高的維護性和靈活性來說,這點損耗是微不足道的,除非某對象的生成對效率要求特別高。(3)缺少IDE重構操作的支持,如果在Eclipse要對類改名,那么你還需要去XML文件里手工去改了,這似乎是所有XML方式的缺憾所在。
?
? MyBatis實現步驟:
1、編寫Configuration.xml文件
2、獲取SqlSessionFactory
3、編寫映射器UserMapper.xml;
4、編寫UserDao的實現。使用Hibernate的步驟(三個準備,七個步驟)三個準備:
1、導入Hibernate庫(jar包);
2、添加Hibernate配置文件
3、添加對應表的實體類和映射文件。七個步驟:
1、configuration
2、創建SessionFactory3、打開Session4、開始一個事務
5、持久化操作
6、提交事務
7、關閉Session、?
? 使用HQL步驟
1、得到session2、編寫HQL語句
3、創建Query對象 持久化對象的狀態:1.持久化對象的臨時狀態(不在Session的緩存中,不與任何的Session
實例相關聯。在數據庫中沒有與之相對應的記錄)2.持久化對象的持久化狀態(存在Session的緩存中。持久化對象映射了數據庫中的相關記錄。Session在清理緩存時,會同步更新數據庫。Session的load()或get()方法返回的對象總是處于持久化狀態)3.持久化對象的游離狀態(脫離Session緩存。游離對象在數據庫中可能存在與之對應的紀錄,但游離對象與數據庫記錄失去了映射關系)
? Hibernate---全自動化ORM框架 Hibernate是一個輕量級、功能強大的ORM框架;提供了完全
透明的持久化機制,客戶代碼可通過一種完全面向對象的方式來處理持久化,而無需和SQL打交道;Hibernate管理Java類到數據庫的映射(包括Java數據類型到SQL數據類型的映射)、提供數據的CRUD操作;Hibernate內置一種稱為HQL的語言,和SQL的語法接近,但不與特定的數據庫表或字段發生直接關聯,卻又提供了SQL的大部分功能,并且支持類似連接、統計函數、批量數據等關系型概念。
使用Hibernate框架進行ORM,可大幅度減少開發時手工使用SQL和JDBC的出錯。優點:簡單。缺點:多了查詢,慢(但實際對于一個JAVA EE應用而言,hibernate通常的處理流程是:從數據看里加載記錄->將信息發送到表現層供用戶修改或刪除->將所做修改重新保存到數據庫。在這種處理流程下,應用本身就需要兩條SQL語句)。
?
? iBats---半自動化ORM框架 提供了基于JDBC之上的一層簡單抽象,是一種基于SQL語句映射的低級別ORM方案,使用原生態SQL作為查詢語言。OGNL是Object Graph Navigation Language,對象圖導航語言。ONGL是一種強大的表達式語言,它通
過簡單一致的表達式語法來讀取和設置Java對象的屬性,調用對象的方法,遍歷整個對象的結構圖,實現字段類型轉換等功能。WEB容器是指一種安裝在服務端計算機中的特定軟件。此類軟件遵循HTTP協議,主要功能是負責偵聽指定端口,接收客戶端的請求并解析,然后將指定的響應頁面發送到客戶端。EL表達式EL是一種簡單而強大的語言,提供了在JSP腳本元素范圍外使用運行時表達式的功能。Web Services應用程序組件,使用開放協議進行通信,獨立的并可自我描述,可通過使用UDDI來發現,可以被其他應用程序使用,XML是其基礎。
? Mybatis一個持久數據映射框架,提供了基于JDBC之上的一層簡單抽象,是一種基于SQL語句映射的低級別ORM方案,使用原生態SQL作為查詢語言,用來完成數據持久化MyBaits基本原理:在XML文件中定義SQL語句,預留參數占位符;在運行時,占位符被指定的參數值取代,參數可能來自參數映射表、JavaBean屬性、或者簡單的參數對象。在執行SQL查詢時,結果字段被映射到對象,映射的方式與參數映射一樣。
? ORM框架ORM, Object-Relational Mapping, 對象-關系數據庫映射框架。在關系型數據庫和業務實體對
象之間作一個映射,這樣,我們在具體的操作業務對象的時候,就不需要再去和復雜的SQL語句打交道,只要像平時操作對象一樣操作它就可以了。
? 攔截器(Interceptor)是Struts2的一個重要特性。Struts2的大多數核心功能都是通過攔截器來實現的,如類型轉換、對象組裝、輸入校驗、文件上傳等。Struts2將其大多數核心功能通過攔截器來實現,而不是分散在Action中實現,有利于系統的解耦,實現“hot-plug”。需要某個功能就“plug-in”一個攔截器,而不需要修改和業務相關的Action代碼。編寫一個用于安全驗證的攔截器第一步:修改UserAction第二步:編寫攔截器類AuthenticationInterceptor extends AbstractInterceptor第三步:配置攔截。
? DI強制將組件的構建和使用分開。(組件的生產、組件的使用、接口的定義、運行時注入)。借
助spring框架,實現工廠的效果。如果類與類之間沒有依賴(不能提取接口),則不用IOC(如果橫向有依賴,即action與action之間有關系,說明沒有設計好)功能太小,也不用IOC,spring是做大系統的。DI有兩種最常用的方式:構造注入——保留依賴的先后順序。Set注入——更多使用 步驟:定義組件接口:墨盒接口ink;紙張接口paper;使用接口開發打印機:printer(使用ink和paper接口)組裝打印機:在printer里。給ink和paper創建set方法創建或得到ink和paper的實現類。組裝——在src下創建applicationContext.xml(依賴注入)。運行打印機
? Spring框架的一項最基本的功能就是充當創建對象的工廠,具體步驟為:第一步:讀取并
分析spring配置文件(如XML配置文件);第二步:通過反射機制,創建并集成上述配置文件中的對象;第三步:將創建的對象傳回給應用代碼。
第三篇:中南大學軟件學院軟件工程基礎復習
1.瀑布模型是以文檔為驅動、適合于(軟件需求確定的)軟件項目的開發。
2.需求分析的基本任務是(確定用戶需要軟件做什么)。
3.若有一個計算類型的程序,它的輸入量只有一個X,其范圍是[-1.0,1.0],現從輸入的角度考慮一組測試用例:-1.001,-1.0,1.0,1.001。設計這組測試用例的方法是(邊界值分析法)。
4.根據程序流程圖劃分的模塊通常是(過程)內聚的模塊。
5.軟件的分類,按其功能可分為:系統軟件、(支撐軟件)和應用軟件。
6.UML的定義包括UML語義和(UML表示法)兩個部分。
7.客觀世界中的若干類,通常有兩種主要的結構關系:即分類結構和(整體與部分結構)。
8.IDEF1X圖用來描述系統的(數據)模型,主要有實體、聯系和(屬性)三種成分,其中實體可分為獨立實體和(從屬實體),且一個實體只能在圖中出現一次。
9、軟件是計算機程序、(描述計算機程序的文檔)及(數據)的完整集合,將其統稱為軟件配置,這些項稱為軟件配置項。通過正式復審的軟件配置項稱為(基線),只有通過正式的變化控制過程才能改變它。
10、通常,將軟件生命周期全過程中使用的一整套技術方法的集合稱為方法學,包含三個要素,即方法、(工具)和(過程)。傳統方法學采用(結構化)技術來自頂向下順序地完成軟件開發的各項任務,而面向對象方法是一種以(數據)為主線,把數據和對數據的操作緊密地結合起來的方法,其開發過程是一個多次迭代的演化過程。
11、軟件測試的目標是(暴露程序中的錯誤),因而從心理學角度來看,由程序作者對自己編寫的程序進行測試是不恰當的。設計測試方案是測試階段的關鍵技術問題,測試方案一般包括(測試目的)、輸入的測試數據和(預期的結果)。
12、模型是為了理解事物而對事物作出的一種抽象,由(一組圖示符號)和(組織這些符號的規則)組成。對象模型描述了系統的靜態結構,通常使用UML提供的(類圖)圖來描述。
13、需求分析的基本任務是(準確地回答系統必須做什么),在需求分析結束前,系統分析員應該寫出(軟件需求規格說明書),以書面的形式準確描述軟件需求。
14、面向數據流的設計方法把(信息流)映射成軟件結構,依據其類型的不同,有兩種不同的映射方法,分別是(變化分析)和(事物分析)方法。
15、軟件設計一般分為(概要設計)和(詳細設計)兩個階段。
16.如果一個模塊完成多個邏輯上相近或相關的功能,并且每次調用只選擇該模塊中的一個功能執行,則稱此模塊為 邏輯內聚的模塊。
17.在數據流圖中,每個加工至少有一個輸入數據流 和一個 輸出數據流。
18.軟件項目計劃是計劃(策劃)階段的結果產品。但由于是在高層次進行系統分析,未能考慮軟件系統開發的細節情節,因此軟件項目計劃一般在需求分析 階段完成后才定稿的。
19.在面向對象類層次結構中,子類只繼承一個父類的數據結構和方法,則稱為 單重繼承。如果子類繼承了多個父類的數據結構和方法,則稱為多重繼承。
20.在軟件測試過程中,α測試是由 一個用戶在開發 環境下進行的測試,而β測試是由多個用戶在 實際使用環境下進行的測試。
21.統一建模語言UML提供了兩種描述整體/部分關系的方法,分別是聚合 和 組合。
22.瀑布模型是以文檔 驅動的軟件生存周期模型,適合需求明確的軟件系統開發。23.IDEF1X方法用來建立系統的數據 模型。
24.在單元測試期間,應該為被測模塊編寫相應的測試軟件,一般地驅動 模塊接收測試數據,并把數據傳給被測模塊,而樁 模塊則模擬實際模塊完成少量數據處理。
25.評估軟件企業的質量管理有兩種方法,一種是按照ISO9001 認證,另外一種是按照CMM認證。
1.軟件測試的目的是(發現錯誤)。
2.軟件按服務對象可分為項目軟件和(產品軟件)。
3.在常見的軟件生存期模型中,(螺旋)模型是風險驅動的。
4.UML通過三種擴展機制來擴充UML的建模能力,分別是(約束)、構造型和(標記值)。
5.在軟件測試用例的設計方法中,白盒法以(程序內部數據結構)為依據設計測試用例,6.在面向對象設計原則中,(組裝復用)原則要求在新的對象里盡量使用已有的類對應的對象,并通過(委派)達到復用已有功能的目的。
7.狀態圖描述一個類對象所經歷的(各種狀態)以及事件發生時狀態的(轉移條件).8.SOFL軟件開發方法學認為,在需求分析和規格說明階段應該采用(結構化)方法,而在設計和實現階段則應該采用(面向對象)方法。
9.可行性研究的內容包括(技術可行性)、經濟可行性和(操作可行性)。軟件按服務對象可分為(項目軟件)和產品軟件在常見的軟件生存周期模型中,(瀑布)模型是文檔驅動的UML采用(用例)圖描述系統與外部用戶的交互行為在軟件測試用例的設計方法中,黑盒法以(外部功能)為依據設計測試用例定性度量模型獨立性的兩個標準是(內聚度)和(耦合度)8 在SA方法的需求描述工具中,(層次方框圖)描述系統的分解,即描述系統由哪幾個部分組成,各部分之
間有什么聯系等等;(數據詞典(和加工說明))定義了數據流圖中每個圖形元素;結構化語言、判定
表或判定樹則詳細描述、數據流圖中不能被分解的(基本加工)IDEFO圖主要元素是簡單的盒子及箭頭,其中盒子代表(活動)。而箭頭表示系統處理的(數據約束)
1.什么是軟件工程?軟件工程和計算機科學有何區別? 答:軟件工程是指導軟件開發和維護的工程性學
科;計算機科學著重于原理和理論,軟件工程與計算機科學不同,軟件工程著重于如何建造軟件系統,軟
件是計算機中看不見摸不著的邏輯部分,以程序、數據和文檔的形式出現。
2.面向對象方法和結構化方法有何區別與聯系? 答:區別: 面向對象從所處理的數據入手,以數據為中
心來描述系統,其基本思想是盡可能模擬人類習慣的思維方式,使開發軟件的方法與過程盡可能接近人類
認識世界的方法與過程,基本原則為:對象+類+繼承+消息通信 結構化方法首先關心的是功能,強調以模
塊為中心,其基本思想是自頂向下,逐步求精,單入口,單出口,基本原則為:抽象與功能的分解 聯系:
軟件開發過程中,在需求分析和規格說明階段采用結構化方法,在設計和實現階段采用面向對象方法。
3.什么是模塊的作用域和模塊的控制域?為何要求模塊的控制域必須在作用域內? 答:模塊的作用域是
指模塊中判定的作用范圍,它是指所有受這個判定范圍影響的模塊;模塊的控制域是指模塊本身及其直接
或間接調用的模塊;如果模塊的作用域不在控制域內,則會增加數據間的傳遞量,使模塊間出現控制耦合4.什么是設計模式?試舉例說明組合設計模式的應用。答:設計模式是指系統命名,解釋和評價某一重要的,可復用的面向對象的設計方案。組合設計模式:使用迭代器模式來遍歷組合結構。
5.什么是依賴倒置原則?它和開閉原則有何聯系? 答:依賴倒置是類設計原則的一種,它要求高層不應
依賴于底層,抽象不應依賴于細節;依賴倒置原則的本質其實就是通過抽象(抽象類或接口)使各個類或
模塊的實現彼此獨立,不相互影響,實現模塊間的松耦合,如果沒有實現這個原則,則開閉原則也無法實
現。
6.軟件生存期過程和軟件生存期模型有何聯系?瀑布模型有何特點?答:軟件生存期過程沒有規定一個特
定的生存周期模型,各軟件開發機構可視其項目的需要選擇一種軟件生存周期模型,并將軟件生存期過程
所含過程、活動和任務映射到選定的軟件生存周期模型中。軟件生存期模型是軟件生存期過程所含過程、活動和任務的映射。瀑布模型特點:各階段相互依賴;每階段都進行評審;強調需求分析和設計。
1.瀑布模型是軟件工程中應用最廣泛的過程模型,試述采用瀑布模型進行軟件開發的基本過程,該過程有
何特點? 答:瀑布模型規定了各項軟件工程活動,包括需求分析、規格說明、設計、編碼、測試和維護,并規定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級而下。瀑布模型的特點是:階段間具
有順序性和依賴性;清楚區分邏輯設計和物理設計,盡可能推遲程序的物理實現;每個階段都必須完成規
定文檔,且每階段結束前需要對完成的文檔進行評審。
2、什么是軟件配置管理?軟件配置管理和軟件維護有何不同? 答:軟件配置管理是在軟件生命周期內管理變
化的一組活動,用來:標識變化、控制變化、確保適當地實現了變化、向相關人員報告變化。
軟件配置管理和軟件維護的區別是:軟件配置管理是一組追蹤和控制活動,在軟件項目啟動時就開始,并
一直持續到軟件被淘汰后才終止;軟件維護是一組軟件工程活動,發生于軟件交付給用戶并投入運行之后。
3、試舉例說明聚集關系中共享聚集和組合聚集有何不同。答:如果在聚集關系中部分對象可同時參與多個
整體對象的構成,則該聚集稱為共享聚集。例如,一個課題組包含許多成員,每個成員又可以是另一個課
題組的成員,則課題組和成員之間是一種共享聚集的關系。
如果部分對象完全隸屬于整體對象,并與整體對象共存,則該聚集稱為組合聚集。例如,在屏幕上一個窗
口由文本框、列表框、按鈕和菜單等構成,且一旦關閉了窗口,則各組成部分也消失,則窗口和它的組成部分之的關系為組合聚集關系。
1非漸增式測試與漸增式測試有何區別? 答:非漸增式測試,一般應先經過單元測試,然后再把所有模塊一
次性組裝在一起進行測試,最終得到要求的軟件系統;而漸增式測試則采用逐步加入模塊或功能簇的方式
進行,在加入過程中邊連接邊測試,比較容易定位和修正錯誤,且接口也可以更容易進行徹底地測試2.試舉例說明什么是功能性需求,什么是非功能性需求?為何非功能性需求往往比功能性需求還要重
要? 答:功能性需求是說有具體的完成內容的需求。例如:比如客戶登錄、郵箱網站的收發郵件、論壇網
站的發帖留言等。非功能性需求是指軟件產品為滿足用戶業務需求而必須具有且除功能需求以外的特性,包括系統的性能、可靠性、可維護性、可擴充性和對技術和對業務的適應性等。例如:性能要求:要求系
統能滿足100個人同時使用,頁面反應時間不能超過6秒;非功能性需求往往比功能性需求還要重要是因為
非功能性需求描述的是軟件的質量屬性,直接影響著用戶體驗,因此非功能性需求在決定系統成敗的因素
中起更重要的作用。
3.層次圖和層次方框圖有何區別? 答:不同:1,層次圖描繪軟件的層次結構.層次方框圖描繪的是數據結
構。2,層次圖的方框表示模塊或子模塊。層次方框圖的方框表示數據結構整體或其子集。3,層次圖的連線表
示調用關系,層次方框圖表示組成關系。
4.快速原型模型有幾種?各有何特點?答:快速原形模型根據原型的不同作用,有三類原型模型:
(1)探索型原型:把原型用于開發的需求分析階段,目的是要弄清用戶的需求,確定所期望的特性,并探索
各種方案的可行性。它主要針對開發目標模糊,用戶與開發者對項目都缺乏經驗的情況,通過對原型的開
發來明確用戶的需求。
(2)實驗型原型:主要用于設計階段,考核實現方安是否合適,能否實現。對于一個大型系統,若對設計方
案心中沒有把握時,可通過這種原型的開發來證實設計方案的正確性。
(3)演化型原型:它將原型思想擴展到軟件開發的全過程,就是及早向用戶提交一個原型系統,在得到用戶
認可后,將原型系統不斷擴充演化為最終的軟件系統。
2.什么是模塊的作用域?為何設計軟件結構時要求模塊的作用域必須在控制域之內? 答:所謂模塊的作
用域是指模塊判定的影響范圍。作用域在控制域之內,可使得軟件修改時代碼局部化。
3.什么是動態測試?為何靜態測試方法往往比動態測試方法效率高? 答:動態測試是指經運行程序代碼
而檢查代碼是否存在錯誤。靜態測試往往不是運行代碼,而在軟件開發的早期進行,而早期錯誤發現要比
錯誤晚發現付出的成本少,而靜態測試往往在發現錯誤后還可繼續進行,但動態測試往往需要停下來改進后才能進一步測試。1 試簡要說明面向對象方法與結構化方法相比有何優越性,至少列出三點。答:(1)強調從現實世界中客觀
存在的事物(對象)出發來認識問題域和構造系統,這就使系統開發者大大減少了對問題域的理解難度,從而使系統能更準確地反映問題域。(2)運用人類日常的思維方法和原則(體現于OO方法的抽象、分類、繼承、封裝、消息通訊等基本原則)進行系統開發,有益于發揮人類的思維能力,并有效地控制了系統復
雜性。(3)對象的概念貫穿于開發過程的終,使各個開發階段的系統成分具良好的對應,從而顯著地提高
了系統的開發效率與質量,并大大降低系統維護的難度。(4)對象概念的一致性,使參與系統開發的各類
人員在開發的各所段具有共同語言,有效地改善了人員之間的交流和協作。(5)對象的相對穩定性和對易
變因素隔離,增強了系統的應變能力。(6)對象類之間的繼承關系和對象的相對獨立性,對軟件復用提供
了強有力的支持。1.什么是軟件危機?軟件危機是指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。這些問題
表現在以下幾個方面:(1)用戶對開發出的軟件很難滿意。(2)軟件產品的質量往往靠不住。(3)一般軟件很
難維護。4)軟件生產效率很低。(5)軟件開發成本越來越大。(6)軟件成本與開發進度難以估計。7)軟件技術的發展遠遠滿足不了計算機應用的普及與深入的需要。
2.什么是軟件生存周期?軟件生存周期是指從軟件定義、開發、使用、維護到淘汰的全過程。
1.軟件開發模型有幾種?它們的開發方法有可特點?軟件開發模型有瀑布型、漸增型和變換型。瀑布型開
發方法是按照軟件生存周期的劃分依次實施,每一個階段有明確規定的任務。它的特點:(1)各個階段的順
序性和依賴性;(2)劃分邏輯設計與物理設計,盡可能推遲程序的物理實現;3)每個階段必須完成規定的文
檔,對其中問題通過復審及早發現,及早解決。漸增型開發方法及特點:1)從部分需求出發,先建立一個不
完全的系統,通過測試運行該系統取得經驗和信息反饋,加深對軟件需求的理解,進一步使系統擴充和完
善。如此反復,直至軟件人員和用戶對所設計完成的軟件系統滿意為止。2)在漸增型開發下的軟件是隨軟
件開發的過程而逐漸形成的。(3)漸增型開發方法適合于知識型軟件的開發,設計系統時對用戶需求的認識
開始不是很清楚的,需要在開發過程中不斷認識、不斷獲得新的知識去豐富和完善系統。多數研究性質的試驗軟件,一般采用此方法。變換型開發方法及特點:(1)從軟件需求的形式化規格說明出發,經過一系列的程序變換,得到最終的程序系統。(2)該方法必須有嚴格的數學理論和形式化技術的支持。
2.功能與對象的區別?
1、功能比對象容易變化(功能相對不穩定)
2、功能是主觀的,對象是可觀的。
3、功能是可以調用的,要么全有,要么全無,而對象可以部分的繼承使用。
3. 軟件開發過程可視化的兩種方法?文檔驅動、小批量發布
4.風險分析的目的?對風險進行管理。
5. 傳遞信息的方法?
1、參數。
2、全局變量。
3、公共可訪問區域。
6.數據建模的作用?
1、抓住問題的主要方面---理解問題。
2、便于交流。
3、可以進行分析(性能、可靠
性、、、、、、)。
4、可以自動生成代碼。
7. 描述模型的兩種方法?
1、結構化方法:結構化方法首先關心的是功能,強調以模塊為中心,采用模
塊化、自頂向下、逐步求精設計過程(分層),適合需求明確的模型。其不足之處:不太適應規模大及
特別復雜的項目,難于解決軟件重用問題,難于適應需求變化或模糊的問題,軟件維護比較復雜。
2、面向
對象方法:面向對象方法則從所處理的數據入手,以數據為中心來描述系統,適合迭代增量式分解(網狀)。
其不足之處:類作為復用單元,有時顯得太小,類繼承會增加類間的耦合度,該方法不夠成熟。
8. 描述作業之間的關系?
1、畫PERT圖。
2、確定最晚發生時刻與最早發生時刻。
3、計算機動時間,為0 的為關鍵事件。
4、Gantt圖的方法進行描述。
9. 用例與功能的區別?
1、完成一個用例需要若干功能。
2、用例是從用戶使用系統的角度來描述系統的行為的。
3、用例往往是對用戶有價值的結果。
4、用例滿足用戶的業務目標。
10. 描述模塊獨立性的標準?內聚度(內聚度是指模塊內部各成分聯系緊密的程度,內聚度越高,模塊獨
立性越強)耦合度(耦合度是指模塊之間相互關聯的緊密程度。耦合度越低,模塊獨立性越強)
11.什么是黑盒測試?黑盒測試主要采用的技術有哪些? 黑盒測試也稱為功能測試,它著眼于程序的外部特
征,而不考慮程序的內部邏輯結構。測試者把被測程序看成一個黑盒,不用關心程序的內部結構。黑盒測試是
在程序接口處進行測試,它只檢查程序功能是否能按照規格說明書的規定正常使用,程序是否能適當地接
收輸入數據產生正確的輸出信息,并且保持外部信息(如數據庫或文件)的完整性。黑盒測試主要采用的技
術有:等價分類法、邊沿值分析法、錯誤推測法和因果圖等技術。
12.什么是白盒測試?白盒測試主要采用的技術有哪些?測試者了解被測程序的內部結構和處理過程,對程序的所有邏輯路徑進行測試,在不同點檢查程序狀態,確定實際狀態與預期狀態是否一致。白盒測試主要采用的技術有:路徑測試技術和事務處理流程技術,對包含有大量邏輯判斷或條件組合的程序采用基于邏輯的測試技術。
13. 瀑布模型的優缺點?優點:1.流水線生產比個人生產效率高,質量好。2.將邏輯設計與物理實施分開,避免無用功。減少成本,能盡量推遲物理實施。3.文檔驅動使得開發過程可視化,便于管理和控制。缺點:
1.當需求不明確時,流水線被阻塞。2.得不到用戶的反饋,開發過程得不到修正,導致有可能出現大的失誤。3.最后將產品一次提交給用戶,用戶感到不適應,成本增加,市場風險加大。
14.軟件工程的目的?以期用較少的代價獲取高質量的軟件。
第四篇:2012上半年中南大學軟件學院軟件工程碩士招生公告
2012年(上半年)中南大學
軟件工程碩士自主招生公告
一、培養目標
根據國民經濟信息化建設和軟件產業迅速發展的需要,面對企事業單位、特別是軟件企業對高素質軟件工程技術人才的迫切需求,培養有創新精神、具有國際競爭力的高層次復合型軟件人才。
二、報考條件
1、身體健康,品行端正,遵紀守法;
2、具有國民教育系列大學本科學歷和學士學位;應屆、往屆畢業生均可;
3、較系統掌握計算機專業基礎知識,具有一定的軟件開發或軟件項目管理等方面的經驗和能力,或從事企、事業單位信息化建設工作的管理人員和技術人員。
三、專業研究方向
1、軟件工程;
2、生物醫學信息技術:該方向是現代生命科學、醫學、計算機科學與信息科學等領域相互交叉,并融合生物信息學、計算與系統生物學、藥物信息學、醫學影像信息學、醫學信息學等學科而形成的一門嶄新的前沿學科。生物醫學信息技術的發展和應用已成為解決現代生物醫學領域許多重大問題的關鍵技術。該方向研究生歸口我校軟件學院和生物科學與技術學院共同培養管理。
3、能源系統工程:該方向是工業節能、建筑節能、新能源、新型動力技術、能源管理、節能評價與信息科學等學科領域相互交叉形成的一門新興學科,旨在培養我國能源領域節能減排、能源管理、能源審計、能源評估、節能技術評價等工作的專業人才,為我國能源領域各相關單位儲備人才。該方向研究生歸口我校軟件學院和能源科學與工程學院共同培養管理。
4、金融風險與數據挖掘:該方向是根據國民經濟及軟件產業發展的需要,緊密聯系我國國民經濟和金融保險業的發展趨勢,充分發揮計算機技術與金融風險分析技術密切結合的特色,培養精通現代風險分析、控制與數據挖掘理論,掌握扎實的計算機、金融風險分析與數據挖掘技術,具有運用數據挖掘技術進行金融風險分析、處理、評估及相關計算機軟件的應用與開發能力的高層次復合型人才。該方向研究生歸口我校軟件學院和數學科學與計算技術學院共同培養管理。
四、招生人數
本次計劃招收200人。
五、報名、考試及入學時間
(一)網上報名時間:2012年3月19日 ~ 4月20日。
報名系統地址:http://202.197.33.69/yjsbm,請報名考生按照要求填寫本人真實信息,并上傳本人近期免冠登記電子照片,照片規格150×200像素(JPG格式)。網上報考信息不完整者不接受報名。
(二)現場報名:
1、報名時間:2012年4月21 ~ 22日。
2、報名地點:中南大學軟件學院(鐵道校區電子樓107室-研究生工作辦公室)。
3、報名程序:
(1)提交下列材料進行資格審查
①考生所在單位加蓋人事部門公章(必須)的報名資格審查表(一式二份,見附件); ②本科畢業證書原件和復印件(往屆生提供); ③學士學位證書原件和復印件(往屆生提供); ④本科學生證原件和復印件(應屆生提供)。
⑤近期同底免冠一寸彩照4張(背面用鉛筆標注考生姓名)。
以上5類材料請務必用檔案袋裝好,檔案袋正面標注考生姓名、聯系電話?,F場
報名材料不完整者不接受報名。
(2)繳納報名考試費320元。
4、考試時間:2012年5月5日。
5、入學時間:2012年秋季。
六、考試科目
1、綜合考試(200分):內容包括數學、英語。參考書目:全國工程碩士專業學位教育指導委員會指定的復習資料《工程碩士專業學位研究生入學資格考試指南》(科學技術文獻出版社)和《工程碩士專業學位研究生入學考試考前輔導教程》(清華大學出版社)。
2、專業基礎考試(100分),按報考方向選一: ?軟件工程方向:軟件工程基礎。
?生物醫學信息技術方向:生物醫學信息技術(軟件工程基礎60%,普通生物學40%)?能源系統工程方向:能源系統工程(軟件工程基礎60%,傳熱學20%、工程熱力學20%)?金融風險與數據挖掘方向:專業綜合(軟件工程基礎60%,統計學基礎40%)。參考書目:
陳松喬 主編,《現代軟件工程》,清華大學出版社。陳閱增 主編,《普通生物學》,高等教育出版社。楊世銘 主編,《傳熱學》第三版,高等教育出版社。沈維道 主編,《工程熱力學》第三版,高等教育出版社。賈俊平主編,《統計學》第三版,中國人民大學出版社。
3、復試:前兩項筆試成績達到學校要求之后,參加學院組織的復試。復試內容:專業綜合考試及面試。
參加2010年由國家統一組織的工程碩士專業學位研究生入學資格考試(GCT),總成績不低于150分(其中英語和數學單科成績不低于30分)的考生可持本人的GCT成績單申請免試數學和英語(現場報名時在軟件學院研究生辦公室提出書面申請)。
七、學費
人民幣3.6萬元/全程(分兩學年交清,每次1.8萬元)。
八、學制
彈性學制2~4年。根據實際情況安排在職學習形式,上課時間為節假日及雙休日。
九、主修課程
軟件工程方向:基礎英語、工程數學、自然辯證法、高級軟件開發過程、軟件需求工程、面向對象系統分析與設計、軟件體系結構、分布式數據庫系統、軟件項目管理、軟件能力成熟度模型、軟件測試技術、IT知識產權與法律、國際IT專業認證等。
生物醫學信息技術方向:基礎英語、自然辯證法、軟件基礎、高級分子生物學、高級生物化學、高級細胞生物學、分子生物學技術、生物統計學、生物信息學、藥物信息學、科研設計與選題、生命科學技術前沿、生物醫藥新興產業、醫院信息系統與應用、衛生事業管理學、管理心理學、專題講座、現代人文護理、軟件工程等。
能源系統工程方向:基礎英語、自然辯證法、軟件基礎、高等傳熱學、高等工程熱力學、高等流體力學、能源系統工程、能源審計概論、現代熱工測控技術、能源評估技術、節能技術及評價、鍋爐及熱力系統專論、專題講座、軟件工程等。
金融風險與數據挖掘方向:基礎英語、高等工程數學、自然辯證法、金融工程、金融風險管理、應用統計學、期權期貨及金融衍生產品、商業銀行管理、精算學、高級數據庫技術、軟件應用與開發、數據挖掘、軟件項目管理等。
十、學位授予
學生在規定年限之內修滿培養方案劃所規定的學分,成績合格,完成學位論文并通過碩士學位論文答辯,經學位評定委員會審核通過后,授予軟件工程碩士專業學位,頒發軟件工程碩士學位證書。
十一、項目特色
1、中南大學軟件學院是全國37所示范性軟件學院之一,擁有自主劃線招生的資格;
2、工程化特色鮮明:重在培養高層次、實用型、復合型、國際化人才,培養模式上更貼近行業需求;
3、國際化特色鮮明:國際師生互派、交流,國外名師來校講座,國際頂級IT企業技術支持;
4、課程體系靈活:與國內外知名高校和頂級IT企業合作,借鑒國際上先進教學方法,采用和開發優秀教學資源;
5、學習方式靈活:在職或脫產均可,彈性學制2~4年;
6、完成所有課程、考試合格、通過論文答辯者,由國家學位辦授權中南大學頒發軟件工程碩士學位證書;
7、畢業生就業渠道及狀況良好,深受企事業單位歡迎。
十二、聯系信息
研究生院招生辦辦公地址:中南大學校本部三辦公樓3樓
聯系電話:0731-88876806、0731-88876474(傳真)
軟件學院辦公地點:中南大學鐵道校區電子樓107室
聯系電話/傳真:0731-82539736
生物科學與技術學院辦公地點:中南大學湘雅新校區后棟471室
聯系電話/傳真:0731-82650230
能源科學與工程學院辦公地點:中南大學能源科學與工程學院208室
聯系電話:0731-88830282,***(陳老師)傳真:0731-8887986
3數學科學與計算技術學院辦公地點:中南大學校本部南校區第二教學樓一樓辦公室
聯系電話:0731-8866017
1中南大學研究生院招生辦公室 中南大學軟件學院
2012年3月10日
附件:資格審查表
2012年在職人員攻讀碩士學位報考資格審查表
報考學校名稱:中南大學報考學位類別:工程碩士
注:
1、本表須由考生本人如實填寫,否則所產生的一切后果由考生本人負責。
2、學歷學位等相應信息請一律按照所獲證書上內容填寫。如證書上號碼多于一個,上表中各證書編號欄請填寫注冊號;如無注冊號,請填寫證書上的“證書編號”或“學校編號”等由發證院校(科研單位)編排的號碼。通過自學考試獲得畢業證書者,“畢業學校”請填寫相應?。ㄊ校┳詫W考試委員會。
3、考生所在單位人事部門須對考生本人填寫情況進行審查確認后簽署意見,并在考生照片上加蓋人事部門公章。
4、此資格審查表連同相關材料一并報送有關招生單位,招生單位審核通過后存檔備查。
第五篇:中南大學軟件學院-IT項目管理-考試必備-濃縮版
→軟件項目失敗的原因主要是因為項目的復雜性和缺乏合格的項目管理。人們體會到缺乏有效的項目管理是導致軟件項目失控的直接原因(3分技術、7分管理、12分數據)作業連續不斷、周而復始的活動。項目臨時性的、一次性的活動。
項目是把利用有限資源、在一定的時間內,完成滿足一系列特定目標的多項相關工作 項目作為一類特殊的活動具有主要7個特征是:目標的獨特性、項目的一次性、項目的整體性、項目的臨時性、項目的不確定性、資源的多變性、項目有發起人。
項目范圍是指:產生項目產品所包括的所有工作以及這些產品經過的所有過程。項目范圍管理是指對項目包括什么與不包括什么的定義與控制過程,沒有包含在工作分解結構(即WBS)里的工作是不應該做的。項目三約束
范圍(界定):項目的任務是什么?顧客或發起人要通過項目獲得什么樣的產品或服務? 進度(時間):完成該項目需要多長時間?項目進度應該怎樣安排? 費用(成本):完成該項目需要花費多少?
活動具有的三個基本特點是 目的性、依存性、知識性,這些特點,回答了項目和項目管理實踐歷史和人類歷史 同樣悠久的原因。有組織的活動分化為兩種類型:項目和作業。
項目活動的定義極其重要,它是項目進度計劃和控制的基礎,很多情況下活動沒有被充分定義,這就導致了不好的進度計劃和溝通問題。
→項目管理就是以項目為對象的系統管理方法,通過一個臨時性的專門的柔性組織,對項目進行高效率的計劃、組織、指導和控制,以實現項目全過程的動態管理和項目目標的綜合協調與優化。
軟件項目管理是一門實踐性很強的工作,它與軟件應用領域各具特色的項目本身緊密聯系在一起,所以必須培養個人的綜合素質和努力。
軟件項目管理是軟件人的基礎和靈魂,是保證軟件人和軟件企業走向成功的利器,誰掌握了項目管理,誰就控制了成功。
項目管理是指在項目活動中運用相關的知識、技能、工具和方法,以實現或超過項目干系人的需要和期望。
項目管理框架由干系人、知識領域和管理工具與方法三部分組成。IT行業正致力于改進項目管理方法,以改變IT項目成功率較低的現狀。
項目管理大致經歷了潛意識階段、傳統項目管理階段、項目管理的傳播階段和現代項目管理的發展階段。
IT產業對項目經理的需求在不斷增長,項目管理資格認證在不斷發展。
PMI于2004年發布的項目管理知識體系 PMBOK把項目管理劃分為9 個知識域和44 個管理過程。九大知識領域:范圍管理、時間管理、費用管理、質量管理、人力資源管理、風險管理、溝通管理、采購與合同管理及綜合管理。
PMBOK(項目管理)核心的4個只是領域:范圍管理、時間管理、費用管理、質量管理。稱其為核心知識領域,因為在這幾個方面將形成具體的項目目標。四個輔助知識領域:人力資源管理、溝通管理、風險管 理、采購管理
→ IT項目計劃首先應從組織整體環境和戰略計劃角度 來考慮,確定IT戰略計劃的主要成果是明確IT戰略滿足組織戰略的發展方向,識別關鍵業務領域。
→ IT項目管理具有明顯的特殊性,表現在:與戰略目標的相關性,與業務規則的一致性,環境基礎的重要性,管理的集成性,人力資源管理的特殊性,項目過程的可控性和文檔的完整性
項目管理是一系列相互聯系的過程,項目管理過程主要包括5個過程組,它們分別是啟動、規劃、執行、監控、收尾
越來越多的企業引入項目管理,將它作為主要的運營模式和提高企業運作效率的解決方案,項目已成為企業發展與進步的主要動力。
→項目管理的許多理論和概念其實不難理解,難的是如何運用它們,其主要原因是由于 項目的運作環境不是靜態和獨立的,啟動項目必須從戰略計劃和組織整體環境角度來考慮。項目經理在管理軟件項目時必須考慮很多不同的成分,比如使用軟件項目管理環境、系統方法、項目生命周期和組織環境。
項目經理主要從整體上綜合運用各領域的知識以成功地實現項目的運作。
優秀的項目經理必須具有充分利用好的環境、及時適用不利環境、不斷調整惡劣環境的勇氣和能力。
了解項目管理過程組,提高軟件項目管理技能、是運用項目管理理論與概念的基礎。
→環境:組織外部存在的一切客觀因素和條件。組織:按照一定目的、任務和形式加以編制的群體。
組織環境:存在于組織外部,和組織密切聯系,決定組織存在和發展的自然、經濟、技術、政治、社會的各種因素和條件的總和。任何一個組織都離不開外部因素和條件而獨立存在。環境與過程是軟件項目成功的基本保證。
環境對軟件項目的效益和效率起關鍵作用。對項目組的建立起決策作用。是軟件項目管理的基礎和必要條件。
→系統:按一定的關系組成的同類事物;具體說,是指在一個特定環境下,為某個目標發揮作用的一系列因素集。項目管理工作需要采用系統的方法。系統方法: 包括系統觀念、系統分析和系統管理。系統觀念:一整套系統地思考事物的思維模式。
系統分析:確定范圍、分解要素、識別和評價要素、提出方案與計劃、進行檢驗。系統管理:在一個系統中進行變革時解決諸如業務、技術和組織等事宜。
→項目的生命周期指IT項目需要經歷一個從開始到結束的時間過程,項目工作在這一過程中顯現出一定的階段性和特征。項目生命周期的每一個階段都存在項目管理工作?;倦A段:概念,開發(項目可行性階段),實施,收尾(項目獲取階段)
從項目生命周期具有的一些共同特點來看,項目開始時,成功地完成項目的把握性較低。因此風險和不確定性是最高的。隨著項目逐步地向前發展,成功的可能性也越來越高 項目計劃是項目實施的藍本。并給出更為準確的成本估算和更為詳細的工作分解結構(WBS)。
項目必須順利通過每一個項目階段評價才能得以繼續?!到y開發生命周期:計劃,分析,設計,實施,維護。
周期模型:主要有瀑布模型、螺旋模型、漸進模型、原型模型、第四代技術模型、構件組裝模型和混合模型。
→組織:由于生理上的、心理上的、物質的、社會的限制,人們為了達到個人的和共同的目標就必須合作,于是形成群體
組織框架:結構框架:解決組織如何結構化的問題 人力資源:形成組織與個人之間的平衡與協調
政治框架:組織團體和個人的政治,表現為團體和個人為爭奪權力和領導地位的競爭。標識框架:符號和含義
組織結構:智能型、項目型、矩陣型
組織環境包括:自然環境和社會環境,是組織系統所處的換屆。
→項目感干系人是指與項目相干的人(參與項目或受項目活動影響的人),包括參與項目和受項目活動影響的人,在IT項目管理中,應該重點關注的干系人主要有客戶、用戶、項目投資人、項目經理、項目組成員、高層管理人員、反對項目的人、施加影響者?!椖抗芾磉^程:是為實現某個特定目標而進行的一系列活動。項目管理可以被視做一系列相互關聯的過程。
項目管理過程組:是從啟動到計劃、執行、控制和收尾的一系列活動。
→項目整體管理任務是在項目生命周期中協調所有其他項目管理知識領域所涉及的過程。它確保項目所有的組成要素在恰當的時間、正確的地方、合適的人物結合在一起,以成功地完成項目。
項目整體管理圍繞項目計劃進行,主要過程有:計劃制定、計劃執行和計劃變更控制。整體管理是實現整體項目成功的關鍵。
項目經理的主要任務:是作好項目的整體管理,特別是:
主動控制項目的人員、計劃、工作。及時協調各項目目標之間或人員之間的沖突。適時認真向高層匯報重要的項目信息。
→項目計劃是一個用來協調所有其他計劃,以指導項目執行和控制的可操作的文件。關系:項目計劃與項目執行應該是相互滲透的,誰負責做這件事,就該由誰來做這個計劃。內容:一個項目計劃主要包括:整體介紹、組織描述、管理程序、技術程序、任務范圍、時間進度、經費預算等。
組織情況描述包括:組織結構圖、項目責任(分工)、與組織或過程相關的信息。項目的管理和方法:管理目標、項目控制、風險管理、項目人員、技術過程。項目進度:進度概要、進度細要、與進度有關的其他信息 項目預算:預算概要、預算細要、其他信息
→缺少正確的項目需求、定義和范圍核實是導致項目失敗的主要因素。
→目前IT項目最大的問題是項目需求與范圍的不確定性和易動性。
項目范圍管理主要過程 :項目啟動、范圍計劃、范圍定義、范圍核實、變更控制。項目風險管理是為減輕潛在的不理時間對項目的影響而采取的義項活動,風險管理的主要過程包括,風險管理規劃,風險識別,定性風險分析,定量封信啊分析,風險應對規劃,風險監控。
項目成本管理包括的主要過程有:成本估算、成本預算、成本控制。
→克服分歧、解決沖突的有效過程是面對與正視 →固定總價合同為正方提供了最小的風險。
→項目管理組織的過程中,執行過程最耗費時間與資金 →范圍確認需要最終確定項目資源之前完成。
→管理是社會組織中為了實現預期目標,以人為活動中心進行協調活動,這一表達包括五個觀點:管理的目的是為實現預期目標;管理的本質是協調;協調的是社會組織的人;協調的方法是多種多樣的;協調的關鍵是人。→成本管理計劃包含的描述是如何管理成本偏差。正式承認項目存在的文檔是:項目章程
確定項目干系人的信息和溝通需求是人力資源計劃編制的一部分?!|量管理3個過程:質量規劃,質量保證,質量控制。
→信息技術是以電子計算機和現代化通信為主要手段,實現信息的獲取、加工、傳遞、應用等功能的技術總和。
→信息戰略由組織的部門職能戰略提升為組織的核心戰略,信息系統也成為組織戰略的核心。
→溝通就是意義的傳遞與理解,意義指:信息,情感,思想。項目溝通管理目標是:及時而適當地創建,收集,發送,儲存和處理項目的信息。
→項目溝通是為了實現項目管理目標,項目團隊與其他組織、項目團隊成員之間進行信息、思想、情感的傳遞和理解的過程
→ISO對質量的定義:質量是反應試題滿足明確和隱含需要的能力和特性的總和?!到y思維所體現的系統方法是解決復雜問題的一個整體方法,包括系統觀念、系統分析 和系統管理。
→項目的關鍵路徑是指能夠決定項目最早完成時間的一系列活動,它是項目網絡圖中最長的路徑,具有最少浮動時間或時間差。
系統項目的上線運行和后期維護長于系統開發時間,當系統投入運行后,需要有效的系統運營管理和服務來實現業務的需求。
→流程管理是一種管理技術,更體現了現代管理的理想
項目管理作為管理學的一個子集,具有管理學在通常意義上的價值。
項目定義階段中啟動過程的重要成果:一是選了一位項目經理。二是形成了一個項目章程 項目范圍管理是指對項目包括什么與不包括什么的定義與控制過程。
→軟件系項目正在進行中,項目經理正在與質量保證部門,試圖提高個人對項目將要滿足質量標準的責任心和信心,在開始該過程之前需要確定質量控制測量指標。正式承認項目存在的文檔是項目章程。
→項目大部分完成,客戶要求做重大變更,此時項目經理第一步應該與項目團隊開會,決定是否可以做此變更
→項目進行到一半時,客戶想要取消剩余的工作和合同,最佳方法是查看項目章程中的目的、目標和商業案例 來確定項目的目的。
→由于IT項目管理的復雜性,使得影響項目成本的因素很多。在這些因素中質量、進度和范圍對項目成本影響的關聯性非常強。
→軟件項目的配置管理員貫是對軟件版本進行管理,然而它還遠遠不止這些,它是改進軟件過程,提高過程能力成熟度的理想切入點 項目型組織中項目經理的權力最大
一個軟件系統通常包括那幾個部分,他們的作用是什么
一個軟件系統通常包括在計算機運行能夠提供所希望的功能和性能的程序;是程序能夠正確運行的數據結構和數據;描述系統結構的系統文檔和如何使用與維護該系統的用戶文檔。程序是按照事先設計的功能和性能要求執行的指令序列;數據是使程序能夠正常、正確操縱信息的設計結構;文檔時與程序的開發、維護和使用有關的圖文資料。
大多數項目都有共同的管理過程,這一過程包含哪幾個過程組?主要工作和成果是什么?
包括啟動、規劃、執行、監督和結束5個過程組。
啟動過程組的主要任務是確定并核準項目或項目階段。在項目開始階段啟動過程的主要成果就是形成一個項目章程和選擇一位項目經理。
規劃過程組的主要任務是確定和細化目標,并規劃為實現項目目標和項目范圍的行動方針與路線,確保實現項目目標。主要成果包括完成工作任務分解結構、項目進度計劃和項目預算。
執行過程組的主要任務是通過采用必要的行動,協調人力資源和其他資源,整體
地、有效地實施項目計劃。執行過程組的主要成果就是交付實際的項目工作。
監控過程住的主要任務是定期測量和實施監控項目進展情況,發現偏離項目管理計劃之處,即使采取糾正措施和變更控制,確保項目目標的實現。監控過程的主要成果是在要求的時間、成本和質量限制范圍內獲得滿意的結果。
收尾過程組的主要任務是采取正式的方式對項目成果、項目產品、項目階段進行
驗收,確保項目或項目階段有條不紊地結束。收尾過程組的主要成果包括項目的正式驗收、項目審計報告和項目總結報告編制以及項目組成員的妥善安置。項目的生命周期包括哪幾個階段?主要工作和任務?
主要包括定義、開發、實施和收尾4個基本階段。
定義階段的主要任務是制定項目建議書,它主要描述為什么要做和做什么,對于
項目目標來說,項目建議書決定著其未來的藍圖與框架。
開發階段的主要任務是規劃項目怎么做,誰來做,項目主要更具項目建議書,制
定出更為詳細的項目計劃。
實施階段的主要工作是執行項目計劃,并驚醒項目的監督和控制,其目的就是把
項目的內容完成。
收尾階段的主要任務是完成項目的額驗收與工作總結,為后續的項目提供經驗、教訓和幫助。
你認為要管理好一個軟件項目,項目經理應該具備怎樣的素質和條件;他應該如何工作來確保項目的成功。
一個優秀的項目經理至少需要具備3中基本能力:解讀項目信息的能力、發現和整合項目資源的能力、將項目構想變成項目成果的能力。
項目經理的素質要求:良好的道德品質。健康的身體和心理素質。強烈的客戶意識。專業的素質和素養。牢固的大局觀。優秀的項目管理能力。強大的信心與堅強的意志。膽大、心細。
項目經理的職責主要包括以下幾點:
確保項目目標實現,保證用戶滿意。制定項目階段性目標和項目總體控制計劃。組織精干的項目管理班子。及時決策。履行合同義務,監督和噢太難根治性,處理合同變更。
產生軟件質量問題的主要原因,以及解決軟件質量問題的手段與方法。
產生軟件質量問題的13個原因:管理者缺乏質量觀念,未從一開始就強調質量。開發者未將保證質量作為他們的重要而且是必須完成的任務。沒有真正執行 “決不把不合格的中間產品帶到下一階段”。沒有良好的激勵機制。大家看不到提高質量對公司的生存發展有多重要,普遍缺乏主人翁責任感。沒有解決好質量管理者和開發者的關系。對用戶的質量要求不了解,缺乏使用戶滿意的思想。用戶對軟件需求不清晰、存在二義性。開發人員對用戶的需求理解有偏差甚至錯誤。開發與管理文檔對質量控制作用小。軟件開發工
具引發質量控制困難。不遵守軟件開發標準和規范。缺乏有效的質量控制和管理。手段和方法:因果圖、控制圖和7點運行法則、流程圖、帕累托圖 怎樣來進行項目管理以確保IT項目的成功。
軟件項目管理是為了使 軟件項目能夠按照預定的范圍、成本、進度、質量順利完成,而對范圍、費用、時間、質量、人力資源、風險、采購等進行分析和管理的活動。通過軟件項目管理過程來對軟件任務進行組織、計劃、實施、管理和評估,以明確和滿足范圍、時間、成本、質量等方面的約束限制??刂祈椖糠秶?、保障項目進度、控制項目成本、保證項目質量、協調項目人力資源、改善項目的溝通、應對項目風險