Software Characteristics

Слайд 2

Software In earlier times, software was simple in nature and hence, software development

Software

In earlier times, software was simple in nature and hence, software

development was a simple activity. However, as technology improved, software became more complex and software projects grew larger. Software development now necessitated the presence of a team, which could prepare detailed plans and designs, carry out testing, develop intuitive user interfaces, and integrate all these activities into a system. This new approach led to the emergence of a discipline known as software engineering.
Software engineering provides methods to handle complexities in a software system and enables the development of reliable software systems, which maximize productivity. In addition to the technical aspects of the software development, it also covers management activities which include guiding the team, budgeting, preparing schedules, etc. The notion of software engineering was first proposed in 1968. Since then, software engineering has evolved as a full-fledged engineering discipline, which is accepted as a field involving in-depth study and research. Software engineering methods and tools have been successfully implemented in various applications spread across different walks of life.
Слайд 3

Слайд 4

Software Characteristics Different individuals judge software on different basis. This is because they

Software Characteristics

Different individuals judge software on different basis. This is because

they are involved with the software in different ways. For example, users want the software to perform according to their requirements. Similarly, developers involved in designing, coding, and maintenance of the software evaluate the software by looking at its internal characteristics, before delivering it to the user. 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.
• 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.
Слайд 5

Classification of Software Software can be applied in countless fields such as business,

Classification of Software

Software can be applied in countless fields such as

business, education, social sector, and other fields. It is designed to suit some specific goals such as data processing, information sharing, communication, and so on. It is classified according to the range of potential of applications. These classifications are listed below.
Real-time software: This class of software observes, analyzes, and controls real world events as they occur. Generally, a real-time system guarantees a response to an external event within a specified period of time. An example of real-time software is the software used for weather forecasting that collects and processes parameters like temperature and humidity from the external environment to forecast the weather. Most of the defence organizations all over the world use real-time software to control their military hardware.
• Engineering and scientific software: This class of software has emerged as a powerful tool in the research and development of next generation technology. Applications such as the study of celestial bodies, under-surface activities, and programming of an orbital path for space shuttles are heavily dependent on engineering and scientific software. This software is designed to perform precise calculations on complex numerical data that are obtained during real time environment.
• Artificial intelligence (AI) software: This class of software is used where the problem-solving technique is non-algorithmic in nature. The solutions of such problems are generally non-agreeable to computation or straightforward analysis. Instead, these problems require specific problem-solving strategies that include expert system, pattern recognition, and game-playing techniques. In addition, they involve different kinds of search techniques which include the use of heuristics. The role of artificial intelligence software is to add certain degrees of intelligence to the mechanical hardware in order to get the desired work done in an agile manner.
• Web-based software: This class of software acts as an interface between the user and the Internet. Data on the Internet is in the form of text, audio, or video format, linked with hyperlinks. Web browser is a software that retrieves web pages from the Internet. The software incorporates executable instructions written in special scripting languages such as CGI or ASP. Apart from providing navigation on the Web, this software also supports additional features that are useful while surfing the Internet.
Слайд 6

Слайд 7

Utility software Utility software is system software designed to help analyze, configure, optimize

Utility software

Utility software is system software
 designed to help analyze, configure, optimize or

maintain a computer.  It is used to support the computer infrastructure in contrast to application software, which is aimed at directly performing tasks that benefit ordinary users.
Although a basic set of utility programs is usually distributed with an operating system (OS), utility software is not considered part of the operating system, and users often install replacements or additional utilities.
Слайд 8

System software This class of software manages and controls the internal operations of

System software

This class of software manages and controls the internal operations

of a computer system. It is a group of programs, which is responsible for using computer resources efficiently and effectively. For example, an operating system is a system software, which controls the hardware, manages memory and multitasking functions, and acts as an interface between application programs and the computer.
Слайд 9

Applications Software Apply to real-world tasks Solves user problems vs. OS controls the hardware

Applications Software

Apply to real-world tasks
Solves user problems
vs. OS
controls the hardware

Слайд 10

Purchasing Commercial Software Businesses Volume discount Site license Network versions Application Service Provide

Purchasing Commercial Software Businesses

Volume discount
Site license
Network versions
Application Service Provide (ASP)
Software

is setup and maintained by ASP
Access the software over the Internet
Pay per use
Saves the expense of installing and maintaining the software
Слайд 11

Software Piracy Making illegal copies of copyrighted software Why the fuss? Very easy

Software Piracy

Making illegal copies of copyrighted software
Why the fuss?
Very easy to

duplicate software vs. a text book
Software company may lose hundreds of dollars per pirated copy
Prosecution
Yes: Small-medium sized business who purchase a few copies and distribute to many users
No: Individual users who probably would not have purchased software on their own anyway
Слайд 12

Management Information Systems (MIS) Information Techology (IT) Computer Information Systems (CIS) Computing Services

Management Information Systems (MIS)

Information Techology (IT)
Computer Information Systems (CIS)
Computing Services

Information Technology

(IT)

Information Services

Computer Professionals

Слайд 13

Computer Professionals Data entry operators – key data into a machine-readable format Computer

Computer Professionals

Data entry operators – key data into a machine-readable format
Computer

operators – monitor the computer
Librarians – catalog and keep secure the disks
Computer programmers – write, test, implement, and maintain programs
Systems analysts – plan and design computer systems
Network manager – oversees the network
Chief information officer (CIO) – department manager; makes strategic decisions relating to the flow of information in the organization