Title: David A' Gaitros
1Introduction to OOD and UML
2Chapter Overview
- Challenge of software development
- Software development activities/processes
- Desirable qualities of software systems
- Object Oriented paradigm
- Object Oriented Development Activities
- Rational Unified Process
- Extreme Programming
3Challenges of Software Development
- Why the Software Crisis
- Case Studies
- Is it a True Engineering discipline
- why or why not
- Increase Complexity
- Longevity and Evolution
- Increase expectations of an ever increasing
sophisticated user
4Software 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.
5Software Development Activities
- Requirements Analysis
- Establish the function, services, and constraints
of the software to be developed. - What are the customers problems?
- What are the expectations of the customer for the
software? - Two categories of requirements
- Functional requirements
- Non-functional requirements
6Software Development Activities
- Design
- Goal is to construct a solution to the results of
the requirements analysis. - Partition the solution into increasingly smaller
parts until each part is, by itself, easily
solved. - Define architecture components
- Define performance specifications
7Software Development Activities
- Implementation and Unit Testing
- Write the code
- Write the code to support the writing of the code
- Unit test each individual module against the
design and specification
8Software Development Activities
- Integration and System Testing
- Start to build the whole version of the system a
piece of the time - Start to develop the deployment procedures
- Test the modules together until the entire system
is built and fully tested against the design and
original requirements - Question Was the original problem solved?
9Software Development Activities
Requirements Analysis
Design
Implementation and Unit Test
Integration and System Testing
Maintenance
10Desirable Qualities of Software
- Usefulness
- Timeliness
- Reliability
- Maintainability
- Reusability
- User Friendliness
- Efficiency
11Desirable Qualities of Software
- Factors contributing to the maintainability of
Software - Flexibility
- Simplicity More important then most developers
realize - Readibility
12Object Oriented Paradigm
- Goal Build software in such a manner using
methods that reflect the way we think in the
physical world. - The real world is full of methods and
heuristics that are not well defined and
intuitive in nature. - Computers are not intuitive machines.
- An Object has all of the parts needed to
successfully operate - Data
- Methods
13Object Oriented Paradigm
- 1950s 1960s Focus was on the algorithm.
Basic data structures, sorting, and searching
were just becoming sophisticated. Machines were
still slow. - 1970s 1980s Data was increasing in
complexity. New design models were emerging to
handle the increase load. - 1990s - ? Ease of use, data acquisition,
software reliability, maintainability are now
more important. Limitations of hardware/software
less of a consideration.
14Object Oriented Development Activities
- Conceptualization Involves establishing the
complete requirements of the system. - Object-oriented analysis and modeling Model the
desired behavior. Use case and class diagrams are
developed. Identify the objects. - Object-oriented Design. Create an architecture
for implementation - Implementation Write the code.
- Maintenance Remove errors, continuous
improvement.
15Rational Unified Process (RUP)
- Complete software engineering process
- Develops software interatively
- Manages requirements
- Uses component based architecture
- Visually model software using UML
- Continuously verify software quality
- Control changes to software
16Rational Unified Process (RUP)
- Different models
- Business models
- Domain models
- Use case models
- Analysis models
- Design models
- Process models
- Development models
- Implementation models
- Test models
17Extreme Programming
- Focus is on the development of executable code
from 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
18Extreme Programming
- Key practices in XP
- Planning game
- Frequent and small releases
- Frequent communications with customer
- Simple design
- Write the unit test before the code
- Fefactoring
- Pair Programming
- Collective ownership
- 40-hour work week.
- On-site customer
- Coding standards