Vous êtes sur la page 1sur 9

WIA2002 Software Modelling

Semester 1, 2019/20
Tutorial 3 (Ans)

1. What is software process model?

Software process model is an abstract representation of a process and also
presents a description of a process from some particular perspective.

2. What are the four basic software processes in SDLC models?
Specification, design and implementation, validation, and execution.

3. 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 app to give an alert notification on haze condition based on the user

current location
 An app to purchase used textbooks
 A mobile story books for children
 A system to control anti-lock braking in a car
 A virtual reality system to support software maintenance
 A university accounting system that replaces an existing system
 An interactive travel planning system that helps users plan journeys
 with the lowest environmental impact

Sample Answers:
 An app to give an alert notification on haze condition based on the
user current location

The app has complex functionalities but which must be stable and
reliable. An incremental development approach is the most
appropriate as the system requirements will change as real user
experience with the system is gained.

 An app to purchase used textbooks

The requirements of the app is well known however needs detail

explanation from the users to ensure its usability. Waterfall model is
appropriately to use. If time is the constraint, agile methodology will be
better to apply.
 A story books app for children

This is a system whose requirements are fairly well-known. The app

needs a system to manage the content and users who registered the
app. Therefore, a reuse-based approach is likely to be appropriate for

 Anti-lock braking system

This is a safety-critical system so requires a lot of up-front analysis

before implementation. It certainly needs a plan-driven approach to
development with the requirements carefully analysed. A waterfall
model is therefore the most appropriate approach to use, perhaps
with formal transformations between the different development

 Virtual reality system

This is a system where the requirements will change and there will be
an extensive user interface components. Incremental development
with, perhaps, some UI prototyping is the most appropriate model. An
agile process may be used.
 University accounting system

This is a system whose requirements are fairly well-known and which

will be used in an environment in conjunction with lots of other systems
such as a research grant management system. Therefore, a reuse-based
approach is likely to be appropriate for this.

 Interactive travel planning system

System with a complex user interface but which must be stable and
reliable. An incremental development approach is the most
appropriate as the system requirements will change as real user
experience with the system is gained.
4. Explain why incremental development is the most effective approach for
developing business software systems. Why is this model less appropriate for
real-time systems engineering?

Sample Answer:
Incremental development has three important benefits, compared to the waterfall

 The cost of accommodating changing customer requirements is

reduced. The amount of analysis and documentation that has to be redone is
much less than is required with the waterfall model.

 It is easier to get customer feedback on the development work that has

been done. Customers can comment on demonstrations of the software and
see how much has been implemented. Customers find it difficult to judge
progress from software design documents.

 More rapid delivery and deployment of useful software to the customer

is possible, even if all of the functionality has not been included.
Customers are able to use and gain value from the software earlier than is
possible with a waterfall process.

The problems of incremental development become particularly acute for large,

complex, long-lifetime systems, where different teams develop different parts of
the system. Large systems need a stable framework or architecture and the
responsibilities of the different teams working on parts of the system need to be
clearly defined with respect to that architecture. This has to be planned in advance
rather than developed incrementally.
5. Consider the reuse-based process model shown below.

Explain why it is essential to have two separate requirements engineering

activities in the process.

Sample Answer:
In a reuse based process, you need two requirements engineering activities because
it is essential to adapt the system requirements according to the capabilities of the
system/components to be reused. These activities are:

 An initial activity where you understand the function of the system and set
out broad requirements for what the system should do. These should be
expressed in sufficient detail that you can use them as a basis for deciding of
a system/component satisfies some of the requirements and so can be reused.

 Once systems/components have been selected, you need a more detailed

requirements engineering activity to check that the features of the reused
software meet the business needs and to identify changes and additions that
are required.

6. What are the advantages of providing static and dynamic views of the software
process as in the Rational Unified Process?

Sample Answer:
An approach to process modeling which is simply based on static activities, such
as requirements, implementation, etc. forces these activities to be set out in a
sequence which may not reflect the actual way that these are enacted in any one
organization. In most cases, the static activities are actually interleaved so a
sequential process model does not accurately describe the process used. By
separating these from the dynamic perspective i.e. the phases of development,
you can then discuss how each of these static activities may be used at each phase
of the process. Furthermore, some of the activities that are required during some
of the system phases are in addition to the central static activities. These vary
from one organization to another and it is not appropriate to impose a particular
process in the model.
7. Historically, the introduction of technology has caused profound changes in
the labor market and, temporarily at least, displaced people from jobs. Discuss
whether the introduction of extensive process automation is likely to have the
same consequences for software engineers. If you don’t think it will, explain
why not. If you think that it will reduce job opportunities, is it ethical for the
engineers affected to passively or actively resist the introduction of this

*Open discussion with students*

Due to the introduction of extensive process automation, they have the potential
to reduce the human error in creation of code and made it meet the precise
syntax and other constrains. It also has the potential to produce similar or better
software than that produced conventionally by relatively scarce skills software
development talent and of course will reduce the cost.

Automation will lead to a huge use of standardized components, and thus

increasing software reliability and lessen the cost for future software maintenance.
Software e engineers will be recognized because of the production of the less-
interesting, reduce more mechanical task software that engineers have to perform
and thus can lead them to be more creative in the task they was assigned. Not to be
forgotten, automation also assists software to address the primary issues in the
software development process such as complexity, reliability and productivity.

This effect is different when mention about labor market. Since the automation
will lessen the need of human sensory and mental requirements of work. In a wide
range industries beyond manufacturing like telephone operators, the
electrocardiography or radiography used in medical process and Automated teller
machine have reduced the need of human intervention

The number of jobs created by automation in general will likely outnumber the
jobs displaced. However, because workers of different countries, sectors, and income-
levels will be affected differently, we still need governments to proactively enact
prescriptive labor policies to facilitate smooth workforce transitions.