80 likes | 217 Vues
This course, COP 3331 Object-Oriented Analysis and Design led by Bob Myers, delves into software engineering, emphasizing its multifaceted nature beyond mere coding. It covers essential stages such as problem definition, analysis, system design, class/object design, implementation, and maintenance. Students will learn about UML (Unified Modeling Language) for modeling software through use case diagrams, class diagrams, sequence diagrams, and statechart diagrams. The course also addresses critical real-world software engineering issues, including requirements analysis, communication, management, and quality assurance.
E N D
COP 3331 OBJECT-ORIENTED ANALYSIS AND DESIGN Bob Myers Department of Computer Science
COP 3331: Object Oriented Software Engineering • What is Software Engineering (SE)? • Involves more than just coding • Problem Definition • Problem Analysis • High level system design (including hardware!) • Design of classes/objects • Implementation • Testing • Maintenance
Modeling! • Modeling is a nice way to abstract and simplify some of the activities in software engineering • There are many modeling notations • UML - Unified Modeling Language • A nice way of representing things with diagrams • Different types of diagrams for use with different stages of software engineering • Works well with OOP.
UML First Pass: Use Case Diagrams Package SimpleWatch Actor ReadTime SetTime WatchUser WatchRepairPerson Use case ChangeBattery Use case diagrams represent the functionality of the system from user’s point of view
UML First Pass: Class Diagrams Class Multiplicity Association SimpleWatch 1 1 1 1 1 1 2 2 PushButton state push()release() LCDDisplay Battery load() Time now() blinkIdx blinkSeconds() blinkMinutes() blinkHours() stopBlinking() referesh() Attributes Operations Class diagrams represent the structure of the system
:SimpleWatch :LCDDisplay :Time UML First Pass: Sequence Diagram Object :WatchUser pressButton1() blinkHours() pressButton1() blinkMinutes() pressButton2() incrementMinutes() refresh() pressButtons1And2() commitNewTime() stopBlinking() Message Activation Sequence diagrams represent the behavior as interactions
Increment Hours Increment Minutes Increment Seconds UML First Pass: Statechart Diagrams Initial state State Event button2Pressed button1&2Pressed Blink Hours Transition button1Pressed button2Pressed button1&2Pressed Blink Minutes button1Pressed button1&2Pressed button2Pressed Blink Stop Seconds Blinking Final state
Other SE issues • Requirements Elicitation and Analysis • Communication • Management Issues • Testing and Quality Assurance • Design Patterns • This is the stuff you will have to deal with in the real world, if you work for a company doing software development.