资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
外文资料原文Software Development Concepts and Design MethodologiesDuring the 1960s, mainframes and higher level programming languages were applied to many problems including human resource systems, reservation systems, and manufacturing systems. Computers and software were seen as the cure all for many business issues were sometimes applied blindly. Systems sometimes failed to solve the problem for which they were designed for many reasons including:Inability to sufficiently understand complex problemsNot sufficiently taking into account end-user needs, the organizational environment, and performance tradeoffsInability to accurately estimate development time and operational costsLack of framework for consistent and regular customer communicationsAt this time, the concept of structured programming, top-down design, stepwise refinement,and modularity emerged. Structured programming is still the most dominant approach to software engineering and is still evolving. These failures led to the concept of software engineering based upon the idea that an engineering-like discipline could be applied to software design and development.Software design is a process where the software designer applies techniques and principles to produce a conceptual model that describes and defines a solution to a problem. In the beginning, this design process has not been well structured and the model does not always accurately represent the problem of software development. However, design methodologies have been evolving to accommodate changes in technology coupled with our increased understanding of development processes.Whereas early design methods addressed specific aspects of the development process, current methods attempt to address the entire scope of software development. Software design methods are often classified in reference to the period in which they were introduced and the problems at that time. Driven by coding and testing problems, tools and methods were developed. Early methods focused on modularity and top-down development, and information hiding through abstraction. This led to the development of structured languages, structured analysis, and data flow analysis.In the last decade or so, the expense involved in automation has shifted from hardware to people. Therefore, the software engineering community has been focused on object oriented (O-O) design and the concept of re-usable code in order to reduce the human cost component. Inefficient designs and development methodologies have been addressed with Computer Aided Software Engineering (CASE) tools, and fourth generation design languages. This has been done in an attempt replace the traditional waterfall life cycle process model under which most existing software has been developed.一、 Software Design FundamentalsSoftware design methods all aim to provide the software designer with a system blueprint. This blueprint usually has three aspects: data, architectural, and procedural.Data design refers to the datas organization, relationships, access and processing methods.Architectural design defines the components of the system and their relationships.Procedural design builds on the data and architectural design phases to describe the processing details of the system.Even though there are numerous design methodologies, their basic concepts are very similar-All software design methods partition the problem and software into smaller pieces in order to reduce complexity. They all strive to identify data structures and functions, and provide measurements for software quality. Some of the common principles in software design include: stepwise refinement, software architecture, program structure, data structure, software procedures, modularity, abstraction, and information hiding.二、 Modern Design MethodologiesConventional software development practices can generally be mapped onto the traditional life-cycle phases of analysis, functional specification, design, implementation, testing, and maintenance. This thought process is inadequate for todays complex information systems. As the demand for software is growing much faster than the number of developers, adhering to conventional techniques such as the waterfall method requires too much time, too many people, and is difficult to manage. Hence, many new software development technologies have arisen. Newly developed practices and models do not attempt to separate phases of software development, such as specification and implementation, but instead focus on the concept of program transformation through stepwise refinement and iteration.1、Object-Oriented TechnologyObject-Oriented (O-O) software design technology is fundamentally different from the traditional methods described above. With traditional methods, each module is recognized a major step in the overall process and the process goes from one step to the next. On the other hand, O-O design is structured around a model of
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号