Suduparaviya.blogspot.com

Monday, February 11, 2013


Posted by Unknown at 8:35 AM No comments:
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Home
Subscribe to: Posts (Atom)

Blog Archive

  • ▼  2013 (1)
    • ▼  February (1)

About Me

Unknown
View my complete profile

Software Engineering

Software engineering aims to develop the programs that allow digital computers to do useful work in a systematic, disciplined manner that produces highquality software on time and on budget. As computers have spread throughout industrialized societies, software has become a multibillion dolar industry. Both the users and developers of software depend a great deal on the effectiveness of the development process.

Software is a concept that didn’t even pertain to the first electronic digital computers. They were ‘‘programmed’’ through switches and patch cables that physically altered the electrical pathways of the machine. It was not until the Manchester Mark I, the first operational stored-program electronic digital computer, was developed in 1948 at the University of Manchester in England that configuring the machine to solve a specific problem became a matter of software rather than hardware. Subsequently, instructions were stored in memory along with data. In the early days of software development in the 1950s and 1960s, that memory was expensive and precious. This inspired programming tricks that could reduce memory usage as well as increase efficiency of program execution, although there was frequently a tradeoff. Programming was labor intensive, especially when done in the binary ‘‘machine language’’ native to the hardware or in ‘‘assembly language’’ that substituted alphabetic symbols for the binary machine codes. Systematic development was not a priority as programmers focused on the essentials of making programs small enough and fast enough. English-like high-level ‘‘procedural’’ programming languages such as FORTRAN (FORmula Translator, designed for scientific problems) and COBOL (Common Business Oriented Language) designed for business tasks) helped make software more understandable and programmers more productive, but even then the imperatives of size and speed often remained. Those imperatives began to change in the 1960s. Computer hardware costs began steadily decreasing while software costs (and hardware capabilities) steadily increased. Software soon became the dominant cost component of an information system. Worse yet, software was also increasingly plagued by schedule slippages and quality issues including functional defects and poor usability. These problems were epitomized by IBM’s OS/360 operating system, which was released in 1966 considerably late, seriously over budget, and full of flaws. The mounting problems prompted both a label—‘‘the software crisis’’—and a response, a conference on what was provocatively termed ‘‘software engineering,’’ sponsored by the North Atlantic Treaty Organization (NATO) Scientific Committee at Garmisch, Germany in 1968.

Participants from academia, industry, and government, traced the software crisis to several key characteristics of software as well as a general lack of discipline among programmers. First, software of any significant size is highly complex, thereby straining human cognitive capacities. Second, software is easily changed, owing to the fact that it is notation rather than a physical artifact. Poorly conceived and implemented changes can degrade quality over time. Finally, software is used to solve problems and perform work in an incredibly wide variety of areas, which makes it difficult to generalize techniques and tools as well as the software itself so as to reuse it.

Several approaches were soon proposed to address these various problems. To impose more discipline on programmers and counterbalance software’s malleability, development would be guided by a life-cycle model defining each stage of the process—requirements specification, design, coding and implementation, verification (of correct implementation of the specification, usually through testing) and validation (that the software meets the user’s needs), and maintenance (correction, adaptation, and enhancement). Hierarchical decomposition of programs into functionally independent modules (stepwise refinement) that hid their implementation details from other modules (information hiding) represented systematic methods for coping with complexity. Modularity and information hiding ultimately found their fullest expression in object-oriented programming, in which data and operations are bundled into ‘‘objects’’ that model the problem elements and whose interactions are strictly controlled. Structured programming aimed to render programs more intellectually manageable and amenable to rigorous analysis through the exclusive use of well-understood constructs of sequence, iteration, and selection. Structured programming (coding) was soon accompanied by structured (requirements) analysis and structured design. Various programming languages such as Pascal in the early 1970s, and Ada, C, and Cşş in the mid-1980s emerged to better support these techniques, as did various types of computer-aided software engineering (CASE) tools.

Many of the proposed techniques, though important and useful, were perceived as lacking a certain depth. It often seemed difficult to get more specific than principles of general problem solving. Things like hierarchical decomposition (essentially divide and conquer) and abstraction (the hiding of unnecessary detail), though vital to the development of software, contrasted with the underpinnings of established scientific and technical disciplines. This concern reflected the fact that attempts to establish a discipline for software development (just like other fields) were as much about social and professional status as about practical necessity. Furthermore, individuals with a mathematical or scientific background often had visions of a discipline very different from the ideas of those with an engineering or other type of background.

Nowhere was this tension more apparent than in arguments over formal verification of software, which sought to prove mathematically that a program satisfied its specified requirements. Formal verification was the most contentious manifestation of a broader formal methods movement that sought to apply mathematical notations and techniques, the ultimate in rigor, to virtually all aspects of software development. Those who took a more scientific or mathematically oriented view of software development argued that not only would formal verification solve software quality problems, it would make software development superior to other technical endeavors. Others strongly disputed both the feasibility and the usefulness of formal verification, given its laborious nature and dependence on correctly specified requirements.

The argument over formal verification (and formal methods generally) was emblematic of what Fred Brooks, Jr., manager of the OS/360 project, dubbed the ‘‘silver bullet syndrome.’’ Brooks and others perceived a tendency among software technologists to seize upon a single technique or approach as the solution to the software crisis; but many of the same characteristics that engendered the software crisis in the first place also made a single, comprehensive solution unlikely. At the end of the twentieth century, increasingly powerful software continued to be developed and used, despite the persistent problems that were once deemed a crisis. A greater appreciation for variety of technique can be seen in every phase of every software life-cycle model; and the Professional status of software engineers was still debated. Software engineering’s unique flavor reflected the mixtures of knowledge and practitioners that converged behind the creation of operational technical artifacts consisting only of notation.

Saif likes me in every colour: Kareena

Tue, 2013-03-26 23:24 —
Saif likes me in every colour: Kareena

Bollywood actress Kareena Kapoor, who looked fabulous in a pinkish-orange outfit designed by Namrata Joshipura at the Lakme Fashion Week (LFW) Summer-Resort 2013, says her husband Saif Ali Khan likes her in all colours.

The collection had a range of vibrant colours.

Asked which colour her husband Saif Ali Khan likes to see her in, the actress promptly replied that he likes her in all colours.

"Saif likes to see me in every colour. He has no choice," she told the media.

Saif was not present to cheer the actress at the show, but she took it sportingly.

"We are not missing Saif... let him work. He sees me walk the ramp every day at home," she said in good humour.

Asked about her personal styling, the actress said she loved pajamas and a T-shirt.

"I love pajamas and a T-shirt. I wish I could walk the ramp like that," she said.

After a long courtship, Saif and Kareena tied the knot last year.

Simple theme. Powered by Blogger.