軟工專業(yè)英語PPTchapter2_第1頁
軟工專業(yè)英語PPTchapter2_第2頁
軟工專業(yè)英語PPTchapter2_第3頁
軟工專業(yè)英語PPTchapter2_第4頁
軟工專業(yè)英語PPTchapter2_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、我們畢業(yè)啦其實是答辯的標題地方Taiyuan University of Technology軟件工程專業(yè)英語計算機科學與技術學院 計算機軟件學院SOFTWARE ENGINEERING ESSENTIALS22.1 SOFTWARE ENGINEERING2.2 SOFTWARE REENGINEERING2.3 REVERSE ENGINEERINGSUMMARYCHAPTER 2 SOFTWARE REENGINEERING8/6/20222.1 SOFTWARE ENGINEERING3 In the long period of practice in building softwa

2、re, software developers have drawn a conclusion: software in all of its forms and across all of its application domains should be engineered.8/6/20224 Software Engineering Overview Software Process Model Phases of Software Development Methodology of Software Development8/6/20221.What is software eng

3、ineering ?Software engineering is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.Software Engineering: (1) The application of a systematic, disciplined, and quantifiable approach to the develo

4、pment, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1).-The IEEE has developed a more comprehensive definition 8/6/20222. Origin of software engineeringIn order to reduce the influences of software crises, the compute

5、r scientists discussed the software crises problems at international conference in German in 1968, and the name of “Software Engineering” was first put forward and adopted. From then on, Software Engineering, as a new engineering discipline, was born. 8/6/20223.What is a lifecycle of software?The pe

6、riod of time that is needed to create new software, is called the lifecycle of software, which starts from the time of problem definition, then development, deployment and maintenance, till the moment of retirement. 8/6/2022 4. Software processA software process is a collection of activities, action

7、s, and tasks performed when software is being built. An activity strives to achieve a broad objective (e.g., communication with users)and is applied regardless of the application domain, size of the project, complexity of the effort, or degree of rigor with which software engineering is to be applie

8、d. An action (e.g., architectural design) encompasses a set of tasks that produce a major work product (e.g., an architectural design model). A task focuses on a small, but well-defined objective (e.g., conducting a unit test) that produces a tangible outcome.8/6/20222.1.2 Software Process ModelTher

9、e are lots of software process models, includingwaterfall,prototyping,iterative, incremental development,spiral development,rapid application development,extreme programmingand various types ofagile methodology.The waterfall modelThe Incremental modelThe Spiral modelThe Agile process8/6/2022A variet

10、y of software process models have evolved over the years, each with its own recognized strengths and weaknesses. One software development process model is not necessarily suitable for use by all projects. Each of the available process model is best suited to specific kinds of projects, based on vari

11、ous technical, organizational and team considerations.8/6/20222.1.3 Phases of Software DevelopmentSoftware development life cycleSoftware development life cycle, usually referred to as SDLC, is an outline of a process that helps develop successfully software systems. An SDLC is a splitting of softwa

12、re development work into distinct phase (or stages) containing activities with the intent of better planning and management. These phases encompass planning, analysis, design, implementation and maintenance phases. The important thing for constructing a system is to have a plan. The process of plann

13、ing and building an application system are called systems analysis and design. This process begins with planning phase.8/6/2022Planning phaseAnalysis phaseDesign phaseImplementation phaseMaintenance phase8/6/20221. Planning phaseThe goal of this period is to create a project development plan. So, th

14、e activities included in the planning phase are shown as the following:Assemble the project teamJustify projectChoose development methodologyDevelop a project scheduleProduce a project development plan8/6/20222. Analysis phaseThe goal of the analysis phase is to produce a list of requirements for a

15、new or revised information system. In the analysis phase, the project team determines what the new system must do. A series of activities for the analysis phase are shown as the following:Study the current systemDetermine system requirementsWrite requirements report8/6/2022 3. Design phaseDuring the

16、 design phase of SDLC, developers must figure out how the new system will fulfill the requirements specified in the system requirements report. Tasks for the design phase are listed in the following:Identify potential solutionsEvaluate solutions and select the bestSelect hardware and softwareDevelop

17、 application specificationsObtain approval to implement the new system8/6/2022 4. Implementation phaseIn implementation phase, the project team supervises the tasks necessary to construct the new software system. The tasks that take place in this phase can include any of those shown in the next:Purc

18、hase and install hardware and/or software Create applicationsTest applicationsFinalize documentationTrain usersConvert dataConvert to new system8/6/20225. Maintenance phaseDuring the maintenance phase, the goals are day-to-day operation of system, making modifications to improve performance, and cor

19、recting problems. The activities during the phase should ensure that the system functions as well as possible. The main activities involve the following:Operate equipmentMake backupsProvide help to usersFix bugsOptimize speed and securityRevise software as necessary to meet business needs8/6/20222.1

