cisc 323 introduction to software engineering
play

CISC 323 Introduction to Software Engineering Week 3 OOP, UML, - PowerPoint PPT Presentation

CISC 323 Introduction to Software Engineering Week 3 OOP, UML, Software Process Lecture 1: Software Process


  1. CISC 323 Introduction to Software Engineering Week 3 OOP, UML, Software Process Lecture 1: Software Process

  2. � ✞ ✔ ✕ ✖ ✁ ✑ ✙ ✡ ✗ ✚ ✞ ✟ ✟✠ ✡ ✗ ✎ ✙✛ ✖ ✓ ✜ ✢ ✟ ✖ ✙ ☞ ✡ ✙ ☎ � ☎ ✎ ✖ ✓ ✌ ✂ ✄ ✁☎ � ☎ ✆ ✝ ✞ ✟ � ✡ ☛ ✠ ☞ ✟✠ ✟ ✠ ✒ ✍ ✍ ✟ ✎ �✒ ☞ ✑ ✆ ✏ ✎ ☞ ✡ Software Process • To manage complexity of software, require a process that codifies the activities of software design, development and validation • There are many processes. Which one is correct depends on the desired quality attributes of the system under construction. • Process model: describes process • Reading: Bahrami Chapter 3 ✑✘✗

  3. ☎ ✞ ✔ ✁ ✖ ✖ ✑ ✙ ✡ ✗ ✚ ✞ ✟ ✟✠ ✡ ✗ ✎ ✙✛ ✖ ✓ ✜ ✢ ✟ ✖ ✙ ☞ ✡ ✙ ☎ � ☎ ✎ ✕ ✓ ✌ ✂ ✄ ✁☎ � ☎ ✆ ✝ ✞ ✟ ✟✠ ✡ � ✠ ☞ ☛ ✟ ✠ ✒ �✒ ✍ ✍ ✎ ✟ ☞ ✡ ✑ ✆ ✏ ✎ ☞ Examples of Software Processes • Waterfall process • Incremental process – Microsoft • …There are many more! ✑✘✗

  4. � ✟ ✕ ✁ ✗ ✗ ✒ ✚ ☛ ✘ ✛ ✟ ✠ ✠✡ ☛ ✘ ✏ ✚✜ ✗ ✔ ✢ ✣ ✠ ✗ ✚ ✌ ☛ ✚ ☎ ✆ ☎ ✏ ✖ ✔ ✍ ✂ ✄ ✁☎ ✆ ☎ ✝ ✞ ✟ ✠ ✠✡ ☛ ✆ ✡ ✌ ☞ ✠ ✡ ✓ ✆✓ ✎ ✎ ✏ ✠ ✌ ☛ ✒ ✝ ✑ ✏ ✌ Ad Hoc Process • analysis ---> code --> test --> code --> test … • may work for small program, one programmer • for larger systems, doomed to failure ✒✙✘

  5. � ✆ ✡ ✓ ✝✔ ✕ ✡ ✄ ✝ ✡ ✖ ✗ ✍ ✘ ✎ ✡ ✙ ✒ ✑ ✖ ✌ ✆ ✝ ✄ ✞ ✝ ✟ ✍ ✡ ✄ ✍✎ ✂ ✄ ✎ ✆ ✏ ✝ ✆ ✁ ✂ ✢ ✣ ✡ ✠ ✏ ✄ ✤ ✍ ✥ ✡ ☎ ☛ ✦ ✧ ★ ✄ ☎ ✚ ✡ ✍ ✘ ✡ ✙ ✟ ☎ ✆ ✕ ✆ ☎ ✛ ✜ ✝ ✄ ✠✡ ✔ ✄☎ ✁✂ ✩ ✠ ✑ ✝ ✒ ✌ ✡ ✏ ✎ ✌ ✆✓ ✓ ✆ ✔ ✏ ✏ ✕ ✏ ☛ ✗ ✟ ✂ ✄ ✁☎ ✆ ☎ ✝ ✞ ✠ ✎ ✠✡ ☛ ☞ ✡ ✌ ✍ ✠ ✖ ✗ ✗ ✚✜ ✚ ☛ ✌ ✚ ✒ ✠ ✣ ✢ ✔ ✗ ✘ ✆ ✟ ☛ ✠✡ ✠ ✟ ✛ ✘ ☛ ✚ ☎ ☎ Operations Testing Coding Program Design ✒✙✘ Product Design Waterfall Model Requirements Software Requirements System ✠✡☞☛

  6. � ✟ ✕ ✖ ✗ ✗ ✒ ✁ ☛ ✘ ✛ ✟ ✠ ✠✡ ☛ ✘ ✏ ✚✜ ✗ ✔ ✢ ✣ ✠ ✗ ✚ ✌ ☛ ✚ ☎ ✆ ☎ ✏ ✚ ✔ ✍ ✂ ✄ ✁☎ ✆ ☎ ✝ ✆ ✟ ✠ ✠✡ ☛ ☞ ✡ ✌ ✞ ✠ ✡ ✓ ✆✓ ✎ ✠ ✏ ✎ ✌ ✒ ✝ ✑ ✏ ✌ ☛ Waterfall Model •Description of complete system. •Boundaries between hardware System and software components. Requirements •Example: brakes in a car Software • braking system includes Requirements •foot pedal •brake pads Product Design •software to control brakes. Program Design Coding Testing Operations ✒✙✘

  7. � ✟ ✕ ✖ ✗ ✗ ✁ ✚ ☛ ✘ ✛ ✟ ✠ ✠✡ ☛ ✘ ✏ ✚✜ ✗ ✔ ✢ ✣ ✠ ✗ ✚ ✌ ☛ ✚ ☎ ✆ ☎ ✏ ✒ ✔ ✍ ✂ ✄ ✁☎ ✆ ☎ ✝ ✞ ✟ ✠ ✆ ☛ ☞ ✡ ✌ ✠✡ ✠ ✡ ✎ ✆✓ ✎ ✠ ✏ ✓ ✌ ✒ ✝ ✑ ✏ ✌ ☛ Waterfall Model Includes: functional requirements System E.g., depressing the brake Requirements slows the car down Software Requirements Product Design Program Design Coding Testing Operations ✒✙✘

  8. � ✟ ✕ ✖ ✗ ✗ ✒ ✁ ☛ ✘ ✛ ✟ ✠ ✠✡ ☛ ✘ ✏ ✚✜ ✗ ✔ ✢ ✣ ✠ ✗ ✚ ✌ ☛ ✚ ☎ ✆ ☎ ✏ ✚ ✔ ✍ ✂ ✄ ✁☎ ✆ ☎ ✝ ✞ ✆ ✠ ✠✡ ☛ ☞ ✡ ✌ ✟ ✠ ☛ ✌ ✏ ✑ ✝ ✒ ✌ ✎ ✡ ✏ ✠ ✎ ✆✓ ✓ Waterfall Model System Includes: non-functional requirements Requirements • E.g. performance: brakes must respond within 100 ms of being Software activated Requirements • E.g., availability: if software fails, brakes must still function manually. Product Design Program Design Coding Testing Operations ✒✙✘

  9. � ✟ ✕ ✖ ✗ ✗ ✒ ✚ ✁ ✘ ✛ ✟ ✠ ✠✡ ☛ ✘ ✏ ✚✜ ✗ ✔ ✢ ✣ ✠ ✗ ✚ ✌ ☛ ✚ ☎ ✆ ☎ ✏ ☛ ✔ ✍ ✂ ✄ ✁☎ ✆ ☎ ✝ ✆ ✟ ✠ ✠✡ ☛ ☞ ✡ ✌ ✞ ✠ ✡ ✎ ✓ ✆✓ ✎ ✠ ✏ ✌ ✒ ✝ ✑ ✏ ✌ ☛ • Description of functions the Waterfall Model software must fulfill and associated quality attributes. • Expressed from point of view of a System user of the system. Requirements • Does not include implementation decisions such as algorithms, data Software structures used to address these Requirements requirements. Product Design Program Design Coding Testing Operations ✒✙✘

  10. � ✟ ✏ ✕ ✖ ✗ ✗ ✒ ✚ ✓ ✘ ✛ ✟ ✠ ✠✡ ☛ ✘ ✔ ✚✜ ✗ ✔ ✢ ✣ ✠ ✗ ✚ ✌ ☛ ✚ ☎ ✆ ☎ ✏ ☛ ✆ ✌ ✁ ✂ ✄ ✁☎ ✆ ✓ ✝ ✞ ✟ ✠ ✠✡ ☛ ☞ ✡ ☎ ✍ ✌ ✠ ✆✓ ✎ ✠ ✡ ✏ ✒ ✝ ✑ ✏ ✌ ☛ ✎ Waterfall Model Example: for course marks program, functions are: • Student can access system System from any CASLab machine Requirements • Student can specify course in which he/she is enrolled and Software request grades for that course Requirements • Grades recorded for that course will be presented to user Product Design in a readable format • …etc. Program Design Coding Testing Operations ✒✙✘

  11. � ✟ ✏ ✖ ✗ ✗ ✒ � ✚ ☛ ✘ ✛ ✟ ✠ ✠✡ ☛ ✘ ✔ ✚✜ ✗ ✔ ✢ ✣ ✠ ✗ ✚ ✌ ☛ ✚ ☎ ✆ ☎ ✏ ✕ ✆ ✌ ✁ ✂ ✄ ✁☎ ✆ ☎ ✝ ✞ ✟ ✠ ✠✡ ☛ ✓ ✡ ☞ ✍ ✌ ✆✓ ✎ ✠ ✠ ✡ ✏ ✒ ✝ ✑ ✏ ✌ ☛ ✎ Waterfall Model • Describes software design meeting the requirements specified above. • Design is external, from point of view of a System user of the software. Requirements • Shows how requirements are mapped to system features. Software Requirements External Design Internal Design Coding Testing Operations ✒✙✘

  12. � ✟ ✏ ✖ ✗ ✗ ✒ ✆ ✚ ☛ ✘ ✛ ✟ ✠ ✠✡ ☛ ✘ ✔ ✚✜ ✗ ✔ ✢ ✣ ✠ ✗ ✚ ✌ ☛ ✚ ☎ ✆ ☎ ✏ ✕ ✆ ✌ ✁ ✂ ✄ ✁☎ ✆ ☎ ✝ ✞ ✟ ✠ ✠✡ ☛ ✓ ✡ ☞ ✍ ✌ ✆✓ ✎ ✠ ✠ ✡ ✏ ✒ ✝ ✑ ✏ ✌ ☛ ✎ Waterfall Model • May include: • detailed functional design • screen mockups • interaction design. System • Does not describe system implementation, Requirements e.g., algorithms, data structures, etc. Software Requirements External Design Internal Design Coding Testing Operations ✒✙✘

  13. � ✟ ✏ ✕ ✖ ✗ ✗ ✒ ☎ ☛ ✘ ✛ ✟ ✠ ✠✡ ☛ ✘ ✔ ✚✜ ✗ ✔ ✢ ✣ ✠ ✗ ✚ ✌ ☛ ✚ ☎ ✆ ☎ ✏ ✚ ✆ ✌ ✁ ✂ ✄ ✁☎ ✆ ☎ ✓ ✞ ✟ ✠ ✠✡ ☛ ☞ ✡ ✝ ✍ ✌ ✆✓ ✎ ✠ ✏ ✡ ✒ ✠ ✝ ✑ ✏ ✌ ☛ ✎ Waterfall Model Describes implementation of software. Includes, e.g., • Deployment architecture System • Component architecture Requirements • Component interfaces • Data model Software • Protocols (how components Requirements communicate with each other.) External Design Internal Design Coding Testing Operations ✒✙✘

  14. � ✟ ✏ ✕ ✖ ✗ � ✒ ✚ ☛ ✘ ✛ ✟ ✠ ✠✡ ☛ ✘ ✔ ✚✜ ✗ ✔ ✢ ✣ ✠ ✗ ✚ ✌ ☛ ✚ ☎ ✆ ☎ ✏ ✗ ✆ ✌ ✁ ✂ ✄ ✁☎ ✆ ☎ ✝ ✞ ✟ ✓ ✠✡ ☛ ☞ ✡ ✠ ✍ ✌ ✆✓ ✠ ✠ ✏ ✡ ✎ ✒ ✝ ✑ ✏ ✌ ☛ ✎ Waterfall Model System Requirements Software Requirements External Design Actual programming of software. Internal Design Coding Testing Operations ✒✙✘

  15. � ✟ ✕ ✖ ✗ ✗ ✁ ✚ ☛ ✘ ✛ ✟ ✠ ✠✡ ☛ ✘ ✏ ✚✜ ✗ ✔ ✢ ✣ ✠ ✗ ✚ ✌ ☛ ✚ ☎ ✆ ☎ ✏ ✒ ✔ ✍ ✂ ✄ ✁☎ ✆ ☎ ✝ ✞ ✟ ✆ ✠✡ ☛ ☞ ✡ ✌ ✠ ✠ ✡ ✎ ✆✓ ✎ ✠ ✏ ✓ ✌ ✒ ✝ ✑ ✏ ✌ ☛ Waterfall Model System Requirements Software Requirements Ensuring software performs to specification. External Design Addresses both function and quality attributes. Internal Design Coding Testing Operations ✒✙✘

Recommend


More recommend