19
CPSC 2150 August 21, 2015

CPSC 2150 August 21, 2015. Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges

Embed Size (px)

Citation preview

Page 1: CPSC 2150 August 21, 2015. Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges

CPSC 2150

August 21, 2015

Page 2: CPSC 2150 August 21, 2015. Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges

Chapter 1 Object Oriented Software Development

This is an introductory course

In this chapter we will look at 3 topics

Challenges of software development

Software Development Activities

Desirable qualities of software products

Page 3: CPSC 2150 August 21, 2015. Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges

Challenges

What do you think challenges of software development might be?

Page 4: CPSC 2150 August 21, 2015. Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges

Challenges

Software packages are no longer small

Larger packages means software more complex requiring teams of programs; thereby increasing ?what?

Debugging and testing

Higher expectation from clients

Page 5: CPSC 2150 August 21, 2015. Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges

Software Development Activities

SD involves much more than writing code

Software Documentation

Project requirements specification

Architecture and design documents

Installation and user manuals

Page 6: CPSC 2150 August 21, 2015. Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges

Steps Involved in SDSoftware Development Life Cycle (SDLC)

Requirements analysis

Design

Implementation and Unit Testing

Integration and System Testing

Maintenance

Page 7: CPSC 2150 August 21, 2015. Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges

Requirements Analysis

Goal: to establish the functions, services, and constraints of the software to be developed. (define the problem)

Two types

Customized software – for one specific customer

Commercial “shrink-wrapped” - to be sold

Two categories of requirements

Functional – What is the software suppose to do

Non-Functional – What constraints does the software operate under

Page 8: CPSC 2150 August 21, 2015. Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges

Design

Goal: construct a solution to the problem by establishing an overall architecture of the software by

Partitioning the software into components or subsystems

Identifying the relationships and dependencies among them

Two categories of design

System design – breaking into manageable components

Detail design - creating the solution to each component

Page 9: CPSC 2150 August 21, 2015. Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges

Implementation and Unit Testing

Implementation is the realization of the actual code

Implement each component separately

Test each component indivicually

Page 10: CPSC 2150 August 21, 2015. Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges

Integration and System Testing

Putting all components together and testing the system as a whole

Ensures the system meets the system specifications

Page 11: CPSC 2150 August 21, 2015. Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges

Maintenance

This step involves activities after the software has been delivered

Activities include

Correcting bugs

Improving performance

Enhancing functions or services

Adapting to new environments

Longest and most costly activity in the life cycle

Page 12: CPSC 2150 August 21, 2015. Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges

Software Development

ProcessesInvolves when and how to complete the steps in the SDLC

Options

Waterfall method – each step is completed before you move on to the next step - not realistic

Iterative design process

Rational Unified Process (RUP)

Extreme Programming (XP)

Page 13: CPSC 2150 August 21, 2015. Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges

Iterative Design

Introduced in 1994 by Software Engineer, Grady Booch

Goal: use a number of successive iterations of the following steps:

Identify a necessary class

Identify the attributes and behaviors of the class

Identify the relationships between the classes

Define a class interface

Implement the class

Page 14: CPSC 2150 August 21, 2015. Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges

Iterative Design

Each iteration deals with a small portion of the system until the whole system is complete

This process follows the following phases

Analysis

Modeling

Design

Implementation

Maintenance

Became known as the Rational Unified Process(RUP)

Page 15: CPSC 2150 August 21, 2015. Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges

Iterative Design

Each iteration deals with a small portion of the system until the whole system is complete

Follows the following phases

Analysis

Modeling

Design

Implementation

Maintenance

Became known as the Rational Unified Process(RUP)

Page 16: CPSC 2150 August 21, 2015. Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges

Key Practices of RUP

Develop software iteratively

Systematically elicit, organize, and manage changing requirements

Use component-based architecture

Visually model software using UML

Continually verify software quality

Control changes to software

Page 17: CPSC 2150 August 21, 2015. Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges

Extreme Programming XP

A lightweight process – emphases producing high-quality executable code throughout the development process

Small iterations that produces small bit of the overall system

Each iteration improves the previous iteration until the entire system is built

Relies heavily on refactoring to facilitate changes and enhancements

Refactoring – restructures the code to improve the quality of the system

Page 18: CPSC 2150 August 21, 2015. Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges

Key Practices of XP

Planning

Frequent and small release

Metaphor when communicating with customer

Simple design

Test first

Refactoring

Pair programming

Page 19: CPSC 2150 August 21, 2015. Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges

Key Practices of XP

Collective ownership

Continuous integration

40-hour weeks

On-site customer

Coding standards