640 likes | 654 Views
UNIT-II. Methodologies. 1986: Booch developed object-oriented design concept , the Booch Method. 1987: Sally Shlaer and Steve Mellor created the concept of the recursive design approach. 1989: Beck and Cunningham produced class responsibility- collaboration cards.
E N D
Methodologies 1986: Boochdeveloped object-oriented design concept, the Booch Method. 1987: Sally Shlaer and Steve Mellor created the concept of the recursive design approach. 1989: Beck and Cunningham produced class responsibility- collaboration cards. 1990:WirfsBrock, Wilkerson, and Wiener came up responsibility-driven approach.
1991: Jim Rumbaugh developed Object Modeling Technique (OMT). 1991: Peter Coad and Ed Yourdon developed the Coadlightweight and prototype-oriented approach to methods. 1994: IvarJacobson introduced the concept of the use case and object-oriented software engineering (OOSE).
Rumbaugh Et Al.’s Object Modeling Technique • OMT presented by Jim Rumbaugh. • Describes a method for analysis, design, and implementation of a system using an object-oriented technique. • OMT is a fast approach, • For identifying and modeling all the objects making up a system. • Class attributes, methods, inheritance and association can be expressed easily for describing dynamic behavior of objects within the system.
Rumbaugh Et Al.’s Object Modeling Technique OMT consists of the following phases, which can be performed iteratively. Analysis– the results are objects ,dynamic and functional models. System design – the results are a structure of the basic architecture of the system along with high level strategy decisions. Object design – produces a design document, consisting of detailed object’s static, dynamic and functional models Implementation – produces reusable, extendible, and robust code.
Rumbaugh Et Al.’s Object Modeling Technique • OMT separated modeling into three parts 1. Object model – presented by the object model and data dictionary. 2. Dynamic model – presented by the state diagrams and event flow diagrams. 3. Functional model – presented by data flow and constraints.
Object model • Object model, • Describes the structure of object in a system: their identity, relationships to other objects, attributes, and operations. • Represented with an object diagram. • The object diagram contains classes interconnected by association lines. • Each class represents a set of individual objects. • The association lines establish relationships among the classes.
Object model In the above diagram, boxes represent classes. Filled triangle represents specialization. And Filled circle represents many.
Dynamic Model Can be used to depict states, transition, events, and actions. OMT State Transition Diagram is a network of states and events. Each state receives one or more events, at which time it makes transition to the next state. The next state depends on the current state as well as events.
Booch Methodology • Used during the analysis and design phases. • Drawback – too many symbols • Booch method includes the following diagrams • Class diagrams • Object diagrams • State transition diagrams • Module diagrams • Process diagrams • Interaction diagrams
Booch methodology prescribes • Macro development process • Micro development process
Macro development process • Primary concern is technical management of the system. • Less interested in OOD but focuses on how well the project corresponds to the requirement set for it and whether it is produced on time. Steps 1. Conceptualization • establish the core requirements of the system, a set of goals and develop a prototype to prove the concept. 2. Analysis and development of the model • Class diagram to describe the roles and responsibilities of objects, and their behavior. • Object diagram to describe the behavior of the system in terms of scenarios. • The interaction diagram to describe the interaction of the system between scenarios.
3. Design or create the system architecture • class diagram to decide what classes exist and how they relate to each other. • object diagram to decide what mechanisms are used to regulate how objects collaborate. • module diagram to map out where each class and object should be declared. • Finally, use process diagram to determine to which processor to allocate a process. 4.Evolution or implementation • Refine the system through many iterations. • Produce software implementation or executables. 5.Maintenance • Make localized changes to the system to add new requirements and to eliminate bugs.
Micro development process • Micro process is a description of the day-to-day activities by a single or small group of developers. Steps: • Indentify classes and objects. • Indentify class and object semantics. • Indentify class and object relationships. • Indentify class and object interfaces and implementation
The Jacobson Et Al. Methodologies • Jacabson Methodologies • Object-Oriented Software Engineering (OOSE) • Object-Oriented Business Engineering (OOBE) • Covers the entire life cycle. • Stresses traceability between different phases, both forward and backward. • Traceability enables reuse of analysis and design work thereby reducing the development time. • The heart of these methodologies is the use-case concept. It evolved with Objectory (Object Factory for Software Development).
Use Cases • Are scenarios for understanding system requirements. • A use case is an interaction between users and a system. • The use-case model captures the goal of the user and the responsibility of the system to its users. • During the analysis phase, the use cases are described as one of the following: • Non-formal text with no clear flow of events. • Text, easy to read and with a clear flow of events to follow • Formal style using pseudo code.
The use case description must include • How and when the use case beings and ends. • The interaction between the use case and its actors, including when the interaction occurs and what is exchanged. • How and when the use case will need data stored in the system or will store data in the system. • Exceptions to the flow of events. • How and when concepts of the problem domain are handled.
The use case model employs extends and uses relationships. • The extends relationship is used when there is one use case that is similar to another use case but does a bit more. i.e., it extends the functionality of the original use case. • The uses relationship reuses common behavior in different use cases. • Use cases can be • Concrete • Abstract • An abstract use case is not complete and has no actors that initiate it but is used by another us case. • Abstract use cases also are the ones that have uses or extends relationships.
Object Oriented Business Engineering • OOBE is object modeling at the enterprise level. • Use cases are used for modeling. • Provides traceability through out the software engineering processes. Phases • Analysis phase • Design and implementation phases • Testing phase – includes unit testing, integration testing, and system testing.
Patterns A pattern is [an] instructive information that captures the essential structure and insight of a successful family of proven solutions to a recurring problem that arises within a certain context and system of forces. A pattern is not considered until it has been verified to be a recurring phenomenon (preferably found in at least three existing systems; this often is called the rule of three). A "pattern in waiting", which is not yet known to recur is called a proto-pattern.
A good pattern does the following: • It solves a problem: • Patterns capture solutions, not just abstract principles or strategies. • It is a proven concept: • Patterns capture solutions with a track record, not theories. • The solution is not obvious: • The best patterns generate solution to a problem indirectly. • It describes a relationship: • Patterns do not just describe modules, but describe deeper system structures and mechanisms.
Generative and Nongenerative Patterns • Generative patterns • describe a recurring problem and tell us how to generate something and can be observed in the resulting system • Nongenerative patterns • are static and passive and they describe recurring phenomena without necessarily saying how to reproduce them.
Pattern Template • Name : A meaningful name. • Problem : goals & objectives it wants to reach within the given context and forces. • Context : the preconditions under which the problem and its solution seem to recur and for which the solution is desirable. • Forces : description of forces and constraints and how they interact or conflict with one another and with goals that this problem is achieving. • Solution : • static relationships and dynamic rules describing how to realize the desired outcome. • Equivalent to giving instructions that describe how to construct the necessary products. • The description may encompass pictures, diagrams, and prose that identify the pattern’s structure, its participants, and their collaborations to show how the problem is solved
Examples : One or more sample applications of the pattern that illustrate a specific initial context. How the pattern is applied to and transforms that context. Resulting context : the state or configuration of the system after the pattern has been applied, including the consequences (both good and bad) of applying the pattern, and other problems and patterns that may arise from the new context. It describes the post conditions. Rationale : A justifying explanation of steps or rules in the pattern Related patterns : The static and dynamic relationships between this pattern and others within the same pattern language or system. Known uses : The known occurrences of the pattern and its application
Antipatterns Represents “worst practice” or a “lesson learned”. Varieties. Those describing a bad solution to a problem that resulted in a bad situation. Those describing how to get out of a bad situation and how to proceed from there to a good situation. Anti patterns are valuable because often it is just as important to see and understand bad solutions as to see and understand good ones.
Frameworks A framework is a way of presenting a generic solution to a problem that can be applied at all levels in a development. A framework encompasses several design patterns.
Design patterns are more abstract than frameworks. Design patterns are smaller architectural elements than frameworks. Design patterns are less specialized than frameworks.
scenario • It is a sequence of steps describing an interaction between the user and a system. • Use case is the set of scenarios tied together by a common user goal. • ATM withdrawal use case contains success withdrawal and failure transaction scenarios
Use case diagram A use-case model allows the customer and system developer to communicate WHAT the system should do, in a language understandable to the customer. Consider the use-case model as the visual contract between customer and developer. A use-case diagram is an illustration that shows the relationships among use cases and actors and among related use cases
A single actor may perform many use cases and a use case can be performed by many actors. • Actors can be humane, external systems that needs some information from the current system. • Accounting system
Relationship • Along with links between use cases and actors, use cases are related together. • Include relationship • Extend relationship
Include relationship Borrow books Check Library Card Return books When common behavior is there among more than one use case. Ex: include include
Extend relationship It is used when one use case is similar to other use case but does a bit more or specialized.
Class diagram Also referred to as object modeling. Is a static analysis diagram. Shows the static structure of the model. A class diagram is a collection of static modeling elements, such as classes and their relationships, connected as a graph to each other and to their contents.
Essential Elements of a UML Class Diagram Class Attributes Operations Relationships Associations Generalization Aggregation and Composition Constraint Rules and Notes
Classes A class is a description of a set of objects that share the same attributes, operations, relationships, and semantics.
Class Notation • A class is drawn as a rectangle with three components separated by horizontal lines. • Either or both attribute and operation compartments may be suppressed. • A separator line is not drawn for a missing compartment.
Association Notation A binary association is drawn as a solid path connecting two classes.
A unary association is drawn as solid path with a arrowhead or both ends may be connected to the same class.
Association Name An association may be given a name. The association name may have an optional black triangle in it, the point of the triangle indicating the direction in which to read the name.
Association Role The end of an association, where it connects to a class, shows the association role. May be named to indicate the role played by the class attached to the end of the association path. The role is part of the association, not part of the class. Each association has two or more roles to which it is connected.
Qualifier A qualifier is an association attribute. A qualifier is shown as a small rectangle (smaller than the class rectangle) attached to the end of an association path, between the final segment and the symbol of the class to which it connects. The qualifier rectangle is part of the association path, not part of the class. Specifies the class is associated with other class through which parameter.