SOFTWARE ENGINEERING – UNIT I INTRODUCTION What is Software? Software is: an instructions (computer programs) that when executed provide desired features, function, and performance. What is Engineeering? Engineering is: Designing of the particular software by analyzing the requirements completely. What is Software Engineering? SOFTWARE ENGINEERING is the technological and managerial discipline concerned with systematic production and maintenance of software products that are developed and modified on time and within cost estimates. EVOLVING ROLE OF SOFTWARE The role of computer software has undergone significant change over the last half-century. Sophistication and complexity can produce dazzling results when a system succeeds Software is: It is a product Vehicle for delivering a product. As a product, it delivers the computing potential embodied by computer hardware. Whether it resides within a mobile phone or operates inside a mainframe computer, software is an information transformer. As the vehicle used to deliver the product, software acts as the basis for the control of the computer (operating systems), the communication of information (networks), and the creation and control other programs (software tools and environments). Common questions to lone programmer and group of specialists: Why does it take so long to get software finished? Why are development costs so high? Why can’t we find all errors before we give the software to our customers? Why do we spend so much time and effort maintaining existing programs? Why do we continue to have difficulty in measuring progress as software is being developed and maintained? CHARACTERISTICS OF SOFTWARE Functionality Reliability Usability Efficiency Maintainability Portability FUNCTIONALITY Suitability Can software perform the tasks required? Accurateness Is the result as expected? Interoperability Can the system interact with another system? Security Does the software prevent unauthorised access? RELIABILITY Fault tolerance Is the software capable of handling errors? Recoverability Can the software resume working and restore lost data after failure? USABILITY Understandability Does the user comprehend how to use the system easily? Learnability Can the user learn to use the system easily? Operability Can the user use the system without much effort? Attractiveness Does the interface look good? EFFICIENCY Time Behaviour How quickly does the system respond? Resource Utilisation Does the system utilise resources efficiently? MAINTAINABILITY Analysability Can faults be easily diagnosed? Changeability Can the software be easily modified? Stability Can the software continue functioning if changes are made? Testability Can the software be tested easily? PORTABILITY Adaptability Can the software be moved to other environments? Install ability Can the software be installed easily? NATURE OF SOFTWARE Seven Broad Categories of computer software present continuing challenges for software engineers System Software Application Software Engineering/Scientific Software Embedded Software Product-line Software Web Applications Artificial Intelligence Software System Software System Software is a collection of programs written to service other programs. Examples of System Software is Operating System, device drivers, processors etc. System software does heavy interaction with the computer hardware. Heavy usage by multiple users. System software performs concurrent operation that requires scheduling. Other tasks done by system software are resource sharing, process management and handling multiple external communications. Application Software Application software consists of standalone programs that solve a specific business need. Examples of Application Software Microsoft suite of products (Office, Excel, Word, PowerPoint, Outlook, etc.) Internet browsers like Firefox, Safari, and Chrome. Mobile pieces of software such as Pandora (for music appreciation), Skype (for real-time online communication), and Slack (for team collaboration) Engineering/Scientific Software Scientific and engineering software satisfies the needs of a scientific or engineering user to perform enterprise specific tasks. Such software is written for specific applications using principles, techniques and formulae specific to that field. Examples are software like MATLAB, AUTOCAD, CAM, interactive applications etc Embedded Software Embedded software is a piece of software that is embedded in hardware or non-PC devices. It is written specifically for the particular hardware that it runs on and usually has processing and memory constraints because of the device’s limited computing capabilities. Embedded software resides within a product or system. Embedded software can perform limited functions. Examples of embedded software factory robots, modern smart watches. Product-line Software Designed to provide a specific capability for use by many different customers. This software focuses on addressing mass consumer markets (eg, Computer Graphics, Multimedia, Entertainment, Database Management, Personal and Business Financial Applications). All these are examples of Product-line Software. Web Applications A web application (or web app) is an application software that runs on a web server, unlike computer-based software programs that are stored locally on the Operating System (OS) of the device. Web applications are accessed by the user through a web browser with an active internet connection. These applications are programmed using a client–server modelled structure—the user ("client") is provided services through an off-site server that is hosted by a third-party. Web applications include online forms, online banking. Popular applications include Google Apps and Microsoft 365. Artificial Intelligence Software Artificial Intelligence (AI) Software is a computer program which mimics human behaviour by learning various data patterns and insights. Top features of AI software include Machine Learning, Speech & Voice Recognition, Google Assistant offers voice searching, and voice-activated device control. Software Product Examples: System and Application Software. Both goes through the following phases.