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..

Increment model::



The incremental model combines elements of the linear sequential model (applied repeatedly) with the iterative philosophy of prototyping. Refer to Figure 2.7, the additional model applies linear sequences in a staggered manner as calendar time progresses.

Each linear sequence produces a deliverable "increment" of the software [MDE93]. For example, the developed word processing software using progressive paradigm can do basic file management, editing and document production capabilities provides the first increment, more sophisticated editing and document production capabilities in the second generation, spelling and grammar in the third increment, and advanced page layout capabilities in the fourth pass .

It should be noted that the process flow for any increase may include prototyping paradigm. When a stepwise model is used, the first increase is often a core product. These are the basic requirements are addressed, but many extra features (some known, others unknown) remains unresolved. The core product of the customer (or undergo a thorough review). Due to the use and / or evaluation prepared a plan for the next interval. The plan focuses on changing the core product to better meet customer needs and providing additional features and functions.

why need process model??


To solve the real problems in an industry setting, a software engineer or a team of engineers, a development strategy that involves the process, methods of take, and tools layer described in Section 2.1 0.1 and the generic phases Section 2.1.2. This approach is often referred to as a process model or a software engineering paradigm. A process model for software engineering are selected based on the nature of the project and apply the techniques and tools used and the controls and deliverables required. In an intriguing paper on the nature of software processes, LBS Raccoon [RAC95] used fractals as the basis for a discussion of the true nature of software processes

characteristics of software.


<pre> The software is a logical rather than physical system component. Therefore, the software features that are significantly different from those of hardware: 

1. The software is developed or engineered, it is not available in the classic sense. 

Although there are some similarities between software development and hardware production, two activities are fundamentally different. The two activities, we have quality as defined by the program? An excellent book of essays on software operation, Tom DeMarco claims [DEM95] counterpoint. He said: "Instead of asking:" Why does software cost so much? "We must begin by asking" What have we done to allow the software today, it costs so little? "The answer to this question will allow us to continue the extraordinary level of achievement that continues to distinguish the software industry." The software was designed and manufactured. commitment was achieved through good design, and production phase, the hardware may introduce problems related to quality, the software is not able (or easily corrected). Both activities rely on people, but relations between the executive and work to implement a completely different . Both activities and the need for "product", but the different approaches to construction. The cost of the focus of software engineering. This means that projects can be managed as projects of manufacturing software.

 2 The software does not "wear out".

the failure rate as a function of the hardware of the time. Relationship, often referred to as "bath curve" indicates that the hardware is the relatively high failure rate in the world (the faults are often associated with the design flaw or manufacturing), the fault is corrected and the level of failure rate falls steady-state (ideally, the choice is relatively low) for a while. Over time, however, increases again as the failure rate of hardware components suffer the cumulative effects of dust, vibration, abuse, extreme temperatures can, and many other environmental ills. Suffice to say, the hardware begins to wear. The software is not sensitive to the environmental problems that cause equipment wear. In theory, therefore, that there must be no rate curve software to be in the shape of the curve "idealized" .ndetected failures will cause high failure rates in the life of the program. However, they must be corrected (ideally, without introducing other errors), and the curve flattens idealized curve exceeds the gross shown.The real failure of the models (see section 8 for more information) to for the software. However, it is clear that indirectly, the software does not wear out. But it is getting worse! This is clearly contrary to the best explanation "real curves" feature shows wear on the difference between hardware and software. If a hardware component wears out, replacing it with spare parts. There is no software spare parts. All software failure indicates an error or a design process to transfer the design of executable machine code. So involved, software maintenance is much more complex than the hardware maintenance. 

3 Although the industry is moving towards fulfilling its core component, the software is still more personalized. 

Consider the manner in which the control hardware for computer-based products and building design. design engineer draws a simple diagram of digital circuits, doing some basic analysis to ensure that the appropriate function to achieve, then go to the shelf, a catalog of digital content. Each integrated circuit (IC or chip called), part number and interface validation, functional well-defined..

what is software?

Software (1) instructions (computer software) that when executed provide desired function and performance, (2) data structures that enable programs to adequately manipulate information, and (3) documents that describe the operation and using the program. There is no doubt that other, more complete definitions will be provided. But we need more than a formal definition.