Thursday, December 25, 2014

A simple Program of Star box

#include <iostream> using namespace std; int main() { int n,i=1,j; cin>>n; while (i<=n) { j=1; while(j<=n) { cout<<"*"; j=j+1; } cout<<endl; i=i+1; } return 0; }

Friday, December 19, 2014

History of software engineering


From its beginnings in the 1940s, writing software has evolved into a profession concerned with how best to maximize the quality of software and of how to create it. Quality can refer to how maintainable software is, to its stability, speed, usability, testability, readability, size, cost, security, and number of flaws or "bugs", as well as to less measurable qualities like elegance, conciseness, and customer satisfaction, among many other attributes. How best to create high quality software is a separate and controversial problem covering software design principles, so-called "best practices" for writing code, as well as broader management issues such as optimal team size, process, how best to deliver software on time and as quickly as possible, work-place "culture," hiring practices, and so forth. All this falls under the broad rubric of software engineering.

Overview

There are a number of areas where the evolution of software engineering is notable:
  • Emergence as a profession: By the early 1980s,[1] software engineering had already emerged as a bona fide profession, to stand beside computer science and traditional engineering. See also software engineering professionalism.
  • Role of women: In the 1940s, 1950s, and 1960s, men often filled the more prestigious and better paying hardware engineering roles, but often delegated the writing of software to women.[citation needed] Grace HopperJamie Fenton and many other unsung women filled many computer programming jobs during the first several decades of software engineering.[citation needed] Today, fewer women work in software engineering than in other professions, a situation whose cause is not clearly identified. It is often attributed to sexual discriminationcyberculture or bias in education.[who?] Many academic and professional organizations consider this situation unbalanced and are trying hard to solve it.
  • Processes: Processes have become a big part of software engineering and are hailed for their potential to improve software and sharply criticized for their potential to constrict programmers.
  • Cost of hardware: The relative cost of software versus hardware has changed substantially over the last 50 years. Whenmainframes were expensive and required large support staffs, the few organizations buying them also had the resources to fund large, expensive custom software engineering projects. Computers are now much more numerous and much more powerful, which has several effects on software. The larger market can support large projects to create commercial off the shelf software, as done by companies such as Microsoft. The cheap machines allow each programmer to have a terminal capable of fairly rapid compilation. The programs in question can use techniques such as garbage collection, which make them easier and faster for the programmer to write. On the other hand, many fewer organizations are interested in employing programmers for large custom software projects, instead using commercial off the shelf software as much as possible.

The Pioneering Era[edit]

The most important development was that new computers were coming out almost every year or two, rendering existing ones obsolete. Software people had to rewrite all their programs to run on these new machines. Programmers did not have computers on their desks and had to go to the "machine room". Jobs were run by signing up for machine time or by operational staff. Jobs were run by putting punched cards for input into the machine's card reader and waiting for results to come back on the printer.
The field was so new that the idea of management by schedule was non-existent. Making predictions of a project's completion date was almost impossible. Computer hardware was application-specific. Scientific and business tasks needed different machines. Due to the need to frequently translate old software to meet the needs of new machines, high-order languages like FORTRANCOBOL, and ALGOL were developed. Hardware vendors gave away systems software for free as hardware could not be sold without software. A few companies sold the service of building custom software but no software companies were selling packaged software.
The notion of reuse flourished. As software was free, user organizations commonly gave it away. Groups like IBM's scientific user group SHARE offered catalogs of reusable components. Academia did not yet teach the principles of computer science. Modular programming and data abstraction were already being used in programming.

1945 to 1965: The Origins[edit]

The term software engineering, coined by Margaret Hamilton,[2] first appeared in the late 1950s and early 1960s. Programmers have always known about civil, electrical, and computer engineering and debated what engineering might mean for software.
The NATO Science Committee sponsored two conferences[3] on software engineering in 1968 (Garmisch, Germany — seeconference report) and 1969, which gave the field its initial boost. Many believe these conferences marked the official start of the profession of software engineering.

1965 to 1985: The Software Crisis[edit]

Software engineering was spurred by the so-called software crisis of the 1960s, 1970s, and 1980s, which identified many of the problems of software development. Many software projects ran over budget and schedule. Some projects caused property damage. A few projects caused loss of life.[4] The software crisis was originally defined in terms of productivity, but evolved to emphasize quality. Some used the term software crisis to refer to their inability to hire enough qualified programmers.
  • Cost and Budget Overruns: The OS/360 operating system was a classic example. This decade-long[citation needed] project from the 1960s eventually produced one of the most complex software systems at the time. OS/360 was one of the first large (1000 programmers[citation needed]) software projects. Fred Brooks claims in The Mythical Man Month that he made a multi-million dollar mistake of not developing a coherent architecture before starting development.
  • Property Damage: Software defects can cause property damage. Poor software security allows hackers to steal identities, costing time, money, and reputations.
  • Life and Death: Software defects can kill. Some embedded systems used in radiotherapy machines failed so catastrophically that they administered lethal doses of radiation to patients. The most famous of these failures is theTherac-25 incident.
