360 likes | 623 Views
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)
E N D
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) • Grader for Advanced Composition (CS429) • Jenica Roberts-Stanley 428-2
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
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
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
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
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
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
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
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
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
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
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
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
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
Versions V3.1 V3.1.1 V3.1.2 V3 V3.2 V3.3.2 V3.3 V3.3.1 428-2
More typical V3.1 V3.1.1 V3.1.2 V3.1.3 V3.1.4 V3.1.2.1.1 428-2
More typical V3.1 V3.1.1 V3.1.2 V3.1.2 V3 V3.2 V3.3 428-2
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
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
Versions V3.1 V3.1.1 V3.1.2 V3 V3.2 V3.3.2 V3.3 V3.3.1 428-2
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
Release • Release is a software configuration item that the developers give to other people • Release should be a baseline 428-2
Control • Who is allowed to read/write configuration items? • How do you know if changes are allowed/correct? 428-2
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
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
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
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
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
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
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
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
To make SCM work requires • Bureaucracy • Discipline/training • Tools • Version control – cvs, subversion… • Change control – bugzilla… • Building – make, ant… 428-2
Relevant terms • Software configuration item • Baseline • Release • Control (in configuration management) • Change control authority 428-2
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
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