Waterfall Model
Sometimes called the "Waterfall Model", the lifecycle paradigm demands a systematic, sequential approach to soft-ware development that begins at the system level and progresses through analysis, design, coding, testing, and maintenance. modeled after the conventional engineering cycle, the life cycle paradigm encompasses the following activities:
1. system engineering and Analysis
Because software is always part of a larger system, work begins by establishing requirements for all system elements and then allocating some subset of these requirements to software. this system view inessential when software must interface with other elements such as hardware, people, and data base. system Engineering and analysis encompass re-quarrymen's gathering at the system level with a small amount of top level design and analysis.
2. Software Requirements Analysis
The requirements gathering process is intensified and focuses specifically on software. to understand the nature of the Program (s) to be built, the Software Engineer ("analyst") must understand the information domain for the software, as well as requirked function, performance, and interfacing. re-quarrymen's for both the system and the software are wrongly ented.Software Development Network www.mscto.com
3. Design
Software design is actually a multistep process that focuses on three distinct attributes of the program: data structure, software architecture, and pro-caesural detail. the design process translates re-quarrymen into a representation of the software that can be assessed for quality before coding begins. like requirements, the design is already ented and becomes part of the software configuration.
4. CodingSoftware Development Network www.mscto.com
The design must be translated into a machine-readable form. The coding step performs this task. If design is already med in a detailed manner, coding cane accomplished mechanic istically.
5. Testing
Once code has been generated, program testing begins. the testing process focuses on the logical internals of the software, assuring that all statements have been tests to assure that defined input will pro-duce actual results that agree with required results
6. Maintenance
Software will undoubtedly, undergo change after it is delivered to the customer (a possible exception is embedded software ). change will occur be-cause errors have been encountered, because the software must be adapted to accommodate changes units external environment (e.g. A change required because of a new operating system or peripheral device ), or because the customer requires functional or performance enhancements, software maintenance applies each of the preceding life cycle steps to an existing program rather than a new one.Software Development Network www.mscto.com
The classic life cycle is the oldest and the most widely used paradigm for software engineering. however, over the past few years, criticism of the paradigm has caused even active supporters to question its applicability in all situations.
Among the problems that are sometimes encountered when the classic Life Cycle paradigm is applied are
(1) real projects rarely follow the sequential flow that the model proposes. Its operation always occurs and creates problems in the application on the paradigm.
(2) It is often difficult in the beginning for thecustomer to state all requirements explicitly. the classic life cycle requires this and has difficulty ac-accommodating the natural uncertainty that exists at the beginning of specified projects.
(3) The customer must have patience. a working version of the program (s) will not be available until late in the project time span. A major blunder undetected until the working program is reviewed can be disastrous.
Software has become critical to specified cially vital technologies that account for 12 million jobs and one trillion dollars of sales in the US alone. bandit continues to become central to more products, making creating new ones possible and cing cost or increasing functionality in existing ones. in addition, software products contribute indirectly to the delivery of your other important products and services such as banking telecommunications, and transportation.
For these reasons, software engineers face challenging times. as society becomes more dependent on software, engineers must increase customer Sates-faction, boost software-development productivity rates, and reduce product-defect rates. because software directly affects product users, the responsibility for customer satisfaction is increasing. with so many tasks dependent productivity can yield large eco-gnomic gains, while decreases in software-defect rates can prevent large economy mic losses. most importantly, where software supports life-critical tasks or life-saving research, decreasing defect rates and increasing productivity rates will save lives.
International expansion is another factor. na-Tins now views, as potential software consumers will themselves become software producers once they comprehend the huge economy mic role of software Pro-diction. these new sources of products will further broaden the choices for consumers and motivate the industry to stress customer satisfactions.
Software measurement is essential in our efforts to meet these challenges. measurement enables engineers to quanstmproduct reliability and performance, to isolate development process and product attributes that impact reliability and performance, and to demonstrate how process and product changes impact these attributes. further, measurement Lets develop-mint teams:
Set achievable goals, demonstrate their potential to meet these goals;
Track their progress, adjust processes to correct Out-Of Bounds conditions;
Demonstrate the impacts of these adjustment son meeting goals.
Translation:
Waterfall Mode
The lifecycle example is sometimes called the waterfall model, which requires software development to develop in a systematic and sequential manner from the system level to analysis, design, coding, testing, and maintenance. The software lifecycle example contains the following activities:
1. system engineering and Analysis
Since software is always a part of a large system, the job begins with the need to build the entire system element, and then divide these software requirements into subsets. When the software must interface with other factors such as hardware, people, and databases, the system viewpoint is indispensable. System Engineering and analysis includes system-level requirement collection and a small amount of high-level design and analysis.
2. Software Requirement Analysis
The requirement collection process is very important. It focuses on collecting requirements from the software perspective. To clarify what needs to be establishedProgramThe nature of the Software Engineer ("analyst") must understand the scope of information about the software and the required functions, performance and interfaces, and document the requirements of the system and software for the customer to view.
3. Design
Software design is actually a multi-step process. It focuses on three obvious features of the program: data structure, software architecture and process details. Before coding, the design process translates the requirements into evaluable software. Design should be documented and part of software configuration as needed.
4. Encoding
Software Development Network www.mscto.com
It must be designed to translate into a form that can be recognized by machines. The task in the coding stage is to do this. If the design is detailed, the coding can be completed by the machine.
5. Test
OnceCodeGenerate and test the program. The testing process focuses on the internal software logic to ensure that all statements are tested. External functions are mainly used to test the results that match the requirements under certain input conditions.
6. Maintenance
Without a doubt, the software must be modified after it is handed over to the user (except for embedded software ). Due to some errors, the software must be adjusted to adapt to changes in the external environment (for example, changes due to new operating systems or external devices ), or because users have higher requirements on functions and performance, modifications are inevitable. Software maintenance is performed for existing, rather than the aforementioned lifecycle steps of New Application applications.
The traditional life cycle examples were the earliest and most widely used in software engineering. Despite this, there have been criticism of this example in recent years, and even enthusiastic supporters have questioned whether it is suitable for all situations. The following problems may occur when using the traditional life cycle examples:
(L) The actual project seldom follows the sequence flow proposed in the pattern. When this example is used, repetition and problems often occur.
(2) It is often difficult to require users to explicitly put forward all requirements at the beginning. The traditional life cycle requires that many projects start with uncertain natural factors.
(3) The user needs patience. The working version of a program can only be used later than the project. If a major error is not detected during the work procedure review, this will be disastrous.
Software has become critical to commercial technologies. In the United States alone, such technologies have provided 12 million jobs, generating a sales volume of $1 trillion. Moreover, it will continue to become the core of more products, making many new products possible, and reducing costs or adding features to existing products. In addition, software products have indirectly contributed to many other important products and services, such as banking, telecommunications, and transport.
For these reasons, software engineers are facing challenges. As the society becomes more dependent on software, engineers must increase customer satisfaction, increase the productivity of software development, and reduce the product defect rate. As the software directly affects product users, the responsibility for ensuring customer satisfaction is increasingly increasing. Because so much work depends on software, a small increase in software development productivity can produce huge economic benefits. The reduction of IFU software defect rate can prevent huge loss of Site Resources. More importantly, if software supports life-and-death or life-saving research, its defect rate reduction and productivity improvement can save lives.
Software Development Network www.mscto.com
International development is another factor. Countries that are now considered as potential software consumers will become software producers once they realize the enormous economic impact of software production. These new software manufacturers will further expand the scope of customer selection and promote the industry's emphasis on customer satisfaction.
Software Development Network www.mscto.com
Software metering is essential in our work to address these challenges. Metering allows engineers to isolate the development process of product reliability and performance from product attributes, and verify how the development process and product changes affect these attributes. In addition, measurement enables the development team:
Determine achievable goals and verify their potential to achieve these goals;
Track their progress, adjust the development process, and correct unavailable conditions:
Verify the impact of these adjustments on achieving these goals.