Presentation on theme: "Software Engineering Fall 2005"— Presentation transcript:
1Software Engineering Fall 2005 Lecture 6 Analysis Modeling Based on: Software Engineering, A Practitioner’s Approach, 6/e, R.S. PressmanSoftware EngineeringFall 2005
2Analysis Modeling The first technical representation of a system. Uses a combination of text and diagrams to represent software requirements (data, function, and behavior) in an understandable way.Building analysis models helps make it easier to uncover requirement inconsistencies and omissions.
3Analysis Model Objectives Describe what the customer requires.Establish a basis for the creation of a software design.Devise a set of requirements that can be validated once the software is built.
4What are the steps?Informational, functional and behavioral requirements are modeled using a number of different diagrammatic formats:- Scenario-based modeling represents the system from the user’s point of view- Flow-oriented modeling provides an indication of how data objects are transformed by processing functions.- Class-based modeling defines objects, attributes and relationships.- Behavioral modeling depicts the states of the system and its classes and the impacts of events on these states
5What is the work product? A wide array of diagrammatic forms may be chosen for the analysis model.Each of these representations provides a view of one or more model elementsAnalysis modeling work products must be reviewed for correctness, completeness and consistency.
7Requirements 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.
8Requirements Analysis Primary focus is on what not howWhat objects does the system manipulate, what functions must the system perform, what behaviours does the system exhibit, what interfaces are defined, and what constraints apply.The analysis model bridges the gap between a system-level description and a software design.
101.1. Analysis RulesThe model should focus on requirements that are visible within the problem or business domain. The level of abstraction should be relatively high.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.
111. 2. Domain Analysis‘Software domain analysis is the identification, analysis, and specification of common requirements from a specific application domain, typically for reuse on multiple projects within that application domain ‘[Object-oriented domain analysis is] the identification, analysis, and specification of common, reusable capabilities within a specific application domain, in terms of common objects, classes, subassemblies, and frameworks . . .’ Donald Firesmith
12Domain Analysis Activities Define the domain to be investigatedCategorize the items extracted from the domainCollect a representative sample of applications in the domainAnalyze each application in the sampleIdentify candidate reusable objectsIndicate reasons the objects may be reusedDefine adaptations of the objects that may be reusedEstimate percentage of applications in the domain that might make reuse of the objectsIdentify objects by name and use configuration management techniques to control themDevelop an analysis model for the objects
132. Analysis Modeling Approaches Structured analysis - (the “old school” approach to analysis modeling )– considers data and processes that transform the data as separate entities. Data objects are modeled in a way that defines their attributes and relationships.Object-oriented analysis – focuses on definition of classes and the manner in which they collaborate with one another to effect customer requirements. Unified Modeling Language (UML) and Unified Process are predominantly object-oriented.
14Analysis Modeling Approaches Team often choose one approach and exclude all representations from the other.The question is not which is best, but what combination of representations will provide stakeholders with the best model of software requirements and most effective bridge to software design.A software engineer borrows the best from each to create effective analysis (and design) models.
15Structured Analysis Model Elements Data dictionary - contains the descriptions of all data objects consumed or produced by the softwareEntity relationship diagram (ERD) - depicts relationships between data objectsData flow diagram (DFD) - provides an indication of how data are transformed as they move through the system; also depicts functions that transform the data flow (a function is represented in a DFD using a process specification or PSPEC)State diagram (SD) - indicates how the system behaves as a consequence of external events, states are used to represent behavior modes. Arcs are labeled with the events triggering the transitions from one state to another (control information is contained in control specification or CSPEC)
17Data Modeling Analysis modeling often begins with data modeling. Data modeling examines data objects independently of processingFocuses attention on the data domainCreates a model at the customer’s level of abstractionIndicates how data objects relate to one another
18Data Modeling Elements Data object - any person, organization, device, or software product that produces or consumes informationAttributes - name a data object instance, describe its characteristics, or make reference to another data objectRelationships - indicate the manner in which data objects are connected to one another
19What is a Data Object? Object – something that is described by a set of attributes (data items) and that will bemanipulated within the software (system).Each instance of an object (e.g. a book) can be identified uniquely (e.g., ISBN#)Each plays a necessary role in the system. i.e. the system could not function without access to instances of the object.Each is described by attributes that are themselves data items.
21Data 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
22Data Objects and OO Classes Are they the same thing? No.A data object defines a composite data item; that is, it incorporates a collection of individual data items (attributes) and gives the collection of items a name (the name of the data object).An OO class encapsulates data attributes but also incorporates the operations that manipulate the data implied by those attributes. In addition, the definition of classes implies a comprehensive infrastructure that is part of the object-oriented software engineering approach.Classes communicate with one another via messages; they can be organised into hierarchies; they provide inheritance characteristics for objects that are an instance of a class.
23RelationshipsRelationship - indicates “connectedness”; a "fact" that must be "remembered" by the system and cannot or is not computed or derived mechanicallySeveral instances of a relationship can existObjects can be related in many different waysFor example: A person owns a car. A person is insured to drive a car. The relationships owns and insured to drive define the relevant connections between person and car.
24Cardinality and Modality Cardinality - in data modeling, cardinality specifies how the number of occurrences of one object are related to the number of occurrences of another object (1:1, 1:N, M:N)E.g. one object can relate to only one other object (1:1 relationship); one object can relate to many objects (a 1:N relationship); some number of occurrences of an object can relate to some other number of occurrences of another object (an M:N relationship).Modality indicates whether or not a particular data object must participate in the relationshipModality – of a relationship is 0 (zero) if there is no explicit need for the relationship to occur or the relationship is optional. The modality is 1 (one) if an occurrence of the relationship is mandatory.
25Entity Relationship Diagrams (ERD) The object/relationship pair is the cornerstone of the data model. These pairs can be represented graphically using the entity/relationship diagram (ERD).Although, the ERD is still used in some database design applications, UML notation is now more commonly used for data designThe ERD was originally proposed by Peter Chen for the design of relational database systems and has been extended by others.A set of primary components are identified by the ERD: data objects, attributes, relationships and various type indicators.The primary purpose of the ERD is to represent data objects and their relationships.
26Entity Relationship Diagrams (ERD) II Data objects are represented by a labeled rectangle.Relationships are indicated with a labeled line connecting objects. In some variations of the ERD, the connecting line contains a diamond that is labeled with relationship.Connections between data objects and relationships are established using a variety of special symbols that indicate cardinality and modality
27Creating Entity Relationship Diagrams Customer asked to list "things" that application addresses, these things evolve into input objects, output objects, and external entitiesAnalyst and customer define connections between the objectsOne or more object-relationship pairs is created for each connectionThe cardinality and modality are determined for an object-relationship pairAttributes of each entity are definedThe entity diagram is reviewed and refined
28ERD Notation One common form: object object Another common form: relationshipobject12(1, 1)attributeAnother common form:objectrelationshipobject12(0, m)(1, 1)
29Building 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
30The 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
31Data Modeling ToolsProvide an automated means for creating comprehensive entity-relation diagrams, data object dictionaries and related modelsTools in this category enable creation of a database model by generating a database schema for common DBMSs.AllFusionEWR/StudioOracle Designer
33Object-Oriented Concepts I Must be understood to apply class-based elements of the analysis modelKey concepts:Classes and objectsAttributes and operationsEncapsulation and instantiationInheritance
34Object-Oriented Concepts II Objects - encapsulate both data (attributes) and data manipulation functions (called methods, operations, and services)Class - generalized description (template or pattern) that describes a collection of similar objectsSuperclass - a collection of objectsSubclass - an instance of a classClass hierarchy - attributes and methods of a superclass are inherited by its subclasses
35Object-Oriented Concepts III Messages - the means by which objects exchange information with one anotherInheritance - provides a means for allowing subclasses to reuse existing superclass data and procedures; also provides mechanism for propagating changesPolymorphism - a mechanism that allows several objects in an class hierarchy to have different methods with the same name (instances of each subclass will be free to respond to messages by calling their own version of the method)
36ClassesObject-oriented thinking begins with the definition of a class, often defined as:templategeneralized description“blueprint” ... describing a collection of similar itemsA metaclass (also called a superclass) establishes a hierarchy of classesOnce a class of items is defined, a specific instance of the class can be identified
38What is a Class? occurrences roles organizational units things places external entitiesstructuresclass nameattributes:operations:
39Class Hierarchy PieceOfFurniture (superclass) Table Chair Desk subclasses of theinstances of Chair
40Methods (a.k.a. Operations, Services) An executable procedure that is encapsulated in a class and is designed to operate on one or more data attributes that are defined as part of the class.A method is invokedvia message passing.
41Analysis Model Elements 1. Scenario-based - depict how the user interacts with the system (use-case diagram) and the sequence of activities that occur during software use (activity diagrams and swim lane diagrams)2. Flow-oriented - represent the system as an information transform and depict how data objects are transformed as they flow through system function (dataflow diagram)3. Class-based - model the system objects, operations, class relationships (class diagram)4. Behavioral - depict how external events change the state of the system or the system classes (state diagram and sequence diagrams)
425. Scenario-Based Modeling Analysis modeling with UML begins with the creation of scenarios in the form of:- Use-cases- Activity-diagrams, and- Swimlane diagrams
435.1. Writing Use-Cases“[Use-cases] are simply an aid to defining what exists outside the system (actors) and what should be performed by the system (use-cases).” Ivar Jacobson(1) What should we write about?(2) How much should we write about it?(3) How detailed should we make our description?(4) How should we organize the description?
44Use-Cases A scenario that describes a “thread of usage” for a system Actors represent roles people or devices play as the system functionsUsers can play a number of different roles for a given scenario
45Developing a Use-CaseWhat are the main tasks or functions that are performed by the actor?What system information will the the actor acquire, produce or change?Will the actor have to inform the system about changes in the external environment?What information does the actor desire from the system?Does the actor wish to be informed about unexpected changes?
46Quick Overview of SafeHome The SafeHome company has developed an innovative hardware box that implements wireless Internet (802.11) connectivity in a very small form factor (the size of a matchbook).The idea is to use this technology to develop and market a comprehensive home automation product line.This would ultimately provide not only security functions, but also would enable control over telephone answering machines, lights, heating, air conditioning, and home entertainment devices.The first generation of the system, described in the SEPA (Software Engineering, A Practitioner’s Approach, Pressman), will only focus on home security since that is a market the public readily understands.
48Use-CasesIn many cases, there is no need to create a graphical representation of a usage scenario.However, diagrammatic representation can facilitate understanding, particularly when the scenario is complex.
495.2. Developing an Activity Diagram Supplements use-case by providing graphical representation of the interaction flow within a specific scenarioSimilar to flow chartRounded rectangles used to represent functionsDiamonds used to represent decision pointsLabeled arrows represent decision alternativesSolid horizontal lines indicate parallel activities
50Activity DiagramSupplements the use-case by providing a diagrammatic representation of procedural flow.Activity diagram for Access camera surveillance – display camera views function
515.3. Swimlane DiagramsVariation of activity diagrams, used to show flow of activities in use case as well as indicating which actor has responsibility for activity rectangle actionsResponsibilities are represented by parallel line segments that divide the diagram vertically headed by the responsible actor
52Swimlane DiagramsAllows the modeler to represent the flow of activities described by the use-case and at the same time indicate which actor (if there are multiple actors involved in a specific use-case) or analysis class has responsibility for the action described by an activity rectangle
53Swimlane Diagrams II Previous Figure: The activity diagram is rearranged so that activities associated with a particular analysis fall inside the swimlane for that class.For example, the Interface class represents the user interface as seen by the homeowner. The activity diagram notes two prompts that are the responsibility of the interface – prompt for reentry and prompt for another view. These prompts and the decisions associated with them fall within the Interface swimlane.. However, arrows lead from that swimlane back to the Homeowner swimlane, where homeowner actions occur.
546. Flow-Oriented Modeling Represents how data objects are transformed at they move through the systemA data flow diagram (DFD) is the diagrammatic form that is usedConsidered by many to be an ‘old school’ approach, flow-oriented modeling continues to provide a view of the system that is unique - it should be used to supplement other analysis model elementsData objects are represented by labeled arrows and transformations are represented by circles (also called bubbles)
55The Flow Model Every computer-based system is an information transformer ....computerbasedsysteminputoutput
56Flow Modeling Notation external entityprocessdata flowdata store
57External Entity A producer or consumer of data Examples: a person, a device, a sensorAnother example: computer-basedsystemData must always originate somewhereand must always be sent to something
58Process A data transformer (changes input to output) Examples: compute taxes, determine area,format report, display graphData must always be processed in someway to achieve system function
59Data Flow Data flows through a system, beginning as input and be transformed into output.basecomputetriangleareaareaheight
60Data Stores Data is often stored for later use. look-up sensor data sensor #, type,location, agelook-upsensordatareport requiredtype,location, agesensor numbersensor data
616.1. Creating Data Flow Diagram Data flow modeling is a core modeling activity in structured analysisLevel 0 data flow diagram should depict the system as a single bubblePrimary input and output should be carefully notedRefinement should begin by consolidating candidate processes, data objects, and data stores to be represented at the next levelLabel all arrows with meaningful namesInformation flow must be maintained from one level to levelRefine one bubble at a timeWrite a process specification (PSPEC) (a "mini-spec" written using English or another natural language or a program design language) for each bubble in the final DFD
62Data Flow Diagramming: Guidelines All icons must be labeled with meaningful namesThe DFD evolves through a number of levels of detailAlways begin with a context level diagram (also called level 0)Always show external entities at level 0Always label data flow arrowsDo not represent procedural logic
63Constructing a DFD - IReview the data model to isolate data objects and use a grammatical parse to determine “operations”Determine external entities (producers and consumers of data)Create a level 0 DFD
64Level 0 DFD Example user digital video processor monitor video source processingrequestuserrequestedvideosignaldigitalvideoprocessormonitorvideosourceNTSCvideo signal
65Constructing a DFD - II Write a narrative describing the transform Parse to determine next level transformsVerbs are, normally, processes; that is, they may ultimately be represented as bubbles in a subsequent DFD.Nouns are either external entities (boxes), data or control objects (arrows), or data stores (double lines).Nouns and verbs can be associated with one another.By performing a grammatical parse on the processing narrative for a bubble at any DFD level, we can generate much useful information about how to proceed with the refinement to the next level.Develop a level 1 DFD
66The Data Flow Hierarchy bxPylevel 0cp2afp1bp4d5gp3elevel 1
67Flow Modeling NotesEach bubble is refined until it does just one thingThe expansion ratio decreases as the number of levels increaseMost systems require between 3 and 7 levels for an adequate flow modelA single data flow item (arrow) may be expanded as levels increase (data dictionary provides information)
68DFDs: A Look Aheadanalysis modelMaps intodesign model
696.2. Control Flow Diagrams When to use? For applications that are ‘driven’ by events rather than data, produce control information rather than reports or displays, and process information with heavy concern for time and performance. Such applications require the of control flow modeling in addition to data flow modeling.
706.2. Control Flow DiagramsRepresents “events” and the processes that manage eventsAn “event” is a Boolean condition that can be ascertained by:listing all sensors that are "read" by the software.listing all interrupt conditions.listing all "switches" that are actuated by an operator.listing all data conditions.recalling the noun/verb parse that was applied to the processing narrative, review all "control items" as possible CSPEC inputs/outputs.
71Creating Control Flow Diagrams Begin by stripping all the data flow arrows form the DFDControl items (dashed arrows) are added to the diagramAdd a window to the CSPEC (contains a SD that is a sequential specification of the behavior) for each bubble in the final CFD
72Control Specification (CSPEC) The CSPEC represents the bahavior of the system in two different ways:- it contains a state diagram that is a sequential specification of behavior- it can also contain a program activation table – a combinatorial specification of behavior.The CSPEC describes the bahavior of the system, but it gives us no information about the inner working of the processes that are activated as a result of this behavior – Process Specification (PSPEC) does that.
73Control Specification (CSPEC) The CSPEC can be:state diagram(sequential spec)state transition tablecombinatorial specdecision tablesactivation tables
74Process Specification (PSPEC) The PSPEC is used to describe all flow model processes that appear at the final level of refinement.The content of the process specification can include narrative text, a program design language (PDL) description of the process algorithm, mathematical equations, tables, diagrams or charts.By providing a PSPEC to accompany each bubble in the flow model, the software engineer creates a ‘mini spec’ that can serve as a guide for design of the software component that will implement the process.
75Structured Analysis Tools Allow a software engineer to create data models, flow models, and behavioral models in a manner that enables consistency and continuity checking and easy editing and extensionAxiomSys (www.stgcase.com)MacA&D, WinA&D (www.excelsoftware.com)MetaCASE Workbench (www.metacse.com)System Architect (www.popkin.com)
767. Class-Based ModelingThe section that follow present a series of informal guidelines as how do we go about developing the class-based elements of an analysis model:- classes and objects- attributes- operations- packages- CRC models, and- collaboration diagrams.
77Class-Based ModelingIdentify analysis classes by examining the problem statementUse a “grammatical parse” to isolate potential classesIdentify the attributes of each classIdentify operations that manipulate the attributes
78Analysis ClassesAnalysis classes manifest themselves in one of the following ways:External entities (e.g., other systems, devices, people) that produce or consume information to be used by a computer-based system.Things (e.g, reports, displays, letters, signals) that are part of the information domain for the problem.Occurrences or events (e.g., a property transfer or the completion of a series of robot movements) that occur within the context of system operation.Roles (e.g., manager, engineer, salesperson) played by people who interact with the system.Organizational units (e.g., division, group, team) that are relevant to an application.Places (e.g., manufacturing floor or loading dock) that establish the context of the problem and the overall function of the system.Structures (e.g., sensors, four-wheeled vehicles, or computers) that define a class of objects or related classes of objects.
79Specifying Analysis Classes Consider whether each potential class satisfies one of these criteria as well:Contains information that should be retainedProvides needed servicesContains multiple attributesHas common set of attributes that apply to all class instancesHas common set of operations that apply to all object instancesRepresents external entity that produces or consumes information
80Specifying Class Attributes Examine the processing narrative or use-case and select the things that reasonably can belong to each classAsk what data items (either composite or elementary) fully define this class in the context of the problem at hand?
81Defining Operations Operations define the bahavior of an object. Look at the verbs in the processing narrative (or use-case) and identify operations reasonably belonging to each class that:- manipulate data- perform computation- inquire about the state of an object- monitor object for occurrence of controlling eventDivide operations into sub-operations as neededAlso consider communications that need to occur between objects and define operations as needed
84Class-Responsibility-Collaborator (CRC) Modeling CRC modeling provides a simple means for identifying and organizing the classes that are relevant to system or product requirements.Develop a set of index cards that represent the system classesOne class per cardCards are divided into three sections (class name, class responsibilities, class collaborators)Once a complete CRC card set is developed it is reviewed examining the usage scenarios
85CRC Modeling Analysis classes have “responsibilities” Responsibilities are the attributes and operations encapsulated by the classAnalysis classes collaborate with one anotherCollaborators are those classes that are required to provide a class with the information needed to complete a responsibility.In general, a collaboration implies either a request for information or a request for some action.
87Class TypesEntity classes, also called model or business classes, are extracted directly from the statement of the problem (e.g., FloorPlan and Sensor). They represent things that are to be stored in a database and persist throughout the duration of the application (unless specifically deleted)Boundary classes are used to create the interface (e.g., interactive screen or printed reports) that the user sees and interacts with as the software is used.Controller classes manage a “unit of work” from start to finish. That is, controller classes can be designed to managethe creation or update of entity objects;the instantiation of boundary objects as they obtain information from entity objects;complex communication between sets of objects;validation of data communicated between objects or between the user and the application.
88Responsibilities Guidelines System intelligence should be distributed across classes to best address the needs of the problemEach responsibility should be stated as generally as possibleInformation and the behavior related to it should reside within the same class – this achieves the OO principle called encapsulation. Data and processes that manipulate the data should be packaged as a cohesive unit.Information about one thing should be localized with a single class, not distributed across multiple classes.Responsibilities should be shared among related classes, when appropriate.
89CollaborationsClasses fulfill their responsibilities in one of two ways:a class can use its own operations to manipulate its own attributes, thereby fulfilling a particular responsibility, ora class can collaborate with other classes.Collaborations identify relationships between classesCollaborations are identified by determining whether a class can fulfill each responsibility itself
90Collaborations Three different generic relationships between classes: The is-part-of relationship – all classes that are part of an aggregate class are connected to the aggregate class via an is-part-of relationshipThe has-knowledge-of relationship – established when one class must acquire information from another class.The depends-upon relationship – implies that two classes have a dependency that is not achieved by has-knowledge-of or is-part-of .
92Reviewing the CRC Model I All participants in the review (of the CRC model) are given a subset of the CRC model index cards.Cards that collaborate should be separated (i.e., no reviewer should have two cards that collaborate).All use-case scenarios (and corresponding use-case diagrams) should be organized into categories.The review leader reads the use-case deliberately.As the review leader comes to a named object, she passes a token to the person holding the corresponding class index card.
93Reviewing the CRC Model II When the token is passed, the holder of the class card is asked to describe the responsibilities noted on the card.The group determines whether one (or more) of the responsibilities satisfies the use-case requirement.If the responsibilities and collaborations noted on the index cards cannot accommodate the use-case, modifications are made to the cards.This may include the definition of new classes (and corresponding CRC index cards) or the specification of new or revised responsibilities or collaborations on existing cards.
94Associations and Dependencies Two analysis classes are often related to one another in some fashionIn UML these relationships are called associationsAssociations can be refined by indicating multiplicity (the term cardinality is used in data modeling)‘one or more’ association is represented using ‘1..*’, and ‘0 or more’ by ‘0..*’. In UML, the asterisk indicates an unlimited upper bound of the range.In many instances, a client-server relationship exists between two analysis classes.In such cases, a client-class depends on the server-class in some way and a dependency relationship is establishedDependencies are defined by a stereotype. A stereotype is an ‘extensibility mechanism’ within UML that allows a software engineer to define a special modeling element whose semantics are custom-defined. In UML stereotypes are represented in double angle brackets (e.g. <<access>>)
97Analysis PackagesVarious elements of the analysis model (e.g., use-cases, analysis classes) are categorized in a manner that packages them as a groupingIn class diagrams visibility of class elements can be indicated using a + (public), - (private), # (package)The plus sign preceding the analysis class name in each package indicates that the classes have public visibility and are therefore accessible from other packages.Other symbols can precede an element within a package. A minus sign indicates that an element is hidden from all other packages and a # symbol indicates that an element is accessible only to packages contained within a given package.
998. Behavioral ModelingThe behavioral model indicates how software will respond to external events or stimuli.First, we need to represent the bahavior of the system as a function of specific events and time.
100Object-Behavior Model Construction To create the model, the analyst must perform the following steps:Evaluate all use-cases to fully understand the sequence of interaction within the system.Identify events that drive the interaction sequence and understand how these events relate to specific objects.Create a sequence for each use-case.Build a state diagram for the system.Review the behavioral model to verify accuracy and consistency.
101Behavioral ModelingMake a list of the different states of a system (How does the system behave?)Indicate how the system makes a transition from one state to another (How does the system change state?)indicate eventindicate actionDraw a state diagram or a sequence diagram
102State Representations In the context of behavioral modeling, two different characterizations of states must be considered:the state of each class as the system performs its function andthe state of the system as observed from the outside as the system performs its function
103State Representations II The state of a class takes on both passive and active characteristics.A passive state is simply the current status of all of an object’s attributes.The active state of an object indicates the current status of the object as it undergoes a continuing transformation or processing
104UML State Diagrams Round cornered rectangles are used for each state Arrows connecting states are labeled with the name of the event that triggers the transition from one state to the otherGuards limiting the transition from one state to the next may be specified as Boolean conditions involving object attributes in the use-case narratives
106The States of a SystemState - a set of observable circumstances that characterizes the behavior of a system at a given timeState Transition - the movement from one state to anotherEvent - an occurrence that causes the system to exhibit some predictable form of behaviorAction - process that occurs as a consequence of making a transition
107UML Sequence DiagramsBuilt from use-case descriptions by determining how events cause transitions from one object to anotherKey classes and actors are shown across the topObject and actor activations are shown as vertical rectangles arranged along vertical dashed lines called lifelinesArrows connecting activations are labeled with the name of the event that triggers the transition from one class or actor to anotherObject flow among objects and actors may be represented by labeling a dashed horizontal line with the name of the object being passed
109Tools for Generalised Analysis Modeling in UML ArgoUML (argouml.tigris.org)ControlCenter (www.togethersoft.com)Rational Rose (www.rational.com)UML Studio (www.pragsoft.com)Visio (www.microsoft.com)Visual UML (visualuml.com)
110SummaryThe objective of analysis modeling is to create a variety of representations that depict software requirements for information, function and behaviorTo accomplish this, two different (but potentially complementary) modeling philosophies can be applied: structured analysis and object-oriented analysis.Structured analysis views software as an information transformer.Object-oriented analysis examines a problem domain defined as a set of use-cases in an effort to extract classes that define the problem. Classes are related to one another in a variety of different ways and are modeled using UML diagrams.
1112005F Instructor John D Lin - firstname.lastname@example.org Lectures Tues & Thurs 10:00-11:30 RM. 100, Lower Block