2Requirements Analysis specifies software’s operational characteristicsindicates software's interface with other system elementsestablishes constraints that software must meetRequirements analysis allows the software engineer (called an analyst or modeler in this role) to:elaborate on basic requirements established during earlier requirement engineering tasksbuild models that depict user scenarios, functional activities, problem classes and their relationships, system and class behavior, and the flow of data as it is transformed.
3A BridgeANALYSIS MODEL: a representation of requirements in terms of text and diagrams depicting requirements for data, function and system behavior in a way easy to understand and review for correctness, completeness and consistency
4Rules of ThumbThe model should focus on requirements that are visible within the problem or business domain. The level of abstraction should be relatively high (focus on the “WHAT”, not “HOW”).Each element of the analysis model should add to an overall understanding of software requirements and provide insight into the information domain, function and behavior of the system.Delay consideration of infrastructure and other non-functional models until design.Minimize coupling throughout the system.Be certain that the analysis model provides value to all stakeholders.Keep the model as simple as it can be.
5Domain AnalysisThe identification, analysis, and specification of common requirements, typically for reuse on multiple projects within that application domain.Sources of domain knowledgeTechnical literatureExisting applicationCustomer surveysExpert adviceCurrent/future requirements
6Analysis Modeling Approaches STRUCTURED ANALYSIS considers data and processes transforming the data as separate entities. Data objects are modeled defining their attributes and relationships. Processes depict transformation of data objects as they flow through the system.OBJECT-ORIENTED ANALYSIS focuses on the definition of classes and the way they collaborate with one another to satisfy customer requirements. (UML and Unified Process are predominantly object-oriented)
7Data Modeling Examines data objects independently of processing Focuses attention on the data domainCreates a model at the customer’s level of abstractionIndicates how data objects relate to one another
8What is a Data Object? Object —something that is described by a set of attributes (data items) and that will bemanipulated within the software (system)eachinstanceof an object (e.g., a book)can be identified uniquely (e.g., ISBN #)each plays a necessary role in the systemi.e., the system could not function withoutaccess to instances of the objecteach is described by attributes that arethemselves data items
10Data Objects and Attributes A data object contains a set of attributes that act as an aspect, quality, characteristic, or descriptor of the objectobject: automobileattributes:makemodelbody typepriceoptions code
11What is a Relationship? Relationship => indicates “connectedness”; a "fact" that must be "remembered"by the system and cannot or is not computedor derived mechanically
12Cardinality and Modality Cardinality: Is the number of occurrences of one object that can be related to the number of occurrences of another. Cardinalitycan be expressed as one or many.Example: A Parent can have many children,but a nation can have only one president.Modality: Is 0 if the occurrence of relationship is optional and Is 1 if occurrence of relationship is mandatory.Example: For any order there must be a customer.but its not necessary that the order is processed.
13Building an ERDLevel 1—model all data objects (entities) and their “connections” to one anotherLevel 2—model all entities and relationshipsLevel 3—model all entities, relationships, and the attributes that provide further depth
14The ERD: An Example request for service Customer (1,1) (1,m) (1,1) places(1,1)(1,m)(1,1)standardtask table(1,n)workordergenerates(1,1)(1,1)(1,1)selectedfromworktasks(1,w)consistsof(1,w)(1,i)materialslists