1 / 17

Building High-Quality Software: An Object-Oriented Approach to Software Development

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.

lepage
Download Presentation

Building High-Quality Software: An Object-Oriented Approach to Software Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The software development process Building High Quality Software OOSD: A use-case driven approach Object Oriented Analysis and Design Agenda

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. Object Oriented System Development Life Cycle OOSD: A use-case driven approach (OO-SDLC) Testing: Why Testing ?

  16. Object Oriented System Development Life Cycle OOSD: A use-case driven approach (OO-SDLC) Testing: Why Testing ?

  17. 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

More Related