软件工程第一次作业答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.How do software characteristics differ from hardware characteristics?
Answer (Section 1.2):
Software is developed, not manufactured. Software does not wear out, but it can deteriorate when changes are made. Most software is custom built, not assembled out of components.
2. What is the difference between software that is determinate and software that is indeterminate?
Answer (Section 1.3):
Software is determinate is the order and timing of its inputs, processing, and outputs is predictable and it is indeterminate if the order and timing of its input, processing, and outputs is not predictable in advance.
3.Explain what is wrong with the notion that computer software does not need to evolve
over time.
Answer (Section1.4):
Computer software must be revised as errors are discovered and corrected. Software must be updated to accommodate changes in the computing environment. Many times a customer will request changes to add new functions to an existing product or to accommodate changes in the business environment. Sometimes an older system will need to be reengineered to provide benefits to the user in a modern context. The bottom line is that software that does not evolve will eventually become unusable.
4.Many modern applications change frequently before they are presented to the end user
and then after the first versions have been used. Think about few ways to build software to stop deterioration due to change.
Answer:
•Make sure that software is designed so that changes in one part of a program do not create side-effects in another part of the program.
•Make sure that software is designed so that it does not depend on external devices or systems that are likely to change with time.
•Make sure test cases and results are archived and available so that the software can be retested when changes are made.
•Make sure you spend time understanding what the customer wants.
5,For the waterfall model, describe situations where this model can and cannot be used and why.
Answer:
•The waterfall model is appropriate for projects with the following characteristics: (1) the problem is well understood (requirements are well-defined); (2) the delivery date is realistic; (3) it's unlikely that major changes in requirements will be requested as the
project proceeds.
6. Incremental process models tend to be among the most widely used in the industry. Describe the conditions under which such models should be used and what an “increment” means in terms of project work and delivery
Answer:
Incremental models are useful when staffing is unavailable for a complete implementation by the business deadline. In addition, increments can be planned to manage technical risks. The “increment” is often a core product, i.e., basic requirements are addressed but many supplementary features remain undelivered. The process is repeated following the delivery of each increment, until the complete product is produced.,
7.Discuss the pros and cons of prototyping model and how it differs from the spiral model
Answer:
The pros and cons of prototyping model are: Pro: evaluated by user and used to refine requirements; Con: the first system built is barely usable; unrealistic expectations from the customer; the performance issue。
The spiral model combines the iterative nature of prototyping with the systematic control found in the linear sequential model
8.Describe the phases of the prototyping model for software development?
Answer (Section 3.3):
Requirements are gathered by having the customer and developer meet and identify whatever objectives and requirements they can. Quick design follows, focusing on representation of the software that will be visible to the customer. A prototype is constructed by the developer and evaluated by the customer and used to refine the requirements. Iteration occurs and the prototype is tuned to satisfy the customer's needs.
9. Describe the 5 phases of the Unified Process model for software engineering?
Answer: (Section 3.7):
Inception phase (customer communication, planning, use-case creation)
Elaboration phase (creation of analysis and design models)
Construction phase (translates design model into software components)
Transition phase (software transferred from developer to end user for acceptance testing)
Production (on-going monitoring and support of software during active use)
10. Describe the differences between software construction and software deployment.
.
Answer (Section 2.2):。