面向对象系统分析与设计

上传人:ni****g 文档编号:567970581 上传时间:2024-07-22 格式:PPT 页数:263 大小:2.17MB
返回 下载 相关 举报
面向对象系统分析与设计_第1页
第1页 / 共263页
面向对象系统分析与设计_第2页
第2页 / 共263页
面向对象系统分析与设计_第3页
第3页 / 共263页
面向对象系统分析与设计_第4页
第4页 / 共263页
面向对象系统分析与设计_第5页
第5页 / 共263页
点击查看更多>>
资源描述

《面向对象系统分析与设计》由会员分享,可在线阅读,更多相关《面向对象系统分析与设计(263页珍藏版)》请在金锄头文库上搜索。

1、面向对象系统分析与设计面向对象系统分析与设计 河北农业大学信息科学与技术学院主要内容主要内容1、系统分析与设计概论、系统分析与设计概论2、面向对象概念与术语、面向对象概念与术语3、面向对象分析与设计面向对象分析与设计4、面向对象编程、面向对象编程5、UML面向对象设计基础面向对象设计基础6、UML面向对象开发系统分析与设计概论系统分析与设计概论(System Analysis and Design)Chapter Objectives(You should be able to)1. Define a system, information system, and automated info

2、rmation system.2. Define the basic components and the basic characteristics of an automated information system.3. Define system analysis and design and discuss why it is a difficult human endeavor.4. Describe the skills and activities of a system analyst.系统分析与设计概论系统分析与设计概论(System Analysis and Design

3、)5. Describe a general model of the analysis, design, and implementation process.6. Discuss systems analysis and design as a career.7. Discuss what a system analyst does.8. Discuss systems analysis and design projects and where they come from.9. Discuss the need for creating information systems requ

4、irements specifications.系统分析与设计概论系统分析与设计概论(System Analysis and Design)10. Define and describe the information systems life cycle.11. Define and describe the information system development life cycle.12. Discuss the principles used to guide system analysis and design.系统分析与设计概论系统分析与设计概论(System Analysi

5、s and Design)1.Development Process2. Systems planning3. Systems analysis4. System design5. Systems implementation6. Systems evolution系统分析与设计概论系统分析与设计概论(System Analysis and Design)2. Concept of System Analysis and Design What is a system? A system is a set of interrelated components, working together

6、 for a common purpose. There are two types of systems: natural and fabricated.系统分析与设计概论系统分析与设计概论(System Analysis and Design)System Model with Six Components:systemsystemboundaryboundarycontrolscontrolsprocessingprocessinginputsinputsfeedbackfeedbackoutputsoutputs系统分析与设计概论系统分析与设计概论(System Analysis an

7、d Design) What is an information system? An information system is a type of fabricated system that is used by one or more persons to help accomplish a task or assignment.系统分析与设计概论系统分析与设计概论(System Analysis and Design) What is an information system? datadatapeoplepeopleproceduresprocedures系统分析与设计概论系统分

8、析与设计概论(System Analysis and Design) What is an automated information system? A automated information system is an information system that incorporates the use of computer hardware and software as part of the system.系统分析与设计概论系统分析与设计概论(System Analysis and Design) What is an automated information system

9、?datadatapeoplepeoplesoftwaresoftwareproceduresprocedureshardwarehardware系统分析与设计概论系统分析与设计概论(System Analysis and Design) What are the basic characteristics of an information system? The basic characteristics that exist within an information system are data, functions, and behavior, as illustrated in

10、the following figure.DataDataFunctionsFunctionsBehaviorBehavior系统分析与设计概论系统分析与设计概论(System Analysis and Design) What are the basic characteristics of an information system? Data: input, stored, or output Function: business activity performed Behavior: the observable effects of a request 系统分析与设计概论系统分析与

11、设计概论(System Analysis and Design) What is systems analysis and design? System analysis and design is about developing software, but it is more about developing a complete automated information system, which includes hardware, software, people, procedures, and data. These five components exist in virt

12、ually all automated information systems, although the amount of each will vary with respect to the specific system being developed. All of these components must be considered and addressed during system analysis and design.系统分析与设计概论系统分析与设计概论(System Analysis and Design) Actors of systems analysis and

13、 design? System Analyst; System Engineer; Programmer; Architect; 系统系统分析分析与设与设计过计过程程系统系统分析分析与设与设计过计过程程系统分析与设计概论系统分析与设计概论(System Analysis and Design) What makes systems analysis and design such a difficult human endeavor? Seven reasons:1. Analysis problems, at their inception, have ill-defined boundar

14、ies and structure(users are not certain of what they want), and have a sufficient degree of uncertainty about the nature of the solution.系统分析与设计概论系统分析与设计概论(System Analysis and Design) What makes systems analysis and design such a difficult human endeavor? 2. The solutions systems analysts come up wi

15、th to solve the problems are artificial, and since they are designed by humans with different backgrounds, experiences, biases, and so on, there exists an endless variety of potential solutions. That means that there is no single correct solution to a problem. Many needs and Many solutions.系统分析与设计概论

16、系统分析与设计概论(System Analysis and Design) What makes systems analysis and design such a difficult human endeavor? 3. Analysis problems are dynamic. No business is standing still. Change! 4. The solutions to analysis problems require interdisciplinary knowledge and skills, hence, the need for a team appr

17、oach to IS development. Emphasis on the partnership concept between the user community and the IS developers.系统分析与设计概论系统分析与设计概论(System Analysis and Design) What makes systems analysis and design such a difficult human endeavor? 5. The knowledge base of the systems analysis is continually evolving. A

18、s the apprentice systems analyst progresses through the junior, associate, and senior systems analyst ranks over time, he or she continues to learn more about business problem domains as well as improving his or her analytical skills and software development tool and technique skills.系统分析与设计概论系统分析与设

19、计概论(System Analysis and Design) What makes systems analysis and design such a difficult human endeavor? 6. The process of analysis is primarily a cognitive activity in that we are asked to (1) put structure to an abstract problem domain, (2) process diverse information from a variety of users, and (

20、3) develop a logical and consistent specification that will lead to the creation of a successful information system. 7. The People! Study human and org. behavior.Stakeholders: Players in the Systems Development TeamA stakeholder is any person who has an interest in an existing or new information sys

21、tem. Stakeholders can be technical or nontechnical workers.For information systems, the stakeholders can be classified as ( six groups of information workers):System ownersSystem usersSystems analystsSystem designersSystem buildersIT vendors and consultantsInformation versus Knowledge WorkersInforma

22、tion workers are those workers whose jobs involve the creation, collection, processing, distribution, and use of information.(In USA they are so called)Knowledge workers are a subset of information workers whose responsibilities are based on a specialized body of knowledge.(College educated; Dependi

23、ng on information and ability to properly use and react to information)System OwnersSystem owners are the information systems sponsors and chief advocates. They are usually responsible for funding the project to develop, operate, and maintain the information system. System UsersSystem users are the

24、people who use or are affected by the information system on a regular basiscapturing, validating, entering, responding to, storing, and exchanging data and information. A common synonym is client. Types include:Internal usersClerical and service workersTechnical and professional staffSupervisors, mi

25、ddle managers, and executive managersRemote and mobile users (internal but disconnected)External users (customer and other system users)System Designers and System BuildersSystem designers translate system users business requirements and constraints into technical solutions. They design the computer

26、 files, databases, inputs, outputs, screens, networks, and programs that will meet the system users requirements.System builders construct the information system components based on the design specifications from the system designers. In many cases, the system designer and builder for a component ar

27、e one and the same.Systems AnalystsA systems analyst studies the problems and needs of an organization to determine how people, data, processes, communications, and information technology can best accomplish improvements for the business. When information technology is used, the analyst is responsib

28、le for:The efficient capture of data from its business source, The flow of that data to the computer, The processing and storage of that data by the computer, and The flow of useful and timely information back to the business and its people. Variations on the Systems Analysts TitleA business analyst

29、 is a systems analyst that specializes in business problem analysis and technology-independent requirements analysis.A programmer/analyst (or analyst/programmer) includes the responsibilities of both the computer programmer and the systems analyst. Other synonyms for systems analyst include:Systems

30、consultantSystems architectSystems engineerInformation engineerSystems integratorProblem-Solving ScenariosTrue problem situations, either real or anticipated, that require corrective actionOpportunities to improve a situation despite the absence of complaints Directives to change a situation regardl

31、ess of whether anyone has complained about the current situationGeneral Problem-Solving Approach1. Identify the problem.2. Analyze and understand the problem.3. Identify solution requirements or expectations.4. Identify alternative solutions and decide a course of action.5. Design and implement the

32、“best” solution.6. Evaluate the results. If the problem is not solved, return to step 1 or 2 as appropriate.Where Systems Analysts WorkIn traditional businessesWorking in traditional information services organizations(permanent project teams)Working in contemporary information services organizations

33、(dynamic project teams)In outsourcing businessesContracted to traditional businessesIn consulting businessesContracted to traditional businessesIn application software businessesBuilding software products for traditional businessesTraditional IS Services OrganizationContemporary IS Services Organiza

34、tionBusiness Trends and DriversTotal quality management (TQM)Continuous process improvement (CPI)Globalization of the economyInformation technology problems and opportunitiesYear 2000 problem (Y2K)Euro currency directiveEnterprise resource planning (ERP)Electronic commerce (EC or E-commerce)Total Qu

35、ality ManagementTotal quality management (TQM) is a comprehensive approach to facilitating quality improvements and management within a business.Information systems quality standards:ISO 9001, Quality systems Model for quality assurance in design/development, production, installation, and servicing.

36、Capability Maturity Model (CMM) is a framework to assess the maturity level of an organizations information systems development and management processes and products. It consists of five levels of maturity as measured by a set of guidelines called the key process areas.The CMM Process Management Mod

37、elThe Capability Maturity Model (CMM) is a framework to assess the maturity level of an organizations information system development and management processes and products. It consists of five levels of maturity as measured by a set of guidelines called the key process areas.Level 1Initial: System de

38、velopment projects follow no prescribed process.Level 2Repeatable: Project management processes and practices are established to track project costs, schedules, and functionality. Level 3Defined: A standard system development process (sometimes called a “methodology”) is purchased or developed, and

39、integrated throughout the information systems/services unit of the organization. Level 4Managed: Measurable goals for quality and productivity are established. Level 5Optimizing: The standardized system development process is continuously monitored and improved based on measures and data analysis es

40、tablished in Level 4. The CMM Process Management ModelLevel5OPTIMIZEDLevel4MANAGEDLevel3DEFINEDLevel2REPEATABLERISKCOMPETITIVENESSLevel1INITIALBusiness Process RedesignBusiness process redesign (BPR) is the study, analysis, and redesign of fundamental business processes to reduce costs and/or improv

41、e value added to the business.Usually complemented by continuous process improvementContinuous Process ImprovementContinuous process improvement (CPI) is the continuous monitoring of business processes to effect small but measurable improvements to cost reduction and value added.Essentially the oppo

42、site of business process redesign; however,CPI can and frequently does complement BPR.Legacy SystemsLegacy systems are older information system applications that have become crucial to the day-to-day operation of a business and that may use technologies considered old or outdated by current standard

43、s.Can be adversely affected by technology and economic forces:Year 2000EuroCan be replaced by alternative solutions:ERPE-CommerceEnterprise Resource PlanningAn Enterprise resource planning (ERP) software product is a fully integrated information system that spans most basic business functions requir

44、ed by a major corporation. An ERP product is built around a common database shared these business functions. Examples of ERP software vendors include.BaanJ. D. EdwardsOraclePeoplesoftSAPElectronic CommerceElectronic commerce (e-commerce or EC) involves conducting both internal and external business

45、over the Internet, intranets, and extranets. Electronic commerce includes the buying and selling of goods and services, the transfer of funds, and the simplification of day-to-day business processes all through digital communications. Three basic types of electronic commerce applications include:Mar

46、ketingBusiness-to-consumer (B2C) Business-to-business (B2B)The Systems Analyst as a FacilitatorSkills Required by Systems AnalystsWorking knowledge of information technologyComputer programming experience and expertiseGeneral business knowledgeProblem-solving skillsInterpersonal communication skills

47、Interpersonal relations skillsFlexibility and adaptabilityCharacter and ethicsSystems analysis and design skillsThe Ten Commandments of Computer Ethics1. Thou shalt not use a computer to harm other people. 2. Thou shalt not interfere with other peoples computer work. 3. Thou shalt not snoop around i

48、n other peoples computer files. 4. Thou shalt not use a computer to steal.5. Thou shalt not use a computer to bear false witness. 6. Thou shalt not copy or use proprietary software for which you have not paid. 7. Thou shalt not use other peoples computer resources without authorization or proper com

49、pensation. 8. Thou shalt not appropriate other peoples intellectual output. 9. Thou shalt think about the social consequences of the program you are writing or the system you are designing. 10. Thou shalt always use a computer in ways that insure consideration and respect for your fellow humanComput

50、er Ethics Source: Computer Ethics Institute Source: Computer Ethics InstituteInformation System Building BlocksInformation System Building BlocksWhat are information systems, and who are the stakeholders in the information systems game?Describe the difference between data and information.Define the

51、product called an information system, and describe the role of information technology in information systems.Differentiate between front- and back-office information systems.Describe five classes of information system applications (transaction processing, management information, decision support, ex

52、pert, and office automation systems) and how they interoperate.Describe the role of information systems architecture in system development.Name six groups of stakeholders in information system development.Name three focuses for information systems.Describe four perspectives of the DATA focus for an

