正在加载图片...
斗1! The basic, underlying philosophy of how software systems should be developed changed dramatically in 1978 when Tom DeMarco published his truly seminal book, Structured Analysis and System Specification [DeMarco, 1979]. DeMarco proposed that software systems should be developed like any large, engineering systems--by first building scale models of proposed systems so as to investigate their This model-based software engineering approach is analogous to that used by architects to specify and design large complex buildings(see Fig. 90.1). We build scale models of software systems for the same reason that architects build scale models of houses, so that users can visualize living with the systems of the future. These models serve as vehicles for communication and negotiation between users, developers, sponsors, builders, etc. Model-based software engineering holds considerable promise for enabling large, complex software systems to be developed on budget, within schedule, while meeting user requirements [see Harel, 1992] As shown in Fig. 90.2, a number of specific software development models may be built as part of the software development process. These models may be built by different communities of users, developers, customers, etc. Most importantly, however, these models are built in an iterative fashion. Although work products( documents, milestone reviews, code releases, etc )may be delivered chronologically, models are built iteratively throughout the software systems development life cycle In Fig. 90.3 we illustrate the distinction between methodology tool, and work product. A number of differing software development methods have evolved, all based on the underlying model-based philosophy. Different methods may in fact be used for the requirements and analysis phases of project development than for design and implementation. These differing methods may or may not integrate well. Tools such as CASE may support all, or only a part, of a given method. Work products, such as document production or code generation, may be generated manually or by means of Case tools This article will present a synopsis of various practical software engineering techniques which can be used to construct software development models; these techniques are illustrated within the context of a simple case udy system A h One of the most widely accepted approaches in the software engineering industry is to build two software development models. An essential model captures the behavior of a proposed software system, independent aplementation specifics. An essential model of a software system is analogous to the scale model of a house built by an architect; this model is used to negotiate the essential requirements of a system between customers and developers. A second model, an implementation model, of a software system describes the technical asv ne of a proposed system within a particular implementation environment. This model is analogous to the deta e 2000 by CRC Press LLC© 2000 by CRC Press LLC The basic, underlying philosophy of how software systems should be developed changed dramatically in 1978 when Tom DeMarco published his truly seminal book, Structured Analysis and System Specification [DeMarco, 1979]. DeMarco proposed that software systems should be developed like any large, complex engineering systems—by first building scale models of proposed systems so as to investigate their behavior. This model-based software engineering approach is analogous to that used by architects to specify and design large complex buildings (see Fig. 90.1). We build scale models of software systems for the same reason that architects build scale models of houses, so that users can visualize living with the systems of the future. These models serve as vehicles for communication and negotiation between users, developers, sponsors, builders, etc. Model-based software engineering holds considerable promise for enabling large, complex software systems to be developed on budget, within schedule, while meeting user requirements [see Harel, 1992]. As shown in Fig. 90.2, a number of specific software development models may be built as part of the software development process. These models may be built by different communities of users, developers, customers, etc. Most importantly, however, these models are built in an iterative fashion. Although work products (documents, milestone reviews, code releases, etc.) may be delivered chronologically, models are built iteratively throughout the software system’s development life cycle. In Fig. 90.3 we illustrate the distinction between methodology, tool, and work product. A number of differing software development methods have evolved, all based on the underlying model-based philosophy. Different methods may in fact be used for the requirements and analysis phases of project development than for design and implementation. These differing methods may or may not integrate well. Tools such as CASE may support all, or only a part, of a given method. Work products, such as document production or code generation, may be generated manually or by means of CASE tools. This article will present a synopsis of various practical software engineering techniques which can be used to construct software development models; these techniques are illustrated within the context of a simple case study system. Approach One of the most widely accepted approaches in the software engineering industry is to build two software development models. An essential model captures the behavior of a proposed software system, independent of implementation specifics. An essential model of a software system is analogous to the scale model of a house built by an architect; this model is used to negotiate the essential requirements of a system between customers and developers.A second model, an implementation model, of a software system describes the technical aspects of a proposed system within a particular implementation environment. This model is analogous to the detailed FIGURE 90.1 Model-based software engineering
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有