Q-1 What is software? Explain its characteristics.Ans. Definition 1 :- Computer software, or just software, is a collection of computer programs andrelated data that provides the instructions for telling a computer what to do and how to do it.Definition 2 :- In other words, software is a set of programs, procedures, algorithms and itsdocumentation concerned with the operation of a data processing system.While developing any kind of software product, the first question in any developers mind is, “What arethe qualities that a good software should have ?" Well before going into technical characteristics, Iwould like to state the obvious expectations one has from any software. First and foremost, a softwareproduct must meet all the requirements of the customer or end-user. Also, the cost of developing andmaintaining the software should be low. The development of software should be completed in thespecified time-frame.Well these were the obvious things which are expected from any project (and software development isa project in itself). Now lets take a look at Software Quality factors. These set of factors can be easilyexplained by Software Quality Triangle. The three characteristics of good application software are :-1) Operational Characteristics2) Transition Characteristics3) Revision Characteristics Software Quality Triangle Software Quality Triangle with characteristics16 Characteristics of a Good Software
What Operational Characteristics should a software have ?These are functionality based factors and related to exterior quality of software. Various OperationalCharacteristics of software are :a) Correctness: The software which we are making should meet all the specifications stated by thecustomer.b) Usability/Learnability: The amount of efforts or time required to learn how to use the softwareshould be less. This makes the software user-friendly even for IT-illiterate people.c) Integrity : Just like medicines have side-effects, in the same way a software may have a side-effecti.e. it may affect the working of another application. But a quality software should not have side effects.d) Reliability : The software product should not have any defects. Not only this, it shouldnt fail whileexecution.e) Efficiency : This characteristic relates to the way software uses the available resources. The softwareshould make effective use of the storage space and execute command as per desired timingrequirements.f) Security : With the increase in security threats nowadays, this factor is gaining importance. Thesoftware shouldnt have ill effects on data / hardware. Proper measures should be taken to keep datasecure from external threats.g) Safety : The software should not be hazardous to the environment/life.What are the Revision Characteristics of software ?These engineering based factors of the relate to interior quality of the software like efficiency,documentation and structure. These factors should be in-build in any good software. Various RevisionCharacteristics of software are :-a) Maintainability : Maintenance of the software should be easy for any kind of user.b) Flexibility : Changes in the software should be easy to make.c) Extensibility : It should be easy to increase the functions performed by it.d) Scalability : It should be very easy to upgrade it for more work(or for more number of users).e) Testability : Testing the software should be easy.f) Modularity : Any software is said to made of units and modules which are independent of each other.These modules are then integrated to make the final software. If the software is divided into separateindependent parts that can be modified, tested separately, it has high modularity.Transition Characteristics of the software :a) Interoperability : Interoperability is the ability of software to exchange information with otherapplications and make use of information transparently.b) Reusability : If we are able to use the software code with some modifications for different purposethen we call software to be reusable.c)Portability : The ability of software to perform same functions across all environments and platforms,demonstrate its portability.
Q-2 What is software engineer ?Ans. Software engineering (SE) is the application of a systematic, disciplined, quantifiable(પરિરિમાણમાં)approach to the design, development, operation, and maintenance of software, and the study of theseapproaches; that is, the application of engineering to software.   The term software engineeringfirst appeared in the 1968 NATO Software Engineering Conference, and was meant to provoke thoughtregarding the perceived "software crisis" at the time.Summeryo Real software runs on computers. It is a sequence of ones and zeros that is stored on some magneticmedia. It is not a program listing in programming language.o A program listing is a document that represents a software design. Compilers and linkers actually buildsoftware designs.o Real software is incredibly cheap to build, and getting cheaper all the time as computers getfaster.o Real software is incredibly expensive to design. This is true because software is incrediblycomplex and because practically all the steps of a software project are part of the design process.o Programming is a design activity -- a good software design process recognizes this and doesnot hesitate to code when coding makes sense.o Coding actually makes sense more often than believed. Often the process of rendering thedesign in code will reveal oversights and the need for additional design effort. The earlier thisoccurs, the better the design will be.o Since software is so cheap to build, formal engineering validation methods are not of much usein real world software development. It is easier and cheaper to just build the design and test itthan to try to prove it.o Testing and debugging are design activities -- they are the software equivalent of the designvalidation and refinement processes of other engineering disciplines. A good software designprocess recognizes this and does not try to short change the steps.o There are other design activities -- call them top level design, module design, structural design,architectural design, or whatever. A good software design process recognizes this anddeliberately includes the steps.o All design activities interact. A good software design process recognizes this and allows thedesign to change, sometimes radically, as various design steps reveal the need.
o Many different software design notations are potentially useful -- as auxiliary documentationand as tools to help facilitate the design process. They are not a software design.o Software development is still more a craft than an engineering discipline. This is primarilybecause of a lack of rigor in the critical processes of validating and improving a design.o Ultimately, real advances in software development depend upon advances in programmingtechniques, which in turn mean advances in programming languages. C++ is such an advance. Ithas exploded in popularity because it is a mainstream programming language that directlysupports better software design.o C++ is a step in the right direction, but still more advances are needed.Q-3 how many Types of software? Explain each in brief.Practical computer systems divide software systems into three major classes: system software,programming software and application software • System software • Programming software • Application software
A layer structure showing where the operating system software and application software aresituated while running on a typical desktop computerSoftware includes all the various forms and roles that digitally stored data may have and play ina computer (or similar system), regardless of whether 1. System softwareSystem software is computer software designed to operate the computer hardware to provide basicfunctionality and to provide a platform for running application softwareSystem software includes device drivers, operating systems, servers, utilities, and window systems.System software is responsible for managing a variety of independent hardware components.Its purpose is to unburden the application software programmer from the often complex details of theparticular computer being used, including such accessories as communications devices, printers, devicereaders, displays and keyboards, and also to partition the computers resources such as memory andprocessor time in a safe and stable manner. 2. Programming softwareProgramming software include tools in the form of programs or applications that software developersuse to create, debug, maintain, or otherwise support other programs and applications.The term usually refers to relatively simple programs such as compilers, debuggers, interpreters, linkers,and text editors, that can be combined together to accomplish a task, much as one might use multiplehand tools to fix a physical object. Programming tools are intended to assist a programmer in writingcomputer programs, and they may be combined in an integrated development environment (IDE) tomore easily manage all of these functions. 3. Application softwarApplication software is developed to perform in any task that benefits from computation. It is a set ofprograms that allows the computer to perform a specific data processing job for the user. It is a broadcategory, and encompasses software of many kinds, including the internet browser being used todisplay this page.Application software, also known as an application or an app, is computer software designed to helpthe user to perform specific tasks. Examples include enterprise software, accounting software, officesuites, graphics software and media players.Apps may be bundled with the computer and its system software, or may be published separately.
Application software applies the power of a particular computing platform or system software to aparticular purpose. Some applications are available in versions for several different platforms; othershave narrower requirements and are thus called, for example, a Geography application for Windows oran Android application for education or Linux gaming.