Software development process development
साँचा:Software development process
The software development process is a structure imposed in the development of a software product. Its synonyms are software life cycle and software process. There are several models for such procedures. Each of these describes access to various types of actions or activities that occur during the process.
Analysis
The largest body of software development organizations implement procedural methods. Many of them are in the defense industry, for which to obtain contracts in the United States, evaluation is required based on 'process models'.
The international standard is ISO 12207 for describing the method of selection, implementation and inspection of life cycle for software.
Finding a repeatable, predictable process that improves productivity and quality has been a goal for decades. Some people try to organize the apparently difficult task of writing software or give definite certainty. Others use project management techniques for writing software. Without project management, the delivery of software projects can be easily delayed or cost may exceed the budget. Due to the large number of projects that do not meet their expectations regarding the timing of functionality, cost, or delivery, effective project management is lacking.
Organizations can create a Software Engineering Process Group (SEPG), which is the focal point for improvement in the process. This group made up of different skills line professionals is located at the center of the collaborative effort of each person involved in improving the software engineering process. Software development activities The activities of the software development process were featured in the waterfall model. There are many other models to illustrate this process. Plan
Finding important work requirements in designing software products or analyzing requirements. In the case of customers who want the end result, they have an intangible idea in particular, and not what the software should do. At this point, incomplete, obscure or contradictory requirements are identified by skilled and experienced software engineers. Often performing live code (code) can lower the risk of necessity being wrong.
Once the collective requirements have been gathered from the customer, analysis of the work area of development should be determined and expressly express it. This is often called a work-area document.
Due to the cost of the cost or results of ambiguous requirements at the beginning of development, some functionality may be out of the project area. If development is done externally, then this document can be considered as a legal document so that if there is ever a dispute, then any suspicion can be made to the client regarding the promises made to him. Design
Domain analysis is often the first step in creating a new software. Whether it is any enhancements in current software, a new program (application), a new subsystem or a whole new system. Assuming that developers (including analysts) are not knowledgeable in the subject areas of new software, the first task is to find the so-called 'domain' of the software. The more knowledgeable they are already in relation to the domain, the lesser work is needed. Another objective of this work is to talk to analysts who collect and collect the requirements with experts in that field, in their own vocabulary of the domain, to better understand the statements expressed by these experts (field experts). Could be developed. If the analyst does not use the proper terminology then it is likely that their things will not be taken seriously. Thus, this phase will be an important introduction to finding and collecting the requirements. If an analyst has not done the right thing, there can be confusion: "I know that you believe that I understand what you think about what I said, but I am not sure about that You understand that I did not mean what you heard ". Specification
The specification is the work under which the software written in it might be described correctly. In practice, the most successful specifications are already written to make the well-developed programs more understanding and more favorable. Although there is often a detailed description of very important software systems in terms of security before development of the program. Specifications are the most important for external interfaces, which should remain stable. A good way to determine whether the specifications are adequately accurate is to review the documents by third parties to ensure the ability to accurately determine the requirements and conditions of use. The structure
The texture of a software system or software structure is an abstract representation of that mechanism. Regarding the structure is to ensure that the software system will meet the product requirements, as well as to ensure that future requirements can be discussed. Structural steps discuss interfaces (interfaces) between software systems and other software products, as well as the underlying hardware or host operating system. Implementation, testing and documentation
is part of the implementation process where software engineers write a program of code (code) for the project.
Software testing software is an integral and important part of the development process. This part of the process ensures that bugs are identified as early as possible.
The design of the internal design of the software is done during the entire development to enhance future maintenance and software. This may include authoring an API, whether it is external or internal. Deployment and Maintenance
After proper testing of the code, the deployment starts, it is approved for release and sale, otherwise it is distributed in a production environment.
Software training and support are important, because a large percentage of software projects fail due to the fact that developers (developers) do not understand that if a person does not make the final use of the software, then The time and plan involved in developing the software by the developing team is no value. People are often resistant to change and avoid taking risks in an unfamiliar area. Therefore, it is very important to have training classes organized for new customers of your software, as part of the deployment phase.
Software maintenance (maintenance) and its enhancement may take longer than expected due to the initial development of the software to meet new inventions or new requirements. To improve the unexpected problem, it is necessary to add a code that is not appropriate in the original design, or it may also be that a customer is requesting more functionality and the code can be added to accommodate their request. is. In this phase customers receive calls and you see that before testing your customer, was your widespread adequacy to solve your test problems. If the labor cost of the maintenance phase is more than 25% of the labor costs of the previous steps, then it is possible that the overall quality of at least one pre-stage is not good. In that case, the management should consider the option to rebuild the system before maintaining the maintenance costs unchecked.
In order to allow development teams to be connected by interfaces with customers / sector teams who examine software identifying any real or perceived subjects, this step often deploys bug tracking system tools. Are done. These software provide an adaptive process for reviewing, applying both open source and commercial licensed topics. The model Iterative processes
In order to help those involved in removing critical issues from the very first time of the problem, iterative development determines the structure of small but always larger parts for a software project. Iterative processes are preferred by commercial developers, because it allows the possibility of reaching customer's design goals, unable to define their demand.
Agile (efficient) software development processes are built on the foundation of repetitive development. They add more public-centered views than that of a more light, traditional approach to that foundation. Agile procedures use feedback (feedback) rather than plan as primary control system. Feedback is driven by regular tests and the release of software that is developing. XP: Extreme Programming
Extreme Programming (XP) is the best known iterative process. In XP than earlier "batch" processes, steps are completed in extremely small (or "continuous") steps. The first step (voluntarily incomplete) passes through those steps, which may take one day or one week compared to the months and years of each full phase of the waterfall model. First of all, the person points to computerized (auto) tests to provide concrete goals for development. The next step is the coding (by the pair of programmers), which is completed after the passage of all the tests and the need for a more testing by the programmer. Design and structure arises from refactoring and comes after coding. The design is done by those people who do coding. (Only the last feature - the combination of design and code - is common to all other agile processes. Incomplete but functional system is used effectively or displayed for users (at least one of them in the development team). (Some subsets) At this point, specialists start the test writing for the next most important part of the system. Waterfall procedures
The waterfall model represents a process where developers (developers) have to follow these steps sequentially:
The way the structure of the constructor does not change after the structure is formed, after the completion of each step the process progresses in its next step.
It is a misconception that in the initial steps there is no mechanism for improving the errors (for example, in the requirements). In fact, it is the point of management of requirements at this place, which includes control over the changes. The defendant's logic is an increased cost significantly in relieving the problems by the critics of the process by the introduction of recurrence. This is also a factor which increases the time of delivery and also makes this process increasingly unpopular even in high risk projects.
This approach is used in high risk projects, especially in major defense related contracts. Problems in waterfall are not generated by "immature engineering functioning in particular analysis and management of requirements". Studies of failure of the specification rate of the DOD-STD-2167 implementing the waterfowl have shown that in particular in the collection of advance requirements, the more carefully the project follows its process, the unused characteristics in the present form by the project The more likely it is to release.
Often the said steps are part of the review between the customer and the supplier. In fact, the supplier can develop at risk and develop the design, but it must sell the design to the Milestone Critical Design Review (CDR) at a lower price. It displaces the burden of engineering from engineers to customers, who have other skills. Other models Capability Maturity Model Integration Capacity maturity model integration (CMMI) is one of the major models and is based on best practices. Independent assessments classify classification methods based on methods of follow-up, rather than those processes or the quality of the software produced. CMMI has replaced CMM. ISO 9000 ISO 9000 describes the standards for formally organizing processes with documentation. ISO 15504 ISO 15504, also known as Software Process Improvement Capability Determination (SPICE), is "a framework for evaluating software processes". The objective of this standard is to establish a clear model for comparison of the process. SPICE is also used more like CMMI. It prepares processes to manage, control, guide and monitor software development. Then this model is used to evaluate the development done by a development organization or project team during software development. This information is analyzed to identify weaknesses and conduction correction. It also recognizes the powers which can be continued for that organization or party or can be integrated into normal practice. six Sigma Six Sigma is a method of managing process changes using statistics and statistical analysis to evaluate or improve the operating performance of a company. It works by identifying and removing defects in construction and service-related processes. The maximum permissible defects are 3.4 per million occasions. However, Six Sigma is construction-oriented and it needs to do more research in relation to its relevance for the development of the software. Test driven development Test Driven Development (TDD) is a useful output of Agile Camp, but some people suggest that it generates a problem. TDD requires that a class test be written before writing a class. Then it can be thought that the first is to "find out" that class and the second is to write a test once actually used by the TDD and to give a clear detail to the models approved by the class. In fact this Agile approach will, in particular, resist the so-called Agile modeling, where developers are encouraged to quickly sign through light design. However, to get the claimed benefits of TDD, a complete design of class and responsibilities (captured experiment, for example, design by contract) is not necessary. It is calculated in the form of iterative development, in which the methodology of design is hampered, but it does not interfere in the iterative design - because of the huge improvement in the quality of the code and re-engineering can negate the usefulness of TDD. Formal methods
Formal methods are mathematical approaches to solving problems of software (and hardware) at the requirements, specifications and design level. Examples of formal methods include B-Method, Petri Nets, Prove Automated Theorem, RAISE and VDM. Various formal specification notations, such as Z notation are available. More generally, automation theory (Automata theory) can be used to design and affirm the trend of application (program) by designing a system of finite state devices.
The finite state mechanism (FSM) based systems allow executable software specification and subway for traditional encryption (see virtual finite state machine or program driven finite state machine).
Formal methods can be more likely to be applied in the software, especially where the software is important in terms of security. Software safety guarantee standards, such as the DO178B, demand formal methods on the highest level of classification (A level).
Software in addition to application of model-driven structure allowing the performance of other features (such as specification and Java model language specifications) and especially execution of designs (if not specification), software The development classification is spreading.
Another emerging trend in the development of software is to write a specification (usually a change of FOL) in some form of logic and then execute that argument as if it were a program. The OWL language based on the description logic is an example. There is a work going on in mathematical form and logically to mimic some versions of English (or other natural language) forms and execute the argument directly. Examples are controlled natural English language and Internet business logic, which do not have to control the dictionary or syntax. A special feature of bidirectional English-logical mapping and system of direct execution of logic is that their results in English can be explained at the professional or scientific level.
The Government Accountability Office, 2003, has made the following recommendations following the guidance of the agency for the management of major acquisition systems in the report of modernization of air traffic control of the Federal Aviation Administration in 2003. Also see them
साँचा:Software Engineering
wiki
Comments
Post a Comment