20、.4 Methodology of Software DevelopmentA software development team typically develops a software system according to a specific methodology and a set of related development tools. The structured methodology and the object-oriented methodology are the two distinguished methodologies in practice.The st

21、ructured methodology is considered as the typical one. It focuses on the processes of a software system.The object-oriented methodology treats an information system as a collection of objects that interact with each other to accomplish specific tasks.8/6/2022191. What is software engineering?2.What

22、is a software process model? Explain the roles of software process model in development activities.3. How many software process models have been discussed in this chapter? 4. How many phases are there in the software development life cycle? Describe the tasks of each phase.Concept Check8/6/2022202.2

23、 SOFTWARE REENGINEERING Many software systems tend to grow larger with time, and become less structured with changes and less understandable with stuff turnover. As the result, the applications become unstable. Yet the applications must continue to evolve. On the other side, both maintenance of the

24、interfaces and the implementation have nontrivial percentage costs of the IT-budget. What to do? In fact, the broadening emphasis on software reengineering has been spawned by software maintenance problems. Reengineering a legacy software system to support new, modern technologies instead of old one

25、s is not an easy task, especially for large systems with complex architecture. 8/6/2022212.2 SOFTWARE REENGINEERING Origin of Reengineering A Software Reengineering Model Software Reengineering Activities8/6/20222.2.1 Origin of ReengineeringWhat is reengineering? Reengineering, also known as both re

26、novation and reclamation, is the examination and alteration of a software system to reconstitute it in a new form and the subsequent implementation of the new form.The activities of reengineering generally includes inventory analysis, reverse engineering, forward engineering, documentation restructu

27、ring, code restructuring and data restructuring.8/6/2022The two historic reengineering initiators The Y2K problem: For many companies this was the first time they had to deal with reengineering mechanisms. Y2K alone created a multi-billion reengineering market and ignited the offshore software indus

28、try in India and other countries.The introduction of the EURO: The introduction of the EURO created another huge reengineering request, mainly in the European finance industry. Two significant changes had to be addressed nearly at the same time, the introduction of the EURO to be completed by Januar

29、y 1, 1999 and the Y2K problem to be resolved at latest on January 1, 2000.8/6/20222.2.2 A Software Reengineering ModelReengineering is a rebuilding activity. A software reengineering process model defines six activities, shown in Figure 2-3. 8/6/20222.2.3 Software Reengineering ActivitiesInventory a

30、nalysisDocument restructuringReverse engineeringCode restructuringData restructuring Forward engineering8/6/20221.Inventory analysisEvery software organization should have an inventory of all applications. The inventory can be nothing more than a spreadsheet model containing information that provide

31、s a detailed description (e.g., size, age, business criticality) of every active application. By sorting this information according to business criticality, longevity, current maintainability and supportability, and other locally important criteria, candidates for reengineering appear. Resources can

32、 then be allocated to candidate applications for reengineering work.It is important to note that the inventory should be revisited on a regular cycle. The status of applications (e.g., business criticality) can change as a function of time, and as a result, priorities for reengineering will shift.8/

33、6/20222.Document restructuringCreating documentation is far too time consuming. If the system works, you may choose to live with what you have. In some cases, this is the correct approach. Documentation must be updated, but your organization has limited resources. Youll use a “document when touched”

34、 approach. It may not be necessary to fully redocument an application. Rather, those portions of the system that are currently undergoing change are fully documented. Over time, a collection of useful and relevant documentation will evolve.The system is critical business and must be fully redocument

35、ed. Even in this case, an intelligent approach is to pare documentation to an essential minimum. 8/6/20223.Reverse engineeringThe term reverse engineering has its origins in the hardware world. Reverse engineering for software is quite similar. In most cases, however, the program to be reverse engin

36、eered is not a competitors. Rather, it is the companys own work (often done many years earlier). The “secrets” to be understood are obscure because no specification was ever developed. Therefore, reverse engineering for software is the process of analyzing a program in an effort to create a represen

37、tation of the program at a higher level of abstraction than source code. Reverse engineering is a process of design recovery. Reverse engineering tools extract data, architectural, and procedural design information from an existing program.8/6/20224.Code restructuringThe most common type of reengine

38、ering (actually, the use of the term reengineering is questionable in this case) is code restructuring. Some legacy systems have a relatively solid program architecture, but individual modules were coded in a way that makes them difficult to understand, test, and maintain. In such cases, the code wi

39、thin the suspect modules can be restructured.To accomplish this activity, the source code is analyzed using a restructuring tool. Violations of structured programming constructs are noted and code is then restructured (this can be done automatically) or even rewritten in a more modern programming la

