软件工程 实践者的研究方法 第36章答案

Problem:

Consider any job that you’ve held in the last five years. Describe the business process in which you played a part. Use the BPR model described in Section 36.4.2 to recommend changes to the process in an effort to make it more efficient.

Answer:

According to my work profile in business process oriented job

Business process is says that “A set of logically related tasks, that are performed to define business outcome”. And it is his combination of

1. People :

Under this, customers, users and clients are

Come in this part.

2. Equipment

Employees, fun natures, systems, and ect,………..

3. Material resources.

Under this, lets consider the hardware / software and some other.

4. Business procedures.

These business procedures are done by the model of business process re – engineering concepts. Those are

1. Business definition.

2. Process identification.

3. Process evaluation

4. Process specification

5. Prototyping

6. Refinement and instantiation.

But business process re engineering is the concept about process improvement in dramatically approach.

It is concerned with mocking significant radical changes to a company. It is done by based on business process. And it while we developing the product using BPR model we may consider the following changes through.

592-31-1p-i1.pngBusiness process improvement.

592-31-1p-i2.png Cove process design.

592-31-1p-i3.png Process innovation.

592-31-1p-i4.png Business process transformation.

592-31-1p-i5.png Breakpoint business process redesign

592-31-1p-i6.png Organizational reengineering .

592-31-1p-i7.png Business process management

592-31-1p-i8.png Business scope redefinition.

592-31-1p-i9.png Organization change ecology.

592-31-1p-i10.png Structured analysis and improvement.

Example for conceptual model in BPR.

592-31-1p-i11.png

Problem:

Do some research on the efficacy of business process reengineering. Present pro and con arguments for this approach.

Answer:

In the real world, BusinessProcessRe-engineering (BPR) can be called a lot of things. Those are

1. Cost cutting drives

2. Restructuring.Over time businesses start doing things they need not be doing, perhaps through acquiring other businesses, or doing things in house that could be better outsourced. So there is every few years, a need to stand back and decide whether the business is making best use of its core skills and expertise. In short, determining whether the business is doing the right things.

Once this is done, BPR is a means of re-evaluating existing processes to optimise performance and do things right.There are usually some advantages for the P&L, usually through the quick wins which can be identified. Plus advantages for the business, in the form of clearer objectives, and better systems to achieve those objectives.Downsides can be staff motivation; even those who still have jobs suddenly begin to appreciate that they are “resources” to be hired and fired at an accountant’s whim rather than the happy team members they used to be.

There is always a need to prove the benefits of a restructure; this exercise is almost always full of dubious accounting comparing apples and pears. This is almost entirely aimed at supporting the next bonus for the executive concerned. Sadly he or she usually gets away with it, and is so pleased with their bonus, that they will do it again, usually before the first restructure is properly bedded in and working properly.In summary, reengineering is a vital part of any business; but it can be damaging if done for the wrong reasons or in the wrong way. Arguably any need for a major reengineering exercise can be viewed as proof the management have not been on top of things to date. A process of continuous incremental improvement is usually more effective.

Problem:

Your instructor will select one of the programs that everyone in the class has developed during this course. Exchange your program randomly with someone else in the class. Do not explain or walk through the program. Now, implement an enhancement (specified by your instructor) in the program you have received.

a. Perform all software engineering tasks including a brief walkthrough (but not with the author of the program).


 

b. Keep careful track of all errors encountered during testing.


 

c. Discuss your experiences in class.

 

Answer: Problem:

Explore the inventory analysis checklist presented at the SEPA website and attempt to develop a quantitative software rating system that could be applied to existing programs in an effort to pick candidate programs for reengineering. Your system should extend beyond the economic analysis presented in Section 36.9.

Answer: Problem:

Suggest alternatives to paper and ink or conventional electronic documentation that could serve as the basis for document restructuring. (Hint: Think of new descriptive technologies that could be used to communicate the intent of the software.)

Answer: Problem:

Some people believe that artificial intelligence technology will increase the abstraction level of the reverse engineering process. Do some research on this subject (i.e., the use of AI for reverse engineering), and write a brief paper that takes a stand on this point.

Answer:

592-31-6P SA Code:4475

SR Code:4578

