Ase-Unit 2
Ase-Unit 2
Syllabus
The term software engineering is composed of two words, software and engineering.
Software is more than just a program code. A program is an executable code, which serves
some computational purpose. Software is considered to be a collection of executable
programming code, associated libraries and documentations. Software, when made for a
specific requirement is called software product. Engineering on the other hand, is all about
developing products, using well-defined, scientific principles and methods.
Software engineering principles use two important techniques to reduce problem complexity:
abstraction and decomposition. The principle of abstraction implies that a problem can be
simplified by omitting irrelevant details. The decomposition, a complex problem is divided
into several smaller problems and then the smaller problems are solved one by one.
Defining Software
Software is nothing but a collection of computer programs and related documents that are
intended to provide desired features, functionalities and better performance. Software
products may be:
[2] Custom - That means developed for a single customer according to their specification.
Software Characteristics:
Another issue with software is that there are no spare parts for software. If hardware
component wears out it can be replaced by another component but it is not possible in case of
software. Therefore software maintenance is more difficult than the hardware maintenance.
Most software is custom built rather than being assembled from components While
developing any hardware product firstly the circuit design with desired functioning properties
is created. Then required hardware components such as ICs, capacitors and registers are
assembled according to the design, but this is not done while developing software product.
Most of the software is custom built.
Categories of Software
Software can be applied in a situation for which a predefined set of procedural steps
(algorithm) exists. Based on a complex growth of software it can be classified into following
categories.
Application software It consists of standalone programs that are developed for specific
business need. This software may be supported by database systems.
Engineering/scientific software This software category has a wide range of programs from
astronomy to volcanology, from automative stress analysis to space shuttle orbital dynamics
and from molecular biology to automated manufacturing. This software is based on complex
numeric computations.
Embedded software This category consists of program that can reside within a product or
system. Such software can be used to implement and control features and functions for the
end-user and for the system itself.
Web application software consists of various web pages that can be retrieved by a browser.
The web pages can be developed using programming languages like JAVA, PERL, CGI,
HTML, DHTML.
Artificial intelligence software This kind of software is based on knowledge based expert
systems. Typically, this software is useful in robotics, expert systems, image and voice
recognition, artificial neural networks, theorem proving and game playing.
1. Waterfall Model
2. Incremental Process Model
3. RAD Model
4. Evolutionary Process model
a. Spiral Model
b. Prototyping model
1.3.1 Waterfall Model
The software development starts with requirements gathering phase. Then progresses
through analysis, design, coding, testing and maintenance.
In REQUIREMENT ANALYSIS AND SPECIFICATION phase the basic
requirements of the system must be understood by software engineer, who is also
called Analyst. The information domain, function, behavioural requirements of the
system are understood. All these requirements are then well documented and
discussed further with the customer, for reviewing.
The DESIGN is an intermediate step between requirements analysis and coding. Design
focuses on program attributes such as –
▪ Data structure
▪ Software architecture
▪ Interface representation
▪ Algorithmic details.
The requirements are translated in some easy to represent form using which coding can be
done effectively and efficiently. The design needs to be documented for further use.
TESTING begins when coding is done. While performing testing the major focus is on
logical internals of the software. The testing ensures execution of all the paths, functional
behaviours. The purpose of testing is to uncover errors, fix the bugs and meet the customer
requirements.
MAINTENANCE is the longest life cycle phase. When the system is installed and put in
practical use then error may get introduced, correcting such errors and putting it in use is the
major purpose of maintenance activity. Similarly, enhancing system’s services as new
requirements are discovered is again maintenance of the system.
1) The incremental model can be adopted when there are a smaller number of people
involved in the project.
2) Technical risks can be managed with each increment.
3) For a very small-time span, at least core product can be delivered to the customer.
Prototyping Drawbacks
• Customer may want to hang onto first version, may want a few fixes rather than
rebuild. First version will have compromises
• Developer may make implementation compromises to get prototype working quickly.
Later on developer may become comfortable with compromises and forget why they
are inappropriate
2.1 Requirement Engineering
Requirement: A function, constraint or other property that the system must provide to fill the
needs of the system’s intended user(s)
Engineering: implies that systematic and repeatable techniques should be used
Requirement Engineering means that requirements for a product are defined, managed and
tested systematically
• It is essential that the software engineering team understand the requirements of a
problem before the team tries to solve the problem.
• In some cases, requirements engineering may be abbreviated, but it is never
abandoned.
• RE is software engineering actions that start with communication activity and
continues into the modelling activity.
• RE establishes a solid base for design and construction. Without it, resulting software
has a high probability of not meeting customer needs.
Characteristics of Good Requirement
• Clear and Unambiguous
▪ standard structure
▪ has only one possible interpretation
▪ Not more than one requirement in one sentence
• Correct
▪ A requirement contributes to a real need
• Understandable
▪ A reader can easily understand the meaning of the requirement
• Verifiable
▪ A requirement can be tested
• Complete
• Consistent
• Traceable
2.2 Requirement Engineering Tasks
▪ Inception —Establish a basic understanding of the problem and the nature of the
solution.
▪ Elicitation —Draw out the requirements from stakeholders.
▪ Elaboration (Highly structured)—Create an analysis model that represents
information, functional, and behavioral aspects of the requirements.
▪ Negotiation—Agree on a deliverable system that is realistic for developers and
customers.
▪ Specification—Describe the requirements formally or informally.
▪ Validation —Review the requirement specification for errors, ambiguities, omissions,
and conflicts.
▪ Requirements management —Manage changing requirements.
Some of the problems that arise during the requirements engineering process are a result of
failing to make a clear separation between these different levels of description. The
requirements are termed as User level and System Level Requirements.
• User requirements are statements, in a natural language plus diagrams, of what
services the system is expected to provide to system users and the constraints under
which it must operate.
• System requirements are more detailed descriptions of the software system’s
functions, services, and operational constraints. The system requirements document
(sometimes called a functional specification) should define exactly what is to be
implemented. It may be part of the contract between the system buyer and the
software developers.
Case Study:
Scenario:
Healthcare patient information systems is a software product is about to be developed for the
XYZ organization with the name XYZHcare
1.1 On the last working day of each month, a summary of the drugs
prescribed, their cost and the prescribing clinics shall be
generated.
1.2 The system shall generate the report for printing after 17.30 on
the last working day of the month.
System 1.3 A report shall be created for each clinic and shall list the
Requirement individual drug names, the total number of prescriptions, the
number of doses prescribed and the total cost of the prescribed
drugs.
1.4 If drugs are available in different dose units (e.g. 10mg, 20mg,
etc.) separate reports shall be created for each dose unit.
1.5 Access to drug cost reports shall be restricted to authorized users
as listed on a management access control list.
Product requirements These requirements specify or constrain the runtime behavior of the
software. Examples include performance requirements for how fast the system must execute
and how much memory it requires; reliability requirements that set out the acceptable failure
rate; security requirements; and usability requirements.
The XYZHCare system shall be available to all clinics during normal working hours
(Mon–Fri, 08:30–17:30). Downtime within normal working hours shall not exceed 5
seconds in any one day.
Organizational requirements These requirements are broad system requirements derived
from policies and procedures in the customer’s and developer’s organizations. Examples
include operational process requirements that define how the system will be used;
development process requirements that specify the programming language
Users of the XYZHCare system shall identify themselves using their health authority
identity card.
External requirements This broad heading covers all requirements that are derived from
factors external to the system and its development process.
The system shall implement patient privacy provisions as set out in HStan-03-2006-priv.
Software Requirement Document
If specification incomplete, inconsistent, or misleading specifications have
experienced the frustration and confusion that invariably results. The specification principles
are as follows:
1. Separate functionality from implementation.
2. Develop a model of the desired behavior of a system.
3. Establish the context in which software operates by specifying the manner.
4. Define the environment in which the system operates and indicate how.
5. Create a cognitive model rather than a design or implementation model. The cognitive
model describes a system as perceived by its user community.
6. The specifications must be tolerant of incompleteness and augmentable.
7. Establish the content and structure of a specification in a way that will enable it to be
amenable to change.
SRS Document:
• It contains a complete information description, a detailed functional description, a
representation of system behavior, an indication of performance requirements and
design constraints, appropriate validation criteria, and other information pertinent to
requirements.
Format of SRS:
Introduction of the software requirements specification states the goals and objectives of the
software, describing it in the context of the computer-based system.
Information content, flow, and structure are documented. Hardware, software, and human
interfaces are described for external system elements and internal software functions.
Functional Description A processing narrative is provided for each function, design
constraints are stated and justified & performance characteristics are stated
Behavioral Description operation of the software as a consequence of external events and
internally generated control characteristics.
Validation Criteria is probably the most important and, ironically, the most often neglected
section of the Software Requirements Specification (SRS). Testing or validating each user-
scenario.
Finally, the specification includes a Bibliography and Appendix. The bibliography contains
references to all documents that relate to the software. The appendix contains information
that supplements the specifications
Case Study – Hospital Patient Information System
This is a SRS document for Hospital Patient Information Management System. Where the
hospital department people will store the info of the patient who has admitted and would
retrieve the info whenever required.
TABLE OF CONTENTS
1. INTRODUCTION
1.1. Purpose
1.2 Scope
1.3. Definitions, Acronyms, and Abbreviations
1.4. References
1.5 Overview
2. GENERAL DESCRIPTION
2.1 Product Perspective
2.2 Product Functions
2.3 User Characteristics
2.4 General Constraints
2.5 Assumptions and Dependencies
3. SPECIFIC REQUIREMENTS
3.1 Functional Requirements
3.2 Design Constraints
3.3 Non-Functional Requirements
3.3.1 Security
3.3.2 Performance Requirements
3.3.3 Maintainability
3.3.4 Reliability
4.CONCLUSION
1. Introduction
1.1 Purpose
The purpose of this document is to describe the requirements for the Hospital Patient Info
Management System (HPIMS). The intended audience includes all stakeholders in the
potential system. These include, but are not necessarily limited to, the following:
Administrative Staff, patients and developers.
Developers should consult this document and its revisions as the only source of requirements
for the project. They should not consider any requirements statements, written or verbal as
valid until they appear in this document or its revision.
1.2 Scope
The proposed software product is the Hospital Patient Info Management System (HPIMS).
The system will be used to get the information from the patients and then storing that data for
future usage. The current system in use is a paper-based system. It is too slow and cannot
provide updated lists of patients within a reasonable timeframe. The intentions of the system
are to reduce over-time pay and increase the number of patients that can be treated accurately.
Requirements statements in this document are both functional and non-functional.
1.3 - Definitions, Acronyms, and Abbreviations
This Software Requirements Specification (SRS) is the requirements work product that
formally specifies Hospital Patient Info Management System (HPIMS). It includes the results
of both business analysis and systems analysis efforts. Various techniques were used to elicit
the requirements and we have identified your needs, analyzed and refined them. The
objective of this document therefore is to formally describe the system’s high level
requirements including functional requirements, non-functional requirements and business
rules and constraints. The detail structure of this document is organized as follows:
Section 2 of this document provides an overview of the business domain that the proposed
Hospital Patient Info Management System (HPIMS) will support. These include a general
description of the product, user characteristics, general constraints, and any assumptions for
this system. This model demonstrates the development team's understanding of the business
domain and serves to maximize the team's ability to build a system that truly does support the
business.
Section 3 presents the detail requirements, which comprise the domain model.
2. General Description
2.1 Product Perspective
This Hospital Patient Info Management System is a self-contained system that manages
activities of the hospital as Patient Info. Various stakeholders are involved in the hospital
patient info system.
2.2 Product Functions
The system functions can be described as follows:
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 ha admitted in the hospital
The system will be used in the hospital. The administrators,front-desk staff will be the main
users. Given the condition that not all the users are computer-literate. Some users may have to
be trained on using the system. The system is also designed to be user-friendly. It uses a
Graphical User Interface (GUI).
Front-desk staff:
They all have general reception and secretarial duties. Every staff has some basic computer
training. They are responsible for patient’s check-in or notification of appropriate people .
Administrators:
They all have post-secondary education relating to general business administration practices.
Every administrator has basic computer training. They are responsible for all of the
scheduling and updating day/night employee shifts.
Check Out
Report Generation
SRS005 Patient information
The HPIMS shall generate reports on patients about the following information: patient’s
PHN, patient’s name, ward name, bed number and the doctor’s name which was assigned.
SRS006 Bed Aavailability
The HPIMS shall generate reports on bed availability about the following information: ward
name, bed number, occupied/unoccupied.
Database
SRS007 Patient Mandatory Information
Each patient shall have the following mandatory information: first name, last name, phone
number, personal health number, address, postal code, city, country, patient identification
number.
SRS008 Update Patient Information
The HPIMS shall allow the user to update any of the patient’s information as described in
SRS007.
3.3.3 Maintainability
SRS021 Back Up
The system shall provide the capability to back-up the Data
SRS022 Errors
The system shall keep a log of all the errors.
3.3.4 Reliability
SRS023 Availability
The system shall be available all the time
4.CONCLUSION
This SRS document is used to give details regarding Hospital Patient Info Management
System. In this all the functional and non-functional requirements are specified inorder to get
a clear cut idea to develop a project.