您的位置:首页 > 其它

【软件工程】关于软件工程里需要熟悉的一些基本问题的讨论(一)

2014-10-27 22:11 351 查看
1. What is the software engineering?

Software Engineering is to design, develop and maintain a software in a systematic, collaborative, iterative and cost-effective way. It is a good method that let you to understand, design and build from business need to quality
solution.

2. Compare and contrast waterfall and incremental development process models.

Waterfall:



assume requirements are well known

change is difficult to be accommodated

limited customer insight

does not reflect how actual software development is done   

Incremental:



reduce cost of change

rapid delivery

easy to get customer feedback

the process is invisible

3. What is the difference between generic software product development and commissioned software product development?

generic: it is sold for general public, can perform different kinds of task, no limitation of any specific application.

commissioned: it is sold for particular customers, with limitation of specific requirement.

4. Describe requirements engineering in a few sentences.

it is the description of system services, functions and constraints that are generate during the requirement engineering process. it make the system solve the problem efficiently.

5. What is requirement engineering process?

requirement engineering process is an iterative process including requirement elicitation, requirement analysis, requirement specification and requirement validation.

requirement elicitation: elicit the basic information from all stakeholders.

requirement analysis: determine whether the requirement is feasible or not. There is no conflict between any 2 requirements.

requirement specification: document the requirement. laying out the functional and non-functional requirements

requirement validation: determine requirement priority, completeness and meet the basic needs.

6. Describe the general phases that are common to all software engineering projects.

requirement analysis: gathering, refining and documenting the requirements for the software to be developed.

design analysis: transfer from requirement model to design views.

implementation: coding and building the software

testing: to check bugs and errors by users and QA

maintenance: After releasing the software, there should be a change or upgrade based on customers' feedback.

7. What is the tradeoff in software engineering?

time, cost and scope.

8. Discuss why change becomes more costly in later phase of the software engineering process.

The later phase the change occurs, the more work will be required to accommodate the change.

For example, if a customer want to build a software on window operating system, and in later phase, he change his mind and want to build on mac operating system. We have to rebuild everything and discard everything. there might
be a huge amount of work to do. 

9. What is prototyping?

A partial implementation of the system used to validate requirements, validate architecture or try out new technologies.

10. What is refactoring?

Improve the structure of the software without affecting its behavior.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: