1 / 21

Lecture # 01 Prologue : The Software Process

SWE 316: Software Design & Architecture. Lecture # 01 Prologue : The Software Process. Chapter 0 . To review software process and its phases. Software Process. Models. Requirements. Design. Coding. Testing. Maintenance. Main Phases of Software Process.

tahlia
Download Presentation

Lecture # 01 Prologue : The Software Process

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. SWE 316: Software Design & Architecture Lecture # 01Prologue: The Software Process Chapter 0 • To review software process and its phases

  2. Software Process Models Requirements Design Coding Testing Maintenance Main Phases of Software Process Software Process: a procedure followed by the development team to produce an application. • Requirements Analysis (answers “WHAT?”) • Specifying what the application must do • Design (answers “HOW?”) • Specifying what the parts will be, and how they will fit together • Implementation (A.K.A. “CODING”) • Writing the code • Testing (type of VERIFICATION) • Executing the application with test data for input • Maintenance (REPAIR or ENHANCEMENT) • Repairing defects and adding capability Sec 0.1 Page 2 of 21

  3. Software Process Models Requirements Design Coding Testing Maintenance Personal Finance Example • Requirements Analysis: Diagrams and text • e.g., “ … The application shall display the balance in the user’s bank account. …” • Design: Diagrams and text • e.g., “ … The design will consist of the classes CheckingAccount, SavingsAccount, …” • Implementation: Source code • e.g., … class CheckingAccount{ double balance; … } … Page 3 of 21

  4. Software Process Models Requirements Design Coding Testing Maintenance Personal Finance Example (Cont’d) • Testing: Test cases and test results • e.g., “… With test case: deposit $44.92 / deposit $32.00 / withdraw $101.45 / … the balance was $2938.22, which is correct. …” • Maintenance: Modified design, code, and text • e.g., Defect repair: “Application crashes when balance is $0 and attempt is made to withdraw funds. …” • e.g., Enhancement: “Allow operation with Riyal.” Page 4 of 21

  5. Software Process Models Requirements Design Coding Testing Maintenance Waterfall Process • Basic software process in which requirements analysis, design, coding, testing, and maintenance are performed in sequence, but with some overlap. Page 5 of 21

  6. Software Process Models Requirements Design Coding Testing Maintenance Waterfall Process (cont.) • Why a Pure Waterfall Process is Usually Not Practical ? • Don’t know up front everything wanted and needed • Usually hard to visualize every detail in advance • We can only estimate the costs of implementing requirements • To gain confidence in an estimate, we need to design and actually implement parts, especially the riskiest ones • We will probably need to modify requirements as a result • We often need to execute intermediate builds • Stakeholders need to gain confidence • Designers and developers need confirmation they're building what’s needed and wanted • Team members can't be idle while the requirements are being completed • Typically put people to work on several phases at once Page 6 of 21

  7. Software Process Models Requirements Design Coding Testing Maintenance The Spiral Process Page 7 of 21

  8. Software Process Models Requirements Design Coding Testing Maintenance Common Procedures • Work Against the Product of Prior Phase • In each phase of the software process, we design and code within the specifications produced by the prior phase. • Inspections • An artifact is a document or code. • An inspection of an artifact is the process of reading through the artifact in a complete and entirely thorough manner. Page 8 of 21

  9. Software Process Models Requirements Design Coding Testing Maintenance Requirements Analysis • The process of understanding what’s needed or wanted, and expressing the results in writing. Sec 0.2 Page 9 of 21

  10. Software Process Models Requirements Design Coding Testing Maintenance The Challenges of Requirements Analysis • Express requirements in ordinary, clear English • Non-technical • From the user’s perspective • Organize the requirements into logical groupings • Make easy to access and change • Challenging for real applications • Arrange for the management of requirements • A procedure must be developed in advance for keeping the requirements documents up to date • Who, how, and when Page 10 of 21

  11. Software Process Models Requirements Design Coding Testing Maintenance Design (The heart of this course) • The design of an application expresses how the application is to be constructed. • It describes the parts involved and how they are to assembled. • It consists of a set of documents (diagrams and text) Sec 0.3 Page 11 of 21

  12. Software Process Models Requirements Design Coding Testing Maintenance Tips on Coding • Code only against a design • Specify precisely what each method accomplishes Sec 0.4 Page 12 of 21

  13. Software Process Models Requirements Design Coding Testing Maintenance Tips on Coding (cont.) • Before compiling, satisfy yourself that the code you have typed is correct. Read it thoroughly. • ‘correct’ means that is satisfies what’s required of it • This is “author-inspection” • Build-a-little-Test-a-little • Add a relatively small amount of code (“build-a-little”) • (Again): Read what you have typed and correct it if necessary until you are totally satisfied it’s correct • Compile • Test the new functionality (“test-a-little”) Page 13 of 21

  14. Software Process Models Requirements Design Coding Testing Maintenance Author-Inspect Before Compiling Inspect and edit the block of code you have just written until you are convinced it does exactly what it is meant to do. Only then compile it. Page 14 of 21

  15. Software Process Models Requirements Design Coding Testing Maintenance Testing • The testing phase consists of supplying input to the application and comparing the output with that mandated by the software requirements specification. • Helps to uncover defects • Proves the presence of defects, but never their absence Sec 0.5 Page 15 of 21

  16. Software Process Models Requirements Design Coding Testing Maintenance Types of Testing • Black-box testing • Compares the output obtained with the output specified by the requirements document • Does not take into account the manner in which the application is designed • White-box testing • Based on the design • Exercise specific design features such as branching, loops, interfaces, etc. • Unit Tests • Tests on parts of an application (individual methods, classes, etc.) • Integration Tests • Tests the software units work together correctly • System Tests • Tests of an entire application Page 16 of 21

  17. Software Process Models Requirements Design Coding Testing Maintenance Tips on Testing • Test early and often • Test with extreme values • Very small, very big, etc. • Borderline • “Illegal” values • Vary test cases • Don’t repeat tests with same test data except when specifically intended Page 17 of 21

  18. Software Process Models Requirements Design Coding Testing Maintenance Testing • Test early and often: Note that “passed all tests” doesn’t equate to “bug free.” Page 18 of 21

  19. Software Process Models Requirements Design Coding Testing Maintenance Maintenance • Maintenance refers to the work performed on the application that occurs after it has been delivered. • Types of maintenance • Corrective (Defect Removal) • Finding and fixing all inconsistencies with the requirements document • Perfective (Enhancement) • Introducing new or improved capability • Adaptive • Adapts software to new environment • Preventive • changing some aspect of the system to prevent failures Sec 0.6 Page 19 of 21

  20. Software Process Models Requirements Design Coding Testing Maintenance Summary of Software Process • A way of going about the creation and upkeep of a software product • Commonly based on the Waterfall process • Specify requirements • Create design • Write code • Test • Maintain In sequence with some overlap Page 20 of 21

  21. Software Process Models Requirements Design Coding Testing Maintenance Reading Prologue - The Software Process (Page 1-18) Page 21 of 21

More Related