The computers could be made to handle simple objects in a controlled setting, they failed miserably at recognizing complex objects in the natural world. A microphone could distinguish sound levels but not summarize what had been said; a manipulator could pick up a clean new object lying in an ordered array but not a dirty old one lying in a jumbled heap. (Nor could it, in Marvin Minsky's inspired example, put a pillow in a pillowcase.) Today we worry far more about competition from humans overseas than about competition from machines.

While AI's progress has been slower than expected, neuro-science has gotten much more sophisticated in its understanding of how the brain works. Groups here are charting the neural pathways of most of the higher cognitive functions (and their disorders), including learning, memory, the organization of complex sequential behaviors, the formation and storage of habits, mental imagery, number management and control, goal definition and planning, the processing of concepts and beliefs, and the ability to understand what others are thinking. The potential impact of this research could be enormous. Discovering how the brain works exactly. how it works, the way we know how a motor works -- would rewrite almost every text in the library. Just for starters, it would revolutionize criminal justice, education, marketing, parenting, and the treatment of mental dysfunctions of every kind.

Such progress is one reason the once bright line between neuro-science and AI is beginning to blur. Vision research under way at the Institute also illustrates how the two disciplines are beginning to collaborate. These days, AI researchers follow the advance of neuroscience with great interest, and the idea of reverse- engineering the brain is no longer as implausible as it once seemed.

Problem:

Why is completeness difficult to achieve as abstraction level increases?

Answer:

Abstraction:

• The abstraction refers to the understanding level of design information from the source code provided.

• The level of abstraction should be as high as possible.

• So, in the process of reverse engineering the abstraction should is responsible in finding out the following representations:

1. procedural design representations

2. information about data structures and object models

3. Data and control flow models.

4. Entity relationship models.

• The increase in the level of abstraction allows the user obtains the information required in easy understanding about the program and its details.

Completeness:

• It refers to the level of the understanding of the data provided at the abstraction level.

• Completeness is directly proportional to amount of analysis performed by the user.

Relation between abstraction and completeness:

• Generally, as the level of abstraction increases the completeness decreases.

• This is because, the relative understanding of the source code and the program decreases.

Problem:

Why must interactivity increase if completeness is to increase?

Answer:

Completeness improves indirect proportion to the amount of analysis performed by the person doing reverse engineering. It is interactivity refers to the degree to which the human is integrated with automated tools to create an effective reverse engineering process. In some cases, the abstraction revel also increases and interactivity it must increases or completeness will suffer.

Problem:

Using information obtained via the Web, present characteristics of three reverse engineering tools to your class.

Answer:

Every reverse engineering tool, that is manage by below characteristics.

1) Abstraction level:-

In this the process and the tool used to affect it refers to the sophistication of the design information. That can be extracted from the source code.

Here abstraction level should be high as possible.

2) Completeness:

This process refers to the level of detail that has provided at an abstraction level.

Ex:

Given a source code listing, it is relatively easy to develop a complex procedural design representation.

3) Interactivity:

It refers to the degree to which the human is integrated with automated tools to create an effective reverse engineering process.

4) Directionality:

If this process is one – way, then all information extracted from the source code that is provided to the software engineered who can then use it during any maintained activity.

If directionality is two way then the information is fed to a reengineering tool.

5) Extract abstractions:-

The core of reverse engineering is an activity is called as extract abstraction.

Problem:

There is a subtle difference between restructuring and forward engineering. What is it?

Answer:

Restructuring can be defined as follows:

"Restructuring is the transformation from one representation form to another at the e relative abstraction level, while preserving the subject system's external behavior (functionality and semantics)."

Therefore, restructuring is something that you do while remaining at the e phase of software engineering life cycle. It's example can be the Normalization of the database at the design phase, i.e. taking the database design from 1st Normal Form to 2nd Normal Form to 3rd Normal Form and then from there to BNF (if necessary). So this is what you are doing while remaining at the e phase of Software Engineering, i.e. the Design phase. You have transformed a crude design into a more structured design. You are just restructuring the information that you have during the design phase, in another form that is more structured, clearer and less ambiguous. So you are achieving some benefit with the help of restructuring. Similarly, during the Implementation phase, if you are replacing your "bubble sort" algorithm with a "quick sort" algorithm in order to enhance the performance of the system, then this is also called restructuring but at a different level of abstraction.

At the other hand, Forward engineering is what you call the normal execution of the software life cycle in the normal, i.e. forward direction. It is given this name in order to represent "Reverse Engineering" (refer to my article titled "Reverse Engineering" dated March 7, 1998) something that is executed by reversing the normal software engineering procedure, which is from Requirements to design to implementation to testing to delivering to maintenance. So in this regard, these two terms are quite different in meaning and interpretation

Problem:

Research the literature and/or Internet sources to find one or more papers that discuss case studies of mainframe to client-server reengineering. Present a summary.

Answer:

592-31-11P SA Code: 4475

SR code: 4578

As client/server (C/S) technology gains momentum, mainframes are no longer the center of the information technology (IT) universe.

The concepts of C/S technology can provide businesses with a dynamic view of their organizations. This is vital when companies are reengineering processes and undergoing constant change. One major result of the move to C/S is the increased componentization of applications which allows companies far more flexibility in addressing business process reengineering (BPR) issues than traditional mainframe applications.

The relationship of BPR and C/S systems, the role of C/S in changing business processes, and organizations' readiness for C/S.

Successful enterprise C/S computing depends on smooth integration with legacy systems. Mainframe to Client/Server Migration: Strategic Planning Issues and Techniques evaluate the pros and cons of different IT scenarios such as the possibility of the mainframe being reborn as a large server which operates with PCs, workstations, and other servers.

Client/Server Models:

Today's organizations often have many C/S systems connected to the mainframe, with different processes occurring in separate hardware tiers. Many of the C/S applications in use today are of the two-tier, mainframe-based, data passing type, rather than the three-tier or multitier model.

