大学课件SoftwareEngineering软体工程英文课件_第1页
大学课件SoftwareEngineering软体工程英文课件_第2页
大学课件SoftwareEngineering软体工程英文课件_第3页
大学课件SoftwareEngineering软体工程英文课件_第4页
大学课件SoftwareEngineering软体工程英文课件_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1software engineering軟體工程http:/ objectivesnto learn about all the difficulties in developing software so that we can avoid pitfalls and myths in software designnto learn about different software processes so that we can choose a suitable onento learn to design high-quality efficient software so that

2、 it is usable and maintainablento learn about advanced methods for software engineering3course contentsnintroduction to software engineeringnsoftware processesnrequirements engineeringnsoftware designnobject-oriented software developmentnsoftware testing and verificationnsoftware project managementn

3、advanced methods4chapter 1introduction to software engineeringan overview of software engineering, including software crisis, myths, methods, evolution, and statushttp:/ crisisnsoftware mythsnwhat is software engineeringnevolution of software engineeringnstate-of-art in software engineering6the stat

4、istics chaos reportproject completion16%31%53%on time, on budget,with all of the specifiedfeatures and functionscancelled before theywere completeddelivered andoperational but over-budget, over-scheduleor with fewer featuresand functions thanspecifiednstandish group 1995n365 it executives in us comp

5、anies in diverse industry segments. n8,380 projectsaverage cost overrun = 189%average time overrun = 222%.61% of originally specified features included ?in averages 189% of original budget 221% of original schedule 61% of original functionality7symptom of software crisisnabout us$250 billions spent

6、per year in the us on application developmentnout of this, about us$140 billions wasted due to the projects getting abandoned or reworked; this in turn because of not following best practices and standards8symptom of software crisisn10% of client/server apps are abandoned or restarted from scratch n

7、20% of apps are significantly altered to avoid disastern40% of apps are delivered significantly late 9nsoftware products:qfail to meet user requirementsqcrash frequentlyqexpensiveqdifficult to alter, debug, enhanceqoften delivered latequse resources non-optimallyobserved problems10why is the statist

8、ics so bad?nmisconception on software developmentqsoftware myths, e.g., the man-month mythqfalse assumptionsqnot distinguishing the coding of a computer program from the development of a software productnsoftware programs have exponential growth in complexity and difficulty level with respect to siz

9、e.qthe ad hoc approach breaks down when size of software increases.11why is the statistics so bad?nsoftware professionals lack engineering trainingqprogrammers have skills for programming but without the engineering mindset about a process disciplineninternal complexitiesqessences and accidents made

10、 by fred. brooks12how is software usually constructed the requirements specification was defined like this the developers understood it in that waythis is how the problem was solved before. this is how the problem is solved nowthat is the program after debuggingthis is how the program is described b

11、y marketing dept.this, in fact, is what the customer wanted ;-)13software myths(customer perspectives)na general statement of objectives is sufficient to get started with the development of software. missing/vague requirements can easily be incorporated/detailed out as they get concretized.napplicat

12、ion requirements can never be stable; software can be and has to be made flexible enough to allow changes to be incorporated as they happen.14software myths(developer perspectives)once the software is demonstrated, the job is done.usually, the problems just begin!15until the software is coded and is

13、 available for testing, there is no way for assessing its quality.usually, there are too many tiny bugs inserted at every stage that grow in size and complexity as they progress thru further stages!software myths(developer perspectives)16the only deliverable for a software development project is the

14、 tested code.the code is only the externally visible component of the entire software complement!software myths(developer perspectives)17software myths (management perspectives)as long as there are good standards and clear procedures in my company, i shouldnt be too concerned.but the proof of the pu

15、dding is in the eating; not in the recipe !18software myths (management perspectives)as long as my software engineers(!) have access to the fastest and the most sophisticated computer environments and state-of-the-art software tools, i shouldnt be too concerned.the environment is only one of the sev

16、eral factors that determine the quality of the end software product!19software myths (management perspectives)when my schedule slips, what i have to do is to start a fire-fighting operation: add more software specialists, those with higher skills and longer experience - they will bring the schedule

17、back on the rails!unfortunately, software business does not entertain schedule compaction beyond a limit!20misplaced assumptionsnall requirements can be pre-specifiednusers are experts at specification of their needsnusers and developers are both good at visualizationnthe project team is capable of

18、unambiguous communication21nusually small in sizenauthor himself is sole usernsingle developernlacks proper user interfacenlacks proper documentationnad hoc development. nlargenlarge number of usersnteam of developersnwell-designed interfacenwell documented & user-manual preparednsystematic developm

