軟件工程課件:01-Intro_第1頁
軟件工程課件:01-Intro_第2頁
軟件工程課件:01-Intro_第3頁
軟件工程課件:01-Intro_第4頁
軟件工程課件:01-Intro_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Introduction to Software Engineering1Outline2What is software?Why software engineering? What is software engineering?SE Body of KnowledgeSE Code of EthicsOutline3What is software?Why software engineering? What is software engineering?SE Body of KnowledgeSE Code of EthicsWhat is Software?4In-the-smal

2、lIn-the-LargeIn-the-WorldIn-Every-where“In the coming decade, it will evolve into an integral extension not only of our senses and bodies but our minds.” - Kevin Kelly, Wired, Aug. 2005How to develop Software?5“標(biāo)靶移來移去,目的忽上忽下,計劃不切實際,期限一拖再拖,預(yù)算膨脹超值,絕望不已,混亂不堪?!?Dreaming in Code: Two Dozen Programmers, T

3、hree Years, 4,732 Bugs, and One Quest for Transcendent Software (January 16, 2007)夢縈代碼“這里躺著一個野心勃勃的開源項目。它曾立志超越Outlook,最后卻無疾而終??犊腗itch Kapor帶給它生命,又把命脈從它身上取走。許多程序員以心血養(yǎng)育它,惜乎全不見成效。它是溫室中的花兒,有過絢爛的夢想,還未綻放即已枯萎。那軟件的花園中,還有多少會漸次凋零呢?” Scott Rosenberg7Grand ChallengesF. P. Brooks, The Mythical Man-MonthPublished

4、 1975, Republished 1995 Experience managing the development of OS/360Issues in software development, US Government Accounting 197928.8% Software never delivered 47.3% Delivered but never used 19.2% Major modification, re-work or abandon 3% Minor modification 2% Used as delivered Brooks project, OS/3

5、60: was late (over 5000 person year, 61-64)cost many times more than estimate (over $500M)Essential DifficultiesComplexityConformityChangeabilityInvisibility“No Silver Bullet Essence and Accident in Software Engineering”, F. P. Brooks, 19868應(yīng)用服務(wù)器支撐軟件Tomcat,含1019個類,類與類之間有2109個繼承或聚合關(guān)系。圖中將類表示為節(jié)點,關(guān)系表示為邊

6、Linux內(nèi)核有630個函數(shù),存在1841個函數(shù)調(diào)用。圖中將函數(shù)表示為節(jié)點,調(diào)用關(guān)系表示為邊9Number of Changes Indexed by Developer and Module. Barcharts: Changes by module (top)and by developer(bottom),with color encoding developer. Matrix view and Cityscape view: number of changes indexed by developer (columns) and module(rows).Relationships

7、Between Files Based on IMR Linkages. Nodes are files, and linkage is defined by the relative frequency of les being changed as part of the same IMR. Link color shows the strength of this relationship.Eick0010 “軟件人員太像皇帝新衣故事中的裁縫了。當(dāng)我來檢查時軟件開發(fā)工作時,所得到的回答好象對我說:我們正忙于編織這件帶有魔法的織物。只要等一會兒,你就會看到這件織物是及其美麗的。但是我什么也

8、看不到,什么也摸不到,也說不出任何一個有關(guān)的數(shù)字,沒有任何辦法得到一些信息說明事情確實進(jìn)行得非常順利,而且我已經(jīng)知道許多人最終已經(jīng)編織了一大堆昂貴的廢物而離去,還有不少人最終什么也沒有做出來?!? F.D. Brooks, Manager of OS/360“The Mythical Man-Month”, 19741112“沒有別的場景比巨獸在焦油坑中垂死掙扎的場面更令人震撼它們掙扎得越是猛烈,焦油糾纏得越緊,沒有任何猛獸足夠強壯或具有足夠的技巧,能夠掙脫束縛,它們最后都沉到了坑底。 過去幾十年的大型系統(tǒng)開發(fā)就猶如這樣一個焦油坑,很多大型和強壯的動物在其中劇烈地掙扎各種團(tuán)隊 ,大型的和小型的

