SOFTWARE ENGINEERING

CSE G230 Fall 2008

Course Information

 


Instructor: Prof. Mieczyslaw Kokar

Email address: mkokar@ece.neu.edu


Contents:


Goals and Objectives


Policies and Procedures

Procedure and Grade

Evaluation Guidelines

The general guidelines for grading the project are as follows:

Since the homeworks involve collaboration, it is extremely important that all homeworks (both deliverables and evaluations) are delivered on the due date. Late deliveries will be penalized 10 points per day.


Required Texts

1. Software Engineering: A Practitioner's Approach. Sixth Edition, by Roger S. Pressman. McGraw-Hill, Inc., 2004.

Other suggested readings (not required):

2. Some Java Literature. E.g., Java: How to Program. Deitel & Deitel. Prentice Hall, 1999.

3. Some UML literature, e.g.,

(a) Visual Modeling with Rational Rose and UML, by Terry Quatrani. Addison Wesley, 2000.

(b) The Unified Modelling Language: User Guide, by Grady Booch, James Rumbaugh, Ivar Jacobson. Addison-Wesley, 1998.


Course Content Description

A study of the software life cycle (requirements analysis and specification, software design, coding, testing, maintenance). Verification, validation and documentation at various stages of the life cycle. Coverage of structured analysis and object-oriented development methodologies. Overview of user interface design, prototyping, CASE tools, software metrics, and software development environments. Course requirements include a small software development project. Prep. higher level language (required), data structures (desirable), and operating systems (desirable).


Project Description

For the description of this year's project click on Assignments.


Project Issues

  1. The objective to be accomplished through this project is to learn methods of software engineering. Therefore, coding will be only one (not the largest) component of the project.
  2. In the project documentation students should prove that in the project they were using software engineering methods and techniques.
  3. The documentation for the deliverables should be precise and concise. Remember that you are not graded ``by-the-page''.
  4. Some information on the deliverables posted on my web page (see the links in the Schedule section or just follow the link next to the specific assignment in Assignments). All deliverables are also described in Pressman's book.
  5. The specification and design of your software should be developed using the object-oriented approach. The specification language is UML (Unified Modeling Language) - a standard for object-oriented representation. Elements of UML will be discussed in class. There are a number of books on the market about UML. The source information on UML can be found on the IBM web page: http://www-306.ibm.com/software/rational/advantage/?SMSESSION=NO
  6. The primary choice for this project's language is Java. Students could choose a different programming language, like C++ (the language should be object-oriented), but only as an exception. Java Runtime Environment and some documentation can be downloaded from: http://java.sun.com/products/jdk/.
  7. Your software must compile and run to receive a grade in this course.
  8. Your software should be shrink-wrap quality. All you have to do is take the shrink-wrap off the box, load the software and run it. It implies that only a minimum user manual is required.
  9. All homework should be turned in through Assignments at Blackboard. Please do not send copies to the TA or the instructor.
  10. The initial specification of what the user needs is described in this year's Project Description section of this syllabus. The description of the problem is (intentionally) imprecise and incomplete. Your job is to do system engineering and analysis, define software specifications, design a software system, implement the software system, test it and provide complete documentation.
  11. The specification and design documentation for this project needs to be done using a UML tool (see External Links in Blackboard).
  12. My TA and I will take the role of the user. However, whenever in doubt, we ask you to make decisions on behalf of the user. Please document such decisions by providing both the questions that you might ask us and the answers you gave to those questions. It is more important that your implementation matches the specification, rather than the specification is exactly what the instructor would like to see. Your resources - especially time - are limited. It is your responsibility to define a system that is both feasible to develop, given the resources, and fulfills the user's requirements. It may be acceptable, however, that only a subset of the requirements is implemented in code.