U-M CIS 375 - Object-Oriented Software Engineering
Course Cis 375-
Pages 17

Unformatted text preview:

Object-Oriented Software EngineeringOO Concepts - 1OO Concepts - 2OO Concepts - 3Advantages of OO ArchitecturesClass Construction Options - 1Class Construction Options - 2Object-Oriented Evolutionary Process ModelObject-Oriented Software ConstructionClass CandidatesCriteria for Including ObjectsObject-Oriented Life Cycle ModelManagement of OO ProjectsOO Project MilestonesOO Project MetricsOO Estimation - 1OO Estimation - 21Object-Oriented Software EngineeringCIS 375Bruce R. MaximUM-Dearborn2OO Concepts - 1•Object–encapsulates both data (attributes) and data manipulation functions (called methods, operations, and services)•Class–generalized description (template or pattern) that describes a collection of similar objects•Superclass–a collection of objects•Subclass–an instance of a class3OO Concepts - 2•Class hierarchy–attributes and methods of a superclass are inherited by its subclasses•Messages–the means by which objects exchange information with one another•Inheritance–provides a means for allowing subclasses to reuse existing superclass data and procedures–provides mechanism for propagating changes4OO Concepts - 3•Polymorphism–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 method5Advantages of OO Architectures•Implementation details of data and procedures hidden from the outside world–reduces propagation of side effects after changes •Data structures and operators are merged in single entity or class–this facilitates reuse•Interfaces among encapsulated objects are simplified–reduces system coupling6Class Construction Options - 1•Build new class from scratch without using inheritance•Use inheritance to create new class from existing class contains most of the desired attributes and operations•Restructure the class hierarchy so that the required attributes and operations can be inherited by the newly created class7Class Construction Options - 2•Override some attributes or operations in an existing class and use inheritance to create a new class with (specialized) private versions of these attributes and operations.8Object-Oriented Evolutionary Process Model•Customer communication•Planning•Risk analysis•Engineering construction and analysis•Customer evaluation9Object-Oriented Software Construction•Identify candidate classes•Look-up classes in library•Extract classes if available•Engineer classes if not available–Object-oriented analysis (OOA)–Object-oriented design (OOD)–Object-oriented programming (OOP)–Object-oriented testing (OOT)•Put new classes in library•Construct Nth iteration of the system10Class Candidates•External Entities–devices or people•Things in Problem Domain–Reports, displays, signals•Events–completion of some task •Roles–manager, engineer, salesperson•Organizational Units–divisions, groups, teams•Structures–sensors, vehicles, computers11Criteria for Including Objects •Does object information need to be retained?•Does object provide a set of needed services that can change its attributes?•Does object have major (important) attributes?•Can you identify common attributes for all object instances?•Can you identify common operations for all object instances?•Is it an external entity that produces or consumes information?12Object-Oriented Life Cycle Model13Management of OO Projects•Establish a common process framework (CPF).•Use CPF & historic data to eliminate time & effort.•Specify products & milestones.•Define Q.A. checkpoints.•Manage changes.•Monitor project.14OO Project Milestones•Contracts completed.•OO Analysis completed.•OO Design completed.•OO Programming completed.•OO Testing completed.15OO Project Metrics•Number of scenario scripts.•Number of key classes.•Number of support classes.•(# key classes)/(# support classes).•Number of major iterations (around spiral model).•Number of completed contracts.16OO Estimation - 11. Use some effort decomposition technique (e.g. FP) to determine size estimates.2. Use O.O.A. to develop scenario scripts and count them.3. Use O.O.A. to get the number of key classes.4. Categorize types of the user interfaces to determine support class multiplier:NoUI = 2.0 TextUI = 2.25 GUI = 2.5 Complex GUI = 3.017OO Estimation - 25. Estimate the number of support classes# support classes = (# of key classes) * (UI #)6. Estimate total effortTotal effort = (key + support) * (average # of work units per class)7. Cross check class based estimate (6) usingTotal effort = (avg. # of work units per script) * (# of scenario scripts)Note: takes 15-20 days to complete each


View Full Document

U-M CIS 375 - Object-Oriented Software Engineering

Course: Cis 375-
Pages: 17
Download Object-Oriented Software Engineering
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Object-Oriented Software Engineering and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Object-Oriented Software Engineering 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?