53、information system.Describe four perspectives of the PROCESS focus for an information system.Describe four perspectives of the INTERFACE focus for an information system.Describe the role of a computer network as it relates to DATA, PROCESSES, and INTERFACES.Building Blocks of An Information SystemDa

54、ta and InformationData are raw facts about the organization and its business transactions. Most data items have little meaning and use by themselves.Information is data that has been refined and organized by processing and purposeful intelligence. The latter, purposeful intelligence, is crucial to t

55、he definitionPeople provide the purpose and the intelligence that produces true information.Information Systems & TechnologyAn information system (IS) is an arrangement of people, data, processes, communications, and information technology that interact to support and improve day-to-day operations i

56、n a business as well as support the problem-solving and decision making needs of management and users.Information technology is a contemporary term that describes the combination of computer technology (hardware and software) with telecommunications technology (data, image, and voice networks).Front

57、- and Back-Office Information SystemsFront-office information systems support business functions that reach out to customers (or constituents).MarketingSalesCustomer managementBack-office information systems support internal business operations and interact with suppliers (of materials, equipment, s

58、upplies, and services). Human resourcesFinancial managementManufacturingInventory controlA Federation of Information SystemsClasses of Information SystemsTransaction processing systemsManagement information systemsDecision support systemsExpert systemsOffice automation systemsTransaction ProcessingT

59、ransaction processing systems are information system applications that capture and process data about business transactions.Includes data maintenance, which provides for custodial updates to stored data.Business process redesign (BPR) is the study, analysis, and redesign of fundamental business (tra

60、nsaction) processes to reduce costs and/or improve value added to the business.Management Information SystemsA management information system (MIS) is an information system application that provides for management-oriented reporting. These reports are usually generated on a predetermined schedule and

61、 appear in a prearranged format. Decision Support SystemsA decision support system (DSS) is an information system application that provides its users with decision-oriented information whenever a decision-making situation arises. When applied to executive managers, these systems are sometimes called

62、 executive information systems (EIS).A data warehouse is a read-only, informational database that is populated with detailed, summary, and exception data and information generated by other transaction and management information systems. The data warehouse can then be accessed by end-users and manage

63、rs with DSS tools that generate a virtually limitless variety of information in support of unstructured decisions. Expert SystemsAn expert system is a programmed decision-making information system that captures and reproduces the knowledge and expertise of an expert problem solver or decision maker

64、and then simulates the “thinking” or “actions” of that expert.Expert systems are implemented with artificial intelligence technology that captures, stores, and provides access to the reasoning of the experts. Office Automation SystemsOffice automation (OA) systems support the wide range of business

65、office activities that provide for improved work flow and communications between workers, regardless of whether or not those workers are located in the same office.Personal information systems are those designed to meet the needs of a single user. They are designed to boost an individuals productivi

66、ty.Work group information systems are those designed to meet the needs of a work group. They are designed to boost the groups productivity.Information Systems ApplicationsInformation Systems ArchitectureInformation systems architecture provides a unifying framework into which various people with dif

67、ferent perspectives can organize and view the fundamental building blocks of information systems. Perspectives or StakeholdersSystem owners pay for the system to be built and maintained.System users use the system to perform or support the work to be completed.System designers design the system to m

68、eet the users requirements.System builders construct, test, and deliver the system into operation.Systems analysts facilitate the development of information systems and computer applications by bridging the communications gap that exists between nontechnical system owners and users and technical sys

69、tem designers and builders.IT vendors and consultants sell hardware, software, and services to businesses for incorporation into their information systems.Focuses for Information SystemsDataDatatherawmaterialusedtocreateusefulinformation.ProcessesProcessestheactivities(includingmanagement)thatcarryo

70、utthemissionofthebusiness.InterfacesInterfaceshowthesysteminterfaceswithitsusersandotherinformationsystems.Information System Building BlocksThe DATA FocusThe DATA FocusSystem owners perspectiveBusiness knowledge is the insight that is gained from timely, accurate, and relevant information. (Recall

71、that information is a product of raw data.)System users perspectiveData requirements are a representation of users data in terms of entities, attributes, relationships, and rules. Data requirements should be expressed in a format that is independent of the technology that can or will be used to stor

72、e the data.System designers perspectiveDatabase schemaSystem builders perspectiveDatabase management systemThe PROCESS FocusThe PROCESS FocusSystem owners perspectiveBusiness functions are ongoing activities that support the business. Functions can be decomposed into other subfunctions and eventuall

73、y into processes that do specific tasks.A cross-functional information system supports relevant business processes from several business functions without regard to traditional organizational boundaries such as divisions, departments, centers, and offices.Continued .The PROCESS Focus (continued)Syst

74、em users perspectivesBusiness processes are activities that respond to business events. Business processes are the “work” performed by the system.Process requirements are a representation of the users business processes in terms of activities, data flows, or work flow.A policy is a set of rules that

75、 govern a business process.A procedure is a step-by-step set of instructions and logic for accomplishing a business process.Continued .The PROCESS Focus (continued)System designers perspectivesAn application schema is a model that communicates how selected business processes are, or will be, impleme

76、nted using the software and hardware.Software specifications represent the technical design of business processes to be automated or supported by computer programs to be written by system builders.System builders perspectivesApplication programs are language-based, machine-readable representations o

77、f what a software process is supposed to do, or how a software process is supposed to accomplish its task.Prototyping is a technique for quickly building a functioning, but incomplete model of the information system using rapid application development tools.The INTERFACE FocusThe INTERFACE FocusSyst

78、em owners perspectiveSystem users perspectivesInterface requirements are a representation of the users inputs and outputs.System designers perspectiveUser dialogues describe how the user moves from window-to-window, interacting with the application programs to perform useful work.System builders per

79、spectiveMiddleware is a layer of utility software that sits in between application software and systems software to transparently integrate differing technologies so that they can interoperate.Information System Building BlocksThe Role of the Network in ISA COMMUNICATIONS Focus in IS面向对象概念与术语面向对象理论的

