Presentation is loading. Please wait.

Presentation is loading. Please wait.

Object-Oriented Systems Development Life Cycle (CH-3)

Similar presentations


Presentation on theme: "Object-Oriented Systems Development Life Cycle (CH-3)"— Presentation transcript:

1 Object-Oriented Systems Development Life Cycle (CH-3)
School of Computer Engineering, KIIT University

2 School of Computer Engineering KIIT University
CONTENTS 3.1 INTRODUCTION 3.2 THE SOFTWARE DEVELOPMENT PROCESS 3.3 BUILDING HIGH-QUALITY SOFTWARE 3.4 OOSD: A USE CASE DRIVEN APPROACH 3.4.1 OOA – A USE CASE DRIVEN 3.4.2 OOD 3.4.3 PROTOTYPING 3.4.4 IMPLEMENTATION-COMPONENT BASED DEVELOPMENT 3.4.5 INCREMENTAL TESTING 3.5 REUSABILITY School of Computer Engineering KIIT University

3 School of Computer Engineering KIIT University
3.1 INTRODUCTION “He who does not lay his foundations beforehand may by great abilities do so afterwards, although with great trouble to the architect and danger to the building”. NICCOLO MACHIAVELLI- The Prince School of Computer Engineering KIIT University

4 School of Computer Engineering KIIT University
3.1 INTRODUCTION contd.. The essence of the software development process that consists of : Analysis Design Implementation Testing & Refinement is to transform users’ needs into a software solution that satisfies those needs. School of Computer Engineering KIIT University

5 School of Computer Engineering KIIT University
3.1 INTRODUCTION contd.. We need not see code until after 25 to 30 % of the development time. Because ? We need to spend more time in: Gathering REQUIREMENTS, Developing a requirement model Developing an analysis model Developing a design model Finally code can be developed quickly. Emphasize is on building high quality software. i.e (Meeting specifications & being adaptable for change.) School of Computer Engineering KIIT University

6 3.2 THE SOFTWARE DEVELOPMENT
Goals for OOSD: The software development process Building high-quality software Object-oriented systems development Use-case driven systems development Prototyping The system development can be viewed as a process. School of Computer Engineering KIIT University

7 School of Computer Engineering KIIT University
What is Process? It is an extensive set of guidelines that address the technical and organizational aspects of software development focusing on requirements, analysis and design. Process basically encapsulates the activities leading to the orderly construction of system model. OO model supports the iterative and incremental model for the process. School of Computer Engineering KIIT University

8 School of Computer Engineering KIIT University
More about Process Guidance as to the order of team’s activities It specifies what artifacts should be developed It directs the task of individual developers and team as a whole It offers criteria for monitoring and measuring project activities Framework for the every stage of software development life cycle. The selection of particular process will vary greatly depending upon things like problem domain, implementation technology and skills of team School of Computer Engineering KIIT University

9 3.2 SOFTWARE DEVELOPMENT PROCESS contd..
The essence of the software process is the transformation of Users’ needs to the application domain into a software solution. The development itself is a process of : Change Refinement Transformation or Addition to existing system Within the process we can replace one subsystem with a new one as long as it has same interface. School of Computer Engineering KIIT University

10 3.2 THE SOFTWARE DEVELOPMENT PROCESS contd..
The process can be divided into small, interacting phases – subprocesses. Each subprocess must have the following: A description in terms how it works Specification of the input required for the process Specification of the output to be produced Software development process can be viewed as a series of transformation where: The output of one transformation becomes the input of the subsequent transformation. School of Computer Engineering KIIT University

11 3.2 THE SOFTWARE DEVELOPMENT PROCESS contd..
Need Problem Statements Analysis Design Implementation Detail System Software Product Transformation 1 Transformation 2 Transformation 3 What are the uses of the system.? Needs School of Computer Engineering KIIT University

