You are on page 1of 12

SWEN 4432 Assignment 2 Name Put your answer to each of the questions below immediately after the question.

n. 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 customers 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 customers 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.

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 systems 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.

5. Design a process model for running system tests and recording their results? Im not entirely sure what the objective for the question is, or what kind of system its 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?
T1 10 Days Start T3 10 Days T7 20 Days T8 35 Days T6 15 Days T14 10 Days T2 15 Days

T4 20 Days

T5 10 Days

T13 35 Days

T9 15 Days

T10 5 Days

T11 10 Days

T12 20 Days T15 20 Days

T16 10 Days

End

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 4

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. 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.
M1 T3 15 Days M4 T1 8 Days T6 5 Days T9 15 Days

M6

Start T2 15 Days

M3 T7 20 Days M7 M2 T5 40 Days T10 15 Days M5 T8 25 Days

T11 7 Days

M8

T12 10 Days

T4 10 Days

Finish

ii. Draw up new bar charts showing how the project will be reorganized.

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. 7

Function Give customer a rail ticket, and charge credit account accordingly Description Determine customers 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 customers credit account

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.
Ticket System

User

Database

Destination Request Destination Find Destination Calculate Total

Credit Request Credit Card # PIN Request PIN Validate Card

<<exception>> Invalid Card/Entry <<exception>> Insufficient Credit

Transacting

Charge Card

Print Ticket

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 customers 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 users credit account.

10

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 units 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.

11

And just as an addition, a depiction of why good software engineering is important:

12

You might also like