Introduction to OOAD Software Engineering Object Oriented Analysis
Introduction to OOAD & Software Engineering Object Oriented Analysis & Design ? This part of the program - the syllabus…. ? Today’s OOAD q the domain problem / need q OO concepts q the UML q the process of software development ? our sample system – EU-Rent ? workshops & homework assignments ? Software Engineering – Pair Programming
Introduction to the problem / need ? What q… • • • ? Do is a 'good' system? one that meets its users' needs. useful & usable reliable flexible affordable available we have good systems?
Introduction to OO concepts ? How does OO promise to deliver 'good' systems? q Encapsulation: low coupling q Abstraction: high cohesion q Architecture and components q Component-based design: pluggability
Introduction to Software Engineering concepts & practices ? How does SE promise to deliver 'good' systems?
OOAD - Introduction to the UML ? the Unified Modeling Language (UML) is. . . q a language for specifying the artifacts of development • q a graphical language • • q q artifact = the 'what' of development visualizing specifying constructing documenting a widely-used standard language • begun by the 'three amigos' ~ Grady, Jim, & Ivar • now, the OMG (Object Management Group) an integrated language for expressing individual model components
A word about visual development ~ models vs. diagrams ? The q q 'diagram' is not the 'model'! model ~ a specification • a simplification of reality (an 'abstraction') that completely describes a system from a particular perspective. • can be presented as an integrated set of diagrams. diagram ~ one view into a model • reflects one particular (focused) aspect of the model. . • visually presents one part of the system. • may omit both elements and details of a particular element. • is semantically consistent with the other aspects of the model.
UML defines 9 standard diagram types ? q These can be classified into 'static' and 'dynamic' diagrams. Static Structure o o Class diagram Object diagram Implementation o o q Component diagram Deployment diagram Dynamic Functionality o Use Case diagram Behavior o o Activity diagram Statechart diagram Interaction o o Collaboration diagram Sequence diagram System Model
Introduction to the process of software development ? The UML specifies 'what' an artifact is, but the UML does not tell you 'how' to develop the artifact. . . q For that, you need a 'software development process' • • • q a standardized process of developing software for a designated system of a defined scope A development process specifies a set of: work activities ('how? ') • worker roles ('who? ') with the artifacts produced (outputs) & used (inputs). • ? also referred to as the 'system development life cycle' (SDLC)
UML's software development process ~ the Unified Process ? a standardized framework for developing software that: q relates the UML artifacts to standardized work activities that produce, update, and refer to them. q refers to the elements of the Process as: • work product = 'artifact' produced / used by an actor, performing an activity • work activity = 'activity' with activities broken into 'steps' • worker role = 'worker' a 'hat' an individual can wear during project activity • flow of activities = 'workflow' (or 'process workflow') a meaningful sequence of activities by an interacting set of workers to produce a result (set of artifacts) of observable value
A word about our software development process ? We will use a simplified version of the 'analysis' & 'design' activities of the Unified Process, with an emphasis on: q standard UML for key artifacts q basic activities that produce and evolve those artifacts
A word about 'tools' ? Any q development process is best supported by a tool. The 'Rational Rose' product family is designed to provide the developer with an integrated set of visual modeling tools. • • We will not use 'Rose‘, but you are free to use it Tools we will use: MS Word paper & pencil, whiteboards & digital cameras Visio & templates UML Visual Paradigm
A word about 'tools' ? Software Engineering Tools we will use. q Eclipse…an IDE q Unit Testing … (J-Unit) a process (discipline) q CVS…version control q …. ? Sign up for “super-user” responsibility….
Introduction to our sample system ? To ground your year-long project in experience, and have first-hand understanding of the software development process, we will work together on a sample application for a vehicle rental business, and two of its systems: q EU-Rent • q EU-Bid • q the overall business, providing a context for the two systems we develop. the system developed in the workshops. EU-Lease • the system developed in weekly homework assignments and for the case study implementation.
An overview of EU-Rent ~ a Vehicle Rental Company EU-Rent is a vehicle rental company owned by EU-Corporation. It is one of three businesses ~ the other two being a chain of hotels and an airline. Each has its own business and information systems, but share a common customer base. This case study was developed by Model Systems (Europe) Ltd, working with several other European and U. S. organizations. It has been used widely throughout Europe and North America. The material may be copied & used freely, providing its source is clearly acknowledged.
An overview of EU-Rent ~ a Vehicle Rental Company EU-Rent is a vehicle rental company owned by EU-Corporation. It is one of three businesses ~ the other two being a chain of hotels and an airline. Each has its own business and information systems, but share a common customer base. Reservations Rentals & Returns Servicing Customers
An overview of EU-Rent ~ a Vehicle Rental Company EU-Rent is a vehicle rental company owned by EU-Corporation. It is one of three businesses ~ the other two being a chain of hotels and an airline. Each has its own business and information systems, but share a common customer base. Reservations Most rentals are by advance reservation; the rental period and the vehicle group are specified at the time of reservation. EU-Rent will also accept ‘walk -in’ rentals, if vehicles are available. Rentals & Returns Servicing Customers
An overview of EU-Rent ~ a Vehicle Rental Company Reservations Rentals & Returns Vehicles rented from one branch of EU-Rent may be returned to a different branch. The renting branch must ensure that the vehicle has been returned to some branch at the end of the rental period. If a vehicle is returned to a branch other than the one that rented it, ownership of the vehicle is assigned to the new branch. Servicing Customers
An overview of EU-Rent ~ a Vehicle Rental Company Reservations Rentals & Returns Servicing EU-Rent also has service depots, each serving several branches. Vehicles may be booked for maintenance at any time provided that the depot has capacity on the day in question. . Customers
An overview of EU-Rent ~ a Vehicle Rental Company Reservations Rentals & Returns Servicing Customers A customer can have several reservations but only one vehicle rented at a time. EU-Rent keeps records of customers, their rentals, & bad experiences such as late return, problems with payment, & damage to vehicles. This information is used to decide whether to approve a rental.
Introduction to the workshops & homework ? Practice q Wednesday mornings you will apply what was covered in the lectures by working on exercises for the EU-Bid system. • • • q makes perfect. . . (or, at least "better") apply discuss review the standard solution Then, you will apply the same techniques on the EU-Lease system, as homework. • • • completed as a 2 -person team written E-mailed in by 5 pm Thursday to judyc@evergreen. edu
- Slides: 20