The document contains questions about software processes, project management, requirements, and design from course chapters 4-6. Key points:
- Evolutionary development can be difficult to maintain due to abstract initial specifications and overlapping development/validation.
- The spiral model accommodates waterfall and prototyping by having well-defined stages that iterate based on customer feedback.
- The Rational Unified Process uses static and dynamic views to understand phases without tying them to a specific workflow.
- Components of a design method are requirements analysis, system/software design, implementation/testing, integration/testing, and operation/maintenance.
SWEN 4432 - Assignment 2 - Software Process Models
1. SWEN 4432 – Assignment 2 – Name
Put your answer to each of the questions below immediately after the question.
Chapter 4:
1. Software Processes.
1. Explain why programs that are developed using evolutionary development are likely
to be difficult to maintain?
The specifications of evolutionary development projects are often abstract, and as
the project continues, the development and validation portions of software
engineering overlap one another. This usually results in the systems being poorly
constructed due to a good initial specification, and on large projects make it more
difficult to integrate new systems into the evolutionary design. Lastly, the
documentation for such projects is often lacking, as the designs are constantly
rebuilt to the customer’s specifications.
2. Explain how both the waterfall and the prototyping model of the software process
can be accommodated in the spiral process model?
The spiral model is much like the waterfall model, in that there are well defined
stages, but different in that once an initial sequence is complete, the process starts
over, correcting problems and expanding ideas to better suit the customer’s needs.
Also, as an iteration of the spiral may be short, a prototype can be produced that
the customer can see and work with, to help guide the engineers to more accurately
construct what they seek.
3. What are the advantages of providing static and dynamic views of the software
process as in the Rational Unified Process?
The Rational Unified Process recognizes that a single process model presents only a
single view, so the RUP incorporated three perspectives, two of them being
dynamic, that describes the phases of the model as time progresses, and static, that
describes the activities that are enacted. The strength in using both is that phases of
the development process are not tied to any one specific workflow, so the entire
process can be understood.
1
2. 4. What are the five components of a design method?
Requirements Analysis & Definition
System & Software Design
Implementation & Unit Testing
Integration & System Testing
Operation & Maintenance
i. Take any method you know and describe its components.
The waterfall method follows these five components fairly closely.
In the first step, the system’s goals and various constraints are defined, and
are used to build the system specification.
The second establishes the system architecture, describing all the portions
of the hardware, as well as the software and their relationships.
The third is where the program is actually developed, and each individual
modular component of the program is thoroughly tested.
The fourth involves incorporating the individual modular components of the
program into the system, and the system as a whole is tested and verified to
have satisfied the system specifications and software requirements.
The final component relates to the upkeep of the system, as new problems
are discovered, and new requirements are realized.
ii. Assess the completeness of the method you have chosen.
While very strict and difficult to make corrections with before the final
stage, the waterfall method is a complete method that can work to great
success in the design and development of systems, provided the requirements
of the system are very well understood, and are not apt to change during the
development of the system.
2
3. 5. Design a process model for running system tests and recording their results?
I’m not entirely sure what the objective for the question is, or what kind of system
it’s run on, such as tests on a program, or tests on hardware for a factory or
something, but in either case, first the components to be tested need to be
identified, they need to be put through a control run, the results need to be
compared with results that are to be expected, and the output of those results need
to be recorded for future comparison.
Chapter 5:
2. Project Management.
1. Figure 5.15 sets out a number of activities, durations and dependencies. Draw an
activity chart and a bar chart showing the project schedule?
3
4. 2. Explain why the process of project planning is iterative and why a plan must be
continually reviewed during a software project.
In order to determine that the project is meeting all required time constraints and
goals, and as new input arrives about the project, the project plan has to be
reviewed and revised to accommodate such things. While the original design of the
project plan should be somewhat pessimistic in the achievement of goals,
unavoidable delays often occur and can delay projects in their entirety. In order to
cope with this, project plans must be reviewed to determine what may not actually
require a previous task being complete, or can be developed in conjunction with the
delayed tasks, in order to achieve the overall goals.
3. In addition to the risks shown in figure 5.11 identify six other possible risks tat could
arise in software projects.
Technology – Operating environment updates for Java library components result in
the program no longer functioning properly
People – Stress of looming project deadlines causes a vital employee to crack, and is
on short-term medical leave
Organizational – The economy is terrible and the organization fires two-thirds of
your staff.
Tools – The integrated design environment the programmers are using has a flaw
that develops improper assembly code for a given module
Requirements – The customer simply can not make up his mind about the design of
the GUI, and repeatedly changes irritating minute details like color schemes
Estimation – Module scope is underestimated and testing of individual components
takes far longer than expected.
4
5. 4. Figure 5.5 gives task durations for software project activities. Assume that a serious
unanticipated setback occurs and instead of taking 10 days, task 5 takes 40 days.
i. Revise the activities chart accordingly, highlighting the new critical path.
ii. Draw up new bar charts showing how the project will be reorganized.
5
6. Chapter 6:
3. Software Requirements.
1. Discover the ambiguities or omissions in the following statement of requirements
for part of a ticket issuing system.
An automated ticket issuing system sells rail tickets. Users select their destination
and select a credit card and a personal identification number. The rail ticket is
issued and their credit account charged. When the user presses the start button, a
menu display of potential destinations is activated, along with a message to the user
to select a destination. Once a destination has been selected, users are requested to
input their credit card. Its validity is checked and the user is then requested to input
their personal identifier. When the credit transaction has been validated, the ticket
is issued.
Cases need to be considered for invalid credit transactions, improper cards,
incorrect personal ID numbers, over-the-limit transactions, debit transactions;
details could be given on how the credit information is input, either by swiping a
card, inserting a card, or manually entering the numbers.
2. Rewrite the above description using the structured approach described in this
chapter. Resolve the identified ambiguities in some appropriate way.
Function – Give customer a rail ticket, and charge credit account accordingly
Description – Determine customer’s destination, calculate the charge for the trip,
and charge the customer the appropriate amount. If charge is complete, print the
ticket, otherwise, print no ticket, and report error to customer.
Inputs – Destination, credit card number, personal ID number
Outputs – Tickets, error messages
Action – Ask the customer for their destination, when input, calculate the total, and
prompt for swiping of a credit card, prompt customer for PIN, prompt customer that
the transaction is taking place, if successful print the ticket and return to start state,
if unsuccessful, ask customer to swipe their card again and re-input the PIN. If
unsuccessful again, prompt that the transaction has failed, and return to start state.
Requires – Destination, credit card number, and PIN
Pre-condition – None
Post-condition – None
Side effects – Charge to the customer’s credit account
6
7. 3. Draw a sequence diagram showing the actions performed in the ticket issuing
system. You may make any reasonable assumptions about the system. Pay
particular attention to specifying user errors.
7
8. 4. Using the technique suggested here, where natural language is presented in a
standard way, write plausible user requirements for the following functions:
i. The cash dispensing function in a bank ATM.
The user shall enter their bank card in the slot provided. Following the
appropriate prompts for a cash withdrawal, the user shall enter the requested
amount. If the amount requested is not greater than the amount in the account,
cash shall be dispensed, and the card shall be returned.
ii. The spelling check and correcting function in a word processor.
When the user enters a word, separated by any white space or punctuation,
the spelling of said word shall be checked against an existing database. If the
word is not found, the user shall be notified that the word is incorrect. If the
user so chooses to correct the misspelled word, a list of closely matched words
shall be provided for the user. If the user chooses a word given, it shall be
replaced and the notification of the misspelled word shall be removed.
iii. An unattended petrol (gas) pump system that includes a credit card reader.
The customer swipes the card through the reader and then specifies the
amount of fuel required. The fuel is delivered and the customer’s account
debited.
The user shall be prompted to swipe their credit card, and enter their PIN.
Upon verification of the card, the user shall be prompted to select the octane
level of their fuel, and enter a desired amount requested in dollars. Pumping
shall be unlocked until the fuel-cutoff is engaged, or the predetermined amount
of money worth of has been deployed. In the event of the fuel cutoff engaging,
any remaining money shall be refunded to the user’s credit account.
8
9. 5. Write a set of non-functional requirements for the ticket issuing system, setting out
its expected reliability and its response time?
The ticket system shall respond to user inputs to provide tickets and charge
accounts in a timely manner. The system shall continue to function so long as roll of
ticket paper is in the machine, and a network connection is provided for the
destination database and credit transactions. Upon receipt of the destination from
the user, the database shall be accessed to determine the distance from the unit’s
location, to the desired destination, and calculate the appropriate fee. The unit shall
then prompt the user to input their card information, and the unit shall verify that
the card is a credit card, is valid, and has sufficient credit to be charged. Upon
successful verification, the unit shall print a ticket, and return to its ready state, for
the next transaction to take place. The reliability this system relies on the durability
of the physical user interface, the network connection in the area the system is
placed, the size of the ticket rolls that the unit can accept, and the mechanism for
dispensing the tickets. The estimated time for a complete transaction would be
about thirty seconds, giving twenty for the user interactions, five for validation and
verification of the users account, and five for printing and dispensing the ticket.
9
10. And just as an addition, a depiction of why good software engineering is important:
10