40、nguage. The resultant restructured code is reviewed and tested to ensure that no anomalies have been introduced. Internal code documentation is updated.8/6/20225.Data restructuring A program with weak data architecture will be difficult to adapt and enhance. In fact, for many applications, informati

41、on architecture has more to do with the long-term viability of a program than the source code itself. Data restructuring is a full-scale reengineering activity. In most cases, data restructuring begins with a reverse engineering activity. Current data architecture is dissected, and data models are d

42、efined when necessary. Data objects and attributes are identified, and existing data structures are reviewed for quality.When data structure is weak ,the data are reengineered. Because data architecture has a strong influence on program architecture and the algorithms that populate it, changes to th

43、e data will invariably result in either architectural or code-level changes.8/6/20226.Forward engineeringForward engineering is the traditional process of moving from high-level abstractions and logical, implementation-independent designs to the physical implementation of a system. Forward engineeri

44、ng not only recovers design information from existing software but uses this information to alter or reconstitute the existing system in an effort to improve its overall quality. In most cases, reengineered software reimplements the function of the existing system and also adds new functions and/or

45、improves overall performance.8/6/2022Concept CheckWhat is software reengineering?Discuss the two typical reengineering problems.What kinds of activities are included in a software reengineering model?Explain the main reasons that many corporations need a pragmatic strategy for software reengineering

46、.Discuss the role of each activity included in a software reengineering model.8/6/2022332.3 REVERSE ENGINEERING What is Reverse Engineering? The Reverse Engineering Process Reverse Engineering to Understand Processing Reverse Engineering to Understand Data Reverse Engineering User Interfaces8/6/2022

47、2.3.1 What is Reverse Engineering?Reverse engineering is the process of analyzing a subject system to Identify the systems components and their interrelationships; Create representations of the system in another form or at a higher level of abstraction. Reverse engineering generally involves extract

48、ing design artifacts and building or synthesizing abstractions that are less implementation-dependent. While reverse engineering often involves an existing functional system as its subject, this is not a requirement. You can perform reverse engineering starting from any level of abstraction or at an

49、y stage of the life cycle.8/6/20222. Key objectives1) Cope with complexity.2) Generate alternate views.3) Recover lost information.4) Detect side effects.5) Synthesize higher abstractions.6) Facilitate reuse.8/6/20222.3.2 The Reverse Engineering ProcessIn spanning the life-cycle stages, reverse engi

50、neering covers a broad range starting from the existing implementation, recapturing or recreating the design, and deciphering the requirements actually implemented by the subject system. There are many subareas of reverse engineering. Two subareas that are widely referred to are redocumentation and

51、design recovery.The reverse engineering process is represented in Figure 2-4. Before reverse engineering activities can commence, unstructured (“dirty”) source code is restructured so that it contains only the structured programming constructs. This makes the source code easier to read and provides

52、the basis for all the subsequent reverse engineering activities.8/6/2022The core of reverse engineering is an activity called extract abstractions. You must evaluate the old program and from the (often undocumented) source code, develop a meaningful specification of the processing that is performed,

53、 the user interface that is applied, and the program data structures or database that is used. Figure 2-4 The reverse engineering process8/6/20222.3.3 Reverse Engineering to Understand ProcessingReverse engineering to understand processing begins with an attempt to understand and then extract proced

54、ural abstractions represented by the source code. To understand procedural abstractions, the code is analyzed at varying levels of abstraction: system, program, component, pattern, and statement.The overall functionality of the entire application system must be understood before more detailed revers

55、e engineering work occurs. This establishes a context for further analysis and provides insight into interoperability issues among applications within the system. 8/6/20222.3.4 Reverse Engineering to Understand DataReverse engineering of data occurs at different levels of abstraction and is often th

56、e first reengineering task. At the program level, internal program data structures must often be reverse engineered as part of an overall reengineering effort. At the system level, global data are often reengineered to accommodate new database management paradigms. Reverse engineering of the current

57、 global data structures sets the stage for the introduction of a new system-wide database. 8/6/20222.3.4 Reverse Engineering to Understand DataDatabase reengineering, consists of transforming a legacy database according to new technical requirements, while keeping the information contents unchanged.

58、 Substituting a modern data management system (relational DBMS for instance) for an outdated manager (typically standard file manager), or improving the logical schema to gain better performance are popular scenarios. Regardless of its logical organization and physical structure, a database allows t

59、he definition of data objects and supports some method for establishing relationships among the objects. Therefore, reengineering one database schema into another requires an understanding of existing objects and their relationships.8/6/20222.3.4 Reverse Engineering to Understand DataTypically, the

60、process that converting a legacy system to a modern database technology, comprises the following three main steps:(1) Database schema conversion: the legacy database schema is translated into an equivalent schema expressed in the target technology.(2) Data conversion: the database contents are migra

溫馨提示

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

評論

0/150

提交評論