12 3.2 THE SOFTWARE DEVELOPMENT PROCESS contd..
Transformation 1 (Analysis): Translates the users’ need into systems requirements & responsibilities. Transformation 2 (Design): Begins with a problem statement and ends with a detail design that can be transformed into an operational system. Transformation 3 (Implementation): Refines the detail design into the system deployment that will satisfy the users’ needs. School of Computer Engineering KIIT University

13 3.2 THE SOFTWARE DEVELOPMENT PROCESS contd..
Ex: The traditional Waterfall software development process. School of Computer Engineering KIIT University

14 3.3 BUILDING HIGH-QUALITY SOFTWARE
To achieve high quality in software we need to be able to answer the following questions: How do we determine the system is ready for delivery ? Is it now an operational system that satisfies users’ need ? Is it correct and operating as we thought it should ? Does it pass an evaluation process ? School of Computer Engineering KIIT University

15 3.3 BUILDING HIGH-QUALITY SOFTWARE contd..
Two basic approaches for system testing: We can test a system according to how it has been built or alternatively What it should do ? Blums four quality measures for systems evaluation: CORRESPONDENCE CORRECTNESS VERIFICATION & VALIDATION School of Computer Engineering KIIT University

16 3.3 BUILDING HIGH-QUALITY SOFTWARE contd..
CORRESPONDENCE : Measures how well the delivered system matches the needs of the operational environment, as described in the original requirements statement. VALIDATION : It is the task of predicting correspondence . CORRECTNESS : Measures the consistency of the product requirements w.r.t the design specification. VERIFICATION : It is the exercise of determining correctness. School of Computer Engineering KIIT University

17 3.3 BUILDING HIGH-QUALITY SOFTWARE contd..
VALIDATION : Am I building the right product ? VERIFICATION : Am I building the product right ? Validation begins as soon as the project starts. Verification can begin only after specification has been accepted. Both are independent of each other. School of Computer Engineering KIIT University

18 3.3 BUILDING HIGH-QUALITY SOFTWARE contd..
Correspondence measures how well the delivered system corresponds to the needs of the operational environment. School of Computer Engineering KIIT University

19 3.3 BUILDING HIGH-QUALITY SOFTWARE contd..
Correctness measures the consistency of the product requirements with respect to the design specification. School of Computer Engineering KIIT University

20 3.3 BUILDING HIGH-QUALITY SOFTWARE contd..
Validation - "Am I building the right product?“ Verification- "Am I building the product right?" School of Computer Engineering KIIT University

21 3.4 O-O SYSTEMS DEVELOPMENT: A USE CASE DRIVEN APPROACH
The O-O software development life cycle (SDLC) consists of three macro processes: Object-Oriented Analysis Object-Oriented Design Object-Oriented Implementation The use case model can be employed throughout most activities. School of Computer Engineering KIIT University

22 3.4 O-O SYSTEMS DEVELOPMENT: A USE CASE DRIVEN APPROACH contd..
(Transformation 1) (Transformation 2) (Transformation 3) Fig: OBJECT ORIENTED SYSTEM DEVELOPMENT APPROACH School of Computer Engineering KIIT University

23 3.4 O-O SYSTEMS DEVELOPMENT: A USE CASE DRIVEN APPROACH contd..
One can produce designs that are traceable across : Requirements Analysis Design Implementation & Testing (Shown by Life Cycle Model of Jacobson, Ericsson and Jacobson in next slide..) School of Computer Engineering KIIT University

24 Life Cycle Model of Jacobson, Ericsson and Jacobson
School of Computer Engineering KIIT University

25 3.4 O-O SYSTEMS DEVELOPMENT: A USE CASE DRIVEN APPROACH contd..
Advantages of OOSD-By use case are: All design decisions can be traced back directly to user requirements. Usage scenarios can become test scenarios. Views problem as a system of cooperating objects. Advocates incremental development. Helps in identifying objects. School of Computer Engineering KIIT University