19、entprogramssoftware productsconfused with programs and products22software programming software engineering nsoftware programming: the process of translating a problem from its physical environment into a language that a computer can understand and obey. (websters new world dictionary of computer ter

20、ms)qsingle developerq“toy” applicationsqshort lifespanqsingle or few stakeholdersnarchitect = developer = manager = tester = customer = userqone-of-a-kind systemsqbuilt from scratchqminimal maintenance23software programming software engineeringnsoftware engineeringqteams of developers with multiple

21、rolesqcomplex systemsqindefinite lifespanqnumerous stakeholdersnarchitect developer manager tester customer userqsystem familiesqreuse to amortize costsqmaintenance accounts for over 60% of overall development costs24what is software?software is a set of items or objects that form a “configuration”

22、that includes programs documents data .(“software engineering- a practitioners approach,” pressman, 5ed. mcgraw-hill) 25what is software (ctd.)?or you may want to say:qsoftware consists of n(1) instructions (computer programs) that when executed provided desired function and performance,n(2) data st

23、ructures that enable the programs to adequately manipulate information, and n(3) documents that describe the operation and use of the programs. 26what is software (ctd.)?but these are only the concrete part of software that may be seen, there exists also invisible part which is more important:qsoftw

24、are is the dynamic behavior of programs on real computers and auxiliary equipment.q“ a software product is a model of the real world, and the real world is constantly changing.”qsoftware is a digital form of knowledge. (“software engineering,” 6ed. sommerville, addison-wesley, 2000)27unique characte

25、ristics of softwarensoftware is malleablensoftware construction is human-intensivensoftware is intangible and hard to measurensoftware problems are usually complexnsoftware directly depends upon the hardwareqit is at the top of the system engineering “food chain”nsoftware doesnt wear out but will de

26、terioratensoftware solutions require unusual rigornsoftware has discontinuous operational nature28casting the termnthe field of software engineering was born in nato conferences, 1968 in response to chronic failures of large software projects to meet schedule and budget constraintsnsince then, term

27、became popular because software is getting more and more important to industry and business but the “software crisis” still persists.29what is software engineering?ndifferent focuses for this term exist in various textbooks. some are listed below.nthe application of a systematic, disciplined, quanti

28、fiable approach to development, operation, and maintenance of software; that is, the application of engineering to software. (ieee standard computer dictionary, 610.12, isbn 1-55937-079-3, 1990)30what is software engineering? (ctd)nsoftware engineering is concerned with the theories, methods and too

29、ls for developing, managing and evolving software products. (i. sommerville, 6ed.)na discipline whose aim is the production of quality software, delivered on time, within budget, and satisfying users needs. (stephen r. schach, software engineering, 2ed.)nmulti-person construction of multi-version so

30、ftware (parnas, 1987)31nthe practical application of scientific knowledge in the design and construction of computer programs and the associated documentation required to develop, operate and maintain them (b.w. boehm)nthe establishment and use of sound engineering principles in order to obtain econ

31、omically software that is reliable and works efficiently on real machines (f.l. bauer)what is software engineering? (ctd.)32nthe technological and managerial discipline concerned with systematic production and maintenance of software products that are developed and modified on time and within cost c

32、onstraints (r. fairley)na discipline that deals with the building of software systems which are so large that they are built by a team or teams of engineers (ghezzi, jazayeri, mandrioli)what is software engineering? (ctd.)33other definitions of software engineeringn“a systematic approach to the anal

33、ysis, design, implementation and maintenance of software.” (the free on-line dictionary of computing)n“the systematic application of tools and techniques in the development of computer-based applications.” (sue conger in the new software engineering)n“software engineering is about designing and deve

34、loping high-quality software.” (shari lawrence pfleeger in software engineering - the production of quality software)34so, software engineering is nscopeqstudy of software process, development principles, techniques, and notationsngoalsqproduction of quality software, qdelivered on time, qwithin bud

35、get, qsatisfying customers requirements and users needs35software processnwaterfall life cyclenprototypingnspiral modelnautomatic synthesis modelnobject-oriented modeln4 gl model36traditional software engineeringsoftware systemsdatafunctionbehaviorentity-relationdiagramdata flowdiagramstate transiti

36、ondiagram37object-oriented software engineeringsoftware systemsfunctionobjectbehaviordata flowdiagramclassdiagramstate chart38evolution of software industrynindependent programming servicensoftware productnenterprise solutionnpackaged software for the mass39independent programming services (era 1)nf

