Software File
Software File
Software File
Aim: To identify the role of software in today’s world access a few significant domains
related to day to day life.
Characteristics of Software:
Software characteristics are classified into six major components.
• Functionality: Refers to the degree of performance of the software against its intended
purpose.
• Reliability: Refers to the ability of the software to provide desired functionality under the
given conditions.
• Usability: Refers to the extent to which the software can be used with ease.
• Efficiency: Refers to the ability of the software to use system resources in the most
effective and efficient manner.
1
8516107
By and large, business software is likely to be developed to meet the needs of a specific
business, and therefore is not easily transferable to a different business environment, unless
its nature and operation is identical. Due to the unique requirements of each business, off-the-
shelf software is unlikely to completely address a company's needs. However, where an on-
the-shelf solution is necessary, due to time or monetary considerations, some level of
customization is likely to be required. Exceptions do exist, depending on the business in
question, and thorough research is always required before committing to bespoke or off-the-
shelf solutions.
Some business applications are interactive, i.e., they have a graphical user interface or user
interface and users can query/modify/input data and view results instantaneously. They can
also run reports instantaneously. Some business applications run in batch mode: they are set
2
8516107
up to run based on a predetermined event/time and a business user does not need to initiate
them or monitor them.
Some business applications are built in-house and some are bought from vendors (off the
shelf software products). These business applications are installed on either desktops or big
servers. Prior to the introduction of COBOL (a universal compiler) in 1965, businesses
developed their own unique machine language. RCA's language consisted of a 12-position
instruction. For example, to read a record into memory, the first two digits would be the
instruction (action) code. The next four positions of the instruction (an 'A' address) would be
the exact leftmost memory location where you want the readable character to be placed. Four
positions (a 'B' address) of the instruction would note the very rightmost memory location
where you want the last character of the record to be located. A two digit 'B' address also
allows a modification of any instruction. Instruction codes and memory designations
excluded the use of 8's or 9's. The first RCA business application was implemented in 1962
on a 4k RCA 301. The RCA 301, mid frame 501, and large frame 601 began their marketing
in early 1960.
Many kinds of users are found within the business environment, and can be categorized by
using a small, medium and large matrix:
2. In Homes:-In homes, PCs have become the most valuable addition. It brings to the fore
convenience for all members of the family. Since it can access the Internet, chores that are
cumbersome and takes hours or even days to complete are now done with just a few touch of
the keyboard. If moms do not feel like going to the mall for groceries, orders can be made
online. Or perhaps too lazy to go downtown for utilities, payment can be arranged for
convenience. Also visits to the relatives, friends and acquaintances that are too demanding
are now made easier with the social media (Facebook, Twitter). That is aside from the tons of
records that one can easily store in the machine.
3
8516107
Health Management Information Systems (HMIS) are software applications that can be used
to improve the satisfaction of patients with health services by tracking different dimensions
of the service flow that a patient will experience. The quality of the service provided could be
checked by comparing perceptions of service delivered with your facility’s expected service
standards. The main goal of a HMIS is to record information on health events and check the
service quality at different levels of healthcare. There are many benefits of tracking the
service experience of patients, however, some of the expected gains by utilizing HMIS
application, include more attuned patient sensitivity, enhanced community awareness, and
improve patient communication.
6. In Artificial Intelligence:- There has been a recent surge in interest in the application
of Artificial Intelligence (AI) techniques to Software Engineering (SE) problems. The work is
typified by recent advances in Search Based Software Engineering, but also by long
established work in Probabilistic reasoning and machine learning for Software Engineering.
This paper explores some of the relationships between these strands of closely related work,
arguing that they have much in common and sets out some future challenges in the area of AI
for SE.
4
8516107
The rapid growth in interest in topics such as Search Based Software Engineering is a
testimony to the appetite the Software Engineering community clearly has for AI techniques.
This is not merely a capricious fashion. It is grounded in the way in which Software
Engineering is, itself, becoming less of a craft and more of an engineering discipline. For
several decades we have been moving away from small, localised, insulated, bespoke, well-
defined construction towards large-scale development and maintenance of connected,
intelligent, complex, interactive systems. The engineering character of the problems we face
as software engineers, such as noisy, partially- and ill- defined application domains with
multiple competing, conflicting and changing objectives, is dragging us from an unrealistic
utopia of perfect construction to the more realistic, but imperfect world of engineering
optimisation. This change in the nature of software forces us to change our development and
deployment techniques. It should come as no surprise that AI techniques are proving to be
well-suited to this changing world, since their inspiration comes from human intelligence; the
archetype of a noisy, ill-defined, competing, conflicting, connected, complex, interactive
system.
7. In education:-
Courseware:-Courseware is a term that combines the words 'course' with 'software'.
Its meaning originally was used to describe additional educational material intended
as kits for teachers or trainers or as tutorials for students, usually packaged for use
with a computer. The term's meaning and usage has expanded and can refer to the
entire course and any additional material when used in reference an online or
'computer formatted' classroom. Many companies are using the term to describe the
entire "package" consisting of one 'class' or 'course' bundled together with the various
lessons, tests, and other material needed. The courseware itself can be in different
formats, some are only available online such as html pages, while others can be
downloaded in pdf files or other types of document files. Many forms of educational
technology are now being blended with the term courseware. Most leading
educational companies solicit or include courseware with their training packages.
Classroom aid:-Interactive whiteboard:-Some educational software is designed for
use in school classrooms. Typically such software may be projected onto a large
whiteboard at the front of the class and/or run simultaneously on a network of desktop
computers in a classroom. This type of software is often called classroom
management software. While teachers often choose to use educational software from
other categories in their IT suites (e.g. reference works, children’s software), a whole
category of educational software has grown up specifically intended to assist
classroom teaching. Branding has been less strong in this category than in those
oriented towards home users. Software titles are often very specialized and produced
by various manufacturers, including many established educational book publishers.
Assessment software:-With the impact of environmental damage and the need for
institutions to become "paperless", more educational institutions are seeking
alternative ways of assessment and testing, which has always traditionally been
known to use up vast amount of paper. Assessmentsoftware refers to software with a
5
8516107
1. The airlines are planning on making mobile apps the go-to technology for self-service
or customer service. Booking and shopping are set to be transformed with “smart”
retail outlets, thereby opening several lifestyle possibilities.
2. . Once again, this is aimed to save time and enhance the customer experience of flying
with an airline.
3. Airlines will also be further leveraging automated analytics. At present, this concept is
widely used for the automated pricing feature for airline seats. It still remains more of
an ad-hoc concept at present, but that is set to soon change. Going forward, automated
analytics will become firmly embedded in the software network that is part of the
airlines industry.
4. Technology is making aircraft smarter, and the concept of connected aircraft is
looking to be implemented. A connected aircraft helps monitor and determine the
health of critical avionic systems.
5. The passenger journey stage is said to benefit most from IoT technologies – 42% of
airlines say it is the top priority and 56% say it is in their top three. A complete
automation of the check-in process ensures that passengers simply receive a ready-to-
print boarding pass via email.
6. The airline industry is beginning to view cyber security much more as a business
related risk. Hence, there are plans on adopting other initiatives around cyber security
over the consecutive few years, such as software development, incident response, and
intelligence and analytics.
7. Airlines are looking to further utilize the following components (among others) as
part of its core technology strategy:
6
8516107
Program No. 2
Aim: - To identify the problem related to software crisis for a given scenario.
Software Crisis:
It is a term used in the early days of computing science for the difficulty of writing useful and
efficient computer programs in the required time. The software crisis was due to the rapid
increases in computer power and the complexity of the problems that could not be tackled.
With the increase in the complexity of the software, many software problems arose because
existing methods were insufficient.
The term "software crisis" was coined by some attendees at the first NATO Software
Engineering Conference in 1968 at Garmisch, Germany. Edsger Dijkstra's 1972 ACM Turing
Award Lecture makes reference to this same problem.
The major cause of the software crisis is that the machines have become several orders of
magnitude more powerful! To put it quite bluntly: as long as there were no machines,
programming was no problem at all; when we had a few weak computers, programming
became a mild problem, and now we have gigantic computers, programming has become an
equally gigantic problem.
7
8516107
31 % of projects cancelled.
52.7% cost an average of 189% over budget.
84% are late or over budget (91% for large companies.)
The average system is delivered without 58% of proposed functionalities.
$81 billion in 1995 for cancelled projects.
$51 billion in 1995 for over-budget projects Only 16.2% of software projects are
completed on time and on-budget.
In larger companies, a meagre 9% of technology projects come in on-time and on
budget. In addition, about one third of all projects will be cancelled before they ever
get completed.
Further results indicate 53% of projects will cost an average of 189% of their original
estimates. In financial terms this analysis revealed that over $100 billion in
cancellations and $60 billion in budget over runs occur in the Software Sector
annually.
Solution:
Over the last twenty years many different paradigms have been created in attempt to make
software development more predictable and controllable. While there is no single solution to
the crisis, much has been learned that can directly benefit today's software projects. One of
the possible solutions to the software crisis is the study of software engineering. It is believed
that the only satisfactory solution to the present software crisis can possibly come from a
spread of software engineering practices among the engineers, coupled with further
advancements in the software engineering discipline itself. Software engineering is concerned
with all aspects of software production from the early stages of system specification through
to maintaining the system after it has gone into use. As a solution to this software crisis, we
8
8516107
must apply a disciplinary artistry; using tools that help us manage this complexity. The
skilled systems engineer, can through the use of these techniques and by the application of
systems engineering methods and project management skills, reduce the demands placed on
software engineers, hence reducing the software engineering effort and also reducing the total
development cost. But still, there is no single approach which will prevent all the
consequences of software crisis in all cases.
While there is no single solution to the crisis, much has been learned that can directly benefit
today's software projects. It is our human inability to deal with complexity that lies at the root
of the software crisis. It has been noted frequently that we are experiencing a software crisis,
characterized by our inability to produce correct, reliable software within budget and on time.
No doubt, many of our failures are caused by the inherent complexity of the software
development process, for which there often is no analytical description. Through the use of
computer-aided symbolic specification techniques and simulation, and with an understanding
of the software development process, the skilled systems engineer can contribute to the
resolution of the software crisis.
The skilled systems engineer, can through the use of these techniques and by the application
of systems engineering methods and project management skills, reduce the demands placed
on software engineers, hence reducing the software engineering effort and also reducing the
total development cost. In software engineering, the possible solution to software metrics is
the use of proper software metrics and the proper utilization of these metrics. For the
implementation of this solution to the problem of software crisis some pre-requisites are
there.
They are:
1. Knowledge of basic statistics and experimental design.
2. Basic understanding of commonly used software life cycle models, at least to the level
covered in an introductory senior or graduate-level software engineering course.
3. Experience working as a team member on a software development project.
9
8516107
Requirement:
In the software development process, requirement phase is the first software engineering
activity. This phase is a user-dominated phase and translates the ideas or views into a
requirements document. Requirement is a condition or capability possessed by the software
or system component in order to solve a real-world problem. The problems can be to
automate a part of a system, to correct shortcomings of an existing system, to control a
device, and so on.
Requirements describe how a system should act, appear or perform. For this, when
users request for software, they provide an approximation of what the new system should be
capable of doing. Requirements differ from one user to another and from one business
process to another.
Types of Requirement:
1.Functional Requirement
2.Non-functional Requirement
1.Functional Requirement:
These are the requirements that the end user specifically demands as basic facilities that the
system should offer. All these functionalities need to be necessarily incorporated into the
system as a part of the contract. These are represented or stated in the form of input to be
given to the system, the operation performed and the output expected. They are basically the
requirements stated by the user which one can see directly in the final product, unlike the
non-functional requirements.
A functional requirement document defines the functionality of a system or one of its
subsystems. It also depends upon the type of software, expected users and the type of system
where the software is used
For example, in a hospital management system, a doctor should be able to retrieve the
information of his patients. Each high-level functional requirement may involve several
interactions or dialogues between the system and the outside world. In order to accurately
describe the functional requirements, all scenarios must be enumerated.
There are many ways of expressing functional requirements e.g., natural language, a
structured or formatted language with no rigorous syntax and formal specification language
with proper syntax.
Specifications:
The following are the key fields, which should be part of the functional requirements
specifications document:
10
8516107
2.Non-functional Requirement:
These are basically the quality constraints that the system must satisfy according to the
project contract. The priority or extent to which these factors are implemented varies from
one project to other. They are also called non-behavioural requirements.
The non-functional requirements (also known as quality requirements) are related to
system attributes such as reliability and response time. Non-functional requirements arise due
to user requirements, budget constraints, organizational policies, and so on. These
requirements are not related directly to any particular function provided by the system.
Non-functional requirements should be accomplished in software to make it perform
efficiently.
They basically deal with issues like:
Usability
Security
Maintainability
Reliability
Scalability
Performance
Reusability
Flexibility
11
8516107
12