80、出现 诞生时间: 80年代末 提起原因:4种问题的存在基本概念 为了解决存在的问题,引入4个概念。 抽象化抽象化 封装 继承 状态Next Voca.面向对象概念与术语基本术语基本术语基本概念基本概念应用概念应用概念对象、类对象、类/事例事例 、属性、消息、方法(操、属性、消息、方法(操作)、关系(关联,作)、关系(关联,is-a, part-ofis-a, part-of)状态、抽象化、封装、继承状态、抽象化、封装、继承抽象类、多重继承、抽象类、多重继承、MIX-INMIX-IN、多样性、动态、多样性、动态结合、并行性、结合、并行性、sub-typingsub-typing、actoract

81、or理论、理论、广播、委托、广播、委托、ContinuationContinuation面向对象方法中的术语和概念面向对象方法中的术语和概念面向对象的思考原点面向对象的思考原点面向对象系统的基本构造面向对象系统的基本构造(见下页图)(见下页图)关系消 息面向对象系统的基本构造面向对象系统的基本构造对 象属性(数据)操作(行为)对 象属性(数据)操作(行为)对 象属性(数据)操作(行为)类类(上层)类封 装状 态抽 象 化继 承基本术语基本术语-对象、类、属性对象、类、属性 对象:被呈现的或可被感官识别的物体。是抽 象化了的概念。 面向对象: 直接针对你能想到的任何事物。 类: 具有相同数据构造

82、和行为的对象,是描 述其特征的。是对象的模板。 属性:表示复数的对象所共有的性质的辅助信 息。属性是针对类定义的,该类的对象 具有相同的属性。 (从分析的角度)基本术语基本术语1-1-对象、类、属性对象、类、属性(从分析与编程两种角度分析)(从分析与编程两种角度分析)手 法存在于现实世界里的“事物”具有类似性质的对象的抽象化(从对象的分类观点)类所拥有的性质(辅助信息)OMT手法,Coad&Yourdon手法对象(事例)类属性Shlaer&Mellor手法事例对象属性 分析中的对象、类和属性分析中的对象、类和属性基本术语基本术语1-1-对象、类、属性对象、类、属性(从分析与编程两种角度分析)(

83、从分析与编程两种角度分析) 编程中的对象、类和属性编程中的对象、类和属性执行时生成的程序实体对象的雏形(对象的制造机器)决定对象状态的内部数据(本质的信息)对象(事例)类属性基本术语基本术语2关系(关系(part-of, is-a,关联)(关联)(1) 分析中的关系的种类和意义分析中的关系的种类和意义关系的种类关系的种类关联关联Part-ofPart-of关系关系Is-aIs-a关系关系分析的观点分析的观点对象间的参照、利用关系对象间的参照、利用关系对象对象A利用对象利用对象B对象之间构造的集约关系对象之间构造的集约关系子对象是父对象的一部分子对象是父对象的一部分类之间的概念的包含关系类之间的

84、概念的包含关系子类是父类的一种子类是父类的一种意义意义对象对象对象对象父父对象对象子子对象对象父父类类子类子类基本术语基本术语2关系(关系(part-of, is-a,关联)(关联)(1) is-a关系与对象关系与对象-类关系的不同类关系的不同关系的种类关系的种类Is-aIs-a关系:关系:从父类到子类从父类到子类对象对象类的关系:类的关系:从类到对象从类到对象下级继承的性质下级继承的性质属性、方法、关系属性、方法、关系属性、方法、关系属性、方法、关系下级追加的性质下级追加的性质属性、方法、关系属性、方法、关系没有没有基本术语基本术语3关系(关系(part-of, is-a,关联)(关联)(2

85、) 分析中的分析中的关系关系与编程中的与编程中的关系关系分析分析编程编程对 象对 象对 象关系关系对 象关系基本术语基本术语3关系(关系(part-of, is-a,关联)(关联)(2) 编程中的编程中的关系关系的种类与意义的种类与意义关系的类型关系的类型编程的观点编程的观点意义意义关联关联Part-ofPart-of关系关系Is-aIs-a关系关系对象间的通信关系对象A与对象B通信通信对象间构造的包含关系子对象是父对象的一部分类之间的功能扩展关系子类是父类的功能扩展对象对象父对象属性子 对象子类父类基本术语基本术语4消息、方法(行为)消息、方法(行为) 分析中的消息、方法分析中的消息、方法根

86、据关系流向根据关系流向对象向对象的处理请求对象向对象的处理请求消息消息对象拥有的功能对象拥有的功能方法(行为)方法(行为)基本术语基本术语4:消息、方法(行为)消息、方法(行为) 分析中的关系与消息的关系分析中的关系与消息的关系关系关系消消 息息 对对 象象 (发送方)发送方) 对对 象象 (接受方)(接受方)基本术语基本术语4:消息、方法(行为)消息、方法(行为)针对对象的行为的执行调用 =操作的规格部分针对消息的对象的行为的记述 =操作的执行部分消 息方 法编程中的消息、方法编程中的消息、方法编程中的属性消息方法之间的关系 (参照)收信方对象的定义属性值操作的规格部分对象(发信方)对象(收

87、信方)可视性(关系)的定义消 息属性数据的交互生成结合方法收信方对象的类应用概念1:抽象类、多重继承继承层次图(类构造图)集合图计算机便携式 计算机台式 计算机计算机台式计算机台式计算机J-3100SGTPowerbook145PC-9801MacintoshCentris这里不存在实体抽象类Is-a抽象类应用概念1:抽象类、多重继承多重继承、MIX-IN继承层次图(类层次图)集合图滚动窗口带有标题的窗口带有标题的滚动窗口Is-aMIX-IN类窗口滚动窗口带标题的窗口带有标题的滚动窗口应用概念2:多样性、动态结合多样性举例Window 对象的指针ErrorWindow 对象的指针代入 合法Er

88、rorWindow类Window类(Window *wptr;)Wptr=eptr; is-awptr(ErrorWindow * eptr;)eptr (参照)收信方对象的定义属性值操作的规格部分对象(发信方)对象(收信方)可视性(关系)的定义消 息属性数据的交互生成结合方法收信方对象的类静态结合与动态结合静态结合:操作的规格部分(消息)与操作的执行部(方法)的结合在编译时进行动态结合:操作的规格部分(消息)与操作的执行部(方法)的结合在程序执行时进行面向对象分析与设计面向对象分析与设计什么是什么是面向对象分析与设计面向对象分析与设计面向对象分析的实践面向对象分析的实践面向对象分析与设计中再

89、利用的实践面向对象分析与设计中再利用的实践什么是什么是面向对象分析与设计面向对象分析与设计面向对象是一种从下到上的思想面向对象是一种从下到上的思想面向对象的软件开发面向对象的软件开发OOA 面向对象分析面向对象分析分析分析 明确问题明确问题OOD 面向对象设计面向对象设计设计设计 决定如何解决问题决定如何解决问题 OOP 面向对象编程面向对象编程编程编程 根据解决方案实现解决根据解决方案实现解决什么是什么是面向对象分析与设计面向对象分析与设计面向对象实现软件开发的一贯性面向对象实现软件开发的一贯性利用面向对象方法的软件开发历程利用面向对象方法的软件开发历程软件开发的工业化、大众化分析设计编程设

90、计编程编程上上 流流下下 流流开开发发过过程程8080年年代前代前8080年年代中代中8080年年代后代后爱好者爱好者研究者研究者一般一般SESE面向对象分析阶段面向对象分析阶段要求模型的构建要求模型的构建3种模型的表现种模型的表现分析阶段中的对象分析阶段中的对象要求文件要求说明(要求模型)消除不完整性、模糊、赘长承担者对问题的理解模型化委托方委托者+承担者承担者分析阶段的目的分析阶段的目的分析阶段的目的分析阶段的目的面向对象分析阶段面向对象分析阶段代表性的方法论中的代表性的方法论中的3 3种模型种模型手法Shlaer&Mellor法Coad&Yourdon法OMT法Booch法对象的静态关系

91、信息模型(information Model)对象图(Object Diagram)对象模型(Object Model)静态模型(Static Model)对象的动态关系状态模型(State Model)对象状态图(Object State Diagram)动态模型(Dynamic Model)动态模型(Dynamic Model)功能过程模型(Process Model)服务图(Service Chart)功能模型(Functional Model)-分析阶段的实例分析阶段的实例对象模型的建立对象模型的建立动态模型的建立动态模型的建立功能模型的建立功能模型的建立acceptabstractA

92、bstract 1,6,7Accept 2,4,5 1文件文件行序号行序号单词单词索引索引文件索引的制作文件索引的制作文件索引的制作文件索引的制作分析阶段的实例分析阶段的实例初期状态登录中项目登录开始开始项目登录索引印刷文件索引单词行序号对象群的静态构造对象群的静态构造对象群的静态构造对象群的静态构造文文文文件件件件索索索索引引引引制制制制作作作作系系系系统统统统的的的的分分分分析析析析阶阶阶阶段段段段的的的的3 3 3 3种种种种模模模模型型型型对象的动态动作对象的动态动作对象的动态动作对象的动态动作项目登录项目登录索引印刷索引印刷对应表对应表对象的功能对象的功能对象的功能对象的功能设计阶段

93、设计阶段设计阶段是软件开发的中心部分设计阶段是软件开发的中心部分设计阶段是软件开发的中心部分设计阶段是软件开发的中心部分基本设计和详细设计基本设计和详细设计基本设计和详细设计基本设计和详细设计逻辑设计和物理设计逻辑设计和物理设计逻辑设计和物理设计逻辑设计和物理设计作业内容制约条件逻辑设计 程序逻辑设计数据构造设计开发者能力语言语法物理设计硬件上的处理过程源文件上的设计单位机器的处理能力执行环境设计阶段的内容设计阶段的内容设计阶段的内容设计阶段的内容设计阶段设计阶段开发过程(别名)开发过程(别名)开发的单位(具体例)开发的单位(具体例)分析(要求定义)分析(要求定义)系统(应用程序)系统(应用程

94、序)基本设计(系统设计)基本设计(系统设计)子系统(任务、处理过程)子系统(任务、处理过程)详细设计(模块设计)详细设计(模块设计)模块(类、子程序、数据)模块(类、子程序、数据)编程(编码)编程(编码)程序(命令代码)程序(命令代码)设计阶段的实例设计阶段的实例1索引生成程序的设计索引生成程序的设计为实现追加对象为实现追加对象3 3种模型的扩展种模型的扩展(见图:索引生成程序中设计阶段的(见图:索引生成程序中设计阶段的3 3种模型)种模型)设计阶段的实例设计阶段的实例1acceptabstract Abstract1,6,7 Accept 2,4,51单词单词单词单词文件文件文件文件行号行号

95、行号行号过滤器过滤器过滤器过滤器树树树树队列队列队列队列设计阶段的实例设计阶段的实例2初期状态初期状态登录中登录中表示中表示中Do:displayAdd/insertMakeReport文章过滤索引TreeQueue单词行号main输出报告输出报告读取单词读取单词读取行号读取行号打印打印下面没有单词下面没有单词0101索引生成程序中设计阶段的索引生成程序中设计阶段的索引生成程序中设计阶段的索引生成程序中设计阶段的33种模型种模型种模型种模型对象群的静态构造对象群的静态构造对象的动态处理过程对象的动态处理过程对象的行为功能对象的行为功能设计阶段的实例设计阶段的实例2编程编程分析、设计、编程的连续

96、性分析、设计、编程的连续性对象(静态)模型动态模型功能模型静态模型动态模型功能模型接口部分实现部分OOAOODOOP从从从从从从3 33种种种种种种模模模模模模型型型型型型的的的的的的分分分分分分析析析析析析到到到到到到编编编编编编程程程程程程的的的的的的流流流流流流程程程程程程编程编程编程编程设计设计设计设计分析分析分析分析整体流程整体流程面向对象的开发过程面向对象的开发过程来回型的开发形态来回型的开发形态整体流程整体流程抽象化抽象化U1问题领域问题领域再利用再利用要求要求OOAOODOOP面向对象开发过程面向对象开发过程面向对象开发过程面向对象开发过程现实现实世界世界追加追加数据管理数据管

97、理任务管理任务管理计算机计算机追加追加细化细化整体流程整体流程来回型开发形态来回型开发形态来回型开发形态来回型开发形态分析分析设计设计编程编程分析分析设计设计编程编程瀑布型瀑布型来回型来回型原型原型原型原型各种方法各种方法 4大大方方法法的的特特征征中大规模小规模小中规模小大规模对象规模中高特别高低技术公开度RoseOOAToolOMToolTeamwork辅助工具丰富少少丰富(1979-)适用成绩1990年1990年 1991年1988年发表年 -高自然高自然低分析.设计过程OOD的联结度扩充了Ada用的方法论的旧Booch法。从HOOD,OOSD等Ada用的方法论的影响大,也受E-R,JS

98、D法的影响高组合E-R图及Shlaer&Mellor的方法和OOP及知识库系统的概念而发展而来低从结构化分析继承数据流和状态转换图,对象、建摸受E-R图等的影响高将意义模型作为基础高概要记述力Grady Booch/美国Rational公司Peter Coad/美国Object International公司J.Rumbaugh等General Electric公司研究开发中心Sally Shlaer/美国Project Technology公司开发者/公司Booch方法Coad&YourdonOMT方法Shlaer&Mellor方法方法各种方法各种方法 4大方法的特征大方法的特征S-M法:法

99、: 作为对象意识到实时系统,辅助特别细致的动态建模作为对象意识到实时系统,辅助特别细致的动态建模C-Y法:法: 没有细微的限制,对于用户自由度高,是没有细微的限制,对于用户自由度高,是4种方法中种方法中 最通用的。最通用的。OMT法:法: 是是4种方法中唯一从分析到设计、编程连贯下来的方法种方法中唯一从分析到设计、编程连贯下来的方法Booch法:以面向对象设计为对象,与其他方法比较,对于各种法:以面向对象设计为对象,与其他方法比较,对于各种 面向对象语言有种种表现形态,与面向对象语言的连面向对象语言有种种表现形态,与面向对象语言的连 接明确接明确软件的重用软件的重用重用的目的和对象重用的目的和

100、对象重用的目的重用的目的重用的对象重用的对象软件生产性,可靠性的提高软件生产性,可靠性的提高促进标准化促进标准化软件的质量一致性软件的质量一致性软件组件软件组件技术技术软件的重用软件的重用组件重用中的技术课题组件重用中的技术课题组件重用的组件重用的技术课题技术课题重用单位重用单位登录方法登录方法修改顺序修改顺序检索方法检索方法组件的体系化组件的体系化各个阶段的成果都是重用的候补各个阶段的成果都是重用的候补高高中中低低重用率重用率低低中中高高负荷(劳力)负荷(劳力)(时间)(时间)检索类似程序,检索类似程序,加以修改加以修改系统设计书的多系统设计书的多半没有组件化半没有组件化为了确定设计,为了确

101、定设计,参考原来的分析参考原来的分析信息,未组件化信息,未组件化重用的形态重用的形态程序程序系统设计书系统设计书设计技巧设计技巧对象组件对象组件(成果物)(成果物)编程设计分析阶段开发阶段与重用组件开发阶段与重用组件利用类和库进行面向对象开发的组件重用利用类和库进行面向对象开发的组件重用问题领域问题领域设计中已有的设计中已有的Pro类管理,数据管理,类管理,数据管理,UI管理管理重用重用Ob重用重用Pro重用重用Ob新新Ob新新Ob新新Pro类类和和库库新系统新系统分分析析设设计计编编程程下层下层上层上层检索检索登录登录登录登录检索检索登录登录检索检索Ob:对象对象Pro:程序程序饭店综合信息

102、系统饭店综合信息系统顾客顾客收款员收款员餐桌餐桌服务员服务员来店来店点菜点菜就餐就餐收银收银后付款方式后付款方式目的:目的:考虑两种饭店均可用的对象考虑两种饭店均可用的对象/模型模型/动态模型动态模型饭店综合信息系统饭店综合信息系统先付款方式先付款方式顾客顾客餐桌餐桌收款员收款员服务员服务员来店来店点菜点菜用餐用餐收银收银饭店综合信息系统饭店综合信息系统对象对象/模型模型用用OMT方法建立对象方法建立对象/模型模型 首先分析领域对象,实际可能有很多对象,现仅选与分析目的有关的首先分析领域对象,实际可能有很多对象,现仅选与分析目的有关的5个对象来建立对象模型。个对象来建立对象模型。 顾客顾客-区

103、分顾客的属性区分顾客的属性 菜单菜单-菜单项目和价格,按此来收款菜单项目和价格,按此来收款 点菜点菜-相当于传票,其属性有点菜号、时间、品种相当于传票,其属性有点菜号、时间、品种 服务员服务员-接受点菜、供菜接受点菜、供菜 收款员收款员-管理收款、每日的收款总数和欠帐管理管理收款、每日的收款总数和欠帐管理在明确属性后,就可以定义其操作了。例如,点菜的操作是:点菜、供在明确属性后,就可以定义其操作了。例如,点菜的操作是:点菜、供菜、收款、统计累加。菜、收款、统计累加。饭店综合信息系统饭店综合信息系统饭店系统对象饭店系统对象/模型(对象间的关系定义)模型(对象间的关系定义) 顾客顾客人数人数ID顾

104、客区分顾客区分 订单订单订单号订单号日期日期菜名菜名合计数量合计数量合计金额合计金额状态状态 服务员服务员ID点菜处理点菜处理服务处理服务处理 收银员收银员当日收款当日收款未收款项未收款项入帐处理入帐处理 菜单品种菜单品种菜号菜号菜名菜名菜名简称菜名简称单价单价种类区分种类区分点菜点菜会计处理会计处理上菜服务上菜服务表示表示 1对多对多饭店综合信息系统饭店综合信息系统用用OMT方法建立动态模型方法建立动态模型 在建立对象模型后,建立动态模型。在建立对象模型后,建立动态模型。 建立动态模型的顺序:建立动态模型的顺序: 首先针对某作业,制作表示事件发生的流程的序列。首先针对某作业,制作表示事件发生

105、的流程的序列。 然后根据其序列作成规定对象间事件流程的事件跟踪图。然后根据其序列作成规定对象间事件流程的事件跟踪图。 饭店饭店1 的事件跟踪图的建立。的事件跟踪图的建立。饭店综合信息系统饭店综合信息系统动态模型(动态模型(1)饭店饭店1 的序列的序列服务员记录顾客的点菜服务员记录顾客的点菜服务员将顾客的点菜记录到订单服务员将顾客的点菜记录到订单服务员上菜服务员上菜服务员在订单上加注上菜标记服务员在订单上加注上菜标记用餐后、顾客付款用餐后、顾客付款收款员向订单上加注已收款标志收款员向订单上加注已收款标志饭店综合信息系统饭店综合信息系统动态模型(动态模型(1)饭店饭店1 的动态模型的事件跟踪图的动

106、态模型的事件跟踪图顾客顾客服务员服务员订单订单结帐结帐口头点菜口头点菜订单记录订单记录(生成)(生成)(菜做好)(菜做好)(点菜)(点菜)上菜上菜订单执行订单执行(执行)(执行)结帐(交钱)结帐(交钱)结帐完毕结帐完毕饭店综合信息系统饭店综合信息系统动态模型(动态模型(1)饭店饭店1 中的中的“订单订单”对象的状态变换图对象的状态变换图会计处理(金额)点菜(品种、点菜(品种、顾客层)顾客层)上菜上菜统计统计点点菜菜上上菜菜服服务务结结帐帐完完成成统统计计完完,保保存存会计的事件会计的事件服务员的事件服务员的事件统计的事件统计的事件饭店综合信息系统饭店综合信息系统动态模型(动态模型(2)饭店饭店

107、2 的序列的序列服务员记录顾客的点菜服务员记录顾客的点菜服务员将顾客的点菜记录到订单(输入到机器里)服务员将顾客的点菜记录到订单(输入到机器里)顾客付款顾客付款收款员在订单标已收款收款员在订单标已收款服务员给顾客上菜服务员给顾客上菜服务员向订单上加注上菜记录服务员向订单上加注上菜记录饭店综合信息系统饭店综合信息系统动态模型(动态模型(2)饭店饭店2 的动态模型的事件跟踪图的动态模型的事件跟踪图顾客顾客服务员服务员订单订单结帐结帐口头点菜口头点菜订单记录订单记录(生成)(生成)(菜做好)(菜做好)(点菜)(点菜)上菜上菜订单执行订单执行(执行)(执行)结帐(交钱)结帐(交钱)结帐完毕结帐完毕对对

108、象象模模型型一一样样但但动动态态模模型型不不一一样样饭店综合信息系统饭店综合信息系统动态模型(动态模型(2)点菜点菜生成与属性值设定生成与属性值设定已结帐已结帐请求服务指示请求服务指示服务实施服务实施服务标志开服务标志开统计完成,保存统计完成,保存已统计标志开已统计标志开点菜(品种、顾客层)点菜(品种、顾客层)结帐处理结帐处理(金额)(金额)所有应服务的内容所有应服务的内容上菜上菜统计统计饭饭店店2中中的的“订订单单”对对象象的的状状态态变变换换图图饭店综合信息系统饭店综合信息系统多视点状态变换模型多视点状态变换模型 适合饭店适合饭店1 1的多视点状态变换模型(的多视点状态变换模型( “订单”

109、 对象对象)点菜点菜服务完服务完未结帐未结帐已结帐已结帐已调查已调查服务员服务员会计会计统计处理统计处理服务服务统计统计会计处理会计处理(金额)(金额)点菜点菜(品种、顾客层)(品种、顾客层)饭店综合信息系统饭店综合信息系统多视点状态变换模型多视点状态变换模型 适合饭店适合饭店2 2的多视点状态变换模型(的多视点状态变换模型(“订单” 对象)对象)点菜点菜服务完服务完未结帐未结帐已结帐已结帐已调查已调查服务员服务员会计会计统计处理统计处理服务服务统计统计会计处理会计处理(金额)(金额)点菜点菜(品种、顾客层)(品种、顾客层)实现组件的标准化实现组件的标准化 对于饭店1的“订单”对象,在饭店2中

110、怎样? 订单的动态模型的状态变换关系没有变化,唯一变化是:点菜事件的起源由服务员变成会计了。这样就可是县实现了面向对象中的组件标准化。 多视点状态变换的考虑方法对模型化十分有效。从多个视点不考虑之间的关系建立起独立的模型,这样模型化较容易和提高理解性。设计变更过程的固定化设计变更过程的固定化过过 程程设计变更设计变更可重用部分及追加可重用部分及追加修改部分的特定化修改部分的特定化追加追加/修改修改/消除消除多视点状态变换模型的修改多视点状态变换模型的修改可重用部分可重用部分-对象、模型对象、模型追加修改部分追加修改部分-动态模型动态模型处理的变更:处理的变更:先付款方式先付款方式-后付款方式后

111、付款方式(例)饭店综合信息系统(例)饭店综合信息系统设计变更的过程设计变更的过程设计变更的过程设计变更的过程面向对象编程面向对象编程分析、设计、编程的流程分析、设计、编程的流程分析、设计、编程的关系分析、设计、编程的关系设计项目设计项目 从静态构造、动态行为、功能处理、物理因素来考虑从静态构造、动态行为、功能处理、物理因素来考虑 各个阶段都是以静态构造为中心模型各个阶段都是以静态构造为中心模型阶段间的距离阶段间的距离 各阶段距离小。分析和设计比设计和编程的距离要大。各阶段距离小。分析和设计比设计和编程的距离要大。面向对象编程面向对象编程程序的处理分配,程序的处理分配,文件分配文件分配程序的处理

112、分配,程序的处理分配,文件分配文件分配-物理模型操作的设计部,操作的设计部,编程部编程部处理的流程处理的流程(处理(处理IPO)处理的输入输出数处理的输入输出数据(处理的据(处理的I/O)功能模型操作的调用操作的调用(表明)(表明)对象间的消息通信对象间的消息通信时点,对象状态时点,对象状态对象间的消息通信对象间的消息通信顺序,对象的状态顺序,对象的状态动态模型类定义,类定义,事例定义事例定义类的静态构造类的静态构造 ,事例的静态构造事例的静态构造对象(类)的静态对象(类)的静态构造构造静态模型编程设计分析阶段面向对象编程面向对象编程对象模型对象模型动态模型动态模型功能模型功能模型类定义,类定

113、义,类间关系类间关系主要事件的主要事件的流程(表明)流程(表明)针对操作的针对操作的数据输入输出数据输入输出分析模型分析模型编程编程从分析模型到编程的实现从分析模型到编程的实现充充分分利利用用3个个模模型型面向对象编程面向对象编程从分析得到的抽象数据的实现从分析得到的抽象数据的实现用户接口用户接口窗口窗口利用分析分析编程编程class Windowprivate: int xPos, yPos; bool isVisibile;public: show(); hide(); move(int direction, int amount);数据类型数据类型类定义类定义操作函数群操作函数群分析的抽

114、象数据类型和编程的抽象数据类型分析的抽象数据类型和编程的抽象数据类型面向对象编程面向对象编程从分析得到的抽象数据的实现从分析得到的抽象数据的实现分析分析编程编程class Windowprivate: int xPos, yPos; bool isVisibile;public: show(); hide(); move(int direction, int amount);分析的封装化和编程的封装化分析的封装化和编程的封装化 窗口窗口 xpos ypos isVisible show() hide() move(.)分析中的原则:分析中的原则:属性隐蔽、操作公开属性隐蔽、操作公开编程中:编程

115、中:private,public关键词指定隐蔽和公开关键词指定隐蔽和公开面向对象编程面向对象编程从分析得到的继承的实现从分析得到的继承的实现分析分析编程编程class Windowprivate: int xPos, yPos;public:move(.);class ResizableWindow :public Windowprivate: int xSize,ySize;public: resize();分析的继承和编程的继承分析的继承和编程的继承 窗口窗口 xpos ypos move(.) 可变窗口可变窗口 xSize ySize resize(.) is-a面向对象编程面向对象编程

116、从分析得到的消息通信的实现从分析得到的消息通信的实现分析分析编程编程分分析析的的消消息息通通信信和和编编程程的的消消息息通通信信用户接口用户接口窗口窗口Show,Hide,Moveclass Windowprivate: int xPos, yPos; bool isVisible;public: show(); hide(); move(int directuion, int amount);Window theTarget; theTarget.show(); theTarget.move(); theTarget.hide();消息通信消息通信面向对象编程面向对象编程从分析得到的状态的实

117、现从分析得到的状态的实现改改变变状状态态的的处处理理和和不不改改变变状状态态的的处处理理确认大小确认大小检查字符串检查字符串清空清空追加追加清空清空追加追加确认大小确认大小检查字符串检查字符串:改变状态的处理:改变状态的处理:不改变状态的处理:不改变状态的处理初期状态字符串登录状态存在的存在的4种问题种问题(之一之一)功能中心的弊病功能中心的弊病 编编 程程-过程语言开发过程语言开发 分析设计分析设计-以功能为中心把握问题以功能为中心把握问题 事事 实:实:“事物的结构事物的结构” 比比 “功能功能”自自然然 分析设计分析设计以以“事物的结构事物的结构”为中心为中心 并非不是最佳方法并非不是最

118、佳方法 而是,用过程语言开发不能实现而是,用过程语言开发不能实现 系统分析系统分析 vs 用户要求用户要求 产生差异产生差异存在的存在的4种问题种问题(之二之二)数据与行为分离的弊病数据与行为分离的弊病 过程性语言:数据的访问没有限制过程性语言:数据的访问没有限制 程序员:可自由的更新和参照程序员:可自由的更新和参照 但要求对数据构造全部理解但要求对数据构造全部理解 缺乏限制数据变更所进行的处理的范围缺乏限制数据变更所进行的处理的范围 通过某一特制函数来访问某一重要数据通过某一特制函数来访问某一重要数据 由于没有制约这种违反原则的手段由于没有制约这种违反原则的手段 现状是规则不彻底现状是规则不

119、彻底 存在的存在的4种问题种问题(之三之三)重复开发的弊病重复开发的弊病 费事:不易于扩展已有处理或数据结构费事:不易于扩展已有处理或数据结构 仅一部分的修改也得全部拷贝再仅一部分的修改也得全部拷贝再 实施修改,这样就重复具有类似实施修改,这样就重复具有类似 程序的处理或数据。程序的处理或数据。 错误难免:因为是复制的,所以原有错错误难免:因为是复制的,所以原有错 误就有可能重复出现误就有可能重复出现 出现修改两处同样的错误的现象(因前出现修改两处同样的错误的现象(因前 后没有逻辑关系)后没有逻辑关系) 存在的存在的4种问题种问题(之四之四)利用顺序靠默契的弊病利用顺序靠默契的弊病 数据和处理

120、是分离的,所以即使是操作同一数据和处理是分离的,所以即使是操作同一数据的处理之间,也没有表示他们有联系的手数据的处理之间,也没有表示他们有联系的手段,也没有表示他们的处理顺序的手段。段,也没有表示他们的处理顺序的手段。 处理的使用者需推测程序的提供者所想象的处理的使用者需推测程序的提供者所想象的利用顺序来利用这些处理利用顺序来利用这些处理为了解决这些问题,出现了面向对象方法为了解决这些问题,出现了面向对象方法利用过去方法未能解决的问题利用过去方法未能解决的问题利用过去方法利用过去方法未能解决的问题未能解决的问题利用面向利用面向对象方法解决对象方法解决(1)重视编程、功能为主)重视编程、功能为主

121、(2)数据与处理的分离)数据与处理的分离(3)类似软件的重复开发)类似软件的重复开发(4)利用顺序以)利用顺序以默契默契为前提为前提(2)封装化)封装化(1)抽象化)抽象化(3)继承)继承(4)状态状态基本概念基本概念(抽象化)(抽象化)抽象化抽象化 功能中心功能中心事物中心事物中心(不仅解决编程而且整个系统开发问题)(不仅解决编程而且整个系统开发问题) OO法:法:数据数据+行为行为 = 一个对象单位一个对象单位 可以记述对象之间消息的传递可以记述对象之间消息的传递 不是将现实原封不动的表示为对不是将现实原封不动的表示为对 象,而是仅着重问题的重要侧面,象,而是仅着重问题的重要侧面, 或者说

122、是强调所注目的问题的侧或者说是强调所注目的问题的侧 面,这就叫抽象化面,这就叫抽象化 对象就具有了表示数据和操作以及处理什么如对象就具有了表示数据和操作以及处理什么如何么处理的手段,何么处理的手段, 抽象化是抽象化是OO的特征之一的特征之一面向对象面向对象以以 前前数据+行为数据+行为数据+行为现实事物中心现实事物中心抽出重要的侧面(性质)自然的联想联想的转换计算机计算机系统开发系统开发功能中心事物中心基本概念基本概念(抽象化)(抽象化)抽象化的效果抽象化的效果-把握对象容易化把握对象容易化(3个)个)功能中心变成事物中心功能中心变成事物中心着眼于事物的构造着眼于事物的构造仅将重要的侧面模型化

123、仅将重要的侧面模型化对于变更较安定对于变更较安定自然地表示现实自然地表示现实分析的焦点明确化分析的焦点明确化具有相同性质的对象再抽象成具有相同性质的对象再抽象成类(类(Class),将类再抽象将类再抽象成抽象的类,这样就可以掌握事物的构造体系了成抽象的类,这样就可以掌握事物的构造体系了基本概念基本概念(封装)(封装)封装(信息隐蔽)封装(信息隐蔽) 数据与处理的分离数据与处理的分离 数据为中心的处理一体化数据为中心的处理一体化 对象所有的数据从外部是不可视的,仅对象所有的数据从外部是不可视的,仅通过行为才可以对对象数据进行操作。这通过行为才可以对对象数据进行操作。这样的情形比喻成样的情形比喻成

124、“封装封装”或叫或叫“信息隐蔽信息隐蔽”。 见下图示例。见下图示例。以以 前前需要的文件在何处需要的文件在何处放回何处好,用户定放回何处好,用户定需要的文件在何处需要的文件在何处放回何处好,由管放回何处好,由管理人员安排理人员安排面向对象面向对象 用 户(操作) 用 户(操作)文件箱(数据)文件箱(数据)文件箱(数据)文件箱(数据) 管理人员(操作)封装的效果封装的效果 对象的用户与提供者之间的责任分担明确化。对象的用户与提供者之间的责任分担明确化。 对象的用户没有必要知对象的用户没有必要知 用户易用户易 道对象的内部数据构造道对象的内部数据构造 于利用于利用 对象的提供者即使改变对象的提供者

125、即使改变 便于提供便于提供 内部数据构造,对用户内部数据构造,对用户 者修改者修改 也没有影响也没有影响基本概念基本概念(封装)(封装)基本概念基本概念(封装)(封装)封装(封装(encapsulation) 是将相关的概念组成一个单元,其后可以通过是将相关的概念组成一个单元,其后可以通过一个名称来引用它。一个名称来引用它。面向对象封装(面向对象封装(object-oriented) 是将表示状态的操作和属性包装成一个对象类是将表示状态的操作和属性包装成一个对象类型,使得对状态的访问或修改只能通过封装提型,使得对状态的访问或修改只能通过封装提供的接口进行。供的接口进行。状态保持:状态保持: 调

126、用后,其状态或值仍保留(见调用后,其状态或值仍保留(见后叙)。后叙)。基本概念基本概念(继承)(继承)继承继承 重复开发重复开发再利用再利用 上一级类在向下一级类传递的同时。还可以上一级类在向下一级类传递的同时。还可以追加上级类中没有的新的性质,引入了追加上级类中没有的新的性质,引入了“继承继承”机制。这样,不仅解决了前后不一致或矛盾机制。这样,不仅解决了前后不一致或矛盾的现象,而且提供了已有资源的有效的再利用的现象,而且提供了已有资源的有效的再利用和提高开发效率的手段。和提高开发效率的手段。基本概念(继承)超类、子类超类、子类 有类C,后发现类D除了一些额外的属性和操作外与类C几乎是一样的,

127、怎么办? (1)简单地复制C的所有属性和操作,然后将其放到D中。(维护麻烦、复制成本增加) (2)继承 让类D向类C“请求使用其操作” 继承(从C到D)是指类D在类C中隐式地定义其每个属性和操作,跟这些属性和操作是在类D中定义一样。C称为D的超类;D称为C的子类。超超 类类子子 类类显示器键盘软驱显示器键盘软驱鼠标喇叭显示器键盘软驱触摸板新定义计算机笔记本电脑台式机 继承部分新定义新定义继承部分基本概念(继承)继承的效果继承的效果 揭示了类似构成元素间的理论关系揭示了类似构成元素间的理论关系部件可以体系化部件可以体系化差异编程差异编程(仅定义与(仅定义与上层概念不同的部分)上层概念不同的部分)

128、已有代码和扩展已有代码和扩展代码的分离代码的分离部件的易修改性部件的易修改性部件的易扩展性部件的易扩展性部件的易检索性部件的易检索性基本概念(状态)状态状态 面向对象方法就是把数据及其对操作处理这些数据的一系列行为定义成对象单位。但是,具体对象中这些行为的可用与否,实际上是由内部的数据的值来决定的。也就是说,通过特定的内部数据值,将对象分成多个不同的“状态”,在每个对象状态里,明确可利用的行为。通过执行行为,可以表现状态的迁移,这样就可以在设计书里明确行为的执行顺序。提供者可以靠“状态”向使用者传递正确的“行为的利用顺序”。(下图所示)面向对象打开关闭读写初始状态关闭打开打开状态读出写入打开读

129、关闭打开关闭读有关对象利用的约定函数的利用顺序靠两者的默契提供者利用者打开关闭读写从前文件对象明文化保证正确动作没有必要保证误动作程序1程序2如果能按调用顺序,就能保证正确动作操作文件的函数集合基本概念(状态)状态(迁移图)的效果状态(迁移图)的效果 着眼于状态,通过作成状态迁移图,可以使着眼于状态,通过作成状态迁移图,可以使对象的提供者和利用者的共通约定明文化。对象的提供者和利用者的共通约定明文化。 提供者提供者:没有必要保证约定以外的情况下的:没有必要保证约定以外的情况下的 对象的正确动作。对象的正确动作。 利用者利用者:按照约定,对象的正确动作就能得:按照约定,对象的正确动作就能得 到保

130、证。到保证。RETURN面向对象分析与设计面向对象开发过程概述面向对象开发过程的特征面向对象分析、设计方法论 OMT法 Booch法 其他方法论 第二代OMT法案例介绍面向对象开发过程概述面向对象分析系统分析、设计用户接口设计与面向对象设计编程(面向对象编程)再利用的准备各种方法各种方法中大规模小规模小中规模小大规模对象规模中高特别高低技术公开度RoseOOAToolOMToolTeamwork辅助工具丰富少少丰富(1979-)适用成绩1990年1990年 1991年1988年发表年 -高自然高自然低分析.设计过程OOD的联结度扩充了Ada用的方法论的旧Booch法。从HOOD,OOSD等Ad

131、a用的方法论的影响大,也受E-R,JSD法的影响高组合E-R图及Shlaer&Mellor的方法和OOP及知识库系统的概念而发展而来低从结构化分析继承数据流和状态转换图,对象、建摸受E-R图等的影响高将意义模型作为基础高概要记述力Grady Booch/美国Rational公司Peter Coad/美国Object International公司J.Rumbaugh等General Electric公司研究开发中心Sally Shlaer/美国Project Technology公司开发者/公司Booch方法Coad&YourdonOMT方法Shlaer&Mellor方法方法4大方法的特征大方

132、法的特征S-M法:法: 作为对象意识到实时系统,辅助特别细致的作为对象意识到实时系统,辅助特别细致的 动态建模动态建模C-Y法:法: 没有细微的限制,对于用户自由度高,是没有细微的限制,对于用户自由度高,是4种种 方法中最通用的。方法中最通用的。OMT法:法: 是是4种方法中唯一从分析到设计、编程连贯下种方法中唯一从分析到设计、编程连贯下 来的方法来的方法Booch法:以面向对象设计为对象,与其他方法比较,法:以面向对象设计为对象,与其他方法比较, 对于各种面向对象语言有种种表现形态,与对于各种面向对象语言有种种表现形态,与 面向对象语言的连接明确面向对象语言的连接明确四种方法没有本质的区别l

133、四种方法的描述方法确实不同,但没有本 质区别。l这些方法没有具体到现场怎么用,所以对 于具体问题有必要适当改变再应用。l可能几种方法混合使用和引用。l这些方法都在进一步完善。方法实例之一:S&M方法介绍l1988年提出的方法,原型始于1979年左右应用于大规模实时系统为中心的系统分析。1992年进一步完善。l用法上的注意点:S&M法中,现实世界中的事务叫【事例】,抽象化后的事例叫【对象】。l模型:信息模型(对象模型)、状态模型(动态模型)、处理模型(功能模型)方法实例之一:Shlaer&Mellor法基本对象模型状态模型处理模型原创对象通信模型对象存取模型Shlaer&MellorShlaer

134、&Mellor法的基本模型法的基本模型S&M方法介绍模型扩展 在3个基本模型的基础上增添4个原创模型:(1)对象通信模型,(2)对象存取模型,(3)领域模型, (4)子系统模型。对象通信模型表示对象间的消息关系。 对象存取模型表示对象间数据的参照关系。领域模型与子系统模型是为适用于大规模开发而设置的模型。S&M方法介绍模型扩展 大系统的情况下,要考虑分割成领域。领域由一些子系统构成。为了描述这两个模型,还有表示系统整体对应的领域图以及描述领域中各种子系统间的事件通信的子系统模型等的模型。这样就需要各种文件,其特征就是明确其关系。以下几节就介绍上述的用S&M法的分析建模。系统领域子系统子系统领域

135、子系统子系统领域图领域模型和子系统模型领域模型和子系统模型方法实例之二:信息模型(1)所谓对象l对象就是事物的抽象 首先有必要识别事物。进而,还必须抽出现实事物间的静态关系。将事物作为对象模型化,然后将事物共有的性质作为属性附加于对象。事物间的静态关系作为对象间的静态关系来模型化。方法实例之二:所谓对象(图示)事物的识别对象事物间的静态关系对象的属性对象间的静态关系方法实例之二:对象的候补l对象的候补 对象的候补首先是有形的东西,是现实存在的事物的抽象。其次,是找出其目的或任务抽象的作用(如大学,教师和学生)、发生现象的抽象(如选举、地震)、对象间关联产生的相互作用(如合同)、表征其规则或标准

136、的规则(如烹调方法)。 候补的抽出没有固定顺序,可以是:先从要求文中出现的有形事物的抽出开始,按上述的项目的顺序抽出对象。这个顺序就是表示从分析阶段出现的对象到设计阶段出现的对象的顺序流程。方法实例之二:对象的候补(图)(分析阶段分析阶段 ) (设计阶段设计阶段 ) STEP1 STEP1 STEP1 STEP1有形的东西自然界中实际存在的“东西”的抽象作用目的和任务的抽象出现现象相互作用规格规则基准方法实例之二:对象抽出难l对象的抽出较难 面向对象软件开发中最重要的项目就是对象的抽出。 抽出的好,则以后各个阶段进展顺利,否则,就出现返工,难以进入实质开发。 对象的抽出不仅从名词句中,而且从要

137、求书中的动词句的动作主体和动作对象中抽出。一般先从动词句着手效率更高些。 尽量抽出较多的候补对象来,然后再去掉。尤其是在定义属性时可以验证对象要否,这也是循环开发的技巧。方法实例之三:信息模型(2)所谓属性l对象性质的描述 对象共有的性质就是属性。 针对于对象的事例具有各自属性的属性值。属性值的不同产生了事例的唯一性。能够区别事例的叫做【识别符】。对象一定要有识别符。方法实例之三:属性的种类l属性的种类 分析中对象的属性有【描述属性】、【赋名属性】和【参照属性】等3种。 【描述属性】赋予对象的各个事例固有的事实和性质。 【赋名属性】给事例赋予名称或标签。 【参照属性】与其他对象的事例建立联系。

138、(举例见下页)方法实例之三:属性的举例l举例 “职工”对象的描述属性有:参加工作日期、职称、家庭电话等; 赋名属性有:职工号码、姓名; 参照属性有:所属科室名称。 所以,职工号码就是唯一确定某一职工的识别符(同名同性可能);所属科室名称是将职工对象与部或科对象建立关系的属性。方法实例之三:属性的举例(图)给对象的各事例赋予固有的性质或事实对 象赋名属性参照属性描述属性姓名参加工作日期职称家庭电话所属部名所属科室职工号码职工给事例起名称或赋标签与其他对象的事例建立联系方法实例之三:参照属性的举例(图)对象赋名属性参照属性描述属性职工所属部门所属科名对象赋名属性参照属性描述属性部对象赋名属性参照属

139、性描述属性科部科名方法实例之三:属性的规则l规则1:各属性必须拥有一个值;l规则2:属性不能含有内部构造;l规则3:识别符以外的属性不能表示识别 符的性质。l规则4:不表示其他属性的性质。以上规则是根据关系型数据库原理产生的。方法实例之四:信息模型(3)所谓关系l对象间的关系 现实世界中不同事物之间存在着某种关系。比如,宠物和宠物的拥有者之间,宠物的拥有者“拥有”宠物,或者说,宠物被宠物的拥有者“所拥有”,具有这样的关系。这样的联系在信息模型中,作为对象间的关系加以模型化。一般现实世界中存在的关系有【多重性】和【条件性】。方法实例之四:信息模型(3)所谓关系(图)关系关系存在于现实世界中不同事

140、物之间关系有条件性和多重性条件性: 无条件 有条件多重性: 1对1关系 1对多关系 多对多关系方法实例之四:关系的多重性 所谓的多重性就是宠物的所有者有多个宠物的情况那样,其关系不是一对一而是指一对多。关系多重性中存在多对多的关系。比如上例中某一宠物实际由多个所有者共有的情况。这样的多对多的关系的情况可以模型化。这种对象叫做有关联对象。动态变化关系的情况也可模型化。即关系具有状态模型的情况。或者说,对于有关联对象可以追加新的属性。这样的把关系作为对象进行模型化是面向对象分析的一个重要特征。可以说与意义模型有决定性不同。方法实例之四:关系的多重性(图)无条件关系(所有的事例包含在内)带条件关系(

141、片面的事例,可能有成为不了关系的)双向带条件关系(两侧的事例,可能有成为不了关系的) 1 : 11 : MM: M1: 1 C 1C :M 1 :MCM: MC 1c : 1c 1c : Mc Mc : Mc方法实例之四:关系的条件性 条件性有【无条件】和【有条件】之分。所谓无条件就是指属于关系,所有的事例都成立的情况。有条件就是指属于事例,但某种情况下关系成立,其他的情况下关系不成立。 条件性是关系仅存在于一侧的事例的情况和也有存在于两侧的事例的情况。也允许多重性的融合,所以关系的所有的可能性有10个。 关系的丰富性是S&M法的重要特征。方法实例之五:状态模型l对象状态抽象化 对象是把现实世

142、界中事物的集合抽象化的实体,事物中有状态。所以在将事物抽象化的同时有必要将其所拥有的状态抽象化。对象的所有事例必须遵循同一处理规则。分析的目的是正确的理解事物,必须定义对象的动态时序中的处理过程。即,对象有状态的变化。把这称之为对象有生命周期。明确地处理对象状态地变化是分析的重要特征。方法实例之五:状态模型 状态模型按状态的集合、事件的集合、变迁规则及其操作来定义。状态模型的典型例子就是状态迁移图。状态是对象的某一状态、事件表示引起状态变迁的事件和指示。变迁规则是某状态的事例在接受某事件时规定转移到哪个状态。行为是状态中所引发的一系列动作。方法实例之五:状态模型生命周期(图)时间事例1事例2对

143、象生命周期事件状态A(动作A)状态B(动作B)状态C状态A(动作A)状态A(动作B)状态C事件状态迁移迁移方法实例之五:状态模型通过状态变化分析使功能明显化 虽然定义对象,但如果将定义生命周期作为第一目的地话,第二目的是根据状态地变化,找出必要的事件或处理。事件含有来自周围对象的消息,依据此就可使与周围对象的动态关系显性化。处理可是对象潜在的功能显性化。处理的抽出与下节要讲到的处理模型的描述相关。方法实例之五:状态模型与处理模型(图)状态模型状态对象的状态事件引起迁移的触发迁移规则接受新事件时转移到新的状态处理在状态中引起的一连串的动作状态迁移图处理模型对象属性处理数据流图方法实例之五:状态模

144、型生命周期间的协调 不同对象的生命周期也有相互协调。某对象的状态的迁移引起的处理变成了事件,这是因为也可引起其他对象状态的迁移。将这样的不同对象间交叉的事件模型化的是对象的通信模型,将在后面的章节介绍。对象通信模型是对象间消息流的基础。方法实例之六:处理模型行为、数据流图 在对象分析中,状态的着眼点是在使动态侧面显性化的同时,找出各状态的行为。状态中的行为称之为处理模型,处理模型用“行为、数据流图”表示。即,行为、数据流图是行为内部的处理单元与其处理单元间的相互通信用图示来表示。 行为、数据流图由(1)数据存储;(2)数据流;(3)控制流;(4)处理构成。方法实例之六:处理模型(图)方法方法面

145、向对象面向对象结构化结构化表示数据流的模型行为、数据流图数据流图目的描述对象内的功能描述系统功能、分割构成要素处理方法数据流的变化功能数据存储对象属性临时数据存储数据流方法的属性、存取数据流向终止外部的实体数据最终的发/收信地控制流处理的执行顺序处理的执行顺序面向对象与结构化的数据流图面向对象与结构化的数据流图方法实例之六:对象存取模型 处理除了自身的属性以外,也可存取其他对象属性。有必要描述对象间的数据存取,要进行此描述,就要用对象存取模型。对象存取模型。 对象存取模型由对象群及连接对象间的箭头组成。对象存取模型由对象群及连接对象间的箭头组成。箭头用处理名作为标识,见下图。箭头用处理名作为标

146、识,见下图。方法实例之六:对象存取模型(图)处理模型对象存取模型处理模型对象A对象B方法实例之七:对象通信模型描述系统整体的动态处理过程 不仅描述对象,也有必要描述系统整体的动态处理过程。对象间、还有与外部实体的事件通信的描述、以及对象间协调的处理也需要描述。对象通信模型就是描述这些信息的,描述对象间消息流的。相当于OMT法的事件流。但是,SM法中,是在状态模型后建立,OMT法中正好相反,模型建立的顺序不同。 在在对象通信模型中,对象呈多层化,功能丰富的对象置于上面,不丰富的放在下位。针对多层化的对象按外部事件驱动模式分上位驱动和下位驱动。另外,外部事件还有先于系统的行为引起的和后引起的区别。

147、方法实例之七:对象通信模型(图)系统整体的动态处理对象间的事件通信与外部实体的事件通信对象间协调的处理对象通信模型方法实例之七:对象的多层化(图)智能度对象A对象B对象C对象D对象E多层化外部事件高上位驱动下位驱动低下位上位方法实例之七:控制链控制链是内部的控制队列 把外部引起的内部行为,即内部的控制队列叫做控制链。控制链由行为和事件列组成,呈横断多层化的对象群的形态。 对于分析人员来说,它具有一定的意义。对于特定状态的系统来说,外部事件发生时,描述系统内部产生的现象。要弄清对于外部事件系统整体的响应,可通过模拟并追踪控制链来实现。根据模拟的结果,可以评价所有的属性与其他的属性是否整合,系统是

148、否对外部事件作出了期望的响应。方法实例之七:控制链(图)内部事件内部事件3内部事件内部事件2外部事件1外部事件1行为1内部事件2行为2内部事件3控制链对象1对象2对象3状态A状态P状态XBQYZC(行为1)R(行为2)系统系统方法实例之八:领域模型4种领域模型种领域模型 在构筑大型系统时,分析人员一般要处理许多不同的内容,即要处理领域。可以认为各个域不论多少都独立于其他领域。 领域模型有4种: (1)从系统最终用户角度描述的“应用域”(分析阶段); (2)描述支持应用领域的实体函数的“服务域”(设计阶段); (3)管理系统整体数据及控制的“结构域” (设计阶段); (4)考虑到编程语言、OS、

149、类和库的“实现域”(实现阶段) 目前为止讲到的分析问题就是这里的应用域的问题,即弄清用户对系统的要求。方法实例之八:领域模型(图)领域模型考虑到编程语言、OS、类和库管理系统整体的数据及控制支持应用领域的实体函数从系统最终用户角度“应用域”(分析阶段)“服务域”(设计阶段)“结构域” (设计阶段)“实现域”(实现阶段)方法实例之八:域模型间联系 这些模型构成整个系统。特别是结构域与实现域关联密切。比如,实现语言不同,那么结构域中的讨论项目也不同。 某个域用其他域提供的算法或功能时,两域间有个“桥”。系统中必要的域和桥的关系用域图来表示。按惯例,图的上位表示应用域,下位表示实现域。 域用椭圆来表

150、示。在实现了的系统中,两域间的联系表示上位域利用下位域提供的功能。 下图例中,作为域的例子,铁路操作意味着列车与货车日程的监视。桥的例子,意思是铁路操作利用警报域来管理铁路的故障情况;另外,【警报】与【用户接口】间的桥,表示警报用用户接口的功能向操作员报告故障状态。 在域中作为整体分析来说也有特别小,多的不能管理程度的含有对象的域。这种情况,下节中讲到,把域分割成子系统。 方法实例之八:举例(图)运行记录运行记录(上下行)(上下行)铁路操作网络软件结构警报编程语言用户接口操作系统处理处理输入输出输入输出铁路管理系统中的域图方法实例之九:文档体系与项目矩阵 3种子系统模型 分析的对象是较大问题时

151、,就要分割成子系统模型化。这就叫做子系统模型。有3种子系统模型:(1)子系统关系模型(SRM) 表示子系统内信息模型间的关系;(2)子系统通信模型(SCM) 表示子系统间的事件通信;(3)子系统存取模型(SAM) 表示对象、存取、模型间的关系。 域图和项目矩阵是关于系统整体作成的。针对各个域定义上面3种子系统模型。方法实例之九:子系统模型(图)对象描述对象名:关键字:SK 属性: 属性1 属性2描述: 状态处理表SK 存取处理SK1 读取属性SK5 消除 SK6 写属性4与6SRMSCMSAM信息信息模型对象通信模型对象存取对象存取模型模型STD方法实例之九:子系统为单位构建子系统为单位构建

152、分析工作成果的大部分是作到子系统程度。即,3种模型以及与其相关的各个子系统的辅助表或清单。子系统下有构成其的对象。针对具有行为的各个对象及其各个关系,描述其状态模型。针对各个状态模型作成行为、数据流图。最后针对行为的复杂处理,作成各个处理的描述。下图是铁路管理系统的分析成果例。方法实例之九:子系统为单位构建(图)自动铁路管理系统轨道管理编 组警报用户接口客 车门列 车发车准备铁路操作列车操作。关 门域图 项目管理矩阵子系统关系模型 子系统通信模型子系统存取模型信息模型 对象与属性的描述关系的描述 对象通信模型 事件列表 对象存取模型 状态处理表列车操作的对象状态模型发车准备的处理行为、数据流图

153、处理的描述域图:自动铁路管理系统中的文档体系方法实例之九:用项目矩阵管理 项目管理矩阵是表示作业和计划的一种简明的表达形式。在矩阵中,作业的人员配置、作业成果、计划工时、当前的作业状态(完成、进行中、未开始)、作业的开始及完成的预定日期、实际工时等用矩形文本框表示。将此表张贴在现场,有助于监视和控制进度。面向对象的项目管理问题较多,这可作为解决方法之一。方法实例之十:方法与消息(对象中) S&M对象中的方法 S&M法与其他方法的区别还在于对象仅有属性而没有方法(method)。在面向对象语言中当然有方法,下面介绍S&M法是如何处理方法和消息的。 以手法六中的处理模型为例,下图中(a)表示对象A

154、和对象B的处理模型。对象A有四个处理,这就相当于4个方法。方法实例之十:方法和消息(图)对象存取模型对象A对象B对象A对象B处理模型处理模型处理模型处理模型(a)(b)图:从对象存取模型抽出方法方法实例之十:方法与消息(通信模型中) S&M通信模型中的方法与消息 S&M法中,消息可以从对象通信模型和对象存取模型获取。 对象通信模型表示对象间的事件通信或者说对象间协调的处理。例如:对象A发出的事件引起对象B的状态的变迁。这可解释为消息由对象A向对象B发出的。对象A发出的消息由对象B的方法接收。这可证明方法是存在的。对于对象B来说,虽然作为生命周期来描述状态模型,但在状态模型中,由对象A的事件引起

155、的新的状态变迁时的动作相当于方法。 下图中对象B从对象A得到作为消息的内部事件1,其结果对象B的状态从Q变为R,作为方法执行处理行动1。方法实例之十:方法和消息(图)状态A B C对象A对象B状态Q R(行动1)内部事件1系统时间图:从对象通信模型抽出方法方法实例之十:方法与消息(存取模型中) S&M存取模型中的方法与消息 S&M法中,对象存取模型中也有消息和方法。 对象存取模型是对象在存取其他对象的属性时用到的模型。 在面向对象里,因为被封装,所以不能直接访问其他对象的属性,因此,要实现象前面的图中(a)的对象存取模型时,(b)里要追加用红色表示的处理。即,对象A要访问对象B的属性时要通过对

156、象B的用红色表示的处理来实现。 作为获取方法和消息信息的模型,列出了对象通信模型和对象存取模型,前者着重事件的抽出、而后者着重处理(行动)的抽出,两模型相互补充。方法实例之十一:分析向设计的转换 OODLE图 关于从分析向设计的转换,在S&M法中,用OODLE(Object-Oriented Design LanguagE)来描述。OODLE是不依赖于语言的设计描述方法,OODLE可以说成是Language,但其内容是图式描述法,使用4种图: 类图类图描述类的外观; 类构造图类构造图表示与类内操作相对应的代码的内部构造; 依存图依存图描述起动关系和友元关系; 继承图表示类间的继承关系。 这些图

157、间的关系明确后,对于设计人员来说,就有了一个比较明晰的体系。方法实例之十一:分析向设计的转换(图)OODLE描述一个类的外观表示类内操作相对应的代码的内部构造描述起动关系和友元关系类图类构造图依存图继承图表示类间的继承关系OODLE图方法实例之十一:分析向设计的转换 类图是一个类一个类的描述。类图是为设计类的内部构造提供外部规格或接口规格设计。 类构造图以原有的构造图为基础,是承担类内部设计人员的工具,在表示类内数据及其控制的流向、代码构造时使用。针对各个类画出类构造图。 依存图用于描述起动关系和友元关系。所谓起动关系就是某个类起动其他类的公开操作。友元关系指的是某个类起动其他类的内部操作或者

158、直接访问数据。 继承图描述类间的继承关系,设计人员写出继承构造、修改或在想修改嵌套在构造中的类时使用。 有从分析结果向OODLE变换的规则,进而也能向C+的模板变换。方法实例之十一:分析向设计的转换(图)OODLE图间的关系图间的关系继承图依存图类图类构造图方法实例之十一:分析向设计的转换 作为从分析向设计转换的基本方法,制定了从分析模型的构成要素向设计的构成要素变换的规则。以这种规则为基础,生成主程序、4个结构类、几个应用类。 主程序的功能是类的各种初始化操作的调用、开始控制队列或者继续生成外部事件、定时事件的生成。 结构类由(1)有限状态模型,(2)迁移,(3)主动事例,(4)定时构成。有

159、限状态模型、迁移、主动事例作为结构的状态机械算法来实现;定时类用时间对象来对应。 应用类由分析结果的对象与状态模型导出。作成被动类、主动类和分配子3种。被动类是没有状态模型的对象,主动类是拥有状态机械的对象,分配子在OOA里成为对应分配子的类。应用类的内部设计用类构造图来表示。如果将其分类的话,可分为被动类、主动类和分配子类3种。四种方法的比较评价1表示S&M法OMT法C&Y法Booch法意义数据模型面向对象语言类-class对象object类class类class类class对象object类class属性attribute属性attribute属性attribute属性attribute域

160、field属性attribute变量名variable方法method-操作operation服务Service操作operation-方法method消息message事件event事件event消息message connection消息message-消息message事例instance事例instance对象object对象object对象object实体 entity事例instance层次上层、下层型超类/子类Gen-Spec上层类/下层类通用/特殊化父类/子类整体部分关联对象集约Whole-PartUsing关系集约-关联关联对象关联事例结合Using关系 undefined关

161、系关联-用法的不同用法的不同联系的表示见下图四种方法的比较评价1*使用关联对象整体部分由整体部分组成S&M法属性继承关系OMT法C&Y法(类)层次S&M法OMT法C&Y法联系的表示图三种方法的规格化过程和文档(a)方法S&M法对象模型作成阶段 对象抽出信息构造图(对象图)对象规格书关系规格书动态模型作成阶段状态迁移图事件列表对象通信模型功能模型作成阶段对象访问模型行为数据流图状态处理表处理描述属性层次关联状态动作的定义的定义的定义的定义的定义三种方法的规格化过程和文档(b)对象图 对象提取对象图(数据词典) 对象提取服务图数据流图对象状态图经过事件追踪图状态迁移图(statechart)Coa

162、d&Yourdon法OMT法关联对象组状态属性层次事件状态功能操作服务构造属性的定义的定义的定义的定义的定义的定义的定义的定义的定义的定义的定义的抽出Super class/ sub class(Gen-Spec.Whole-Part的定义的定义)(主题的定义)(主题的定义)(事例结合的定义事例结合的定义)(消息结合的定义消息结合的定义)四种方法的文档方法S&M法OMT法文 档 信息模型对象模型信息构造图对象规格书关系规格书对象图状态模型动态模型状态迁移图时间列表对象通信模型经过,事件追踪图事件流图,状态迁移图(statechart)处理模型功能模型对象访问模型行为数据流图,状态过程表处理描述

163、数据流图四种方法的文档方法Coad & Yourdon法Booch法文 档 -静态模型对象图类图对象图对象状态图状态迁移图时间(点)图-(其他模型的一部分)服务图模板面向对象分析过程面向对象分析过程Coad&Yourdon的面向对象方法论(P48)C&Y对象模型的部件 一个对象模型的部件是类的一个分组。这些分组包括: 问题域PD(problem domain) 人机交互HI(human interaction) 数据管理DM(data management) 系统交互SI(system interaction)面向对象分析过程面向对象分析过程方法的活动项目Coad&Yourdon确定目的和特点

164、;确定对象和模式:对象的确定、构造定义、部件确定;建立对象责任:属性定义;定义服务场景:服务定义;系统 、DM 数据管理 、HI、人机交互PD对于每个问题域 个活动。它们是同时进行的,也可按3都要重复上述后SI交互任意顺序进行,也可以忽略其中一个或多个活动。是交互和螺旋式进行的。面向对象分析过程面向对象分析过程Coad&Yourdon方法的活动项目(P47)确定目的和特点确定对象和模式建立对象责任定义服务场景要对四个部件的每一个要对四个部件的每一个确定对象和模式确定对象和模式C&Y方法论的交互视图C&Y法的对象模型符号法的对象模型符号对象类对象类属性1属性2服务1服务2名称(最上面)属性(在中

165、间)服务(最下面)属性1属性2服务1服务2类类(1)类与对象类与对象(2)Gen-Spec构造构造通用(3)Whole-Part构造构造整体特定特定部分1部分2(4)对象连接对象连接(5)消息连接消息连接发送方接收方消息连接消息连接对象连接对象连接C&Y法的分析过程法的分析过程本章主要介绍以下2个内容:C&Y法的具体分析顺序基于实例的OOA过程的模型化C&Y法的具体分析顺序法的具体分析顺序图:C&Y法的具体分析顺序 名词词组、动词词组的抽出 类候补的抽出 类候补的验证 属性的定义 关系的定义 主题的定义C&Y法的具体分析顺序法的具体分析顺序本章以“直升机自动着陆系统”为例。 以有“需求文档”为

166、前提。有的“需求文档”往往仅是描述系统的问题领域。所以,为了提高分析效率,对“需求文档”作必要的整形。首先,将被动态句子转为主动语句;其次是补充被省略了的动词主体(动词词组的主语);最后,将动词词组中出现的代名词置换成所指的具体的名词语句(没有合适词汇时造词)。C&Y法的具体分析顺序法的具体分析顺序(需求文档)(需求文档) 直升机的自动着陆系统 P.Pfilers公司从事首都圈的货物配送业务。作为经理和创始人的P.Pfilers确立了在诺大的首都圈两点间配送时间仅需1520分钟的公司的声誉。因为他拥有直升机队和最近购置的250个废弃厂房用地改造的停机场,所以他可以实现其目标。在各个停机场里有自

167、行车和自行车停车场,配送员用自行车将货物从直升机运到目的地。这个快的令人难以置信的服务尽管可使他的运费很高,但他的业务得以迅速扩大。然而,上周他的公司遇到了2个大问题。开始是星期二整个城市被浓雾所笼罩,可见度为零,直升机不能起飞。更糟糕的是他的客户很狼狈。出现了考虑起诉他的人。为什么,因为他声称最长运送时间20分钟不受天气影响。第二个问题是星期四的事,当一个飞行员想着陆时,心脏病发作了,导致直升机坠毁,货物破损。幸运的是飞行员得以救助,现在住院恢复中。这样的事情肯定是坏事,但顾客再次支付这种服务昂贵的费用,因为他们并不认为他们的重要货物会破损。 P.Pfilers为了保证他承诺的服务水平,他决

168、定在250个停机场安装控制安全着陆的系统是最好的办法。这个系统必须保证在能见度为零时,飞行员神智不清时都能高效的操作。他跟我们签订了开发这样系统的合同。C&Y法的具体分析顺序法的具体分析顺序(名词抽出)(名词抽出)名词词组、动词词组的抽出名词词组、动词词组的抽出 名词是类、属性和属性值的候补。 名词词组分析完成后分成“类”、“属性”、“属性值”、“不要信息”四种类型。名词词组的抽出、分类代名词 类同义词 属性 常量名、变量名及其值 属性值抽象概念及其实例 不要信息C&Y法的具体分析顺序法的具体分析顺序(名词抽出例)(名词抽出例)名词词组的抽出例(名词词组的抽出例(31个)个)货物,首都圈,经理

169、,创始人,公司,公司的声誉,服务,直升机,停机场,楼房用的,自行车停车场,自行车,飞行员,目的地,价格,业务,问题,城市,雾,可见度,顾客,天气,最长配送时间,心脏病发作,医院,发生的事情,费用,最好的办法,服务水平,系统,分析人员C&Y法的具体分析顺序法的具体分析顺序(动词抽出)(动词抽出)动词词组的抽出动词词组的抽出 抽出动词词组时,整理附属的信息(谁、做什么、给谁)。 首先,抽出动词的主体,即动词词组的主语; 其次,动作对象,即直接宾语或间接宾语;动词词组的抽出、整理动词主体(动词词组主语)动作对象(动词词组的直接宾语)间接宾语(动词词组的间接宾语)C&Y法的具体分析顺序法的具体分析顺序

170、(动词抽出)(动词抽出)动词词组的抽出例(动词词组的抽出例(27个)个) 分析人员分析人员经理经理签约签约间接宾语间接宾语动作对象动作对象动作主体动作主体动词词组动词词组系统系统分析人员分析人员开发开发安全着陆安全着陆系统系统控制控制系统系统经理经理安装安装服务水平服务水平经理经理承诺承诺服务水平服务水平公司公司保证保证最好办法最好办法经理经理决定决定费用费用顾客顾客支付支付飞行员飞行员治疗治疗直升机货物直升机货物破损破损直升机直升机坠毁坠毁飞行员飞行员心脏发作心脏发作袭击袭击最长配送时间最长配送时间天气天气影响影响不受影响不受影响经理经理声称声称起诉经理起诉经理客户客户考虑考虑客户客户狼狈狼

171、狈直升机直升机雾雾不能起飞不能起飞城市城市雾雾笼罩笼罩问题问题公司公司遇到遇到业务业务扩大扩大目的地目的地货物货物飞行员飞行员运送运送自行车自行车飞行员飞行员用用停机场停机场经理经理改造改造最长配送时间最长配送时间经理经理实现实现公司声誉公司声誉经理经理确立确立货物货物公司公司配送配送服务服务公司公司从事从事间接宾语间接宾语动作对象动作对象动作主体动作主体动词词组动词词组C&Y法的具体分析顺序法的具体分析顺序(类候补的抽出)(类候补的抽出)类候补的抽出类候补的抽出 在抽出类候补时的注意事项: 按固有名词、动作主体、动作对象、间接宾语、名词词组的顺序来调查和抽出。(22个类候补)固有名词固有名词

172、 (检查含有固有名词的有抽象概念意义的名词词组的存在,若存在就是类,并且可能是检查含有固有名词的有抽象概念意义的名词词组的存在,若存在就是类,并且可能是Gen-Spec构造构造)从从动作主体中抽出动作主体中抽出(动词词组的主语名词是类的候补)(动词词组的主语名词是类的候补)从从动作对象、间接宾语中抽出动作对象、间接宾语中抽出(动词词组的动作对象、(动词词组的动作对象、间接宾语间接宾语的名词是类的候补,间接宾语是类的可能的名词是类的候补,间接宾语是类的可能性高(在消息交换时模型化),类候补所涉及到的动词词组作为服务(方法)的候补登记下来供服务定义用)性高(在消息交换时模型化),类候补所涉及到的动

173、词词组作为服务(方法)的候补登记下来供服务定义用)从从名词词组中抽出(属于以下名词词组中抽出(属于以下7种类的就作为类候补)种类的就作为类候补) 装置、组织、场所、应记录的事情、作用、操作过程、其他系统装置、组织、场所、应记录的事情、作用、操作过程、其他系统 (对不上以上种类的很难判断)(对不上以上种类的很难判断)注意:注意: 在名词词组前先从动词词组研究在名词词组前先从动词词组研究 在该阶段尽量搜集候补,不合适的也不要抛弃,以备后用。在该阶段尽量搜集候补,不合适的也不要抛弃,以备后用。类候补的抽出例类候补的抽出例价格自行车停机场货物经理创始人服务水平发生的事情心脏病发作顾客城市目的地自行车停

174、车场直升机首都圈服务名词词名词词组种类组种类动作动作对象对象动作动作主体主体未成为类未成为类的名词语的名词语句句所所选选类类类候补类候补名词词组名词词组922221010个数分析人员最好的办法医院最长配送时间可见度问题业务飞行员楼房用地公司的声誉系统费用天气雾公司名词词名词词组种类组种类动作动作对象对象动作动作主体主体未成为未成为类的名类的名词语句词语句所所选选类类类候补类候补名词词组名词词组类候补的验证类候补的验证抽出的类候补(22个)公司、雾、分析人员、医院、问题、经理、停机场、天气、系统、自行车、心脏病发作、创始人、自行车停车场、发生事情、楼房用地、飞行员、目的地、顾客、城市、服务、货物

175、、直升机类候补的验证和选定验证抽出的类作为类是否妥当隐藏有关设计、实现的信息排除从其他信息(对象、属性)可能导出的候补有无属性或服务类候补的验证类候补的验证隐藏有关设计、实现的信息涉及到设计和实现的类候补要从分析对象中剔除(但,要保存以备后用)。另外,有关设计和实现的各种约束(如性能要求)也要标记到相关候补上。排除从其他信息(对象、属性)可能导出的候补把从某类候补的属性的信息可以导出的类候补从类候补中去掉。定义属性后有必要检查这样的类。检查无属性或服务的类有无属性或服务是很大的检查项目。如果没有就不能是类。但是,在此阶段还没定义属性和服务,所以检查后放。当然,类的抽出、属性定义和服务定义的3种

176、作业可同时进行,但对初学者困难,在此不考虑。类候补的验证分2回进行 属性和服务未定义阶段、利用后面工程的结果(属性服务抽出)再检查,这样就循环进行。属性的定义属性的定义1 整体概要整体概要属性的定义是重要的分析项目 各个类由属性和服务组成,类之间存在属性的参照关系及其服务的要求关系。面向对象分析不用说就是以将这些信息抽出并加以整理为目的。 首先,因为类必须有属性,所以属性的有无与类的存亡有关系。换言之,通过属性抽出,可以判断抽出的候补类是否正确。 其次,通过属性向类中的配置可以提供规定类间的Gen-Spec构造,或者说消息流向的信息。 进而,通过筛选属性值,可以定义类的状态迁移,使促使状态迁移

177、的服务的存在明显化。 如上所述,属性定义对类及服务,进而对决定类间的构造有很大的影响,在分析工作中有重要的作用。属性的定义属性的定义1 整体概要整体概要属性的定义1、从名词词组中抽出属性的候补2、从没有属性的类中抽出候补3、区分重复属性的类4、描述规定类的状态迁移的属性属性的定义顺序1、从名词抽出属性2、非属性类的验证3、属性联接(也叫事例联接)的定义4、描述规定类的状态迁移的属性名次词组名次词组类类有属性类有属性类非类名词词组非属性名词再斟酌属性候补无属性类无属性类不知是类否属性候补再斟酌类中不重复的属性类中重复的属性所有属性所有属性参照属性事例联接属性值类的状态迁移选择整理代入值1234属

178、性的定义顺序属性的定义顺序属性的定义顺序属性的定义属性的定义2 名词中属性的抽出名词中属性的抽出没成为类的名词的审查 在从名词抽取属性时,首先对未成为类的名词审查其作为类属性的可能性。对于动词语句的附属信息,着重动作的对象。动作主体是类但其动作的对象不是类的情况下,动作对象为属性。但是,具体是不是动作主体的属性不能确定,根据句型和动词来判断。结果就会产生多数类拥有同一属性的情况。这可通过事例联接的定义来解决。类没成为类的名词没成为类的名词-属性属性经理公司的声誉经理最长配送时间经理最好的办法经理服务水平公司服务水平天气最长配送时间顾客费用公司商业基础服务价格天气能见度没成没成为类为类的名的名词

179、作词作为属为属性的性的可能可能性性属性的定义属性的定义2 名词中属性的抽出名词中属性的抽出其它类的属性 审查某类作为其他类的属性的可能性。检查已经作为类的名次词组是不是作为其他类的属性好。比如,【创始人】作为【公司】的属性。但是,这样的判断最好在全部分析后返过来再审查。服务的有无和归属是关键。 接下来是所有格的检查。检查某一名词语句是否成为了某一名词词组的所有格。所有格的情况下,自然就成为属性。该例中【公司的声誉】,【声誉】是【公司】的属性,在【服务水平】中,水平是【服务】的属性。下一步是检查作为属性值的名词语句。本例中1520分钟是【最长配送时间】的属性值。名词语句中,可以认为有常数值存在,

180、一般其意义在需求文档中有标示。关于未使用的名词语句调查是否存在可作为属性值的常数,赋予适当的属性名。 需求文档中没有出现的属性的补充,作为默然的了解事项来定义需求文档中没有表现的属性。如果必要可通过谈话来补充。如下表所示补充属性。 最后处理未使用的名词,完成上述分析后,作为属性和类没有被采用的名词,再度分析其作为属性应有的类。属性的定义属性的定义2 名词中属性的抽出名词中属性的抽出类类从名词中抽出的属性从名词中抽出的属性补充的属性补充的属性非属性地类非属性地类公司服务的水平,创始人,公司的声誉,商业基础医院街道,负责一声停机场街道,可/不可利用自行车自行车停车场自行车停车场停机场建筑用地停机场

181、,街道目的地货物都市天气,气温,湿度,风,能见度货物目的地,直升机雾能见度,范围问题X天气最大配送时间,能见度天气,气温,湿度,风心脏病发作X发生的事情X飞行员直升机顾客费用街道,货物经理公司的声誉,最大配送时间,最好的方法,服务的水平公司服务服务的水平,价格最大配送时间直升机飞行员,着陆地点,状态分析人员ID号码系统交付期,负责人分析人员补充完属性属性的定义属性的定义2 名词中属性的抽出名词中属性的抽出从名词抽出属性的候补的规则对于未成为类的名词仔细审查其作为类属性的可能性仔细研究某类作为其他类的属性的可能性成为所有格的名词作为属性值的名词原始输入信息中未出现的属性的补充未使用名词的处理属性

182、的定义属性的定义3: 事例联接的定义事例联接的定义没有属性的类的验证 首先,研究某类作为他类的属性的可能性。即,检查作为类已经登录了的名词作为其他类的属性好不好。 属性不存在的情况下,就可能怀疑是否是类。如果可以作为其它类的属性的化,那么几乎可以考虑它不是类。没有属性的类是否为类的判断可以在【服务定义】阶段进行。因为通过考察服务,就会出现执行服务所必须的属性。 通过抽出服务可以发现新的属性,其结果就是可以验证类的候补。类变更内容心脏病发作将表示飞行员状态作为表示属性的属性值问题作为公司的属性发生的事情作为公司的属性没有属性的类的验证属性的定义属性的定义3: 事例联接的定义事例联接的定义从没有属

183、性的类抽出属性的候补的规则:从没有属性的类抽出属性的候补的规则:仔细考察类作为其它类的属性的可能性在【服务定义】阶段再仔细考察属性的定义属性的定义3: 事例联接的定义事例联接的定义事例联接的定义 其次,是表示属性之间联系的事例联接的定义。 对于多个类所拥有的任意的属性要整理成属性与类的所有关系未1对1关系。对于多个类拥有同名属性的状态,不一定就是非法状态,有时也是正确的。 下面的事例联接的作成顺序是针对分析人员认为是同一概念的属性来进行的: 比如:【顾客】的属性【费用】和【服务】的属性【价格】是同一概念,所以都统一成【费用】。首先,决定应该保持属性的类。如果某个属性永远属于那个类,就认为是拥有

184、属性。 另一方面,不是拥有属性但在执行服务时参照的属性叫参照属性,参照属性用事例联接来表示。如果类A为执行自己的服务要用到B类的拥有属性时,就叫做【类A与类B间存在事例联接】。可能是Gen-Spec构造。也就是说存在参照类到拥有类有消息,因为它不能直接访问。 属性的定义属性的定义3: 事例联接的定义事例联接的定义重复属性的类的区别规则:重复属性的类的区别规则:决定应保持属性的类事例联接的设定属性属性拥有类拥有类参照类参照类服务的水平服务公司,经理公司的声誉公司经理最大配送时间服务天气,经理天气天气城市气温天气城市湿度天气城市风天气城市可见度天气城市费用服务顾客属性的拥有类和参照类属性的拥有类和

185、参照类属性的定义属性的定义4:描述规定类状态迁移的属性:描述规定类状态迁移的属性规定类的状态迁移规定类的状态迁移 属性抽出顺序的最后一步就是描述规规定类的状态迁移的属性。即,明确成为属性抽出顺序的最后一步就是描述规规定类的状态迁移的属性。即,明确成为服务的动作(分叉、起始)条件的属性,作成表示其属性变化的迁移图。服务的动作(分叉、起始)条件的属性,作成表示其属性变化的迁移图。 首先,筛选出属性值。属性值从以下信息中抽出:名词中抽出(在分析过程中首先,筛选出属性值。属性值从以下信息中抽出:名词中抽出(在分析过程中判断为属性值的名词)、形容词中抽出(名词的修饰语)、分析人员来抽出(需判断为属性值的

186、名词)、形容词中抽出(名词的修饰语)、分析人员来抽出(需求书中没有记录的属性值的补充)。求书中没有记录的属性值的补充)。 其次,用以下其次,用以下2个检查重点来验证、修正抽出的属性值。第一个是属性值难以个检查重点来验证、修正抽出的属性值。第一个是属性值难以考虑的情况,这种情况的属性就值得怀疑。比如,【最好的办法】就属这种。第考虑的情况,这种情况的属性就值得怀疑。比如,【最好的办法】就属这种。第二个是考虑更加抽象的概念的属性值。比如,【飞行员】的属性【心脏病发作】二个是考虑更加抽象的概念的属性值。比如,【飞行员】的属性【心脏病发作】作为属性【状态】的属性值就比较自然,其他属性值也容易联想。这一点

187、的斟酌作为属性【状态】的属性值就比较自然,其他属性值也容易联想。这一点的斟酌有必要对所有的属性进行。最后,相互参照属性的类可考虑应该统合的情况。比有必要对所有的属性进行。最后,相互参照属性的类可考虑应该统合的情况。比如,【货物】与【目的地】。这种情况下,目的地就是【货物】的属性。如,【货物】与【目的地】。这种情况下,目的地就是【货物】的属性。 属性值筛选出后接下来是属性值的意义上的分类。根据在问题领域中属性拥有属性值筛选出后接下来是属性值的意义上的分类。根据在问题领域中属性拥有的意义来分割属性值的值域。的意义来分割属性值的值域。属性的定义属性的定义4:描述规定类状态迁移的属性:描述规定类状态迁

188、移的属性状态迁移图的作成状态迁移图的作成 描述规定类状态迁移的属性的最后是状态迁移图的作成。描述规定类状态迁移的属性的最后是状态迁移图的作成。明确成为服务明确成为服务的动作(分叉、起始)条件的属性,根据属性值意义上的分类作成状态迁移图。的动作(分叉、起始)条件的属性,根据属性值意义上的分类作成状态迁移图。比如,【直升机】的属性之一【状态】表示直升机某一时点的状态,【终止状态比如,【直升机】的属性之一【状态】表示直升机某一时点的状态,【终止状态】、【起飞状态】、【飞行状态】、【着陆状态】的迁移。在这里,关键是对各】、【起飞状态】、【飞行状态】、【着陆状态】的迁移。在这里,关键是对各个状态对应的行

189、为进行服务的定义。个状态对应的行为进行服务的定义。描述规定类状态迁移的属性之规则描述规定类状态迁移的属性之规则属性值的筛选:名词、形容词中的抽出,分析人员抽出属性值的筛选:名词、形容词中的抽出,分析人员抽出 关键:关键: 怀疑属性值不易考虑的情况怀疑属性值不易考虑的情况 考虑是否是更加抽象化了的概念的属性值考虑是否是更加抽象化了的概念的属性值属性值意义上的分类属性值意义上的分类 根据问题领域中属性拥有的意义分割属性值的领域根据问题领域中属性拥有的意义分割属性值的领域状态迁移图的作成状态迁移图的作成 根据属性值意义上的分类根据属性值意义上的分类 关键:,对各个状态对应的行为进行服务的定义关键:,

190、对各个状态对应的行为进行服务的定义属性的定义属性的定义4:目前为止的分析结果:目前为止的分析结果类类拥有属性拥有属性属性值属性值类类拥有属性拥有属性属性值属性值公司公司问题问题没有,雾,飞行员状态没有,雾,飞行员状态天气天气可见度可见度米米声誉声誉好,怀好,怀天气天气雨、雾、雪雨、雾、雪商业基础商业基础顾客顾客ID气温气温温度温度创始人创始人姓名姓名湿温湿温湿度湿度医院医院街道街道医院所在地医院所在地风风风箱、强度风箱、强度负责医生负责医生ID号码号码顾客顾客费用费用金额金额停机场停机场街道街道停机场所在地停机场所在地街道街道顾客所在地顾客所在地可利用可利用/不可不可空空/未空未空货物货物货物

191、货物ID自行车自行车自行车停车场自行车停车场自行车停车场自行车停车场ID经理经理最好的办法最好的办法自行车停车场自行车停车场停机场停机场停机场停机场ID公司公司公司公司ID建筑用地建筑用地停机场停机场停机场停机场ID服务服务服务质量服务质量好,一般,坏好,一般,坏街道街道建筑所在地建筑所在地最大配送时间最大配送时间时间时间城市城市直升机直升机飞行员飞行员飞行员飞行员ID货物货物费用费用服务费用服务费用着陆地着陆地停机场停机场ID目的地目的地顾客顾客ID状态状态飞行飞行,前进前进,着陆着陆,停止停止直升机直升机直升机直升机ID分析人员分析人员IDID号码号码区域区域受影响地区域受影响地区域系统系

192、统交付期交付期日期日期飞行员飞行员状态状态正常、心脏病发作正常、心脏病发作分析负责人分析负责人ID号码号码直升机直升机直升机直升机ID服务的定义服务的定义1:服务候补的抽出:服务候补的抽出(1)服务候补的抽出 首先,类是动作主语的动词词组的情况下,其动词词组就作为服务。 其次,从类及属性导出算法的情况,其导出规则就作为服务。 接着,抽出类是动作对象的动词词组,所引起的类的动作作为服务。(考虑通过从外部向该类的要求而引起的服务)。这种要求是服务的调用关系。 在属性定义阶段作成的属性状态迁移图中,使状态迁移的行动就作为服务。(着眼于属性来考虑服务) 需求文档中没有,但通过类具有的属性或导出与其他类

193、的关系,来创造必要的服务。 服务动作时,根本看不见有以下某个作用时,从服务候补中删除。(1)输出成为其他类的服务的输入;(2)输出成为自己的服务的输入;(3)输出成为自身的属性;(4)没有输出,但有明显的副作用。服务的定义服务的定义1:服务候补的抽出:服务候补的抽出动作主体动作主体(类)(类)动词语句动词语句公司从事,遭遇,遵守经理确立,实现,创造,主张,决定,声称,实现,签订合同飞行员利用,运送雾弥漫,不能起飞顾客考虑,支付天气妨碍系统控制直升机着陆动作主体动词语句动作对象(类)飞行员使用自行车飞行员运送货物雾覆盖城市雾不能起飞直升机破坏直升机破坏货物经理签订合同分析人员分析人员开发系统类成

194、为动作对象的动词语句类成为动作对象的动词语句类类成成为为动动作作主主体体的的动动词词语语句句服务的定义服务的定义1:服务候补的抽出:服务候补的抽出类属性属性值(状态迁移前) (状态迁移后)行为直升机状态停止状态起动状态取货物起动状态飞行状态上升飞行状态着陆状态自动运行着陆状态停止状态取出货物从状态迁移属性导出的例子从状态迁移属性导出的例子类服务触发条件输入输出数据副作用直升机收货从“货物”收信货物(输入)发动机起动上升发动机起动没有自动运行从“停机场”收信停机场的信息、系统的状态系统开取出完成着陆货物(输出)向汽车发信、发动机起动系统控制系统的状态发动机起动触触发发条条件件、输输入入输输出出数

195、数据据、副副作作用用服务的定义服务的定义1:服务候补的抽出:服务候补的抽出不存在服务的类的验证怎样验证有属性而没有服务、既没有属性有没有服务的类?对于前者的情况,可以考虑与其他类的Gen-Spec构造的可能性。对于后者,可以考虑是其他的类的属性吗,或者说,与其他类的Gen-Spec构造的可能性。本例中,剩余了一部分没有服务的类。触发条件是起动服务的事件及限制。输入输出数据是从类的属性值/其他的类接收或传递数据。服务的定义服务的定义2:消息:消息.联接的设定联接的设定消息和联接的设定消息联接表示类之间服务的调用关系。设定的关键是从服务的触发条件、输入输出数据的定义中导出。即,任意的对象间,一个对

196、象的输入与另一对象的输入同一数据项目的情况下,研究其消息联接的可能性。比如,“系统”的“控制”的输出数据是“系统状态”,“直升机”的“自动运转”的输入数据是“系统的状态”,预示着消息联接的可能性。也就是说,直升机要执行“自动运转”的服务,就要用系统拥有的服务“控制”,意味着需要有关系统状态的信息。所以,“直升机”对于“系统”就建立了消息联接。在对象构造图中,与事例联接同时存在消息联接。自动运转直升机控制系统消息联接的例子服务的定义服务的定义2:消息:消息.联接的设定联接的设定消息和联接的设定消息联接表示类之间服务的调用关系。设定的关键是从服务的触发条件、输入输出数据的定义中导出。即,任意的对象

197、间,一个对象的输入与另一对象的输入同一数据项目的情况下,研究其消息联接的可能性。比如,“系统”的“控制”的输出数据是“系统状态”,“直升机”的“自动运转”的输入数据是“系统的状态”,预示着消息联接的可能性。也就是说,直升机要执行“自动运转”的服务,就要用系统拥有的服务“控制”,意味着需要有关系统状态的信息。所以,“直升机”对于“系统”就建立了消息联接。在对象构造图中,与事例联接同时存在消息联接。自动运转直升机控制系统消息联接的例子服务的定义服务的定义2:消息:消息.联接的设定联接的设定服务图的制作 现在从关于状态迁移图、触发条件/输入输出数据/副作用以及消息联接的信息来描述服务的内容。所以要制

198、作服务图。 C&Y法中,作为服务图也可以用决策表或者类似代码表示。但是,最理想的方法毕竟还是数据流图。因为所谓服务的内容基本上就是数据的变换,传统的数据流图最适用。 下图是关于直升机拥有的服务之一“自动运行”的服务图。该为了使自动运行,服务图通过获得停机场的着陆地点信息以及系统的状态信息,来决定可不可以自动运行,结果就是标明使系统处于开还是关。获得着陆地点信息获得系统的状态系统开/关停机场系统用数据流图描述服务图服务的定义服务的定义2:消息:消息.联接的设定联接的设定 最后补充完属性。即,在作成服务图时对发现的数据的缺陷进行修补。一个是新发现的必要的数据,由于需求文档的不完善引起的必要的数据没有在任何一个类里被定义的情况。另一个是对于服务的输出数据不管延迟参照的必要(这种情况,作为服务调用的参数没有传递)作为属性值没有被保存下来的情况。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号