Documents

BTech CSE-software engineering.docx

Description
Description:
Categories
Published
of 83
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Related Documents
Share
Transcript
   UNIT  –  I Introduction to Software engineering Origins of Software Engineering The term software engineering first was used around 1960 as researchers, management, and  practitioners tried to improve software development practice. The NATO Science Committee sponsored two conferences on software engineering in 1968 (Garmisch, Germany) and 1969, which gave the field its initial boost. Many consider these conferences to be the start of the field. Software engineering has never looked back thereafter. Software engineering is concerned with the    Theories,    Methods and    Tools which are needed to develop    high quality, complex software in a    cost effective way on a  predictable schedule. Software crisis Software engineering arose out of the so called software crisis of the 1960s, 1970s, and 1980s,  when many software projects had bad endings. Many software  projects ran over budget and schedule. Some projects caused property damage. A few projects caused loss of life. As software  becomes more pervasive, we all recognize the need for better software. The software crisis was srcinally defined in terms of  productivity, but evolved to emphasize quality.  Problem and the cause According to a study by the Standish Group, in 2000, only 28 percent of software projects could be classed as complete successes (meaning they were executed on time and on budget), while 23 percent failed outright (meaning that they were abandoned).  Software(s) still come late, exceed the budget and are full of residual faults. According to IBM reports, “31% of the projects get cancelled before they are completed, 53% over run their cost estimates and for every 100 projects, there are 94 restarts. This is the concept behind software crises. Due to the complexity of software and lack of proper methodology, most of the projects fail to deliver in 60’s, 70’s and 80’s. There was a conference of NATO countries in 1970s and there the word Software Engineering  was coined. It is always a better option to adopt software engineering principles to get a quality software product in due time and within our cost constraints. Since several decades, numerous approaches have emphasized the importance of managing the so-called software crisis, which generally refers to the problem of developing cost-effective software products. To overcome the software crisis, many different techniques have been proposed, such as programming languages, software engineering methods, frameworks, patterns, and architectures. Each technique addresses the software crisis problem from a certain perspective. Introduction to Software Engineering Software Engineering  is a systematic approach to software development, operation, maintenance and its retirement. It is the combination of models of software science, management science and mathematics to develop a quality software product. By software product, we mean complete software (Programs, operating procedures and documentation) delivered to the customer within scheduled time and estimated cost. According to Barry   Boehm [Boe81], Software Engineering is the application of science and mathematics by which the capabilities of computer equipment are made useful to man via computer programs, procedures and associated documentation.   At the first conference on software engineering in 1970, Fritz Bauer  defined software engineering as “The establishment and use of sound engineering principles in order to obtain economically developed software that is reliable and works efficiently on real machines”   Stephen Schach  defined it as “A discipline whose aim is the production of quality software, software that is delivered on time, within budget and that satisfies our requirements. Software engineering  (SE) is the profession concerned with creating and maintaining software applications by applying computer science, project management, domain knowledge, and other skills and technologies (From Wikipedia, the free encyclopedia). Software applications (including ATMs, compilers, databases, email, embedded systems,  graphics, office suites, operating systems, robotics, video games, and the world wide web)  embody social and economic value, by making people more productive, improving their quality of life, and enabling them to do things that would otherwise be impossible. SE technologies and  practices (including databases, languages, libraries, patterns, platforms, processes, standards, and tools) help developers, by improving productivity and quality.  Software myths   There are number of myths associated with software development and its process. Some of them affect the way in which software development should take place. This goes on to show the difference of opinion in the minds of developers and the management. As a result of this, developers are the ultimate sufferers. Management will always have the following myths in their minds: 1.   Software is easy to change:  It is easy editing the program and changing it but that may result in introduction of errors, which may upset all our calculations. Management hardly considers the problems associated with software changes and still maintain that software changes are easy to perform. 2.   Testing or “proving” software correct can remove all the errors:  Testing can show the presence of errors in our programs but it cannot guarantee absence of errors. Our aim is to develop effective test cases to find out the maximum possible errors. Management or people concerned always believe that after testing no more problems can surface. This fact is a fallacy as errors can creep into the system at a later stage.  3.   Reusing software increases safety: Re-use of software may pose integration, logical or syntax problems in new software even if the modules were working correctly in old software. Code re-use may be a powerful tool but it requires analysis to determine its suitability and testing to determine if it works. Management will say “how come the system is not performing when it was working fine the previous time”. Reusability can induct its own set of problems.   4.   Software can work right the first time:  Software developers are sometimes made to build the system without making a prototype but for a successful and efficient system, software development will take more than just the first time.   5.   Software can be designed thoroughly enough to avoid most integration problems: There is an old saying among software developers “Too bad, there is no compiler for specifications”. This point out the fundamental difficulty with detailed specifications. They always have inconsistencies and there is no computer tool to perform consistency check therefore special care is to be taken to understand the specifications and if there is an ambiguity, it should be resolved before proceeding for design.   6.   Software with more features is better software: Don’t try too hard with the software and incorporate too much. The best programs are those that do one  thing very well.   7.   Addition of more software engineers will make up the delay: “Too many cooks spoil the dish” applies to software also. This may further delay the software.   8.   Aim is to develop working programs (rather than good quality maintainable programs): The aim has shifted to developing good quality maintainable programs. Maintaining software has become very crucial area for software engineering.   Process of Software System Development In this part, we are going to study the process of system development which is a long and time consuming procedure and requires thorough planning and systematic approach to problem solving. SDLC (Software development Life Cycle)  is an important step in this direction. This life cycle approach covers steps like System study (problem definition), Feasibility study, Analysis, Design (coding), Testing, Implementation and Maintenance.
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks