Monday, 28 March 2011

breadth of possible applications:

Following areas of software indicate the breadth of possible applications:

1> System software.

 System software is a set of programs written for other service programs. Some systems software (such as compilers, editors and file management utilities) complex process, but certain, information structures. Other fields of application systems (such as operating system components, drivers, telecommunicationsprocessors) process largely uncertain data. In any case, the area of ​​system software is characterized by heavy interaction with computers, heavy use of multiple users simultaneously work that requires planning, resource sharing, and complex process management, complex data structures, and several external interfaces.

2> real-time software.

The software monitors, analyzes, controls the real-world events as they occur is called real time. Elements of real-time software includes data collection component that collects and formats the information from the environment, the analysis component that converts the information in accordance with the requirements of applications, management and output component that responds to the environment, and monitoring component, which coordinates all components to real-time response (typically within 1 ms to 1 second) can be saved.

3> Business software.

 Business information processing is the largest field of application software. Discrete "systems (such as payroll, accounts receivable / payable, inventory) turned in the management information (MIS), software that addresses one or more large databases containing business information. Programs in the restructuring of existing data in a form that facilitates business operations or management decisions. In addition to traditional applications of data processing, business applications software also includes interactive computing (eg, pointof-sale transaction processing).

4> Engineering and scientific applications.

 Engineering and science programs were characterized by "number crunching" algorithms. Scope extends from astronomy to Volcanology, from automotive stress analysis Shuttle orbital dynamics, and from molecular biology to computer-aided manufacturing. However, modern applications in the engineering and scientific fields depart from the traditional computational algorithms. Computer-aided design, simulation and other interactive applications began to take real-time performance and even system software.

5> Embedded software.

 Intellectual products have become commonplace in almost all consumer and industrial markets. Embedded software is in ROM and is used to control products and systems for consumer and industrial markets. Embedded software can perform very limited and esoteric functions (eg keyboard control for microwave ovens) or provide significant functions and control (eg, digital motor function, such as fuel control panel displays, and braking systems). Personal computer. Private market computer software, resulted in the last two decades. Word processing, spreadsheets, computer graphics, multimedia, entertainment, database management, personal and business financial applications, external networks, and database access only a few hundred applications. Web-based application. Websites withdrawal browser software that includes executable instructions (eg, CGI, HTML, Perl, or Java), and data..

Software Application

Software for any situation in which a certain number of process steps (eg algorithm) were identified (with the exception of this rule in the software expert system and neural network software).
Content and identify major factors influencing the nature of the software. Content refers to the meaning and form of input and output data. Using a variety of business applications such as highly structured data entry (database) and formatted "reports." The software that controls the machine (eg, digital program-controlled) take a limited discrete data elements and structure of production of individual machine commands in rapid succession. Information related to determining the predictability of information procedure and deadlines.

Engineering program receives the data to analysis algorithm (s) without interruption to meet defined and produce details of the report or graphical format. Such programs are defined. Multiuser operating system, on the other hand, takes an input variable and arbitrary deadlines and execution of algorithms can be interrupted by external circumstances, and the output, which varies depending on the environment and time.

 The use of these properties are undefined. It's a bit difficult to make significant general categories of software development. With increasing complexity of software, various compartments disappeared. The following areas of software to show the breadth of possible applications:</pre>

crises of the software.

Many industry observers (including this writer) have characterized the problems of software development as a "crisis." More than a few books (eg, [GLA97] [FLO97], [YOU98a]) said that the impact of some of the most spectacular software failures over the past decade has occurred.

However, the great successes achieved by the software industry, many to question whether the term software crisis is still relevant. Robert Glass, author of several books on software failures, are representative of those that have a change of heart. He claims [GLA98]. I see my failure stories and see exception reporting,
spectacular failures in the midst of many successes, a cup that [now] almost complete "It is true that software people more often than they succeed. It is also true that the software crisis predicted 30 years ago that never seemed to materializ.

 What we really might have something else. The crisis of the word is defined in Webster's dictionary as, but in terms of overall software quality and speed of computer systems basis and products are developed "a turning point in the course of something crucial or decisive stage time or event." There is no "turning point," not "time critical" only slow, evolutionary change, punctuated by explosive technological changes in discipline related to software. The crisis of the word has a different definition: "turning point in the course of a disease when it becomes clear whether the patient will live or die."

This definition can give us a clue about the nature the real problems that plague software development. What we really could have better characterized as a chronic pain affliction.2 word is defined as "anything causing pain or distress." But the definition of Chronic surname is the key to our argument. "Length long or often repeated, continuing indefinitely" It is more correct problems in the software industry have to endure as a chronic pain described as a crisis .

mythe of the software.



1 management myth.

