【正文】
rt depends on sever a l factors. It may include adding f un ct ion a lit y t ha t wa sn39。 1 中文 2780 字 外文資料原文 Software Development Concepts and Design Methodologies During the 1960s, mainframes and higher level programming langua ges were applied to many problems includ ing human resource systems, reservation systems, and manufacturin g systems. Computers and software were seen as the cure all for many business issues were sometimes applied blind ly. Systems sometimes failed to solve the problem for which they were designed for many reasons including: ?Inability to sufficiently understand plex problems ?Not sufficiently taking into account end user needs, the anizationa l environment, and performance tradeoffs ?Inability to accurately estimate development time and operational costs ?Lack of framework for consistent and regular customer munications At this time, the concept of structured programming, top down design, stepwise refinement, and modular ity emerged. Structured programming is stil l the most dominant approach to software engineering and is still evolvin g. These failures led to the concept of software engineering based upon the idea that an engineering like discip line could be applied to software design and development. Software design is a process where the software designer applies techniques and princip les to produce a conceptual model that describes and defines a solut ion 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 evolv ing to acmodate 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 2 software dev elopment. 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 topdown development, and information hidin g 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 pe ople. Therefore, the software engineerin g munity has been focused on object oriented (OO) design and the concept of re usable code in order to reduce the human cost ponent. Ineffic ient designs and development methodologies have been addressed with C omputer Aided Software Engineering (CASE) tools, and fourth generation design languages . This has been done in an attempt replace the tradit ional waterfall life cycle process model under which