Unformatted text preview:

Object Oriented Software Development CS 3331 Fall 2009 Outline Challenges of software development Software engineering Object orientation Iterative development 2 Challenges of Software Development Complexity of software systems Longevity and evolution of software systems High user expectations 3 Outline Challenges of software development Software engineering Activities and processes Waterfall model Software qualities Object orientation Iterative development 4 Software Engineering Engineering discipline concerned with all aspects of developing and delivering highquality and useful software in a cost effective manner Defines activities and products Defines the software development processes which define the order for carrying out the development activities and the criteria for the deliverables of the activities 5 Software Development Activities Requirements analysis Design Implementation and unit testing Integration and system testing Maintenance 6 Requirements Analysis Goals To define the problem to be solved i e to establish the functions services and constraints of the software to be developed Deliverables Requirements specifications itemizing the functional and nonfunctional requirements called system requirements specifications 7 Design Goals To construct a solution to the problem by establishing an overall architecture of the software by partitioning the software into components and by identifying the relationships and dependencies among them Deliverables System design document and detailed design document along with various diagrams 8 Implementation and Unit Testing Goals To implement the software design and test each individual component to ensure that each unit functions properly with respect to its specification before the units are integrated Deliverables Source code and unit testing documentation 9 Integration and System Testing Goals To integrate the individual components and test the system as a whole to ensure that the entire software system functions properly with respect to its specification Deliverables System testing documentation 10 Maintenance Goals To improve the system after it is already in use e g correcting bugs improving performance enhancing functions or services and adapting to new environments Deliverables New version and documentation of changes Longest and most costly activity in the software life cycle 11 Software Development Processes Waterfall Model Requirments alalysis Design Implementation and unit testing Integration and sytem testing Maintenance 12 Waterfall Life Cycle Model Characteristics Sequential Phase based Document driven often called milestone Benefits Discipline and formality 13 Waterfall Model Cont Critical evaluation Linear rigid and monolithic No accommodations for changes Documents are frozen Ideal model Q How to accommodate changes Incremental or evolutionary approach 14 Software System Qualities Usefulness Timeliness Reliability Correctness robustness availability Maintainability Maintainable i e possible to make corrections adaptations and extensions without undue costs Reusability User friendliness Efficiency CPU time memory and disk space etc 15 Qualities Cont Are all of these qualities attainable at the same time Are they of equal importance If not which is more important 16 Maintainability Revisited Maintenance costs far exceed development costs Reliability is attained through repeated corrections must be maintainable 17 What Contributes to Maintainability Flexibility Simplicity Readability understandability 18 Flexibility Changeable The various aspects of software systems should be easily changeable Minimal impact Impact of change should be confined to a small region The correctness of the change should be reasoned by examining only the small affected region rather than the entire software 19 Simplicity Impossible to avoid making mistakes When things are simple Less error prone Easier to show correctness Errors become more obvious and correcting errors is easier Divide and conquer approach 20 Outline Challenges of software development Software engineering Object orientation Iterative development 21 Modeling the Real World A software system provides a solution to a problem in the real world It consists of two essential components Model abstraction of a part of the real world Algorithm captures the computations involved in manipulating or processing the model Software system Abstraction Real world Model Algorithm Interpretation 22 How to Model Real World Programming languages Tools to describe computer models Programming models Computation oriented model 50s 60s Data oriented model 70 80s Object oriented model 90s Balanced view between data and computation 23 Why O O Model Possible to directly represent real world objects in the computer system Thus solves the so called impedance mismatch problem Data oriented model Real world Software system Object oriented model Real world Software system 24 Outline Challenges of software development Software engineering Object orientation Iterative development 25 Iterative Development Key characteristics Consists of a number of success iterations Each iteration produces a working program Build system incrementally Monolithic approach of waterfall model Benefits Facilitates and manage changes Minimize and prevent changes Examples Rational Unified Process RUP Extreme Programming XP 26 Object Oriented Development Approach Focuses on improving the maintainability and reusability of software systems through a set of techniques notations tools and criteria Activities Conceptualization Object oriented analysis and modeling Object oriented design Implementation Maintenance 27 Detailed Activities Conceptualization To establish the vision and core requirements of the software system to be developed Object oriented analysis and modeling To build models of the system s desired behavior using notations such as the Unified Modeling Language UML To capture the essential relevant aspects of the real world and to define the services to be provided and or the problems to be solved To simplify reality to better understand the system to be developed 28 Detailed Activities Object oriented design To create an architecture for implementation Represented in terms of objects and classes and the relationships among them Implementation To implement the design by using an objectoriented programming language e g Java Maintenance To manage postdelivery evolution effectively 29 O O Processes e g RUP 30


View Full Document

UTEP CS 3331 - Object-Oriented Software Development

Download Object-Oriented Software Development
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 Development 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 Development 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?