Peter G. Neumann has kept a contemporary list of software problems and disasters.[5] The software crisis has been fading from view, because it is psychologically extremely difficult to remain in crisis mode for a protracted period (more than 20 years). Nevertheless, software - especially real-time embedded software - remains risky and is pervasive, and it is crucial not to give in to complacency. Over the last 10–15 years Michael A. Jackson has written extensively about the nature of software engineering, has identified the main source of its difficulties as lack of specialization, and has suggested that his problem frames provide the basis for a "normal practice" of software engineering, a prerequisite if software engineering is to become an engineering science. {Michael Jackson, "Engineering and Software Engineering" in S Nanz ed, The Future of Software Engineering, Springer Verlag 2010; Michael Jackson, Problem Frames: Analyzing and Structuring Software Development Problems; Addison-Wesley, 2001}.

1985 to 1989: No Silver Bullet[edit]

For decades, solving the software crisis was paramount to researchers and companies producing software tools. The cost of owning and maintaining software in the 1980s was twice as expensive as developing the software. • During the 1990s, the cost of ownership and maintenance increased by 30% over the 1980s. • In 1995, statistics showed that half of surveyed development projects were operational, but were not considered successful. • The average software project overshoots its schedule by half. • Three-quarters of all large software products delivered to the customer are failures that are either not used at all, or do not meet the customer’s requirements.

Software projects[edit]

Seemingly, every new technology and practice from the 1970s to the 1990s was trumpeted as a silver bullet to solve the software crisis. Tools, discipline, formal methods, process, and professionalism were touted as silver bullets:
  • Tools: Especially emphasized were tools: structured programmingobject-oriented programmingCASE tools such as ICL's CADES CASE system, Adadocumentation, and standards were touted as silver bullets.
  • Discipline: Some pundits argued that the software crisis was due to the lack of discipline of programmers.
  • Formal methods: Some believed that if formal engineering methodologies would be applied to software development, then production of software would become as predictable an industry as other branches of engineering. They advocated proving all programs correct.
  • Process: Many advocated the use of defined processes and methodologies like the Capability Maturity Model.
  • Professionalism: This led to work on a code of ethics, licenses, and professionalism.
In 1986, Fred Brooks published his No Silver Bullet article, arguing that no individual technology or practice would ever make a 10-fold improvement in productivity within 10 years.
Debate about silver bullets raged over the following decade. Advocates for Adacomponents, and processes continued arguing for years that their favorite technology would be a silver bullet. Skeptics disagreed. Eventually, almost everyone accepted that no silver bullet would ever be found. Yet, claims about silver bullets pop up now and again, even today.
Some interpret no silver bullet to mean that software engineering failed. However, with further reading, Brooks goes on to say, “We will surely make substantial progress over the next 40 years; an order of magnitude over 40 years is hardly magical ...”.
The search for a single key to success never worked. All known technologies and practices have only made incremental improvements to productivity and quality. Yet, there are no silver bullets for any other profession, either. Others interpret no silver bullet as proof that software engineering has finally matured and recognized that projects succeed due to hard work.
However, it could also be said that there are, in fact, a range of silver bullets today, including lightweight methodologies (see "Project management"), spreadsheet calculators, customized browsers, in-site search engines, database report generators, integrated design-test coding-editors with memory/differences/undo, and specialty shops that generate niche software, such as information websites, at a fraction of the cost of totally customized website development. Nevertheless, the field of software engineering appears too complex and diverse for a single "silver bullet" to improve most issues, and each issue accounts for only a small portion of all software problems.

1990 to 1999: Prominence of the Internet[edit]

The rise of the Internet led to very rapid growth in the demand for international information display/e-mail systems on the World Wide Web. Programmers were required to handle illustrations, maps, photographs, and other images, plus simple animation, at a rate never before seen, with few well-known methods to optimize image display/storage (such as the use of thumbnail images).
The growth of browser usage, running on the HTML language, changed the way in which information-display and retrieval was organized. The widespread network connections led to the growth and prevention of international computer viruses on MS Windows computers, and the vast proliferation of spam e-mail became a major design issue in e-mail systems, flooding communication channels and requiring semi-automated pre-screening. Keyword-search systems evolved into web-basedsearch engines, and many software systems had to be re-designed, for international searching, depending on search engine optimization (SEO) techniques. Human natural-language translation systems were needed to attempt to translate the information flow in multiple foreign languages, with many software systems being designed for multi-language usage, based on design concepts from human translators. Typical computer-user bases went from hundreds, or thousands of users, to, often, many-millions of international users.

