C SC 225 Lecture 1: Introduction and Overview
[ last
| schedule
| next ]
Course Introduction
- how this course fits into the Otterbein CSC curriculum
- syllabus and schedule
- textbooks and labs
- transition from implementation (programming) to design focus
Software Processes
- a.k.a. Lifecycle Models
- major activities: analysis, design, implementation, testing, planning, documentation, deployment, maintenance
- different development lifecycle models arrange, emphasize and conduct the activities differently
- touch on a few here; greater depth in CSC 325
- Waterfall: sequential phases, heavyweight
- Spiral: waterfall with risk management added to each phase, heavyweight
- Rational Unified Process: iterative and incremental with overlapping workflows instead of phases, middleweight
- eXtreme Programming (XP): best known of the 'agile processes', lightweight
- iterative and incremental
- requires continual client involvement
- test early and often
- pairs programming
- Process choices depend on factors such as:
- company policies (no choice)
- amount of risk (unknowns) involved - risk is multifaceted
- which software quality measures are most important
- runtime efficiency
- reliability
- resiliencc
- usability
- re-usability (of project artifacts)
- maintainability
- typically not feasible to achieve all quality measures (e.g. effiency and maintainability conflict)
Object-oriented Design
- primary focus of this course
- major design goals
- identify classes
- identify responsibilities of the classes
- identify relationships among the classes
- we will visit and re-visit OO concepts
- need not be coupled with OO analysis
- textbook author assumes "functional analysis" (not OO)
- functional analysis: describe what system should do
- argues that functional analysis easier for client to understand (critical)
- under that assumption, OO modeling practices introduced during design
- under OO analysis, some modeling practices will have already been applied, simplifying design process
- discover and document: objects, classes, behaviors, relationships
- design lies somewhere between the pure "what" of analysis and pure "how" of implementation
- major OO analysis and design documentation tools:
- use-case diagrams
- CRC cards
- UML class diagrams
- UML sequence diagrams
- UML state diagrams
- CRC cards developed for "responsibility-driven design" - more on this later
- in XP, there is no clear "design phase" but there are design activities
Related Concepts and Practices we will visit
- object and class concepts
- Unified Modeling Language (UML)
- Testing
- Design Patterns
- Refactoring
- Concurrency
- User interface design
[ C
SC 225 | Peter
Sanderson | Math Sciences server
| Math Sciences home page
| Otterbein ]
Last updated:
Peter Sanderson (PSanderson@otterbein.edu)