cpsc 2150 august 21, 2015. chapter 1 object oriented software development this is an introductory...
TRANSCRIPT
![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](https://reader036.vdocument.in/reader036/viewer/2022062517/56649ea25503460f94ba65e9/html5/thumbnails/1.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062517/56649ea25503460f94ba65e9/html5/thumbnails/2.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062517/56649ea25503460f94ba65e9/html5/thumbnails/3.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062517/56649ea25503460f94ba65e9/html5/thumbnails/4.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062517/56649ea25503460f94ba65e9/html5/thumbnails/5.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062517/56649ea25503460f94ba65e9/html5/thumbnails/6.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062517/56649ea25503460f94ba65e9/html5/thumbnails/7.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062517/56649ea25503460f94ba65e9/html5/thumbnails/8.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062517/56649ea25503460f94ba65e9/html5/thumbnails/9.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062517/56649ea25503460f94ba65e9/html5/thumbnails/10.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062517/56649ea25503460f94ba65e9/html5/thumbnails/11.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062517/56649ea25503460f94ba65e9/html5/thumbnails/12.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062517/56649ea25503460f94ba65e9/html5/thumbnails/13.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062517/56649ea25503460f94ba65e9/html5/thumbnails/14.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062517/56649ea25503460f94ba65e9/html5/thumbnails/15.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062517/56649ea25503460f94ba65e9/html5/thumbnails/16.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062517/56649ea25503460f94ba65e9/html5/thumbnails/17.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062517/56649ea25503460f94ba65e9/html5/thumbnails/18.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062517/56649ea25503460f94ba65e9/html5/thumbnails/19.jpg)
Key Practices of XP
Collective ownership
Continuous integration
40-hour weeks
On-site customer
Coding standards