Introduction to OOD and UML Dr Jean Muhammad

  • Slides: 18
Download presentation
Introduction to OOD and UML Dr. Jean Muhammad

Introduction to OOD and UML Dr. Jean Muhammad

Chapter Overview n Challenge of software development n Software development activities/processes n Desirable qualities

Chapter Overview n Challenge of software development n Software development activities/processes n Desirable qualities of software systems n Object Oriented paradigm n Object Oriented Development Activities n Rational Unified Process n Extreme Programming

Challenges of Software Development n Why the “Software Crisis” n Case Studies n Is

Challenges of Software Development n Why the “Software Crisis” n Case Studies n Is it a “True Engineering” discipline n why or why not n Increase Complexity n Longevity and Evolution n Increase expectations of an ever increasing sophisticated user

Software Development Activities There have been many proposed design models suggested over the years.

Software Development Activities There have been many proposed design models suggested over the years. To the untrained, the source code is the ultimate goal of software development and in many cases this appears to the focus of most design efforts. Source code is only a small part of the design process. Some design methodologies are more successful then others. All of them have their own advantages and disadvantages but most share a few common traits.

Software Development Activities n Requirements Analysis: n Establish the function, services, and constraints of

Software Development Activities n Requirements Analysis: n Establish the function, services, and constraints of the software to be developed. n What are the customer’s problems? n What are the expectations of the customer for the software? n Two categories of requirements: n n Functional requirements Non-functional requirements

Software Development Activities n Design: n Goal is to construct a solution to the

Software Development Activities n Design: n Goal is to construct a solution to the results of the requirements analysis. n Partition the solution into increasingly smaller parts until each part is, by itself, easily solved. n Define architecture components n Define performance specifications

Software Development Activities n Implementation and Unit Testing: n Write the code to support

Software Development Activities n Implementation and Unit Testing: n Write the code to support the writing of the code n Unit test each individual module against the design and specification

Software Development Activities n Integration and System Testing n Start to build the whole

Software Development Activities n Integration and System Testing n Start to build the whole version of the system a piece of the time n Start to develop the deployment procedures n Test the modules together until the entire system is built and fully tested against the design and original requirements n Question: Was the original problem solved?

Software Development Activities n Classic Waterfall Model Requirements Analysis Design Implementation and Unit Test

Software Development Activities n Classic Waterfall Model Requirements Analysis Design Implementation and Unit Test Integration and System Testing Maintenance

Desirable Qualities of Software n Usefulness n Timeliness n Reliability n Maintainability n Reusability

Desirable Qualities of Software n Usefulness n Timeliness n Reliability n Maintainability n Reusability n User Friendliness n Efficiency

Desirable Qualities of Software n Factors contributing to the maintainability of Software Flexibility n

Desirable Qualities of Software n Factors contributing to the maintainability of Software Flexibility n Simplicity – More important then most developers realize n Readibility n

Object Oriented Paradigm n Goal: Build software in such a manner using methods that

Object Oriented Paradigm n Goal: Build software in such a manner using methods that reflect the way we think in the physical world. n n The “real world” is full of methods and heuristics that are not well defined and intuitive in nature. Computers are not intuitive machines. n An Object has all of the parts needed to successfully operate: n n Data Methods

Object Oriented Paradigm n 1950’s – 1960’s: Focus was on the algorithm. Basic data

Object Oriented Paradigm n 1950’s – 1960’s: Focus was on the algorithm. Basic data structures, sorting, and searching were just becoming sophisticated. Machines were still slow. n 1970’s – 1980’s: Data was increasing in complexity. New design models were emerging to handle the increase load. n 1990’s - ? : Ease of use, data acquisition, software reliability, maintainability are now more important. Limitations of hardware/software less of a consideration.

Object Oriented Development Activities n Conceptualization: Involves establishing the complete requirements of the system.

Object Oriented Development Activities n Conceptualization: Involves establishing the complete requirements of the system. n Object-oriented analysis and modeling: Model the desired behavior. Use case and class diagrams are developed. Identify the objects. n Object-oriented Design. Create an architecture for implementation n Implementation: Write the code. n Maintenance: Remove errors, continuous improvement.

Rational Unified Process (RUP) n Complete software engineering process n Develops software interatively n

Rational Unified Process (RUP) n Complete software engineering process n Develops software interatively n Manages requirements n Uses component based architecture n Visually model software using UML n Continuously verify software quality n Control changes to software

Rational Unified Process (RUP) n Different models n Business models n Domain models n

Rational Unified Process (RUP) n Different models n Business models n Domain models n Use case models n Analysis models n Design models n Process models n Development models n Implementation models n Test models

Extreme Programming n Focus is on the development of executable code from n n

Extreme Programming n Focus is on the development of executable code from n n n the beginning Iterative process with small interations Each iteration will produce a minimum skeletal, and executable version of the system Each subsequent iteration makes small changes. Make small changes and improvements. Make sure each change is accurate and performs well

Extreme Programming n Key practices in XP n Planning game n Frequent and small

Extreme Programming n Key practices in XP n Planning game n Frequent and small releases n Frequent communications with customer n Simple design n Write the unit test before the code n Fefactoring n Pair Programming n Collective ownership n 40 -hour work week. n On-site customer n Coding standards