170 likes | 176 Views
This article explores the object-oriented system development life cycle and the software development process using a use-case driven approach. It discusses the analysis, design, and implementation transformations, as well as the importance of building high-quality software through validation, verification, correctness, and usability. The use of use-case models and object-oriented design principles is also highlighted.
E N D
The software development process Building High Quality Software OOSD: A use-case driven approach Object Oriented Analysis and Design Agenda
Object Oriented System Development Life Cycle The software development process: The software development process: waterfall-SDLC • SD can be viewed as a process & the process can be divided into smaller, interacting sub-process • The software development process can also be viewed as a series of transformations, where the output of one transformation become the input of the subsequent transformation • Transformation-1: Analysis • Translates the user needs into system requirements & responsibilities • Transformation-2: Design • Begins with a problem statement and ends with detailed design that can be transformed into an operational system • It includes definition of how to build the software, its development & testing • Transformation-3: Implementation • Refines the detailed design into the system deployment that will satisfy the users needs
What are the uses of the system Problem Statement Analysis Transformation-1 Transformation-2 System Software Product Design Implementation Detail Transformation-3 Object Oriented System Development Life Cycle The software development process: The software development process: waterfall-SDLC Transformations from needs to software product
What How Do It Test Use Object Oriented System Development Life Cycle The software development process: waterfall-SDLC An example of the software development process is the waterfall approach Understanding needs How to accomplish needs Implementation of needs Test the results against to needs • Limitations: • Problems must be well defined • Enhancement to existing system is difficult • Not allows ad-hoc requirements • Need experienced developers • It never encourages software reusability We use what we have done
Object Oriented System Development Life Cycle Building High Quality Software: • Once the system exists, we must test it to see if it is free of bugs • The goal of building high quality software is user satisfaction • System evaluation can be described in terms of four quality measures, These are: • Correspondence: • measures how well the delivered system matches the needs of the operational environment as described in the original requirement statement • Validation: • it is the task of predicting correspondence • it answers the question, Am I building right product? • It begins as soon as the projects starts
Validation Verification Needs Requirements Design Software Correctness Correspondence Object Oriented System Development Life Cycle Building High Quality Software: • Correctness: • Measures the consistency of the product requirements with respect to design specification • Verification: • It is the exercise of determining correctness • It answers the question, Am building the product right? • It begins after a specification has been accepted
Build a Use-case model Object Analysis Test Analysis Iteration & reuse Design classes, define attributes & methods Build object & dynamic model Using Tools or OOP languages Usability & QA Tests Implementation Build User Interfaces & prototypes Usability & QA Tests Design Object Oriented System Development Life Cycle OOSD: A use-case driven approach (OO-SDLC) • OO-SDLC consists of three phases : OOA, OOD & OOI • The use-case model can be employed in most activities of software development • It can produce designs that are traceable across requirements, analysis, design, implementation & testing • OOSD includes these activities • OOA • OOD • Prototyping • Component bases development • Incremental testing
OOA: Use case model OOA: Identify actors Object interaction diagram, etc. Object diagram Design classes UI Usage scenarios OOA: Object model Dynamic Model OOD: Dynamic Model Testing Object Oriented System Development Life Cycle OOSD: A use-case driven approach (OO-SDLC) • All design decisions can be traced back directly to user requirements • Usage scenarios can become test scenarios
Object Oriented System Development Life Cycle OOSD: A use-case driven approach (OO-SDLC) Object Oriented Analysis- Use case driven: • Capture user goals & needs • Identify the actors- who are the users and how do they use the system? • Describe user & system interaction by using Use case scenarios • Identify roles & responsibilities of users • Capturing system requirements • Identifying objects, their relationships and collaborations to other objects in the problem domain • Iterate & refine
Object Oriented System Development Life Cycle OOSD: A use-case driven approach (OO-SDLC) Object Oriented Design: • Design the objects identified during analysis phase • Design User interface • Identify & design additional objects • Build the object model based on objects & their relationships, then iterate & refine the model • Design & refine objects • Design & refine attributes • Design & refine methods • Design & refine structures • Design & refine associations • Iterate & refine
Object Oriented System Development Life Cycle OOSD: A use-case driven approach (OO-SDLC) Prototyping: • Construct a prototype of some of the key system components • A prototype is a version of a software product developed in the early stages of the products life cycle for specific, experimental purposes • Help us to understand complexity of the system • Help us to get early feed back from users • It provides the developer a means to test & refine the user interface & increase the usability of a system
Object Oriented System Development Life Cycle OOSD: A use-case driven approach (OO-SDLC) Prototyping: • Prototypes have been categorized in various ways: Some of the commonly accepted prototypes are • A horizontal prototype: • Simulation of User interface without functional details • A vertical prototype: • Subset of the system features with completely implemented functions ( usually very complex functionalities) • A Analysis prototype: • Aid for exploring the problem domain • Used to demonstrate proof of concept to the client • A domain prototype: • Aid for the incremental development of the system • Used as a tool for the stages delivery of subsystems
Object Oriented System Development Life Cycle OOSD: A use-case driven approach (OO-SDLC) Implementation: Component based development (CBD) • Today, software components are built and tested in-house, using a wide rang of technologies • Many tools like CASE (computer aided software engineering) allows developers to rapidly develop information system. • Entire life cycle process is automated, like modeling methodology and code generation (only skeleton) • CBD is an industrialized approach to the software development process • It assembles pre-built, pre-tested & reusable software components that operate with each other • Software components are the functional units of a program, building blocks offering collection of reusable services
Object Oriented System Development Life Cycle OOSD: A use-case driven approach (OO-SDLC) Implementation: Component based development (CBD) • A component can request a service from other component • Components themselves may be constructed from other component • Each component is unaware of the context or inner working of other component • Advantages are • Application development can be improved significantly • Large collection of interpretable software components are available to developers. It increases reusability • Meet the needs of modern, highly dynamic, competitive, global businesses
Object Oriented System Development Life Cycle OOSD: A use-case driven approach (OO-SDLC) Testing: Why Testing ?
Object Oriented System Development Life Cycle OOSD: A use-case driven approach (OO-SDLC) Testing: Why Testing ?
Object Oriented System Development Life Cycle OOSD: A use-case driven approach (OO-SDLC) Testing: Why Testing ? • Incremental Testing: • Avoid late testing • Testing process must be iterative • QA team must start testing when the initial plan starts