Software Construction SCMP 391.00 Special Topic: Software Development Spring 2017 James Skon
Software Development Syllabus on line: cs.kenyon.edu There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult. C. A. R. Hoare (1980 Turing Award Lecture)
About Course - Goals This course gives students experience designing, implementing, testing and debugging moderately complex systems of software components that collectively form a multilayer application. There will be an emphasis on crafting quality code, designing and implementing effective user interfaces, and building multicomponent architectures using a mix of off-the-self and custom code.
About Course - Topics direct file I/O inner-process communication inter-system synchronization of shared resources web interfaces data visualization working with large data sets.
About Course - Languages HTML CSS JavaScript Jquery
About Course – Team work Two projects will be done as small collaborative teams. Pair-programming Peer Review All team members must contribute.
What Is Software Construction? Problem definition Requirements development Construction planning Software architecture, or high-level design Detailed design Coding and debugging Unit testing Integration testing Integration System testing Corrective maintenance
Construction activities
Construction activities Focus of this course.
Software Construction Tasks Verifying that the groundwork has been laid so that construction can proceed successfully Determining how your code will be tested Designing and writing classes and routines Creating and naming variables and named constants Selecting control structures and organizing blocks of statements Unit testing, integration testing, and debugging your own code
Software Construction Tasks Reviewing other team members' low-level designs and code and having them review yours Polishing code by carefully formatting and commenting it Integrating software components that were created separately Tuning code to make it faster and use fewer resources
Why Study Software Construction? Construction is a large part of software development. 30% - 80% of effort on typical projects! Central activity in software development Programmer productivity varies greatly. (10-20x!) Source code is often the only accurate description of the software The one certain activity in Software Development.
Summary Software construction is the central activity in software development. The main activities in construction are detailed design, coding, debugging, integration, and developer testing Other common terms for construction are "coding" and "programming.” The quality of the construction substantially affects the quality of the software.