Wednesday, March 07, 2007

Some "process" alternatives

The waterfall process is the traditional view of software engineering, where the stages of development proceed sequentially. In recent years, a number of alternative methods have been formalized and studied. Of these IBM's "RUP" (Rational Unified Process) and Agile XP ( Extreme Programming) methods stand out. Both of these methods emphasize the importance of communication and iteration. In general, RUP is best suited to larger groups or sparse teams, i.e. best for groups that can't always work closely together. Agile methods emphasise tight group collaboration, this is especially true for extreme programing approaches. These alternative methods offer important strategies for accomplishing complex system developments with tight time constraints.

Here is a link to a more descriptive coverage of Agile Software Development.

cute /. discussion on requirements and specs...

Slashdot has a cute discussion on gathering software specifications from *uncooperative* clients.

Wednesday, February 28, 2007

Squeak Land!?!

Alan Kay, a pioneer of computing and object oriented design, is a lead figure in a software framework and language that is suitable for children. Squeakland is this project.

Wednesday, February 07, 2007

Oh, dreamy web 2.0





Assistant Professor of Anthropology at Kansas State, Michael Wesch, works up a starry-eyed flutter for web 2.0. "What is it?" you ask. "It's you!" you'll find out. And all this time, I thought it was just drop-shadows and gradients.

(via Wonderland)

Wednesday, January 31, 2007

Room change part 2

It's official, we have moved to Sara Reynolds 102! Starting Feb 5.

Monday, January 29, 2007

UML

The Unified Modeling Language exists as a standard for making illustrations of system behaviors. In software engineering, UML has the role of illuminating difficult system interactions and serves as a tool for working out complex sequences or dependencies. Many tools exist for UML design, but many people still prefer good old pencil and paper.

Tools:


More ideas here? Drop a comment.

PERT

PERT, an acronym for Program Evaluation and Review Technique, is a classic method for organizing and scheduling project milestones. It has two nice features: 1) visual display of project progress, and 2) nice quantitative evaluation methods for estimating time to completion. Ray Morgan, an NASA subcontractor, explains a creative use of PERT charts as part of his development process.

Room change part 1

Class will be held in Ferris 141 today Monday Jan 29 and Wednsday Jan 31. We will be getting a new classroom soon, so there will be a part 2.

Wednesday, January 24, 2007

Assignment 2: Proposal

The proposal assignment involves expanding your concept into a more formal and complete description of the project. I am interested in content, i.e. did you consider and address the issues? I am not going to grade you on the document's formatting. Formatting is, however, important; it can convey a level of professionalism and originality. There are two deadlines for this assignment. The first deadline is for the proposal draft, the second is for the revision. The deliverable for part two is both the document and a short, 15 minute, presentation.

Key issues for assignment 1:

  • Have someone proof read your proposal.
  • Spel chcek
  • Thorough previous work research.
  • Clear description without bogging down in technical details.

Monday, January 22, 2007

Design Books

Just a note: I have updated the class syllabus with supplementary design books. These include Design Patterns, Effective & More Effective C++, Effective Java, and Modern C++ Design. These are books that I have personally found helpful. Any other suggestions are welcome, drop a comment.

Wednesday, January 17, 2007

Some Fall 06 Projects...

Evoart


Trans.latio.us

Assignment 1: Concept Paragraph

Your first assignment is a concept paragraph, or executive summary, of a software project that you might like to do for this class. Your concept should be no more than one page typed, but it need not be a single paragraph. You should avoid going too deep into technical details. Focus on the key aspects of the project; who will use it, why is it needed, how does it work, how much effort is required to finish it. This paragraph will become an abstract for a full project proposal in the coming weeks.

Kevin DeVries of Vertical Power has an excellent project involving embedded system programming that is available for this class. Below is an example concept paragraph provided by him.

Vertical Power is developing a power management system for small experimental aircraft. One of the subsystems, the Large Switch Panel, is used by the pilot to control the power settings of the different avionics and electrical components of the aircraft. A small 16x1 character display is used to provide feedback and allow setup of the management system.

The project scope includes the User Interface Specification and development of the specification on actual hardware. The interface must be usable and intuitive, despite the limited resources of the panel (a dozen switches and a push-button). Although the primary focus is application-level software, the students will become familiar with the Atmel family of micro-processors and the issues that surround real-time software.

The students will be rquired to implement all stages of software development, including requirements, design, development, and test. Any student involved with the project will have the opportunity to test the system during ground and flight tests.

Welcome to Software Engineering

It's spring! This is the CS 460 blog. Check here frequently for news, updates, and assignments. Notice that each post has the option to leave a comment. Please do. Other students will often have the same questions that you do. Comments are a great way to get things answered, either by the instructor or fellow students.