Mainframe to Client/Server Migration: Strategic Planning Issues and Techniques examine C/S models and provide a detailed discussion of two-tiered versus three-tiered models.

Migration Options, Risks, and Strategies:

Mainframe to Client/Server Migration: Strategic Planning Issues and Techniques discusses migration options, including refronting, replacing, rebuilding, and redesigning to accommodate new C/S technologies. The hands-on possibilities for migration are "surround" strategies, presentation mapping, process mapping, data mapping, data replication, and the legacy data server. Ways to reduce migration risks such as outsourcing and standardizing technology are explored, and migration strategies are reviewed.

Tools of Client/Server evolution:

Corporate downsizing and BPR projects have created an enormous demand for new applications. In many cases, highly productive, low-cost C/S tools are helping corporate developers keep pace with this demand. Mainframe to Client/Server Migration: Strategic Planning Issues and Techniques provide analyses of partitioning tools, development/maintenance tools, programming environments, middleware, and C/S computer-aided software engineering (CASE). The report also outlines tool selection and product/vendor issues.

Client/Server Systems Management Options:

In the past decade, many companies have reorganized their tightly controlled, centralized IS departments, putting functionality and control in customer-oriented, decentralized units. Some companies now realize this has resulted in chaos and are returning to a centralized structure to cut costs.

Mainframe to Client/Server Migration: Strategic Planning Issues and Techniques explore the advantages and disadvantages of centralized and decentralized management of C/S systems and discuss the network management front.

Future Trends:

Mainframe to Client/Server Migration: Strategic Planning Issues and Techniques, address future C/S trends, particularly distributed databases and the possibilities of C/S online transaction processing (OLTP). Many companies are now integrating their mainframes into C/S. The report discusses whether this trend will become a common practice.

mainframe staying power, covering issues such as lower mainframe prices, IBM's mainframe strategy, the hidden costs of C/S, increased mainframe use, and parallel processing.

Problem:

How would you determine P4 through P7 in the cost-benefit model presented in Section 36.9?

Answer:

From the cost / benefit analysis model, reengineering is proposed by,

592-31-12p-i1.png Predicted annual maintenance cost after re engineering.

592-31-12p-i2.png Predicted annual operations cost after re engineering

592-31-12p-i3.png Predicted annual business value after re engineering

592-31-12p-i4.png Estimated re engineering cost

Best way for this, to check applications that have already been reengineered and accumulate require metrics that will provides average values for P4 to P7.

If such data do not exist, the values must be estimated based on projected percent improvements.

 


Solution: CHAPTER36: MAINTENANCE AND RE-ENGINERRING

36.1. This is a useful problem. Begin by having your students create a quite work flow for the existing job. A simple outline of tasks and work products should suffice. Next, have them isolate where in the work flow efficiencies can be obtained. Then have them recommend changes to the process that will achieve these efficiencies. If computing technologies will provide benefit, have them specify where they are most applicable.

36.2. The positive arguments for BPR are contains in books such as [HAM93]. On the negative side, many companies give only half-hearted support to BPR activities, resulting in upheaval, but little benefit. Some management teams reorganize people, but don’t change process. This rarely achieves significant benefits and almost always creates upheaval that lowers productivity. The Internet contains much information on this subject.

36.3. I strongly recommend that you assign this exercise during every software engineering course. It will teach more about maintenance (and the problems associated with doing it) than any amount of lecture.

36.4. There are a number of ways to do this. The best approach is to create a spreadsheet model with a column for each of the criteria noted in the checklist. Each of the quantitative criteria can then be normalized by dividing it by the average value for the characteristic for all programs. The normalized value can then be multiplied by a weighting factor (0.0 to 1.0) based on the relative impact of the characteristic on the reengineering decision (e.g., overall maintainability may have a high impact, while the annual cost of operation may have a somewhat lower impact on the reengineering decision). The resultant grade provides a guide for selecting programs for reengineering.

36.5. One example, capturing the developer’s thoughts on video and embedding quick-time movies directly into the source listing.

36.6. Answers will vary

36.7. As the abstraction level goes up, the description of the software moves further and further away from implementation details. Therefore, it becomes hard to trace from the model or document being assessed back to code level specification (unless there is a clear and repeatable mapping).

36.8. A human can make the "leaps" necessary to bridge the gap between higher levels of abstraction and implementation detail. Therefore, high interactivity is essential if completeness is to increase.

39.9. Answers will vary

36.10. Restructuring tends to make only minor design changes. Forward engineering completely rebuilds the application, making major design modifications. For example, a reengineering activity might implement an OO solution when the original program was developed using a conventional paradigm.

36.11. Answers will vary

36.12. The best way is to examine applications that have already been reengineered and collect metrics that will provide average values for P4 to P7. If such data do not exist, the values must be estimated based on projected percent improvements.

posted @ 2021-01-23 11:14  mike6606  阅读(200)  评论(0编辑  收藏  举报