1 / 36

CS428/9: Software Engineering II

CS428/9: Software Engineering II. Darko Marinov (slides from Ralph Johnson). Personnel confirmed. Instructor (marinov@) Darko Marinov (3116SC, office hours: Thu 2-3) TAs (ta428@) Atul Dixit (off-campus) Ganesh Agarwal (on- and off-campus) Jeff Overbey (on-campus)

ponce
Download Presentation

CS428/9: Software Engineering II

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. CS428/9: Software Engineering II Darko Marinov (slides from Ralph Johnson)

  2. Personnel confirmed • Instructor (marinov@) • Darko Marinov (3116SC, office hours: Thu 2-3) • TAs (ta428@) • Atul Dixit (off-campus) • Ganesh Agarwal (on- and off-campus) • Jeff Overbey (on-campus) • Grader for Advanced Composition (CS429) • Jenica Roberts-Stanley 428-2

  3. CS428 topics • Software Configuration Management • Refactoring • Testing and debugging • Metrics • Maintenance and reengineering • More processes and components • Component based, web engineering, client/server • Clean-room, model driven (code generation) 428-2

  4. CS429 = CS428 + ACP • ACP requires multiple revision of documents • Book that will be used: Joseph Williams,Style: Toward Clarity and Grace • Comments from Jenica, the ACP grader • Grading will stay close to the book • About 2/3 fails initially, 1/3 later, hope 0 at end • Office hours: Fridays 2-3, English building 400 • https://agora.cs.uiuc.edu/display/cs428/ACP+Component 428-2

  5. Changes from CS427 • More reliable Wiki server https://agora.cs.uiuc.edu/display/cs428/Home • Newsgroup: class.cs428 (not cs429) • More project presentations • Initial presentations Tue, Jan 23, and Thu, Jan 25 • Demo 1: around Feb 21 • Demo 2: around Mar 28 • Final presentations: around Apr 25 428-2

  6. Extra hour of credit • For grad students registered for 4 hours • Read a book and write a report on it • Same rules as in CS427 • You need to read a different book  • More details will be on the new Wiki soon • 25% of the final grade • Usually helps to improve the score 428-2

  7. To-do list • Add yourself to the course list (only 35 students) https://agora.cs.uiuc.edu/display/cs428/People+in+the+course • For continuing projects, add project info and sign up for a presentation (only 6+2 projects, 1 presentation)https://agora.cs.uiuc.edu/display/cs428/Projects • For ACP in CS429, submit the initial draft by Jan 23https://agora.cs.uiuc.edu/display/cs428/ACP+Component • Reading (not in advance): first set for SCMhttp://uweb.txstate.edu/~mg43/CS5391/Papers/ConfigManagement/conceptsCM.pdfhttp://www.scmpatterns.com/pubs/hass_sidebar.html 428-2

  8. Software Configuration Management (SCM) • Keep track of how software changes over time and be able to reproduce any version of the software • Control how software changes; make sure needed changes have been made and no improper changes have been made 428-2

  9. Many versions • Sequence of versions during development • Prototypes, daily (weekly) builds • Alpha/beta release • Final release • Different released versions • Linux - many versions • 5ESS - tailored for each customer 428-2

  10. Issues in merging versions • During development, each subgroup works independently • How do they merge work? • Customer using version 6.3.4 reports a bug that is then fixed • How do we apply this fix to our 27 later versions still being used? 428-2

  11. Non-code resources • Test suite for version 6.4.3 does not work for other versions • It is almost like the test suites for 6.4.2 and 6.4.4. • Manual for version 6.4.3 is slightly different than for other versions • Design … • Use cases ... 428-2

  12. Change request • We decided to implement a change • Has it been implemented fully (tests, code, manuals, documentation)? • What parts of the system were affected by that change? • I look at a program/document • Why is it like this? • When was it written, and by whom? 428-2

  13. Software products • A product is a set of components/documents • Code • Test suites • Specification • Design documentation • Operation manuals (administrators, end-users) • Plans/schedules 428-2

  14. Software products • Need to keep track of how you created a product • Makefiles • Libraries • Compiler • Operating system • SCM tool should be able to keep track of all of these 428-2

  15. SCM • Three main aspects • Version control (cvs, subversion…) • Change control (bugzilla…) • Building (make, ant…) • Supported by tools • Requires expertise and oversight • More important on large projects 428-2

  16. Versions V3.1 V3.1.1 V3.1.2 V3 V3.2 V3.3.2 V3.3 V3.3.1 428-2

  17. More typical V3.1 V3.1.1 V3.1.2 V3.1.3 V3.1.4 V3.1.2.1.1 428-2

  18. More typical V3.1 V3.1.1 V3.1.2 V3.1.2 V3 V3.2 V3.3 428-2

  19. SCM according to the SEI • A discipline for controlling the evolution of software systems • Has many aspects • Identification • Control • Status accounting • Audit and review 428-2

  20. Identification • What are the configuration items? (I.e., what is under configuration management?) • How do you name them? • What is the relationship between items? • Versions • Baseline • Release 428-2

  21. Versions V3.1 V3.1.1 V3.1.2 V3 V3.2 V3.3.2 V3.3 V3.3.1 428-2

  22. Baseline • Baseline is a software configuration item (SCI) that has been reviewed and agreed upon, and that can be changed only through formal change control procedures • Intermediate versions that haven’t been reviewed are SCIs but not baselines 428-2

  23. Release • Release is a software configuration item that the developers give to other people • Release should be a baseline 428-2

  24. Control • Who is allowed to read/write configuration items? • How do you know if changes are allowed/correct? 428-2

  25. Status accounting • Reporting the status of components and change requests • Which components have changed this week? • Which components did Bob change? • Which components have the most changes? • Which change requests are more than a month old and of priority 3 or greater? 428-2

  26. Audit and review • How do we know that the build script is OK? • How do we know that only authorized people can change the database interface? • Can we actually run the version from March 3, 1998? 428-2

  27. Tagging in CVS • Will not cover details of CVS (contact me) • Revisions (versions of files) • Numbered such as: 2.4 or 1.7.1.3 or 6.3.1.3.1.1 • Normal commit increments last number • Creating abranch adds .1.1 to the end • Different files can have different revision numbers • Tags (to find all files for a given release) • A release will have many different revision numbers • Command-line example: cvs tag demo-0 . 428-2

  28. Change control • Change request/engineering change order • User story • Bug report • Change control authority - decides which changes should be carried out • CMS should tie code changes back to change requests 428-2

  29. Change control authority • Change control authority • Determines new features • Determines bugs that will be fixed • Where is the change control authority • In XP? • In RUP? 428-2

  30. Build management • How do you build the product? • Which compiler? Which flags? • Which source files? • Which libraries should be linked? • “Which” also means “which version” 428-2

  31. make • The “makefile” describes • How to compile • The source files to use • The compiler to use • The compiler flags to use • How to link • The libraries to use • How to install, clean up, print out, test, etc • No version information! 428-2

  32. Daily build and smoke test • Ways to break the build process • Check in bad code • Forget to include file in makefile • Move a library • Every day (night) build the latest version of product and run simple test suite 428-2

  33. To make SCM work requires • Bureaucracy • Discipline/training • Tools • Version control – cvs, subversion… • Change control – bugzilla… • Building – make, ant… 428-2

  34. Relevant terms • Software configuration item • Baseline • Release • Control (in configuration management) • Change control authority 428-2

  35. Homework 1 • Will be assigned when we finish refactoring and SCM • Will include • Setup version control system • Setup change control policy • Consider documenting these even now as new members join your project • You may use csil-projects.cs.uiuc.edu 428-2

  36. Next • Jan 23 and 25: Project presentationshttps://agora.cs.uiuc.edu/display/cs428/Projects • Jan 23: ACP initial draft duehttps://agora.cs.uiuc.edu/display/cs428/ACP+Component • Reading (will be on HW1, not much in lecture):First 21 pages of the paper fromhttp://jerry.cs.uiuc.edu/~plop/plop98/final_submissions/P37.pdf 428-2

More Related