9、,龐雜的和精干的,一個接一個淹沒在了焦油坑中”- F.D. Brooks, Manager of OS/360“The Mythical Man-Month”, 1974Expensive BugsChild Support Woes (2004)Cost539,000,000 and countingDisasterBusiness services giant EDS developed a software system for U.K.s Child Support Agency (CSA) .The system accidentally overpaid 1,900,000 peo

10、ple, underpaid another 700,000, had 3,500,000,000 in uncollected child support payments, a backlog of 239,000 cases, and 36,000 new cases “stuck” in the system.CauseThe system had a large number of bugsIt still has 500 documented bugsIt is a large, complex software system, improperly designed, imple

11、mented, and testedFBIs Trilogy Terminated (2005)Cost$105,000,000 and countingDisasterFBI scrapped its computer systems overhaul after four years of effortThe Virtual Case File project was a massive, integrated software system for agents to share case files and other informationCauseA long-term proje

12、ct was built on technology that was outdated before the project completedResulted in a complex and unusable systemSoftware errors cost the U.S. economy $60,000,000,000 annually13Software EngineeringSoftware Engineering is the establishment & use of sound engineering principles in order to obtain eco

13、nomically software that is reliable & work efficiently on real machines. - Fritz Bauer, 1969, NATO“The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.” - “IEEE Standard Gl

14、ossary of Software Engineering Terminology”, IEEE, Piscataway, NJ std 610.12-1990, 1990.14Software EngineeringEngineering discipline SystematicEconomicHigh qualityAll aspects of software production from the early stages of system specification through to maintaining the system after it has gone to u

15、seRequirements: Identify, analyze and specify users needsDesign: Define how the system should be constructed to meet the requirementsCoding: Program the software Testing: Verify and Validate the system Maintenance: Maintain the software during operation15A Layered TechnologyToolsMethodsProcessQualit

16、y Focus16Order and Chaos17“The basic rule of software status reporting can be summarized in a single phrase: No surprises.” Capers Jones18“We have the tendency to think that order is the ideal state of nature. This could be a mistake. Research . Supports the theory that operation away from equilibri

17、um generates creativity, self-organized processes, and increasing returns. Absolute order means the absence of variability, which could be an advantage under unpredictable environments. Change occurs when there is some structure so that the change can be organized, but not so rigid that is cannot oc

18、cur. Too much chaos, on the other hand, can make coordination and coherence impossible. Lack of structure does not always mean disorder. ”J. Nogueira, et. al., “Surfing the Edge of Chaos: Application to Software Engineering”, Command and Control Research and Technology Symposium, 2000.Outline19What

19、is software?Why software engineering? What is software engineering?SE Body of KnowledgeSE Code of EthicsSE Boy of Knowledge15 SWEBOK key areasSoftware RequirementsSoftware DesignSoftware Construction Software TestingSoftware MaintenanceSoftware Configuration ManagementSoftware Engineering Management

20、Software Engineering Process Software Engineering Models and MethodsSoftware QualitySoftware Engineering Professional PracticeSoftware Engineering EconomicsComputing FoundationsMathematical FoundationsEngineering Foundations20Software Requirements21Software Design22Software Construction23Software Te

21、sting24Software Maintenance25Configuration Management26Management27Software Engineering Process28Software MythsPractitioner MythsMyth: Once we write the program and get it to work, our job is done. Reality: Someone once said that the sooner you begin writing code, the longer itll take you to get don

22、e. Industry data indicate that between 60 and 80 percent of all effort expended on software will be expended after it is delivered to the customer for the first time. 29Software MythsPractitioner MythsMyth: Until I get the program running, I have no way to assessing its quality. Reality: One of the

23、most effective software quality assurance mechanisms can be applied from the inception of a project the formal technical review. Software reviews are a “quality filter” that have been found to be more effective than testing for finding certain classes of software errors. 30Software MythsPractitioner

