Professional Documents
Culture Documents
☰ Menu
2.1. Giving reasons for your answer based on the type of system being developed,
suggest the most appropriate generic software process model that might be used
as a basis for managing the development of the following systems:
An interactive travel planning system that helps users plan journeys with the lowest
environmental impact
incremental
2.2. Explain why incremental development is the most effective approach for
developing business software systems.
First, incremental development allow early access to the most valuable functionality. Early access
not only gains value early, but also gives the most important component of the system the most
testing.
Second, incremental development can handle requirement changes well, which is necessary for
business software systems whose requirements have to change when the business changes.
Incremental development reduces rework on analysis and documentation when change happens.
Advertisements
REPORT THIS AD
Third, incremental development don’t need a complete specification in advance. This is important
to business software because the detailed requirement may not be spotted until part of the
functionalities are implemented.
This is because the computing time may suffer without a complete plan for the whole system.
Real-time system is time-critical, therefore can not start without a complete plan.
2.3. Consider the reuse-based process model shown in Figure 2.3. Explain why it
is essential to have two separate requirements engineering activities in the
process.
Requirements specification is about determine the user and system requirements of the software
system. Requirements modification is to modify the requirement specification based on the
reusable components. The modification is necessary because we usually don’t have full control
over the reusable components, therefore some work around is necessary.
This is because requirement engineering is about establishing an agreement between the customer
and the developer. The customer knows about business language while the developer need highly
detailed instruction to start work. Therefore, both a high-level specification as user requirements
and a detailed technical specification as system requirement are necessary.
2.5. Describe the main activities in the software design process and the outputs of
these activities. Using a diagram, show possible relationships between the
outputs of these activities.
The requirements may change due to the change of the market/environment. Sometimes a better
solution to the old requirements is also necessary.
Develop software interactively can help predict changes, because the experts can have better
insight about the possible changes on the business domain in the future.
Use component-based architecture can restrict the impact of many changes within some
components but not the entire system.
Recording of requirement rationale so that the reasons behind the requirements is known. This
helps with future change.
Requirement traceability that shows the dependencies between the requirements.
Design modeling helps the structure of the software remain clear even after changes.
Code refactoring that improves code quality and organization and so makes it robust enough
to take few more changes.
2.7. Explain why systems developed as prototypes should not normally be used
as production systems.
First, prototypes usually can’t afford proper documentation, which makes it hard to maintain in
the future.
Second, codes of prototypes usually don’t meet the organizational quality standard.
Third, ignorance of some non-functional requirements like user management, security, memory
management, and performance may not be fulfilled.
2.8. Explain why Boehm’s spiral model is an adaptable model that can support
both change avoidance and change tolerance activities. In practice, this model
has not been widely used. Suggest why this might be the case.
This is because of the explicit risk management of Boehm’s spiral model. By spotting and handling
the risks between planing and developing, many changes can be avoided in advance and plans for
future changes can be made to improve change tolerance.
Spiral model can be over expensive for most cases, that maybe the reason why it is not widely
used. The other reason is that just like incremental development, lacking a complete specification
before the end of the process makes it hard to work with management systems.
2.9. What are the advantages of providing static and dynamic views of the
software process as in the Rational Unified Process?
In reality, the software process contains both static and dynamic patterns. Requirements,
development, testing are common activities, while iterations of these static activities can be
different from phase to phase and from project to project.
Advertisements
REPORT THIS AD