2000 to Present: Lightweight Methodologies[edit]

With the expanding demand for software in many smaller organizations, the need for inexpensive software solutions led to the growth of simpler, faster methodologies that developed running software, from requirements to deployment, quicker & easier. The use of rapid-prototyping evolved to entire lightweight methodologies, such as Extreme Programming (XP), which attempted to simplify many areas of software engineering, including requirements gathering and reliability testing for the growing, vast number of small software systems. Very large software systems still used heavily-documented methodologies, with many volumes in the documentation set; however, smaller systems had a simpler, faster alternative approach to managing the development and maintenance of software calculations and algorithms, information storage/retrieval and display.

Current Trends in Software Engineering[edit]

Software engineering is a young discipline, and is still developing. The directions in which software engineering is developing include:
Aspects
aspects help software engineers deal with quality attributes by providing tools to add or remove boilerplate code from many areas in the source code. Aspects describe how all objects or functions should behave in particular circumstances. For example, aspects can add debugginglogging, or locking control into all objects of particular types. Researchers are currently working to understand how to use aspects to design general-purpose code. Related concepts includegenerative programming and templates.
Agile
agile software development guides software development projects that evolve rapidly with changing expectations and competitive markets. Proponents of this method believe that heavy, document-driven processes (like TickITCMM andISO 9000) are fading in importance[citation needed]. Some people believe that companies and agencies export many of the jobs that can be guided by heavy-weight processes[citation needed]. Related concepts include extreme programmingscrum, and lean software development.
Experimental
experimental software engineering is a branch of software engineering interested in devising experiments on software, in collecting data from the experiments, and in devising laws and theories from this data. Proponents of this method advocate that the nature of software is such that we can advance the knowledge on software through experiments only[citation needed].
Model-driven
model driven design develops textual and graphical models as primary design artifacts. Development tools are available that use model transformation and code generation to generate well-organized code fragments that serve as a basis for producing complete applications.
Software product lines
software product lines is a systematic way to produce families of software systems, instead of creating a succession of completely individual products. This method emphasizes extensive, systematic, formal code reuse, to try to industrialize the software development process.
The Future of Software Engineering [6] conference (FOSE), held at ICSE 2000, documented the state of the art of SE in 2000 and listed many problems to be solved over the next decade. The FOSE tracks at the ICSE 2000 [7] and the ICSE 2007[8]conferences also help identify the state of the art in software engineering.

Software engineering today[edit]

The profession is trying to define its boundary and content. The Software Engineering Body of Knowledge SWEBOK has been tabled as an ISO standard during 2006 (ISO/IEC TR 19759).
In 2006, Money Magazine and Salary.com rated software engineering as the best job in America in terms of growth, pay, stress levels, flexibility in hours and working environment, creativity, and how easy it is to enter and advance in the field.[9]

Prominent Figures in the History of Software Engineering[edit]

Saturday, December 13, 2014

MS Excel Basic Formulas

Formulas and Functions




A formula is an expression which calculates the value of a cell. Functions are predefined formulas and are already available in Excel.
For example, cell A3 below contains a formula which adds the value of cell A2 to the value of cell A1.
Formula Example

For example, cell A3 below contains the SUM function which calculates the sum of the range A1:A2.
Function Example

Enter a Formula

To enter a formula, execute the following steps.
1. Select a cell.
2. To let Excel know that you want to enter a formula, type an equal sign (=).
3. For example, type the formula A1+A2.
Enter a Formula
Tip: instead of typing A1 and A2, simply select cell A1 and cell A2.
4. Change the value of cell A1 to 3.
Recalculation
Excel automatically recalculates the value of cell A3. This is one of Excel's most powerful features!

Edit a Formula

When you select a cell, Excel shows the value or formula of the cell in the formula bar.
Formula Bar
1. To edit a formula, click in the formula bar and change the formula.
Edit a Formula
2. Press Enter.
Edited Formula

Operator Precedence

Excel uses a default order in which calculations occur. If a part of the formula is in parentheses, that part will be calculated first. It then performs multiplication or division calculations. Once this is complete, Excel will add and subtract the remainder of your formula. See the example below.
Operator Precedence
First, Excel performs multiplication (A1 * A2). Next, Excel adds the value of cell A3 to this result.
Another example,
Parentheses
First, Excel calculates the part in parentheses (A2+A3). Next, it multiplies this result by the value of cell A1.
Advertisement

Copy/Paste a Formula

When you copy a formula, Excel automatically adjusts the cell references for each new cell the formula is copied to. To understand this, execute the following steps.
1. Enter the formula shown below into cell A4.
Copy a Formula Example
2a. Select cell A4, right click, and then click Copy (or press CTRL + c)...
Click on Copy
...next, select cell B4, right click, and then click Paste under 'Paste Options:' (or press CTRL + v).
Click on Paste
2b. You can also drag the formula to cell B4. Select cell A4, click on the lower right corner of cell A4 and drag it across to cell B4. This is much easier and gives the exact same result!
Drag a Formula
Result. The formula in cell B4 references the values in column B.
Copy a Formula Result

