Tutorial 1: Date: 19/09/2012 Instructor: Hanif Ullah
Choose a Software application for your group and define its functionalities? Example Hospital Patient Information Management System Purpose The purpose of this document is to describe the requirements for the Hospital Patient Info Management System (HPIMS).
Scope The system will be used to get the information from the patients and then storing that data for future usage. Product Functions Registration: When a patient is admitted, the front- desk staff checks to see if the patient is already registered with the hospital. If he is, his/her Personal Health Number (PHN) is entered into the computer. Otherwise a new Personal Health Number is given to this patient. The patient’s information such as date of birth, address and telephone number is also entered into computer system.
Patient check out. If a patient checks out, the administrative staff shall delete his PHN from the system and the just evacuated bed is included in available-beds list. Report Generation: The system generates reports on the following information: List of detailed information regarding the patient who has admitted in the hospital
Correctness: The software which we are making should meet all the specifications stated by the customer Usability/Learnability: The amount of efforts or time required to learn how to use the software should be less. This makes the software user-friendly even for IT-illiterate people Integrity : Just like medicines have side-effects, in the same way a software may have a side-effect i.e. it may affect the working of another application. But a quality software should not have side effects Reliability : The software product should not have any defects. Not only this, it shouldn't fail while execution
Efficiency : This characteristic relates to the way software uses the available resources. The software should make effective use of the storage space and execute command as per desired timing requirements Security : With the increase in security threats nowadays, this factor is gaining importance. The software shouldn't have ill effects on data / hardware. Proper measures should be taken to keep data secure from external threats. Safety : The software should not be hazardous to the environment/life
Fault : An incorrect step, process, or data definition in a computer program which causes the program to perform in an unintended or unanticipated manner. A fault is an error in the source code (text) of a program Failure: The inability of a system or component to perform its required functions within specified performance requirements. Error : A discrepancy between a computed, observed, or measured value or condition and the true, specified, or theoretically correct value or condition.
Faulty requirements definition Client–developer communication failures Deliberate deviations from software requirements Logical design errors Coding errors Non-compliance with documentation and coding instructions Shortcomings of the testing process Procedure errors Documentation errors
The system shall validate and accept credit cards and cashier’s checks. High priority. The system shall process all mouse clicks very fast to ensure user’s do not have to wait. The user must have Adobe Acrobat installed
Misunderstanding of the client’s requirement document Miscommunications during client-developer meetings Misinterpretation of the client’s requirement changes
The developer reuses software modules from earlier projects without sufficient analysis of the changes needed to fulfill the requirements Due to time/money pressures, the developer leaves parts of the required functions in an attempt to manage the pressure The developer makes unapproved improvements to the software without the client’s knowledge
Defining the software requirements by means of erroneous algorithms Process definitions contain sequencing errors Erroneous definition of boundary conditions Omission of definitions concerning special cases (lack of error handling and special state handling)
Misunderstanding of the design documents, linguistic errors, development tool errors, and so forth
Non-compliance with coding/documentation standards makes it harder to understand, review, test and maintain the software
Greater number of errors are left undetected and uncorrected Incomplete test plans will leave many of the functions and states untested Failures to report and promptly correct found errors and faults Incomplete test due to time pressures
Misunderstanding in process implementation and failure of communication with potential users on the details of planned solution and the steps required to perform the application as in SW systems processing is conducted in several steps
Omission of software functions Errors in explanations and instructions List of non-existing SW functions that were planned in early development stage but later dropped and the inclusion of SW functions which were dropped in the early stages have been included in the later stages Incorrect phrasing, negligence, incorrect versions