Object-Oriented Software Development What is Object-Oriented Development Object-Oriented vs. Traditional Development An Object-Oriented Development Framework Phases, Activities, and Work Products Phases, Activities, and Work Products A development phase is a state of product development that focuses on making progress on a particular aspect or facet. A work product is a concrete result of a planned project-related activity such as analysis or project management. Work products include items delivered to the customer and items used purely internally within a project. [OOTC 97] OOSD--fall'04 Copyright by jubo@cs.umu.se 51 OOSD--fall'04 Copyright by jubo@cs.umu.se 52 Project Management Requirements Gathering Project Management After initial project planning, define development activities and allocate resources to the activities. Allocate requirements to releases and manage project schedule and issues. Project Workbook Outline Resource Plan Schedule Risk/Option Management Plan Test Plan Issues Metrics An organized list of work products that are expected to comprise the project workbook. Analysis of the resources required for the successful completion of the project. A task time line showing dates, milestones, critical path, etc. Lists development options and describes the plan for minimizing project risks. Outlines the project s plan for testing the application. A list of outstanding issues, questions, and concerns that are reviewed on a regular basis. The planned and actual measurements, and statistics. Requirements Gathering Group functional requirements (into use cases) and prioritize them. Problem Statement Use Cases (functional requirements) Nonfunctional Requirements Prioritized Requirements Description of the problem to be solved in non-technical terms. An OO formalization of functional requirements describing the usage of the system by external agents. Requirements that do not belong to user function, such as performance, platform, quality. Defines the relative priorities of functional and nonfunctional system requirements. OOSD--fall'04 Copyright by jubo@cs.umu.se 53 OOSD--fall'04 Copyright by jubo@cs.umu.se 54
UI Design OOA&D UI Design Document how users will interact with the application. Guidelines Screen Flows Screen Layouts UI Prototype Describes the user interface guidelines and standards. Documents user navigation through the application s user interface. Documents details of all screens. A prototype built to show users the look and feel. Object- Oriented Analysis & Design Guidelines System Architecture Analysis: Identify objects, their attributes, behaviors, and interrelationships. Develop solutions to system usage scenarios in terms of active objects that group related tasks and communicate with other objects in order to complete them. Design: Plan a solution to the problem examined during analysis in terms of interacting objects, within the constraints specified by the nonfunctional requirements. Object Model Scenarios OIDs (Object Interaction Diagrams) State Models Classes File Structure Traceability Matrix Records the details of the analysis and design approach being followed. Description of the high-level components/ structures of the system and the design principles guiding the implementation. A consolidated model describing the classes of a system together with their responsibilities and static interrelationships. Descriptions of required systems behaviour. Scenarios refine use cases and are formalized in OIDs. A working out of a scenario, showing the interactions between objects to accomplish (the implementation of) a task. Show the life cycle of an object, i.e. its possible states and state transitions. Detailed descriptions of all classes. The files and their structure as required by the system. A cross-reference table that relates design elements to requirements. OOSD--fall'04 Copyright by jubo@cs.umu.se 55 OOSD--fall'04 Copyright by jubo@cs.umu.se 56 Implementation & Testing Miscellaneous Work Products Implementation Testing Systematically code the classes as specified in the class descriptions so that they can be built and installed on the target platforms. Insure that the application meets the requirements set forth in the problem statement and requirements gathering work products. Coding Guidelines Source Code User Support Materials Prototypes Test Cases A description of the coding guidelines and standards. The actual implementation of the product. Documentation, delivered in various forms, which support the customer s use of the product. Intermediate products. The testing and quality assurance work products. Miscellaneous Document miscellaneous Glossary Definitions and terminology. activities in appendices and add them to the Historical Back-level work products. project workbook. Work Products Meeting Minutes Time Logs The minutes of all project meetings. The time logs of the people allocated to the project. OOSD--fall'04 Copyright by jubo@cs.umu.se 57 OOSD--fall'04 Copyright by jubo@cs.umu.se 58
Course Related Work Products Course organization Document course specific aspects and support course organization. Team Description Subcontract Prototype Evaluation Weekly Reports Presentations Final Report A presentation of your team and the members of the team. A contract with an external team to deliver a specified piece of software. An evaluation of another team s prototype. Progress reports with up-todate project information. Materials from the team presentations. A complete document set. OOSD--fall'04 Copyright by jubo@cs.umu.se 59 Work Product Definition Defined in detail in [OOTC 97]: Description Purpose Participants Timing Techniques Strengths Weaknesses Notation Traceability Advice & Guidance Verification Examples References Importance See http://<course homepage>/deliverables.html for a detailed description of the course s deliverables and http://forc.darkeye.net for an example from a previous course. OOSD--fall'04 Copyright by jubo@cs.umu.se 60 Contents Project Management Introduction Object-Oriented Software Development Project Management Requirements Gathering (G)UI Design Object-Oriented Analysis and Design Advanced Topics in OOA&D Implementation and Testing References Just do it. Think first and look what you did. Activity Planning Activity Evaluation produce to produce input to to improve Result Result OOSD--fall'04 Copyright by jubo@cs.umu.se 61 OOSD--fall'04 Copyright by jubo@cs.umu.se 62
Project Management Activities Project acquisition Initial project planning Resources assessment Risk and option analysis Cost estimation Project scheduling Project tracking and control Reporting Not required in this course Project Scheduling Define work breakdown structure Break down the project into manageable tasks Identify all activities/ tasks that a project must undertake Distribute effort Define duration and start/ end dates for all activities/ tasks Identify parallelism Assign tasks Assign resources to tasks Do not forget the project functions, lectures, meetings, etc. OOSD--fall'04 Copyright by jubo@cs.umu.se 63 OOSD--fall'04 Copyright by jubo@cs.umu.se 64 Example Effort Distribution Another Group 250 total time in h 200 150 100 50 0 400 350 300 250 200 150 100 50 0 actual plan week35 week36 week37 week38 week39 week40 week41 week42 week43 week44 Lectures Meetings Planning Requirements GUI design Analysis Design Testing Coding Presentations Subcontract Code subc. Evaluation of prototype Manual Final report weekly reports and meeting minutes Other OOSD--fall'04 Copyright by jubo@cs.umu.se 65 350 300 250 200 150 100 50 0 Lectures Administration Study assignments Documentation Implementation Integration Testing OOSD--fall'04 Copyright by jubo@cs.umu.se 66
Another Group (10 cr version) Another Group (10 cr version) OOSD--fall'04 Copyright by jubo@cs.umu.se 67 OOSD--fall'04 Copyright by jubo@cs.umu.se 68 A Project Schedule Time vs budget vs quality work overtime more time fix a problem higher costs reduce control/ documentation decreasing quality OOSD--fall'04 Copyright by jubo@cs.umu.se 69 OOSD--fall'04 Copyright by jubo@cs.umu.se 70
Project Tracking and Control Risk Management Task management Risk management Issue management Quality management Don t forget to schedule time for these activities Investigate potential risk factors Risk Likelihood of occurrence Impact Define mitigation strategies (i.e. be prepared) What can be done to avoid the problem(s) What can be done to solve the problem(s) Monitor risks Determine if predicted risk occurs Properly apply risk aversion steps Collect info for future risk analysis OOSD--fall'04 Copyright by jubo@cs.umu.se 71 OOSD--fall'04 Copyright by jubo@cs.umu.se 72 Example Assume Risk = High staff turnover Likelihood of occurrence = 70% Impact = Increase project time by 15%, project cost by 12% Mitigation strategy Identify high turnover causes Reduce causes before project starts Develop techniques to assure work continuity in light of turnover For example or Top Ten Project Risks Staff deficiencies Unrealistic schedules and budgets Developing the wrong functions Developing the wrong interface Over-engineering Requirements volatility Externally developed items Externally performed tasks Performance problems Assumptions on technology OOSD--fall'04 Copyright by jubo@cs.umu.se 73 See Jalote: An Integrated Approach to Software Engineering, Springer 1997. OOSD--fall'04 Copyright by jubo@cs.umu.se 74
Software s Ten Essentials A product specification A detailed user interface prototype A realistic schedule Explicit priorities Active risk management A quality assurance plan Detailed activity lists Software configuration management Software architecture An integration plan Significant Student Project Risks Personnel schortfalls Lack of Commitment Interpersonal incompatibility Lack of critical project skills (technical and management) Communication problems Unrealistic schedule, budget, and process External (COTS) components Requirements mismatch UI mismatch See IEEE Software 14(2), Mar/Apr 1997, 143-144. OOSD--fall'04 Copyright by jubo@cs.umu.se 75 See Proceedings CSEE&T 2004, 132-137. OOSD--fall'04 Copyright by jubo@cs.umu.se 76 16 Critical Software Practices TM OOSD--fall'04 Copyright by jubo@cs.umu.se 77 Weekly Reports Will help you and us to track project progress Provides information/ data to access project status Major events and/or decisions Major changes to schedule (and resources) Top-10 risk list Major changes to issues list Statistics/ data Is project on schedule? Resources spent (per person, per category, last week, accumulated) Productivity (LOC, LOD, ; last week, accumulated) Summary of issues change log (new issues, closed issues, ; last week, accumulated) (QA?) () OOSD--fall'04 Copyright by jubo@cs.umu.se 78
An Example Top-10 Risk List Risk Items COTS availability Weekly Ranking Current Previous # Weeks 1 1 5 Risk Resolution Progress Performed multilingual NLP COTS survey. Applied for academic discount. Personal shortfalls 2 4 4 Two members are not available for this week. Other team members will put extra effort this week. OOSD--fall'04 Copyright by jubo@cs.umu.se 79