Object-Oriented Software Development CS 3331 Fall 2009.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

1 Software Testing and Quality Assurance Lecture 13 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Ch 3: Unified Process CSCI 4320: Software Engineering.
Lecture # 2 : Process Models
Multimedia Specification Design and Production 2013 / Semester 1 / week 7 Lecturer: Dr. Nikos Gazepidis
Unit 2. Software Lifecycle
CS487 Software Engineering Omar Aldawud
 2004 by SEC Chapter 2 Software Development Process Models.
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Ch 3 System Development Environment
1 Prescriptive Process Models. 2 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive process.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
© Copyright Eliyahu Brutman Programming Techniques Course.
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne. – Times: –See noticeboard outside.
CHAPTER 9: LEARNING OUTCOMES
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
CHAPTER 19 Building Software.
Data Structures and Programming.  John Edgar2.
Chapter 1 The Systems Development Environment
Software Development Life Cycle (SDLC)
Copyright © 2002, Systems and Computer Engineering, Carleton University Intro.ppt * Object-Oriented Software Development Unit 1 Course.
UML - Development Process 1 Software Development Process Using UML (2)
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Comp 245 Data Structures Software Engineering. What is Software Engineering? Most students obtain the problem and immediately start coding the solution.
Chapter 2 The process Process, Methods, and Tools
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Object Oriented Analysis and Design Introduction.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
Topic 1: Approaches to System Development
Understand Application Lifecycle Management
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
What is a life cycle model? Framework under which a software product is going to be developed. – Defines the phases that the product under development.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
INTRODUCTION What is software? What is software engineering?
MCS 270 Spring 2014 Object-Oriented Software Development.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
June 05 David A. Gaitros Jean Muhammad Introduction to OOD and UML Dr. Jean Muhammad.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
PROC-1 1. Software Development Process. PROC-2 A Process Software Development Process User’s Requirements Software System Unified Process: Component Based.
Software Design Process
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
CSE 303 – Software Design and Architecture
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Methodology Review Chapter 7 Part 2: Design Methodology Object-Oriented Modeling and Design Byung-Hyun Ha
CHPATER Agenda Software Development  Challenges of Software Development Software Engineering Software Development Life Cycle  Water-fall.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Software Development.
Lecture 3 Prescriptive Process Models
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Introduction to Software Engineering
CS310 Software Engineering Lecturer Dr.Doaa Sami
Presentation transcript:

Object-Oriented Software Development CS 3331 Fall 2009

2 Outline Challenges of software development Software engineering Object-orientation Iterative development

3 Challenges of Software Development Complexity of software systems Longevity and evolution of software systems High user expectations

4 Outline Challenges of software development Software engineering Activities and processes Waterfall model Software qualities Object-orientation Iterative development

5 Software Engineering Engineering discipline concerned with all aspects of developing and delivering high- quality and useful software in a cost- effective manner Defines activities and products. Defines the software development processes, which define the order for carrying out the development activities and the criteria for the deliverables of the activities.

6 Software Development Activities Requirements analysis Design Implementation and unit testing Integration and system testing Maintenance

7 Requirements Analysis Goals To define the problem to be solved, i.e., to establish the functions, services, and constraints of the software to be developed. Deliverables Requirements specifications itemizing the functional and nonfunctional requirements, called system [requirements] specifications.

8 Design Goals To construct a solution to the problem by establishing an overall architecture of the software, by partitioning the software into components, and by identifying the relationships and dependencies among them. Deliverables System design document and detailed design document, along with various diagrams.

9 Implementation and Unit Testing Goals To implement the software design and test each individual component to ensure that each unit functions properly with respect to its specification before the units are integrated. Deliverables Source code and unit testing documentation

10 Integration and System Testing Goals To integrate the individual components and test the system as a whole to ensure that the entire software system functions properly with respect to its specification. Deliverables System testing documentation

11 Maintenance Goals To improve the system after it is already in use, e.g., correcting bugs, improving performance, enhancing functions or services, and adapting to new environments. Deliverables New version and documentation of changes Longest and most costly activity in the software life cycle!

12 Software Development Processes Waterfall Model

13 Waterfall (Life Cycle) Model Characteristics Sequential Phase based Document driven (often called milestone) Benefits Discipline and formality

14 Waterfall Model (Cont.) Critical evaluation Linear, rigid, and monolithic No accommodations for changes => Documents are frozen => Ideal model Q: How to accommodate changes? Incremental (or evolutionary) approach

15 Software System Qualities Usefulness Timeliness Reliability Correctness, robustness, availability, … Maintainability Maintainable, i.e., possible to make corrections, adaptations, and extensions without undue costs. Reusability User friendliness Efficiency CPU time, memory, and disk space, etc. …

16 Qualities (Cont.) Are all of these qualities attainable at the same time? Are they of equal importance? If not, which is more important?

17 Maintainability Revisited Maintenance costs far exceed development costs. Reliability is attained through repeated corrections. => must be maintainable!

18 What Contributes to Maintainability? Flexibility Simplicity Readability (understandability)

19 Flexibility Changeable The various aspects of software systems should be easily changeable. Minimal impact Impact of change should be confined to a small region. The correctness of the change should be reasoned by examining only the small affected region rather than the entire software.

20 Simplicity Impossible to avoid making mistakes When things are simple Less error-prone Easier to show correctness Errors become more obvious and correcting errors is easier. Divide-and-conquer approach

21 Outline Challenges of software development Software engineering Object-orientation Iterative development

22 Modeling the Real World A software system provides a solution to a problem in the real world. It consists of two essential components: Model: abstraction of a part of the real world Algorithm: captures the computations involved in manipulating or processing the model. AlgorithmModel Software system Real world Abstraction Interpretation

23 How to Model Real World? Programming languages Tools to describe computer models Programming models Computation-oriented model (50s ~ 60s) Data-oriented model (70 ~ 80s) Object-oriented model (90s ~ ) Balanced view between data and computation

24 Why O-O Model? Possible to directly represent real world objects in the computer system Thus, solves the so-called impedance mismatch problem. Software system Real world Data-oriented model Software system Real world Object-oriented model

25 Outline Challenges of software development Software engineering Object-orientation Iterative development

26 Iterative Development Key characteristics Consists of a number of success iterations Each iteration produces a working program Build system incrementally  Monolithic approach of waterfall model Benefits Facilitates and manage changes  Minimize and prevent changes Examples Rational Unified Process (RUP) Extreme Programming (XP)

27 Object-Oriented Development Approach Focuses on improving the maintainability and reusability of software systems through a set of techniques, notations, tools, and criteria. Activities Conceptualization Object-oriented analysis and modeling Object-oriented design Implementation Maintenance

28 Detailed Activities Conceptualization To establish the vision and core requirements of the software system to be developed. Object-oriented analysis and modeling To build models of the system’s desired behavior, using notations such as the Unified Modeling Language (UML). To capture the essential relevant aspects of the real world and to define the services to be provided and/or the problems to be solved. To simplify reality to better understand the system to be developed.

29 Detailed Activities Object-oriented design To create an architecture for implementation. Represented in terms of objects and classes and the relationships among them. Implementation: To implement the design by using an object- oriented programming language (e.g., Java) Maintenance: To manage postdelivery evolution effectively.

30 O-O Processes (e.g., RUP)