




















































































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
An introduction to the importance of software engineering and software processes. It discusses the evolution of software and its impact on various industries, the nature of software, and the challenges faced by software engineers. The document also introduces the concept of software engineering and its focus on quality, and presents a generic process framework for software engineering. It concludes by discussing the importance of process assessment and improvement.
What you will learn
Typology: Lecture notes
1 / 92
This page cannot be seen from the preview
Don't miss anything!
When the computer industry started in the 1950s no one would have thought that Software would become an indispensable technology for business, science and engineering Software would enable the creation of new technologies (genetic engineering) Software would enable the extension of existing technologies (telecommunications) Software would be responsible for the demise of older technologies (like printing industry) Software would be the driving force behind the PC revolution (Wordstar, Lotus 123 ) A software company would become larger and more influential than the vast majority of Industrial era companies (GM - Auto , Exxon – Mobil - Oil , Steel ) software would slowly evolve from a product to a service as “on- demand” software
Today, software takes on a dual role. It is both a product and a vehicle for delivering a product. It is a product which you can buy (license). As a product it allows you to use the power of hardware. It also allows you to deliver the most important product of our time – information. Software which is a product creates, stores, transmits, displays information which is again a product. As the vehicle used to deliver the product, software acts as the basis for the control of the computer(OS), the communication of information(Networks), the creation and control of other programs (software tools and environment).
Programs – they provide desired function, features and performance when executed. Data structures that enable programs to manipulate information. Descriptive information in both hard copy and virtual forms that describes the operation and use of the programs
( Comparison with other products) It is logical rather than physical system element.
Although the industry is moving toward component- based construction, most software continues to be custom built The reusable components have been created so that the engineer can concentrate on the truly innovative elements of a design, that is, the parts of the design that represent. something new. In the hardware world, component reuse is a natural part of the engineering process. In the software world, it is something that has only begun to be achieved on a broad scale. The software industry is slowly moving towards it. A software component should be designed and implemented so that it can be reused in many different
2. Application software : stand-alone programs that solve a specific business need. Applications in this area process business or technical data in a way that facilitates business operations or management/technical decision making. In addition to conventional data processing applications, application software is used to control business functions in real time (e.g., point-of-sale transaction processing, real-time manufacturing process control- Payroll ,invoicing , ERP , Inventory etc.) 3. Engineering and scientific : has been characterized by “number crunching” algorithms. Applications range from astronomy to volcano logy, from automotive stress analysis to space
4. Embedded software : resides within a product or system and is used to implement and control features and functions for the end user and for the system itself.. Microwave ovens , washing machines , dishwashers , cell phones. 5. Product Line software : designed to provide a specific capability for use by many different customers. Product-line software can focus on a limited and esoteric marketplace (e.g., inventory control products) or address mass consumer markets (e.g., word processing, spreadsheets, computer graphics, multimedia, entertainment, database management, and personal and business financial applications).
Open world computing The rapid growth of wireless computing may lead to distributed computing. You do not need to be connected to the network by wires. Small devices (even mobile phones) will be able to get connected to the network and the challenge will be to develop software useful on such devices. Netsourcing Developing applications to run on WWW which can be used by end users all over the world.
Open Source where the source code is available for customers to make changes. The challenge is to build source code that is self descriptive. New Economy The economy based on ICT (information and communication technology) is called the new economy as compared to the manufacturing based economy which is now called old economy. The new economy was at peak in 1990s but then the bubble burst in the early 2000. Lot of people thought that the new economy is dead but once again we can see that it is well and alive and is evolving (Internet 2.0, new apps etc). The challenge is to develop applications that will allow mass communication and distribution using concepts which are evolving now.
(^) Some of the reasons for the poor quality are inextensible design, poor or nonexistent documentation, poorly managed change history etc. (^) As long as they serve their main purpose they should be used but then they will need to evolve to take care of changes in technology and changes in business requirements. (^) You have to reengineer the system to keep it viable into the future. (Development of entirely new software will most of the times be very expensive). (^) So the goal of modern software engineering is to “device methodologies that are founded on the notion of evolution”.
Software projects still have cost overruns , time overruns , high failure rate , low acceptance by users. Why? Because people do not use engineering approach and still believe in and do things which are not right or proper. They are called myths. Myths can be classified as Management myths , customer myths , practitioner’s myths etc.