26 3.4.1 Object Oriented Analysis – Use Case Driven
O-O Analysis concerns with determining the system requirements and identifying classes and their relationships to other classes in the problem domain. Use case & Scenarios Use case modeling Documentation (80:20 Rule can be applied) 80:20 Rule: 80% of the work can be done with 20% of the documentation. School of Computer Engineering KIIT University

27 3.4.2 Object Oriented Design
The goal of object-oriented design (OOD) is to design: The classes identified during the analysis phase, The user interface and Data access. School of Computer Engineering KIIT University

28 3.4.2 Object Oriented Design contd..
OOD activities include: Design and refine classes. Design and refine attributes. Design and refine methods. Design and refine structures. Design and refine associations. Design User Interface or View layer classes. Design data Access Layer classes. School of Computer Engineering KIIT University

29 3.4.2 Object Oriented Design contd..
Guidelines for OOD are: Reuse, rather than build, a new class. Know the existing classes. Design large number of simple classes, rather than small number of complex classes. Design Methods Critique what you have proposed. If possible go back and refine the classes. School of Computer Engineering KIIT University

30 School of Computer Engineering KIIT University
Prototyping A Prototype enables you to fully understand how easy or difficult it will be to implement some of the features of the system. It can also give users a chance to comment on the usability and usefulness of the design. Types of Prototype are : A horizontal prototype is a simulation of the interface. (i.e UI) A vertical prototype is a subset of the system features with complete functionality. School of Computer Engineering KIIT University

31 School of Computer Engineering KIIT University
Prototyping contd.. An analysis prototype is an aid for exploring the problem domain. Proof of a concept but its code not used in real implementation. A domain prototype is an aid for the incremental development of the ultimate software. Can be evolved into a deliverable product. Finally a threefold review can be done. School of Computer Engineering KIIT University

32 3.4.4 Implementation: Component - Based Development
Reduce cost & Time to market is the need. CASE Tools (Modeling, Methodology & Automated code generation) Component Based Development: (Assemble prebuilt, pretested, reusable software components.) The software components are the functional unit of a program, building blocks offering a collection of reusable services. (eg: SOA etc) School of Computer Engineering KIIT University

33 3.4.4 Implementation: Component - Based Development contd..
RAD (Rapid Application Development) is a set of tools and techniques that can be used to build an application faster than typically possible with traditional methods. It is for quicker delivery, quality is sacrificed. It supports prototyping Reduces time to market It compliments SDLC, does not replace it. Visual tools are used. School of Computer Engineering KIIT University

34 School of Computer Engineering KIIT University
3.4.5 Incremental Testing Software development and all of its activities including testing are an iterative process. Testing is important to ensure that the software meets its requirements and user’s needs. Testing will also discover bugs/errors that are prevailing in the software. School of Computer Engineering KIIT University

35 3.4.5 Incremental Testing contd..
Two important types of testing Usability Testing More on the Interfaces of the system Eg - Questionnaires to targeted users Feedback from targeted users Functionality Testing More on the features of the system Eg – Test Plan (includes test cases) Testing on Expected and Actual Outcome of the system School of Computer Engineering KIIT University

36 School of Computer Engineering KIIT University
3.5 REUSABILITY Benefits of Reuse ? Increased reliability Reduced time & cost for development Improved consistency The reuse strategy are : Information hiding (Encapsulation) Conformance to naming standard Encouragement to strategic management of reuse as opposed to constant redevelopment. Establishing target of a % of the objects in the project to be reused. School of Computer Engineering KIIT University

37 School of Computer Engineering KIIT University
FINALLY OOSD Promotes: Object Oriented Analysis – Use Case Driven Object Oriented Design Prototyping Implementation: Component - Based Development Incremental Testing Reusability School of Computer Engineering KIIT University


Download ppt "Object-Oriented Systems Development Life Cycle (CH-3)"

Similar presentations


Ads by Google