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

Problem:

Get a copy of the best-selling book The Tipping Point by Malcolm Gladwell (available via Google Book Search), and discuss how his theories apply to the adoption of new software engineering technologies.

Answer:

The book Tipping Point by Malcolm Gladwell tells about how little things can make a big difference. The three main principles that he addresses are:

• The Law of the A Few

• The Stickiness Factor and

• The Power of Context

The law of few:

The 80/20 Principle states that in any situation roughly 80 percent of the “work’ will be done by 20 percent of the participants. This idea is central to the Law of the Few theory where a tiny percentage of people do the majority of work.

This law can be adapted to the software engineering approaches by spreading all the good to everyone. The qualities and nature possessed by only few people in a team are to be spread even to all of the team members.

Stickiness factor:

Stickiness means that a message makes an impact and doesn’t go in one ear and out the other. This idea of stickiness has enormous implications for the way we regard social epidemics.

This principle can be adapted for motivating people in a software team. People are to be motivated in aright way to make the things go right.

The power of context:

This says that human beings are a lot more sensitive to their environment than they may seem. The essence of the Power of Context is that our inner states are the result of our outer circumstances.

From this, we can extract that the environment of developing software is to be made positive and should not be in a way that makes negative impacts on the people.

Innovating companies can certainly use the principle of Tipping Points to achieve greater success. They are used in

• Developing a good team and in expanding their market.

• Increasing the ability to open new markets. Gathering requirements properly.

• Inculcating healthy environment in the team for developing software.

Problem:

Why does open-world software present a challenge to conventional software engineering approaches?

Answer:

4633-31-2P SA: 9420

SR: 6376

Open-world software is software that is designed to adapt to a continually changing environment “by self-organizing its structure and self-adapting its behavior”. It includes concepts such as ambient intelligence, context-aware applications, and persistent computing which help the software engineers to work according to the future needs. Where as, the conventional software engineering approaches work well for custom-developed software where the requirements are fixed when development begins. Thus, open-world software presents a challenge to conventional software engineering approaches.

Problem:

Review the Gartner Group’s hype cycle for emerging technologies. Select a well-known technology product and present a brief history that illustrates how it traveled along the curve. Select another well-known technology product that did not follow the path suggested by the hype curve.

Answer: Problem:

What is a “soft trend”?

Answer:

The soft trend is the unique characteristics of the new systems we build and test.

Soft trends growing need for connectivity and collaboration, global projects, knowledge transfer, the impact of emerging economics, and the influence of human culture itself, lead to a set of challenges that span managing complexity and emergent requirements to deal with an ever-changing talent mix among geographically dispersed software teams.

Problem:

You’re faced with an extremely complex problem that will require a lengthy solution. How would you go about addressing the complexity and crafting a solution?

Answer:

To find the complex and crafting a solution, first it is necessary to understand the solution by properly and completely. Then the solution is needed to be found out. It has to be identified whether there are any methods to simplify the solution or not. And if no methods are found then, the major components of the problem are identified and they are to be addressed independently if possible.

The complexity can be reduced by solving it by dividing into modules. Using various processes, methods, and tools we can keep complexity under control and develop a solution.

Problem:

What are “emergent requirements” and why do they present a challenge to software engineers?

Answer:

Emergent requirements:

The Emergent requirements cannot be attributed to any special part of a system; they emerge only once system components have been integrated.

The Emergent requirements have mainly two types:

1. Functional Emergent requirements

2. Non-functional Emergent requirements

1. Functional Emergent requirements: This is for all parts of a system work together to achieve some objective.

2. Non-functional Emergent requirements: This is for behavior of the system in its operational environment.

The main challenge to software engineers is that, components in a system are interdependent, so if any failure in any one component can be propagated through the system and affect the operation of other components and this is difficult to expect how the consequences of component failures propagate through the system.

Problem:

Select an open-source development effort (other than Linux), and present a brief history of its evolution and relative success.

Answer:

Success:

Open source Magnolia CMS has been released as both a community and enterprise edition. One main success of this is the Groovy integration. Groovy, the dynamic, Java-like scripting language is now supported within Magnolia CMS, allowing developers and users to easily create and administer functionality within the CMS without leaving the Java.

Problem:

Describe how you think the software process will change over the next decade.

Answer:

4633-31-8P SA: 9420

SR: 6376

Following are the few possible process trends over the next decade.

1. SPI (Software process improvement) frameworks:

• As SPI frameworks evolve, they will emphasize “strategies that focus on goal orientation and product innovation”.

• If the requirements for a new software-based product line will come out over a series of incremental product releases the software organization may recognize the need to improve its ability to manage change.

• Process improvements associated with change management must be coordinated with the release cycle of the product in a way that will improve change management while at the same time not being disruptive.

2. Process changes:

• Because software engineers have a good sense of where the process is weak, process changes should generally be driven by their needs and should start from the bottom up.

3. Automated software process technology (SPT):

• Automated software process technology (SPT) will move away from global process management to focus on those aspects of the software process that can best benefit from automation.

• To be most effective, it should focus on umbrella activities.

4. Greater emphasis:

• Greater emphasis will be placed on the return on investment of SPI activities.

5. Expertise in sociology and anthropology:

• As time passes, the software community may come to understand that expertise in sociology and anthropology may have as much or more to do with successful SPI as other, more technical disciplines.

6. New modes of learning:

• New modes of learning may facilitate the transition to a more effective software process.

• A software organization that collects metrics allows itself to understand how elements of a process affect the quality of the end product.

• Collaborative development, new forms of requirements engineering, model-based and test-driven development, and postmodern design will change the methods landscape.

Problem:

You’re based in Los Angeles and are working on a global software engineering team. You and colleagues in London, Mumbai, Hong Kong, and Sydney must edit a 245-page requirements specification for a large system. The first editing pass must be completed in three days. Describe the ideal online tool set that would enable you to collaborate effectively.

Answer:

4633-31-9P SA: 4475

SR: 6376

For editing the requirement specification, every company maintains its own tool. If not available they can use other tool sets.

The software tool developed by IBM can be considered as one of the ideal tool sets. IBM has developed IBM Rational Rose Version v2003.06.13 7., for editing specification by online. Rational Rose is one of the leading Object-Oriented analysis and design tools that integrate the modeling and development environments using the Unified Modeling Language (UML), as well as providing support for XML and increased Java/J2EE support. Included with Rational Rose is IBM Rational Rose Data Modeler which supports SQL Server including support for corresponding features such as including functions, new data types, and triggers on views.

Problem:

Describe model-driven software development in your own words. Do the same for test-driven development.

Answer:

Model-driven software development (MDSD):

Model-driven software development is a software development approach that aims at developing software from connects domain specific modeling languages with transformation engines and generators in a way that helps the representation of abstraction at high levels and then transforms it into lower levels. It is a distinction between designing and building an application platform and application engineering.

The model driven software development contains Models Driven Architecture (MDA) and set of models. MDA is a set of guidelines for the structuring of specifications, expressed as models. The models are used for justification about problem domain and a solution design in the solution domain.

 

The model driven software development is refers to a range of development approaches that are based on the use of software modeling as a primary form of expression. In the software development, the model driven software development is higher focus on architecture and corresponding automation yield higher levels of abstraction.

Test-driven development (TDD):

The Test-driven development is a software development process. In this requirements for a software component serve as the basis for the creation of a series of test cases that exercise the interface and attempt to find errors in the data structures and functionality delivered by the component.

The Test-driven development follows the simple procedural flow:

4633-31-10p-i1.png

Create a test case: In a test driven development, each new feature is begin with create a test case. To crate a test, the developer must clearly understand features specification and requirements.

Write a new code segment: Write some code that will cause the test to pass.

Run the test: The developer can be done the code meets all the tested requirements when after all test cases now pass.

Refactor: If any errors find in the code, the possibility of code will modify.

 


Solution: CHAPTER38: EMERGING TRENDS IN SOFTWARE ENGINERRING

38.1. Answers will vary

38.2 Open-world software encompasses ambient intelligence, context aware applications, and pervasive computing. These focus on integrating software-based systems into environments broader than a simple device. This requires the inclusion of concerns for significant privacy and security issues that require the need for trust management system and other emergent requirements that conventional software does not meet at the present time.

38.3 Answers will vary

38.4 A soft trends are driven by business, organizational, marketing, and cultural forces rather than research or technology. For example, the fact developers from the same team and targeted user groups are distributed all over the globe has a profound impact on how the developers will tackle a software development project.

38.5 Answers will vary. Students should be reminded to examine the process, methods, and tools they have studied during your course – especially those that support agile, incremental development, and control of emergent requirements. Abstraction and modeling are conceptual tools that will help management complexity for large projects.

38.6 Emergent requirements are product requirements that that come into existence only after stakeholders begin to experience the features of an evolving artifact. This means that it is impossible for software developers to create a complete set of system requirements prior to beginning the project. This means that the requirements will changes frequently with all the implications for managing change as software increments evolve.

38.7 Answers will vary

38.8 Answers will vary

38.9 The ideal tool set would contain many of the best features of a version control system. Allow individuals to lock and check out for modification individual document sections, while other team members can review read only versions to the entire document. Tracking modifications by each team member is also important.

38.10 Model-driven software development - Couples domain-specific modeling languages with transformation engines and generators in a way that facilitates the representation at a high level and transforms it to lower levels.

Test-driven development – Requirements for a software component serve as the basis for the creation of a series of test cases that exercise the interface and attempt to find errors. Test case created before source code. Software increments add one sub-function at a time to the build with thorough testing and regression testing. 

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