24、 MythsMyth: The only deliverable work product for a successful project is the working program. Reality: A working program is only one part of a software configuration that includes many elements. Documentation provides a foundation for successful engineering and, more importantly, guidance for softw

25、are support. 31Software MythsPractitioner MythsMyth: Software engineering will make us create voluminous and unnecessary documentation and will invariably slow us down. Reality: Software engineering is not about crating documents. It is about crating quality. Better quality leads to reduces rework.

26、And reduced rework results in faster delivery times.32Software MythsCustomer MythsMyth: A general statement of objectives is sufficient to begin writing programs we can fill in the details later. Reality: Although a comprehensive and stable statement of requirements is not always possible, an ambigu

27、ous statement of objectives is a recipe for disaster. Unambiguous requirements (usually derived iteratively) are developed only through effective and continuous communication between customer and developer. 33Software MythsCustomer MythsMyth: Project requirements continually change, but change can b

28、e easily accommodated because software is flexible. Reality: It is true that software requirements change, but the impact of change varies with the time at which it is introduces. When requirement changes are requested early (before design or code has been started), cost impact is relatively small.

29、However, as time passes, cost impact grows rapidly resources have been committed, a design framework has been established, and change can cause upheaval that requires additional resources and major design modification. 34Software MythsManagement MythsMyth: We already have a book thats full of standa

30、rds and procedures for building software. Wont that provide my people with everything they need to know?Reality: The book of standards may very well exist, but is it used? Are software practitioners aware of its existence? Does it reflect modern software engineering practice? Is it complete? Is it a

31、daptable? Is it streamlined to improve time to delivery while still maintaining a focus on quality? In many cases, the answer to all of these questions is no. 35Software MythsManagement MythsMyth: If we get behind schedule, we can add more programmers and catch up (sometimes called the Mongolian hor

32、de concept).Reality: Software development is not a mechanistic process like manufacturing. In the words of Brooks: “Adding people ot a late software project makes it later.” As new people are added, people who were working must spend time educating the newcomers, thereby reducing the amount of time

33、spent on productive development effort. People can be added but only in a planned and well-coordinated manner. 36Software MythsManagement MythsMyth: If we decide to outsource the software project to a third party, I can just relax and let that firm build it. Reality: If an organization does not unde

34、rstand how to manage and control software projects internally, it will invariably struggle when it out-sources software projects. 37Professional and Ethical ResponsibilitySoftware engineering involves wider responsibilities than simply the application of technical skillsSoftware engineers must behav

35、e in an honest and ethically responsible way if they are to be respected as professionalsEthical behaviour is more than simply upholding the law.38Professional ResponsibilityConfidentiality Engineers should normally respect the confidentiality of their employers or clients irrespective of whether or

36、 not a formal confidentiality agreement has been signed.Competence Engineers should not misrepresent their level of competence. They should not knowingly accept work which is outwith their competence.39Professional ResponsibilityIntellectual property rights Engineers should be aware of local laws go

37、verning the use of intellectual property such as patents, copyright, etc. They should be careful to ensure that the intellectual property of employers and clients is protected.Computer misuse Software engineers should not use their technical skills to misuse other peoples computers. Computer misuse

38、ranges from relatively trivial (game playing on an employers machine, say) to extremely serious (dissemination of viruses). 40Code of EthicsPreambleSoftware engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial

39、and respected profession. In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following eight principles:41Code of EthicsPUBLICSoftware engineers shall act consistently with the public interest.CLIEMT AND EMPLOYERSoftware engine

40、ers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.PRODUCTSoftware engineers shall ensure that their products and related modifications meet the highest professional standards possible.JUDGMENTSoftware engineers shall maintain int

41、egrity and independence in their professional judgment42Code of EthicsMANAGEMENTSoftware engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development of maintenance.PROFESSIONSoftware engineers shall advance the integrity and reputation of the profession consistent with the public interest. COLLEAGUESSoftware engineers shall be fair to the supportive of their colleagues. SELFSoftware engineers

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論