You are on page 1of 6

Chapter -1 Software Engineering

Software
Software is a collection of 1) Instructions (Computer programs) that when executed provide desired function and performance. 2) Data structure that enable the programs to adequately manipulate information. And 3) Documents that describe the operation and use of the programs. Software is a logical entity rather than a physical system element.

Software Engineering
1. Software engineering is a systematic approach to the development, operation maintenance and requirements of the software. 2. Software engineering is the application of science and mathematic by which the capabilities of computer equipments are maid useful to man via computer program, procedures and associated documents.

Goal of Software Engineering


Software engineering is driven by three major factors as are follows. Cost Schedules Quality

Characteristics of the Software


Software is a logical rather than a physical system element therefore software has characteristic that are different then hardware component. 1. Software is developed or engineered it is not manufacture in the classical sense. In both activities software development and hardware manufacturing, high quality is achieved through good design, but the manufacturing phase for hardware can introduce quality problems that are nonexistence (or easily corrected) for software. Both activities depend on people, but the relationship between people applied and work accomplished is entirely different. Both activities require the construction of a product, but the approaches are different. 2. Software does not wear out failure.

By: Gaurang Joshi

Chapter -1 Software Engineering

Figure (A) depicts failure rate as a function of time for hardware. The relationship often called the bathtub curve indicates that hardware exhibits relatively high failure rate early in its life. (This failures are often attributable to design or manufacturing defects); defects are corrected and the failure rate drops to a steady state level (hopefully quite low) for some period of time. As time passes, however, the failure rate rises again as hardware components suffer from the cumulative effects of dust, vibrations, abuse, temperature extremes, etc. Stated simply, hardware begins to wear out. Software is not susceptible to the environmental maladies that cause hardware to wear out.

Figure B Idealized and actual failure curves for software

By: Gaurang Joshi

Chapter -1 Software Engineering As shown in figure (B), the failure rate curve for software shows that, undiscovered defects will cause high failure rates early in the life of a program. These are corrected (without introducing other errors) and the curve flattens as shown in figure (B). Software doesnt ware out, but it does deteriorate. During the software life, it will undergo change (maintenance). As changes are made, it is likely that some new defects will introduced, causing the failure rate cure to spike. Before the curve can return to the original steady-state failure rate, another change is requested, causing the curve to spike again. Slowly, the minimum failure rate level begins to rise the software is deteriorating due to change. Hardware component wears out; it is replaced by a spare part. There are no software spare parts. Every software failure indicates an error in design or in the process through which design was translated into machine executable code. Therefore, software maintenance involves considerably more complexity than hardware maintenance. 3. Most software is custom built rather than being assembled from existing components. Reusability is an important characteristic of high quality software component. A software component should be designed and implemented so that it can be reused in many different programs. Modern reusable components encapsulate both data and the processing that is applied to the data, enabling the software engineer to create new applications from reusable parts. For e.g. todays interactive interfaces are built using reusable components that enable the creation of graphics windows, pull down menus and a wide variety of interaction mechanisms. Software components are built using a programming language that has a limited vocabulary. An explicitly defined grammar and well formed rules of syntax and semantics. At the lowest level, the language mirrors the instruction set of the hardware. But Sometimes reusable components does not fulfill the requirement there may be some changes we want but because of its complexity of code means we have to understand the whole component for making some changes to it , which is very complex task instead of this we can create a custom component.

By: Gaurang Joshi

Chapter -1 Software Engineering

Software Applications
1) 2) 3) 4) 5) 6) 7) 8) System software Real-Time Software Business Software Engineering and scientific software Embedded Software Personal Computer Software Web-Applications Artificial intelligence software

System Software
System software is a collection of a program written to service other programs. Some system software (e.g. Compilers, editors and file management utilities) processes complex; but determinate information structures. Other system applications (e.g. operating system components, drivers, telecommunications processors).

Real time Software


Programs that monitor/analyze/control real world events as they occur are called real time software. Elements of real time software includes - Data gathering components - Analysis components - Control / output components - Monitoring components A real time system must respond within strict time constraints. Real time system differs from interactive or timesharing. The response time of an interactive system can normally be exceeded without disastrous results. Eg. Weather forecasting s/w

Business Software
Business information processing is the largest single software application area. Discrete systems (e.g. Payroll, accounts receivable/payable, inventory etc.) have evolved into management information system (MIS) software that accesses one or more large databases containing business information. Applications in this area restructure existing data in a way that facilitates business operations or management decision making. e.g. Client/Server computing application. By: Gaurang Joshi 4

Chapter -1 Software Engineering

Engineering and Scientific Software


Engineering and scientific software has been characterized by number crunching algorithms. Application range from astronomy to volcano logy, from automotive stress analysis to space shuttle orbital dynamics and from molecular biology to automated manufacturing. Eg. Weather Forecasting s/w, Radar s/w, military s/w

Embedded Software
Embedded software resides in RAM and is used to control products and systems for the consumer and industrial markets. Embedded software can perform very limited and esoteric functions (e.g. key pad control for microwave oven, washing Machine, AC etc.) or provide significant function and control capability. (e.g. Digital functions in an automobile such as fuel control, dashboard displays, braking system, etc.)

Personal Computer Software


Word processing, spreadsheets, computer graphics, multimedia, entertainment, database management, personal and business financial applications and external network or database access are some of the example of personal computer software. Eg. Desktop Based Applications(Word, Excel , power point , Photoshop etc.)

Web-Applications
The web pages retrieved by a browser are software that incorporates executable instructions. In essence, the network becomes a massive computer providing almost unlimited software resources that can be accessed by anyone with a modem. Eg. Websites

Artificial intelligence Software


Artificial intelligence software makes used of non-numerical algorithms to solve complex problems that are not amenable to computation or straight forward analysis. An active Artificial Intelligence area is expert systems, also called knowledge based systems. Other application area for AI software is pattern recognition (image and voice) theorem proving and game playing.

By: Gaurang Joshi

Chapter -1 Software Engineering In recent years, new branch of AI is Artificial neural networks has evolved. A neural network simulates the structure of brain processes (the function of the biological neuron). Eg. Decision Making s/w

Software Myths
Management Myths: 1. We already have a book thats full of standards and procedures for building software. Wont that provide my people with everything they need to know? 2. If we get behind schedule, we can add more programmers and catch up (sometimes called the Mongolian horde concept). 3. My people have state-of-art software development tools, after all, we buy them the newest computers. 4. If I decide to outsource the software project to a third party, I can just relax and let that firm build it. Customer Myths: 1. A general statement of objective is sufficient to begin writing programs we can fill in the details later. 2. Project requirements continually change, but change can be easily accommodated because software is flexible. Practitioners Myths: 1. 2. 3. 4. Once we write the program and get it to work, our job is done. Until I get the program running I have no way of assessing its quality. The only deliverable work product for a successful project is the working program. Software Engineering will make us to create voluminous and unnecessary documentation and will invariably slow us down.

By: Gaurang Joshi

You might also like