Software File

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 12

8516107

Date:18 Jan. 2019


Program No.1

Aim: To identify the role of software in today’s world access a few significant domains
related to day to day life.

Software:It is a set of instructions or programs instructing a computer to do specific tasks.


Software is a generic term used to describe computer programs. Scripts, applications,
programs and a set of instructions are all terms often used to describe software.
Or
It is a collection of instructions that enable the user to interact with a computer, its
hardware, or perform tasks. Without software, most computers would be useless. For
example, without your Internet browser software, you could not surf the Internet or read this
page. 

Engineering:Engineering is the application of science and math to solve problems.


Engineers figure out how things work and find practical uses for scientific discoveries.
Engineering is a discipline dedicated to problem solving. Our built environment and
infrastructure, the devices we use to communicate, the processes that manufacture our
medicines, have all been designed, assembled or managed by an engineer.

Software Engineering:It is a detailed study of engineering to the design, development


and maintenance of software. Software engineering is the process of analysing user needs and
designing, constructing, and testing end user applications that will satisfy these needs through
the use of software programming languages. It is the application of engineering principles to
software development. In contrast to simple programming, software engineering is used for
larger and more complex software systems, which are used as critical systems for businesses
and organizations.

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

• Maintainability: Refers to the ease with which the modifications can be made in a


software system to extend its functionality, improve its performance, or correct errors.
• Portability: Refers to the ease with which software developers can transfer software from
one platform to another, without (or with minimum) changes. In simple terms, it refers to the
ability of software to function properly on different hardware and software platforms without
making any changes in it.
In addition to the above-mentioned characteristics, robustness and integrity are also
important. Robustness refers to the degree to which the software can keep on functioning in
spite of being provided with invalid data while integrity refers to the degree to which
unauthorized access to the software or data can be prevented.

Some general kinds of application software include:


 Productivity software, which includes word processors, spreadsheets, and tools for use by
most computer users
 Presentation software
 Graphics software for graphic designers
 CAD/CAM software
 Specialized scientific applications
 Vertical market or industry-specific software (for example, for banking, insurance, retail,
and manufacturing environments)

The role of software in our day today life is explained below:-

1. In business-Business software or a business application is any software or set of


computer programs used by business users to perform various business functions. These
business applications are used to increase productivity, to measure productivity and to
perform other business functions accurately.

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:

 The small business market generally consists of home accounting software, and office


suites such as OpenOffice.org or Microsoft Office.
 The medium size, or small and medium-sized enterprise (SME), has a broader range of
software applications, ranging from accounting, groupware, customer relationship
management, and human resource management systems, outsourcing relationship
management, loan origination software, shopping cart software, field service software, and
other productivity enhancing applications.
 The last segment covers enterprise level software applications, such as those in the fields
of enterprise resource planning, enterprise content management (ECM), business process
management (BPM) and product lifecycle management. These applications are extensive in
scope, and often come with modules that either add native functions, or incorporate the
functionality of third-party computer programs.

Technologies that previously only existed in peer-to-peer software applications, like Kazan


and Napster, are starting to appear within business applications.

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

3. In banking sector:-Banking software is enterprise software that is used by the banking


industry. Typically banking software refers to Core Banking Software and its interfaces that
allows commercial banks to connect to other modular software and to the interbank networks.
It can also refer to the trading software used by investment banks to access capital markets.

4. In medical sector:-Healthcare Management Information Systems (HMIS)

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.

5. Imaging and Visualization


Imaging and visualization is a vital part of any medical procedure, from simple x-rays to
computed tomography (CT) and magnetic resonance imaging (MRI), there is little substitute
for the information that is provided by these types of images. Due to the complexity and
magnitude of imaging and visualization tools available in the market today, we would need
volumes of books to cover all of the available aspects of all tools.
At the heart of any facility is its ability to keep records of patients, their medical history, test
administered, and any medications provided. Without proper records of a patient’s history, a
facility runs the risk of administering wrong medical dosages, or administering conflicting
dosages, that may lead to more serious medical events. With the ever expanding e-health
network, facilities have moved from the pen and paper format of record collection to
electronic records that are now able to be shared inside systems facilities, as well as, shared
between different company’s facilities. This article only covered a small sample of healthcare
applications that can improve patient satisfaction and healthcare professional’s ability to treat
patients along with improving a facility’s effectiveness and efficiency.

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

primary purpose of assessing and testing students in a virtual environment.


Assessment software allows students to complete tests and examinations using a
computer, usually networked. The software then scores each test transcript and
outputs results for each student. Assessment software is available in various delivery
methods, the most popular being self-hosted software, online software and hand-held
voting systems. Proprietary software and open-source software systems are available.
While technically falling into the Courseware category (see above), Skill evaluation
lab is an example for Computer-based assessment software with PPA-2 (Plan, Prove,
Assess) methodology to create and conduct computer based online
examination. Model is an example of open-source software with an assessment
component that is gaining popularity. Other popular international assessment systems
include Assessment Master, Question Mark, Evault Net XT and Quest Base.

8. In Airlines:-The airlines industry is moving towards investing in smart systems so as to


deliver accurate information. The Internet of things (IoT) will enable an easier ‘way-finding’,
or knowing when exactly to arrive at a said location – for example, the boarding gate.
Passengers will leverage technology and be able to track their luggage. Availability of such
information saves valuable time.

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:

Date:25 Jan. 2019

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.

Causes of Software Crisis:


 Lack of communication between software developers and users.
 Increase in size of software.
  Increase in cost of developing a software.
 Increased complexity of the problem area.
  Project management problem.
 Lack of understanding of the problem and its environment.
 Duplication of efforts due to absence of automation in most of the software
development activities.
 High optimistic estimates regarding software development time and cost. 
To overcome these problems, the discipline of software engineering came into
existence.

OS 360 as an example of software crisis:

 Officially known as IBM System/360 Operating System.


 A discontinued batch processing operating system developed by IBM
 Announced in 1964.
 Entered the market in 1967, chock full of errors.
 The system was huge, involving more than a million lines of codes, written by
hundreds of programmers.

7
8516107

 Was the disastrous result of an untried methodology.


 Unacceptable due to the tedious performance and the complexity.

Software Crisis in terms of statistics in 1990's:

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

Software crisis: The present scenario-


The Software Crisis began 4 decades ago and continues today. In the 60s, we began to speak
of a "software crisis". A thirty year long "crisis" was beginning. A world-wide research effort
also began. Today, the situation is quite different. We have a Science of Programming. We
know a great deal about how to design and document software, but the "Software Crisis"
continues unabated! The software crisis continues because the communication between
Computer Scientists and those who write software, including the Engineers, has been very
poor. Current software standards, are weak, superficial, and are not based on software
science. Process oriented "standards" are empty because there are no product/document
standards.

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.

Date:01 Feb. 2019


Program No. 3
Aim: To classify the requirement into functional and non-functional requirements.

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.

According to IEEE standard 729, a requirement is defined as follows:


 A condition or capability needed by a user to solve a problem or achieve an objective
 A condition or capability that must be met or possessed by a system or system
component to satisfy a contract, standard, specification or other formally imposed
documents
 A documented representation of a condition or capability as in 1 and 2.

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

 Purpose of the Document


 Scope
 Business Processes
 Functional Requirements
 Data and Integration
 Security Requirements
 Performance
 Data Migration & Conversion

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

Difference between Functional and Non-functional Requirement:

11
8516107

12

You might also like