BTS430 Systems Analysis and Design using UML OBJECT-ORIENTED SOFTWARE DEVELOPMENT PROCESS SDLC: Software (or Systems) Development Life Cycle 2 Projects are developed according to a definite methodology called the SDLC o organizes the activities of a project o Interactive and Incremental o followed by everyone involved in software development What is a methodology? 3 A collection of comprehensive guidelines to follow for completing every SDLC activity Examples of methodologies: Structured (Traditional), Object-oriented SDLC Methodologies 4 Structured Worked well for centralized processing applications and procedural languages Object Oriented Based on the interaction that happens between ‘objects’ Real world objects are modeled by corresponding programming objects. Objects have state, behaviour and identity. The Phases of the SDLC: Software (or Systems) Development Life Cycle 5 • The Phases of the SDLC for both the Structured and the OO methodologies are similar Project Planning Phase Analysis Phase: understanding business needs Design Phase: conceptualizing computer-system solutions Implementation Phase: coding, testing and installation Support Phase Theory of the SDLC: Software (or Systems) Development Life Cycle Theory of the SDLC is covered in the Systems courses: Project Planning Phase (Principles taught in BTS330 and BTS70) Analysis Phase (Principles taught in BTS330) Design Phase (Principles taught in BTS430 and BTS530) Implementation Phase (Principles taught in programming courses and in BTS530 & 630) Support Phase SDLC used for the development of the Capstone Project You will develop your capstone project in teams using the SDLC Project Planning Phase (BTR490) Analysis Phase (BTR490) Design Phase (BTS530) Implementation Phase (BTS630) Support Phase (to be negotiated with client) Aids to Assist in Analysis and Design Methodologies Comprehensive guidelines to follow for completing every SDLC activity Collection of techniques Examples: Structured, OO Models Representation of an important aspect of the real world Diagrams and charts Project planning aids What is a technique? 9 Collection of guidelines that help the Developer complete a system development activity or task within a phase Step-by-step instructions General advice Techniques 10 Techniques are used to complete specific system development activities Project planning techniques Systems analysis techniques Systems design techniques System construction and implementation techniques System support techniques Example: Rational Unified Process Models 11 Representation of an important aspect of the real world Examples Diagrams and charts Project planning aids: MS Project The collection of the diagrams that are developed and drawn in Rational Rose Some Models Used in System Development Rational Rose Showing OO Diagrams Object-Oriented Analysis & Design Object-oriented analysis Defines all of the types of objects that do the work of the system Object-oriented design Shows how objects interact Defines all additional object types needed to communicate with people and devices in the system Refines each type of object for implementation in a specific language and environment Why the move to Object-oriented Methodology? 15 Software Development is too expensive Poor Quality Late Delivery Poor Productivity Too much person-power needed Fragile systems Legacy Systems User Interfaces not state of the art Why the move to Object-oriented Methodology? 16 • Software Developers are being asked to o Develop more sophisticated systems o Tackle more complex systems o Produce more reliable and malleable systems o Shorten the delivery cycle o Reduce costs Failures in Software Development 17 Some common causes for Failure: Deadlines that cannot be met Budgets that have been exceeded Solutions that don’t work Systems too complex to maintain Customer’s requirements not fully understood or captured correctly Customers continually change their requirements Customers are not committed to the project How does the Object-oriented SDLC help to overcome these problems in Software Development? 18 The system under development is refined and transformed through analysis, design, code and test phases – details are added in successive iterations (changes and improvements are introduced as needed) and incremental releases of software modules are delivered. System design – developing information systems using UML by Leszek A. Maciaszek (page 5, 2001) Object-oriented SDLC Iterative Development 19 Object Oriented Software Development Methodology 20 Allows for reusability or sharing of code Reduces the development time for an application SDLC Variations 21 Developers encounter many variations of SDLC in practice. Based on: Phases Iterations Emphasis on people Speed of development BUT you have to understand the basic methodology before you can vary it Object-Oriented Approach Views information systems as collections of interacting objects that work together to accomplish tasks Objects interact with each other in order to carry out the logic in scenarios in use cases Classes define the behaviour of the objects and the attributes (properties) of the objects Object-Oriented Approach to Systems