Showing posts with label Software Processes. Show all posts
Showing posts with label Software Processes. Show all posts

Thursday, October 13, 2011

What are the six fundamental best practices in the RUP- Rational Unified Process?

RUP - Rational Unified Process is an example of a modern process model that has been derived from work on the UML and the associated Unified Software Development Process. The six fundamental best practices in the RUP- Rational Unified Process are:

1. Develop software iteratively: Plan increments of the system based on customer priorities and develop the highest-priority system features early in the development process.

2. Manage requirements: Explicitly document the customer’s requirements and keep track of changes to these requirements. Analyze the impact of changes on the system before accepting them.

3. Use component-based architectures: Structure the system architecture into components, as discussed earlier in this chapter.

4. Visually model software: Use graphical UML models to present static and dynamic views of the software.

5. Verify software quality: Ensure that the software meets the organizational quality standards.

6. Control changes to software: Manage changes to the software using a change management system and configuration management procedures and tools.

What are the 4 sectors in each loop in Boehmʼs spiral model?

The 4 sectors in each loop in Boehmʼs spiral model are:
1. Objective setting: Specific objectives for that phase of the project are defined. Constraints on the process and the product are identified and a detailed management plan is drawn up. Project risks are identified. Alternative strategies, depending on these risks, may be planned.

2. Risk assessment and reduction: For each of the identified project risks, a detailed analysis is carried out. Steps are taken to reduce the risk. For example, if there is a risk that the requirements are inappropriate, a prototype system may be developed.

3. Development and validation: After risk evaluation, a development model for the system is chosen. For example, throwaway prototyping may be the best development approach if user interface risks are dominant. If safety risks are the main consideration, development based on formal transformations may be the most appropriate process, and so on. If the main identified risk is sub-system integration, the waterfall model may be the best development model to use.

4. Planning: The project is reviewed and a decision made whether to continue with a further loop of the spiral. If it is decided to continue, plans are drawn up for the next phase of the project.

Why is it increasingly irrelevant to distinguish between software development and evolution?

Softwares continually changes during their lifetime in response to the changing requirements and customer needs. So software evolution does not stop until the end of the lifetime of the software and so as the software development does not stop.

What are the principal requirements engineering activities?

The principal requirements engineering activities are:
(a) Feasibility study
(b) Requirements elicitation and analysis
(c) Requirements specification
(d) Requirements validation

What are the development stages in reuse-based development?

1. Component analysis: Given the requirements specification, a search is made for components to implement that specification. Usually, there is no exact match and the components that may be used only provide some of the functionality required.
2. Requirements modification: During this stage, the requirements are analyzed using information about the components that have been discovered. They are then modified to reflect the available components. Where modifications are impossible, the component analysis activity may be re-entered to search for alternative solutions.
3. System design with reuse: During this phase, the framework of the system is designed or an existing framework is reused. The designers take into account the components that are reused and organize the framework to cater for this. Some new software may have to be designed if reusable components are not available.
4. Development and integration: Software that cannot be externally procured is developed, and the components and COTS systems are integrated to create the new system. System integration, in this model, may be part of the development process rather than a separate activity.

What are the benefits of incremental development, compared to the waterfall model?

Incremental development has a number of advantages:
1. Customers can use the early increments as prototypes and gain experience that informs their requirements for later system increments. Unlike prototypes, these are part of the real system so there is no re-learning when the complete system is available.
2. Customers do not have to wait until the entire system is delivered before they can gain value from it. The first increment satisfies their most critical requirements so they can use the software immediately.
3. The process maintains the benefits of incremental development in that it should be relatively easy to incorporate changes into the system.
4. As the highest-priority services are delivered first and increments then integrated, the most important system services receive the most testing. This means that customers are less likely to encounter software failures in the most important parts of the system.

Why are iterations usually limited when the waterfall model is used?

The waterfall model requires clients to commit to particular set of requirements before design begins and designer to commit to particular design strategies based on those set of requirements formally assigned to the system by the clients. If there is any change happens, they will have to go through the entire rework process again which is costly and takes more time.

List the 3 generic process models that are used in software engineering?

The waterfall model, Evolutionary development and Component-based software engineering.