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

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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值