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

Problem:
Figure 2.1 places the three software engineering layers on top of a layer entitled “A quality focus.” This implies an organizational quality program such as total quality management. Do a bit of research and develop an outline of the key tenets of a total quality management program.

FIGURE 2.1 Software engineering layers

Answer:
Software engineering is the layered approach which contains process, methods, and tools. The method contains a variety of tasks which includes requirements phase, analysis phase, design and modelling phase, program construction phase, testing and support phase.

Software engineering methods depends on certain principals which includes modelling activates.

The process and methods are provided with automated or semi-automated support for the fourth layer “tools”.Key tenets for total quality management program are given below:

• To have perfect vision, Mission and Values

o Create orientation program to educate employees about organizational goals and achievements.

• Identifying critical success factor (CSF)

o CSF is useful in identifying the objectives set by the organization and how to achieve them. Some of the examples of CSF are:

• Financial Performance

• Customer Satisfaction

• Market Share

• Employee Satisfaction

• Product Quality

• Metrics to track CSF data

• Identify key customer group

• Customer feedback

• Develop survey tool

• Quality improvement plan

• Resurvey after certain time period

• Technology


Problem:
Is software engineering applicable when WebApps are built? If so, how might it be modified to accommodate the unique characteristics of WebApps?

Answer:
4633-1-7P SA: 4475

SR: 6376

Yes, software engineering is applicable, when WebApps are built because it is a layered technology and consists of Tools, Methods, Process, and A quality focus.

WebApps exhibit some unique attributes like, Network intensiveness, concurrency, availability, security etc.

These unique characteristics of WebApps can be accommodated through a generic process framework for software engineering. It encompasses five activities and they are modified to accommodate the WebApps.

Modified process framework activities for WebApps are:

1. Customer communication (analysis/formulation) - Setting the goals, objectives and scope of the first increment.

2. Planning - fine grained estimates and schedule for the first increment, coarser estimates for subsequent increments.

3. Modeling - Establishes requirements and identifies content items, content design, architectural design, navigational design, and interface design.

4. Construction - page generation and testing, merging of content and technical designs to produce executable web pages that are exercised to uncover errors.

5. Deliver and evaluation - Increment is reviewed and changes required by customer are integrated into the next increment.The five generic framework activities can be used during the development of small, simple programs, the creation of large Web applications, and for the engineering of large, complex computer-based systems.

Problem:
As software becomes more pervasive, risks to the public (due to faulty programs) become an increasingly significant concern. Develop a doomsday but realistic scenario in which the failure of a computer program could do great harm, either economic or human.

Answer:
Failure is state of the system due to which a system stops functioning. It will be raised by the fault in software application.

The three examples of loses by software applications (economic or human) are given below:

• Aeronautics software applications: Software used in aeronautics such as an airplane. The system failure can lead to airplane crash risking several lives. It will also lead to great economic lose.

• Medical software applications: Software is used for monitoring various medical operations. Malfunctioning of such systems can lead to serious injury or death.

• Nuclear reactor control applications: The software used to control nuclear reactors in the field of nuclear engineering can cause serious health issues if the system goes corrupt.

Problem:
Describe a process framework in your own words. When we say that framework activities are applicable to all projects, does this mean that the same work tasks are applied for all projects, regardless of size and complexity? Explain.

Answer:
A process framework establishes foundation for a complete software process by identifying a small number of framework activities that are applicable to all software projects, regardless of their size or complexity. The process framework encompasses a set of umbrella activities that are applicable across the entire software process.The following generic process framework in applicable to the vast majority of software projects:

- Communication.

- Planning

- Modeling

- Construction.

- Deployment.These five generic framework activities can be used during the development of small programs, the creating of large web applications, and for the engineering of large, complex computer based system. The details of the software process will be quite different in each case. But the framework activities remain the same. different projects demand different task sets. The software team chooses the task set based on problem and project characteristics.

Problem:
Umbrella activities occur throughout the software process. Do you think they are applied evenly across the process, or are some concentrated in one or more framework activities?

Answer:
The activities that are used to keep the progress of the software development process in check are known as umbrella activities.

They are included inside the frameworks.Different framework activities may have different sets of umbrella activities based on the functions that they perform.

For example:

There is no need of the technical reviews in the communication activity of the framework, but it is essential to include the technical reviews in the construction activity of the framework, where technical review is one of the umbrella activities.

Problem:
Add two additional myths to the list presented in Section 2.4. Also state the reality that accompanies the myth.

Answer:
Two additional software Myths are

1. Organizational Myth:

The cost of computers is lower than that of analog or electro mechanical devices.

Reality:

Hardware is cheap compared to other electro mechanical devices. However cost of software, with reliability and maintenance, is enormous.

EX:

Space-Shuttle software has 400,000 words (relatively small) but costs NASA approximately $100,000,000 a year to maintain. Software Costs can become exorbitant over time.

2. Technology Myth:

The most important factors determining the success of a software development project are its

1. Programming language and

2. Tools.

Reality:

All wrong, despite what language and tool designers would have you believe.

For one thing, the real influence of the listed items is in reverse order.

1. Tools and

2. Programming language.

A good tool can make even assembly language appear object oriented. So then the important influences are certainly, more important than these is the competence of the team members.

Recall the discussion on individual differences earlier and how they completely washed out the technological difference in the programming environment."

 

 

 

Solutions: Chapter 2: Software Engineering

 

  1. You might suggest that students use the Further Readings and Information Sources section of Chapter 21 for pointers.
  2. The definition for software engineering applies to the WebApps since quality and reasonable development costs are important to their creation. The subtle difference between a WebApp and a conventional software product is the need for short development times and acquisition process for web content. This the suggests the use of agile process models that will discussed later in the text and including aesthetics as part of the design considerations included during user interface design.
  3. There are literally dozens of real life circumstances to choose from. For example, software errors that have caused major telephone networks to fail, failures in avionics that have contributed to plane crashes, computer viruses (e.g., Michelangelo) that have caused significant economic losses and attacks on major e-commerce sites.
  4. Process framework is applicable to all the projects; hence the same work tasks are applied for all projects, regardless of their size or complexity. A process framework involves heavy communication with the customer to gather requirements; this activity establishes a plan for the software engineering work that follows. It involves creation of models that will assist the developer and the customer to understand the requirements and design them; it thereby involves construction (code generation and error testing). It finally provides feedback based on the evaluation.
  5. The umbrella activities occur throughout the software process they are applied evenly across the process, the analysis encompass a set of work tasks (eg. requirement gathering, elaboration, negotiation specification and validation). A process framework has a set of umbrella activities that are applicable across the entire software process. These activities include Software project tracking and control, Risk management, Software quality assurance, and formal technical reviews, measurement, Software configuration management, reusability management and work product preparation and production.
  6. Answers will vary (e.g. Testing can be used to remove all program errors).
上一篇:阿里资深软件测试工程师推荐—混沌工程(Chaos Engineering)初识


下一篇:ENG5322: Civil Engineering Skills