Object-Oriented Software EngineeringPractical Software Development using UML and JavaChapter 4: Developing Requirements? Lethbridge/Laganière 2001Chapter 4: Developing Domain AnalysisThe process by which a software engineer learns about the domain to better understand the problem:?The domain is the general field of business or technology in which the clients will use the software?A domain expert is a person who has a deep knowledge of the domainBenefits of performing domain analysis:?Faster development?Better system?Anticipation of extensions? Lethbridge/Laganière 2001Chapter 4: Developing requirements3Domain Analysis knowledge about the and and procedures currently peting to other domains? Lethbridge/Laganière 2001Chapter 4: Developing requirements4Requirements must be determined Clients have produced requirements New development Evolution of existing The Starting Point for Software Projectsgreen field project? Lethbridge/Laganière 2001Chapter 4: Developing Defining the Problem and the ScopeA problem can be expressed as: ?A difficulty the users or customers are facing, ?Or as an opportunity that will result in some benefit such as improved productivity or sales. The solution to the problem normally will entail developing softwareA good problem statement is short and inct ? Lethbridge/Laganière 2001Chapter 4: Developing requirements6Defining the ScopeNarrow the scope by defining a more precise problem?List all the things you might imagine the system doing—Exclude some of these things if too broad—Determine high-level goals if too narrowExample: A university registration systemInitial list of problems with very broad scopeNarrowed scopeScope of another systemexam schedulingroom allocationfee paymentbrowsing coursesregisteringexam schedulingroom allocationfee paymentbrowsing coursesregistering? Lethbridge/Lag