书城外语计算机英语
27082000000037

第37章 Software Engineering(7)

Understanding stakeholder needs

Defining the system

Managing scope of the project

Refining the system definition

Managing changing requirement

ProblemAnalysis

Problem analysis is done to understand problems, initial stakeholder needs, and propose high-level solutions. It is an act of reasoning and analysis to find "the problem behind the problem". During problem analysis, agreement is gained on the real problem(s), and who the stakeholders are. You should also have analyzed the business case for the project so that there is a good understanding of what return is expected on the investment made in the system being built.

Understanding Stakeholder Needs

Requirements come from many source, examples would be customers, partners, end users, and domain experts. You need to know how to best determine what the sources should be, get access to those sources, and also how to best elicit information from them. The individuals who provide the primary sources for this information are referred to as stakeholders in the project. If you're developing an information system to be used internally within your company, you may include people with end user experience and business domain expertise in your development team. Very often you will start the discussions at a business model level rather than a system level. If you’re developing a product to be sold to a market place, you may make extensive use of your marketing people to better understand the needs of customers in that market.

Elicitation activities may occur using techniques such as interviews, brainstorming, conceptual prototyping, questionnaires, and competitive analysis. The result of the elicitation would be a list of requests or needs that are described textually and graphically, and that have been given priority relative one another.

【New Words】

requirement

需要,需求

systematic 系统的,体系的

conform

使遵守,使顺从

applicable 可适用的,可应用的

traceability

可描绘,可追溯

deliverable 可交付使用的

elicitation

引出,诱出,启发

prototype

原型

Exercise

1. Multiple Choices

(1)Software engineering is some certain ______.

A. programs

B. methods

C. products

D. managements

(2)Software engineering encompasses the following key ______.

A. programming

B. procedures

C. tools

D. elements

(3)During ______, the implemented system is tested to see that it meets the specified requirements.

A. requirement

B. analysis

C. design

D. testing

(4)The life cycle paradigm of software engineering requires ______approach.

A. a systematic

B. a random

C. a sequential

D. a conventional engineering-modeled

(5)An output of each phase must be ______ carefully before being passed on. A. sent back

B. checked

C. executed

D. modified

(6)We can identify five phases in the ______.

A. software product

B. software life cycle

C. software requirement D. conventional engineering cycle

(7)Software design focuses on ______.

A. data structure

B. software architecture

C. document

D. procedural detail

(8)Maintenance is necessary because ________.

A. software undergoes change after it is delivered to the customer

B. software is embedded

C. some errors have been encountered

D. the customer requires performance enhancements

(9)The classic life cycle include ______.

A. design

B. coding

C. analysis

D. maintenance

(10)A well designed system should be ______.

A. easily understood

B. reliable

C. straightforward to implement

D. straightforward to maintenance

(11)Agood design of software depends on ______.

A. establishing a definitive way

B. the application

C. the particular requirements

D. efficient code to be produced

2. Translate the following phrase into Chinese

(1)standard graphical

(2)logical flow of data

(3)program validation

(4)customized banking package

(5)software life cycle

(6)implementation phase

(7)necessary condition

3. Translate the following phrase into English

(1)生命周期

(2)穷尽测试

(3)软件工程

(4)自顶向下

(5)程序维护

(6)时间消耗

4. Identify the following to be True or False

(1)Software engineering requires the identification of a problem.

(2)A large-scale software projects spans a considerable period of time.

(3)For the poor design to be found in the fifth phase, you can redesign it, it is very easy.

(4)The total cost of a software project is function of the time.

(5)Software engineering is an outgrowth hardware and system engineering. (6)It is not easy in the beginning for the customer to state all requires explicitly.

5. Translate the following passage from English into Chinese

Software engineering is an area of software development in which computer scientists and engineers study methods and tools that facilitate (使变得容易) the efficient development of correct, reliable, and robust computer programs. Research in this branch of computer science considers all the phases of the software life cycle, which begins with a formal problem specification, and progresses to the design of a solution, its implementation as a program, testing of the program, and program maintenance. Software engineers develop software tools and collections of tools called programming environments to improve the development process. For example, tools can help to manage the many components of a large program that is being written by a team of programmers.