Upload
dwayne-pearson
View
214
Download
0
Embed Size (px)
Citation preview
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 of software development
Software Development Activities
Desirable qualities of software products
Challenges
What do you think challenges of software development might be?
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
Software Development Activities
SD involves much more than writing code
Software Documentation
Project requirements specification
Architecture and design documents
Installation and user manuals
Steps Involved in SDSoftware Development Life Cycle (SDLC)
Requirements analysis
Design
Implementation and Unit Testing
Integration and System Testing
Maintenance
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
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
Implementation and Unit Testing
Implementation is the realization of the actual code
Implement each component separately
Test each component indivicually
Integration and System Testing
Putting all components together and testing the system as a whole
Ensures the system meets the system specifications
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
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)
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
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)
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)
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
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
Key Practices of XP
Planning
Frequent and small release
Metaphor when communicating with customer
Simple design
Test first
Refactoring
Pair programming
Key Practices of XP
Collective ownership
Continuous integration
40-hour weeks
On-site customer
Coding standards