Thursday, December 4, 2014

How to Add two numbers on C++

#include <iostream> using namespace std; int main() {
int n1,n2;
cin>>n1,n2;
sum=n1+n2; Cout<<sum;
return 0;
}

Monday, December 1, 2014

How To Use MS WORD


Microsoft Word 2007 is new and greatly improved. If the smoothly designed Word is proving too much to handle, here's a quick guide of how to use it.

Method 1 of 2: The Basics

  1. Use Microsoft Office Word 2007 Step 2 Version 2.jpg
    1
    Let's start off with the toolbar. The toolbar has seven different tabs. They are:HomeInsertPage LayoutReferencesMailingsReview, and View.
    Ad
  2. Use Microsoft Office Word 2007 Step 3 Version 2.jpg
    2
    Home: This tab is the basic word processing tools, like for example, size, font, color, style, etc. You will find that you're going to go here most of the time.
  3. Use Microsoft Office Word 2007 Step 4 Version 2.jpg
    3
    Insert: This tab contains more tools than the Home tab, and it's really for inserting things. They are really helpful, and they're just not used for basic word processing. They're also used for a professional document. Some things you can do in this tab are add clip art, add links, etc.
  4. Use Microsoft Office Word 2007 Step 5 Version 2.jpg
    4
    Page Layout: This tab is mostly there for adding the final touch to your document and fixing it a little. You can change the orientation, the size of your document, and pretty much you can do things you normally can't do basically.
  5. Use Microsoft Office Word 2007 Step 6 Version 2.jpg
    5
    References: This tab is for inserting references. For example, adding citations, a table of contents, footnotes, bibliography, captions, etc.
  6. Use Microsoft Office Word 2007 Step 7 Version 2.jpg
    6
    Mailings: This tab is for making envelopes and labels, starting a mail merge (sending the same document to different people),
  7. Use Microsoft Office Word 2007 Step 8 Version 2.jpg
    7
    Review: This tab is for things like spelling and grammar, translating, a dictionary, a thesaurus, adding a comment, etc.
  8. Use Microsoft Office Word 2007 Step 9 Version 2.jpg
    8
    View: This tab has something to do with how your document looks like. It's sort of similar to Page Layout, except it's more of adjusting things, like zoom in, zoom out, etc.
  9. Use Microsoft Office Word 2007 Step 10 Version 2.jpg
    9
    Format: This tab only applies with pictures, clip art, word art, or photos. This tab is for adjusting the image(s) and text, like changing the brightness, contrast, effect, color, etc.

Method 2 of 2: Making Your First Document

  1. 1
    Let's go on to the part where you make your first document. Read on to find out what to do.
  2. Use Microsoft Office Word 2007 Step 12 Version 2.jpg
    2
    Open up Microsoft word and start a new blank document. You do this by clicking on the icon that looks like a blank page with one corner turned down.
  3. 3
    Begin the process by saving.
    • To save, you click on the circular Microsoft Office logo in the upper left hand corner of the window. You should see a little menu pop-up with multiple options.
      Use Microsoft Office Word 2007 Step 13Bullet1 Version 2.jpg
    • Leave the cursor over the words Save As. You should always do Save Aswhen you're making a new document. It gives you the option of what kind of document you want it to be, where you're going to save it, and what the name of the document will be.
      Use Microsoft Office Word 2007 Step 13Bullet2 Version 2.jpg
    • Up will pop a window.
      Use Microsoft Office Word 2007 Step 13Bullet3 Version 2.jpg
  4. Use Microsoft Office Word 2007 Step 14 Version 2.jpg
    4
    There are many different kinds of file type options. Click on Word 97-2003 Document or Word DocumentWord 97-2003 Document allows other people to see it, even if they have older versions of Word and haven't installed the Office 2007 Compatibility Pack, while if you use Word Document, only people that have Word 2007 or the Compatibility Pack can open it. Either one is a good choice.
  5. Use Microsoft Office Word 2007 Step 15 Version 2.jpg
    5
    If this is your first time using Microsoft Word Office 2007, create a new folder for your documents. Just type something like "Sample Documents" or something you want to name it.
  6. Use Microsoft Office Word 2007 Step 16 Version 2.jpg
    6
    After you're done creating a folder and saving the document, go back to the empty document. Choose a font that you think is a style you like. Some suggested fonts are Times New RomanCalibri (Body), and Arial. The picture below shows you an example of what to do.
  7. Use Microsoft Office Word 2007 Step 17 Version 2.jpg