37、eb 1955, elmer kubie and john sheldon founded cuc qthe first software company that devoted to the construction of software especially for hardware company. npromoting software industry: two major projects,qsabre, airline reservation system, $30 million.qsage, air defense system (19491962) 700/1000 p

38、rogrammers in the us. $8 billion.40software product (era 2)n1964 martin goetz developed flowchart software - autoflow for rca, but rejected.nsale to the customer of rca & ibm.ndevelop and market software products not specifically designed for a particular hardware platform.qmark iv, a pre-runner for

39、 the database management system.nibm unbundled software from hardware.41enterprise solutions (era 3)ndietmar hopp. ibm germanyqsystems, applications and products (sap) $3.3billion (1997)qsetting up shop in walldorf, germany.qmarked by the emergence of enterprise solutions providers. e.g. baan 1978.

40、netherlands. $680 million (1997) oracle 1977. u.s. larry ellison.qerp, $45 billion (1997)42packaged software for the masses (era 4)nsoftware products for the masses. 1979.qvisicalc, spreadsheet program.naugust 1981: the deal of the century.qbill gates bought the first version of the os from a small

41、firm called seattle computer products for $50,000 without telling them it was for ibm.qthe development of the ibm pc, 1981, initiated a 4th software era.npc-based mass-market software. few additional services are required for installation. qmicrosoft reached revenues of $11.6 billion. packaged softw

42、are products, $57 billion (1997)43internet software and services (era 5)ninternet and value-added services period, 1994. wqwith netscapes browser software for the internet.44object-orientedad hocdata flow-baseddata structure-basedcontrol flow-basedevolution of design techniques45related knowledge46i

43、t markethardwareproductshardwaremaintenancesoftware products& servicesprocessing servicesand internet servicesembeddedsoftwareprofessionalservicesoftwareproductsenterprisesolutionpackagedmass-marketsoftware47software products and servicesenterprise solutionsibmoraclecomputer associatessaphpfujitsuhi

44、tachiparametric technologypeople softsiemenspackaged mars-market softwaremicrosoftibmcomputer associatesadobenovellsymantecintuitautodeskapplethe learning companyprofessional software servicesanderson consultingibmedscscscience applicationscap geminihpdecfujitsubso origin48software engineering today

45、?norganizations “go with what has worked in the past”neveryone is too busy getting product out the door to spend time in education or training or addressing these problems effectivelyn“out of date” practices become institutionalized49software engineering today?nfew people know, or can integrate, bes

46、t practices qunable to adopt and utilize proven methodologies in timely fashion nalthough significant improvements have been made in specific areas, the rapidly evolving nature of the software industry has resulted in little overall improvement in the overall situation.50not crisis, but a chronic pr

47、oblemnthe crisis persistsqafter 35 years later, the software “crisis” is still with usqmajor problems are still the same:npoor quality (correctness, usability, maintainability, etc)nover budgetndelivered late, or not at allnit is not a crisis but a chronic problem qit becomes a persistent, chronic c

48、ondition that software industry has to face with51whats wrong?ndoes software engineering have no progress at all? not quite true.qwe have indeed seen a lot of improvements, e.g. high level programming, object-oriented technology, etc.nbut it does not achieve its promise, why? qproduction of fault-fr

49、ee software, delivered on time and within budget, that satisfies the users needs, and is easy to maintain, etc.52a more close looknthe comparison with 1995s report does show that there is some progress in the past eight years.53so, whats the problem?nsoftware issues: software industry has changes a

50、lot in the past yearsneducation issue: more emphasis on methods and tools but lack of sufficient education and training on peoplenprocess and quality issue: there lacks of a set of known proven practices for software engineers to follow with54software changes in the past yearsnchanges in software ov

51、er time:qgrew in size from 10s or 100s of lines to 1000s to 1,000,000s of lines of codeqoperating environment changed from simple “batch” operations to complex multiprogramming systems, to time-sharing and distributed computing to todays internet network computing environment.55software changes in t

52、he past yearsnas computer systems (both hardware and software) have become larger and more complex, the software development process has also become more and more complex qthe simple art of “programming in the small” is no longer capable of coping with the task.56situations for software are differen

53、t toondriven by intense market forces, including persistent pressure to deliver software on unrealistic time schedulesqrapidly changing requirementsqpressures for faster time to marketncontinuing rapid evolution of software methodologies and systemsqintegration of new processes and techniquesqneed to re-design major systems57situations for s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论