1 / 18

Software Engineering

Software Engineering. Summary James Gain ( jgain@cs.uct.ac.za ) http://people.cs.uct.ac.za/~jgain/courses/SoftEng/. Overview. Summarize: The Nature of Software Engineering Analysis Design Testing Methodology Metrics Teams Project Planning. The Nature of Software.

justindiaz
Download Presentation

Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Engineering Summary James Gain (jgain@cs.uct.ac.za) http://people.cs.uct.ac.za/~jgain/courses/SoftEng/

  2. Overview • Summarize: • The Nature of Software Engineering • Analysis • Design • Testing • Methodology • Metrics • Teams • Project Planning

  3. The Nature of Software • Software is a set of items or objects forming a “configuration” that includes: • Programs • Documents • Data • Software Characteristics: • Complexity • Conformity (to existing systems) • Changeability • Invisibility (difficult to visualize)

  4. Process Models

  5. Analysis analysis design code test

  6. Valuation Trader Use-Case Diagrams • Graphically shows use-cases, actors and their relationships. Includes Relationship Analyze Risk <<incloudes>> Actor Price Deal <<includes>> Capture Deal Communication Relationship Use Case <<extends>> Extends Relationship Limits Exceeded

  7. CRC Cards class name: Overlay Image class type: Thing class characteristics: abstract, aggregate, sequential, transient responsibilities: collaborators: Resolution Edge Place Reference Image Save Black-and-white image

  8. Class Diagrams Multiplicity Association Class Label

  9. Sequence Diagrams Event Object Active Life Line

  10. State Diagrams State Ready Event Initial Pseudostate stop [user quits] /ctr := 0 Transition Done Guard Action stop Final State

  11. Design Summary analysis design code test

  12. Package Diagrams Image Package Reference Picture Mosaic Image Mosaic Generator Dependancy

  13. Specification Class Diagrams

  14. Testing Summary analysis design code test

  15. Methodology • Extreme Programming in a nutshell: • Lightweight: little documentation or administration overhead • Agile: able to adapt quickly to changes in user requirements • Best for small scale projects with uncertain or evolving requirements • XP Style: • Iterative development (about a dozen iterations of 1-3 weeks each) of a complete system on each iteration • Just in time planning (does not plan much beyond the current iteration) • Emphasis on testing (unit tests are written before functionality) • Carefully considers people issues (stand-up meetings, pair programming, no overtime)

  16. Metrics • Attempt to objectively quantify Software Engineering • In order to characterize, evaluate, predict and improve the process and product a metric baseline is essential • Application of Metrics: • Process: Measure and correct the software process applied by your organization over several projects. Use Function Point normalization to allow comparison across projects • Project: Create reliable estimates of time and cost. Track and control the project schedule • Product: Monitor and adjust aspects of the software as it is created. Object-oriented SE has specific metrics for analysis, design and coding

  17. Teams DD = Democratic Decentralized, CC = Controlled Centralized, CD = Controlled Decentralized

  18. Project Planning • Scope—understand the problem and the work that must be done. • Estimation—how much effort? how much time? • Risk—what can go wrong? how can we avoid it? what can we do about it? • Schedule—how do we allocate resources along the timeline? what are the milestones? • Control strategy—how do we control quality? how do we control change? Project Scope Estimates Risks Schedule Control strategy Software Project Plan

More Related