Myths & Management. Managers with responsibilities like managing software in most disciplines, often under pressure to maintain budgets, keep schedules from slipping, and improve quality. As a person drowning in a straw snap, snap a driver software often believe in a myth software, if the trust will print (even temporarily) reduced. Myth: We have a book full of standards and procedures for building software will not let people give me everything they need to know the reality: The Book of standards may very well exist, but it used? Software practitioners are aware of its existence? Will it reflect modern software engineering practice? Is it complete? Is streamlined to improve time to delivery, while another focuses on maintaining quality? In many cases the answer to all these questions is "no." Myth: My people have state-of-art software, after all, we buy them new computers. Reality: It takes a lot more than last mainframe model workstation or PC, high quality software development. Computer Aided Software Engineering (CASE) tools are more important than hardware to achieve quality and productivity, but most software developers still use them effectively. 

2> Client myths. A client who is a computer software application, a person at the next table, a technical group down the hall, / marketing sales department or an outside company that requested the software under contract. In many cases, the customer believes myths about software because software managers and practitioners improve much misinformation. Myths lead to false expectations (by the client) and ultimately, dissatisfaction with the developer. Myth: A general statement of objectives is sufficient to begin writing programs-we can fill in details later. Reality: a definition of weak up front is the leading cause of failed software efforts. A formal and detailed description of the information domain, function, behavior, performance, interfaces, design constraints, and evaluation criteria are essential. These properties can be determined only after thorough communication between customer and developer. myths 

3> doctor. Myths still believed by doctors of the programs are guided by 50 years of cultural development. During the early days of software development was considered an art form. Old ways and attitudes die hard. Myth: If we write the program and get to work, our work is done. Reality: Someone once said that "The sooner you start writing code, the longer it will take you to get done." Current data ([LIE80] [JON91] [PUT97]) show that between 60 and 80 per cent of all software efforts spent will be spent after it is delivered to the client for the first myth:. Until I get. program "run" I have no way to assess the quality of its reality: One of the mechanisms of effective quality assurance programs can be applied in creating a formal draft technical review reviews Software (described in Chapter 8). a "quality filter" which are found to be more effective than testing for finding certain classes of software defects.

five levels of process maturity.

five levels of process maturity, which are defined as follows:

 Level 1: Home. The software process is characterized as ad hoc and sometimes chaotic. Few processes defined and success depends on individual effort.

Level 2: Repeatable. management processes are based project established to track cost, schedule and functionality. Necessary process discipline is in place to repeat earlier successes on projects with similar applications.

 Level 3: Defined. The process software for business management and engineering is documented, and integrated into a whole organization standard software process. All projects use a documented and approved version of the process of organizational development and software support. This level includes all characteristics defined for level 2.

 Level 4: Manage. The rules of the software process and product quality are collected. Both the software process and products are quantitatively understood and controlled with detailed measurements. This level includes all characteristics defined for level 3.

 Level 5: Optimizing. continuous process improvement is enabled by quantitative information and the process of testing ideas and innovative technologies. This level includes all characteristics defined for level 4.

linear model::

need of linear process model::

Software requirements analysis. The requirements gathering process is strengthened and focused specifically on software. To understand the nature of the program (s) to be built, the software engineer ("analyst"), the information domain  for the software, as well as required function, behavior, performance and interface means . Requirements for both the system and software are documented and reviewed with the customer.

Design. Software design is a multi-process Actually It focuses on four different attributes of a program: data structure, software architecture, interface representations, and procedural (algorithmic) detail. The design process translates requirements into a representation of the software quality assessments for encoding start. Like requirements, the design documented and become part of the software configuration. Code Generation. The design must be translated into a machine-readable form. The code generation step Perform this task. If design is performed in a detailed Sage, code generation can be mechanistically achieved.

 Test. Once code is generated, program testing begins. The testing process focuses on the logical operation of the software, ensuring that all settings tested, and the functional internal and external, that is, conducting tests errors uncovered and ensure defined input will produce actual results that agree with expected results.

Support. Software will definitely undergo change once it is delivered to the client (a possible exception is embedded software). Change will occur because I encountered errors because the software must be adapted to changes in the external environment (eg, due to a change needed a new operating system or peripheral), or because the customer requires functional or performance improvements to accommodate. Software support / maintenance reapplies each of the preceding phases of an existing program rather than a new one..

paradigm is also problematic for the following reasons in prototyping model:

paradigm is also problematic for the following reasons:

1 The customer gets what appears to be a working version of the software, aware that the prototype took place, and "the gum and baling wire," not knowing the rush to get it working no one considers the overall quality of the software or the long-term sustainability.
Once you know that the product should be rebuilt to a high standard of quality maintenance, customer cry poor and say that "some fixes" applied to a working prototype products. Too often, software development management relents.

 2. The developer often makes implementation compromises to develop a prototype quickly find a job. The right operating system or programming language can only be used as it is available and known to an inefficient algorithm can be implemented to demonstrate the ability. After a while, the developer can get accustomed to the elections and forget the reason why they should have been appropriate. The less than ideal solution, is now an important part of the system. Although problems may occur, can be an effective prototyping software development paradigm. The key is to change the rules of the game to begin with, it is the customer and developer must both agree that the prototype is built on a mechanism for defining requirements. Subsequently discarded (at least in part), and the actual software is designed for quality and sustainability..