150 likes | 164 Views
MCS 270 Spring 2014. Object-Oriented Software Development. MCS 270 Object-Oriented Software Development. Today ’ s schedule. System Conception: Development Stages Development Approaches Requirements/Design/Implementation. MCS 270 Object-Oriented Software Development.
E N D
MCS 270 Spring 2014 Object-Oriented Software Development
MCS 270 Object-Oriented Software Development Today’s schedule System Conception: Development Stages Development Approaches Requirements/Design/Implementation
MCS 270 Object-Oriented Software Development Software Development Process “You’ve got to be very careful if you don’t know where you’re going, because you might not get there.” Yogi Berra
MCS 270 Object-Oriented Software Development Development Stages System Conception What is application? General description (Chap 10-11) Analysis - Domain Analysis: Class, State Models (Chap 12) - Application Analysis: Use Case, Interaction, Activity Models (Chap 13) System Design - Overall architecture (sub-systems) - Design Patterns (e.g. MVC) Class Design - Refinement of Design: Completely specify class details - Choose Algorithms/data structures to implement each class Implementation - Translation of object classes and relationships to an object-oriented language - Unit Tests Testing – Unit tests during Implementation, System tests Training – Documentation Deployment – User tests Maintenance – Fixing bugs, enhancements/modifications time
MCS 270 Object-Oriented Software Development Why do we need a Development Strategy? Many Projects Fail due to: Ad hoc requirements management Ambiguous and imprecise communication Overwhelming complexity Insufficient testing Subjective assessment of project status Uncontrolled change propagation Late Discovery of Structural Flaws
MCS 270 Object-Oriented Software Development Software Development: Best Practices • Develop software iteratively • Manage requirements (Domain, Application Models) • Use component-based architectures (GWT, GAE) • Visually model software (UML) • Continuously verify software quality (Unit Testing) • Control changes to software (GIT)
MCS 270 Object-Oriented Software Development Planning The “classic” waterfall lifecycle Analysis Logical Design Physical Design Implementation
MCS 270 Object-Oriented Software Development Planning Analysis Risk pushed forward in time Logical Design Risk Physical Design Implementation Time
MCS 270 Object-Oriented Software Development Iterative Approach Initial Planning Requirements Planning Analysis and Design Evaluation • continuous discovery and implementation • -each iteration results in an executable Implementation Test
MCS 270 Object-Oriented Software Development Advantages of the iterative approach • Misconceptions are evident early • Encourages user feedback • Continuous testing allows objective project assessment • Inconsistencies between analysis, design, and • implementation detected early • Workload spread evenly (especially testing)
MCS 270 Object-Oriented Software Development System Conception • Start with “germ” of an idea • Explore needs of users and possible solutions/applications • “Big Picture Work” • Keep Separate: Requirements/Design/Implementation • Question: What is to be done? • NotHow is it to be done?
MCS 270 Object-Oriented Software Development Problem/Requirements Statement Includes: Application Scope/Description Application Context (Whereused, who uses) Assumptions Performance Needs
Example: Currency Conversion System • Problem (Requirements) Statement: • Develop a web-based system to convert $US to: • Brazilian currency • Canadian currency • United Kingdom currency • Japanese currency • Chinese currency • Euro • use the exchange rate within the last 12 hours. • Also allow the “reverse currency” computation
MCS 270 Object-Oriented Software Development Use Case Exercise • Groups of 3-4: Create a Use Case analysis of “GusList” – an on-line classified ad service for the Gustavus community. • Ideal: Design use cases in conversation with users (Students, Faculty, Staff) • Next Best – You will practice this in conversation with each other. • Task: Identify • Actors • Use Case Names (General) • By next Tuesday, prepare (individually) a Requirements statement and a use case document. • Document contains: Requirements statement. Use Case diagram(s). At least two fully developed Textual Descriptions.
MCS 270 Object-Oriented Software Development Assignments Monday – Briefly Review Chapters 12,13 Continue GusList Use Case Project Homework: GusList Use Case Report Due: Tuesday, Feb. 25