[Skip Navigation] [ CSUSB ] / [CNS] / [Comp Sci & Engineering] / [R J Botting] / [CS375] [Search ]
[About] [Contact] [Grades] [Objectives] [Patterns] [Projects] [Question] [Schedule] [Syllabus]
Session: [01] [02] [03] [04] [05] [06] [07] [08] [09] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20]
[Text Version] syllabus.html Tue Oct 27 13:20:03 PDT 2009

Contents


    CS375 Requirements Analysis and Design Syllabus

      This is a required course in the generic BA in Computer Systems but is designed to be useful for anyone interested in producing good object-oriented software. The catalog entry reads
        Requirements analysis, including organizational objectives, functional characteristics, technology, use cases and conceptual models. The use of aspects, patterns, objects, and structure in architectural design specifications. Includes analysis and design of a software system for an organization, and fieldwork.

      The old CSCI372 prerequisite is waived. CS372 teaches how computers can used in an organization but did not discuss how computers are programmed. CSCI375 shows how to develop good maintainable programs to fit the requirements discovered using techniques discussed in CS372.

      This is the fifth time the course has been taught.

      Instructor Information and Methods

      See my generic syllabus [ syllabus.html ] ; this defines who I am, how I teach, and how I grade.

      Readings

      The web site is a important artifact that you should scan at least 3 times a week. It contains notes on each assigned reading and will have your answered question added to it as the quarter progresses. We will be using Craig Larman's [ http://www.craiglarman.com/ ] excellent book:
      • Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process, 3/E
      • Craig Larman
      • ISBN: 0-13-148906-2
      • Publisher: Prentice Hall PTR
      • Copyright: 2003
      There are significant improvements between the 2nd and 3rd editions so you should not buy older editions.

      We will not have time to cover chapters 21, 22, 28, 29, 30, and 33 through to 40. There is a lot of wisdom in these chapters but there won't be any assessment made of the content. So you can do the minimum on these topics:

      • -- Tools and Management
      • -- Persistence -> data base classes
      • -- UML Components
      • -- UML Activity Diagrams (CS372)
      • -- UML State Machines -> Comp Sci Theory
      • -- Documenting architectural decisions
      • -- User Interfaces -- frameworks, design, etc.
      • -- Physical Architecture -- Artifacts and deployment (CS372)
      • -- Deployment Diagrams (CS372)
      • -- Some advanced Patterns (TBA)
      There will be no tests of your knowledge of the history -- but knowing the history will help you recall the best practices.

      I will be stressing

      • *** Use cases and scenarios
      • ** UML Relations between use cases.
      • *** Non-functional requirements
      • *** Class diagrams: domain and design models
      • **** Interaction diagrams
      • *** GRASP
      • *** GoF
      • *** Logical Architecture -- especially layers and Model-View-Controller -- (MVC)
      (In this class I use the number of asterisks to indicate how important a topic is in the assessment. )

      Course Goal and Student Objectives

      The mission of the course is to give you skills and attitudes you can use to produce modern object oriented software using a light and agile process that gives programs to your stakeholders and clients that they value highly: now and in the future. A detailed list of objectives for the CSCI372/375 sequence can be found at [ objectives.html ] on the course web site.

      Work


      (N): Reading. ( 2 points >< 19)
      1. Start with the web site. It lists the assigned reading and tells you how important the different topics are.
      2. Read the assigned pieces and take notes.
      3. Send me a question about the assigned reading for the class before 8am on the day of the class using the form linked as [Question] at the top of the page (2 points).


      (P): Turn up on time and be ready to work and participate in the classroom activities. In the first class I will give a lecture. Normally I minimize the lecture in favor of activities. You will be working on projects, exercises, etc. (2 points).


      (W): In 9 classes a previously assigned and started piece of [ projects.html ] work will be presented and collected. This will a series of iterations in a software project. Each piece of work is worth 10 points maximum. Bring whatever you have got at the time to class. Late work scores nothing. Bad or incomplete work can score something. Make a presentation (4 points) in class. I may even ask you to demonstrate how a set of objects carry out some task. Then submit documentation(6 points) to me before 10am the next day. This gives you a chance to fix problems found in the presentation. These artifacts can be hard copy or on the Web. You can do the deliverables by hand or using CASE tools as you wish.... but it should be readable and spelled correctly. You can even submit photos of diagrams sketched on a board.


      (Q): In 9 classes there will be a Quiz worth 15 points (maximum) on the topics covered in the course up to that time -- but mainly on the most recent topics.

      Notes on each class will be posted on web site after the end of the class. This will include any quizzes, assignments etc. and answers to your questions.

      Grading

      I will be following my generic grading scheme [ ../syllabus.html#Grading ] with these rules:
      • No more than 300 points can be earned for course work (prior to the final) even counting bonus points.
      • Only work submitted before the final counts -- no making up points after the final.

      Calendar/Schedule

      An up to date schedule is maintained at [ schedule.html ] on the web site. This tells you what assignments are due when. This includes all the assigned reading/study listed by the date due.

      Support

      Online start at [ http://cse.csusb.edu/dick/cs375/ ] the course web site. It has up-to-date and reference information. Try the [Search______ ] on the pages. The pages also have a [Contact] button at the top to send me Email. My phone number and office is at [ http://cse.csusb.edu/dick/ ] and in my generic syllabus. Come and see me!

    . . . . . . . . . ( end of section CS375 Requirements Analysis and Design Syllabus) <<Contents | End>>

  1. CS375::= See http://cse.csusb.edu/dick/cs375/.

    Standard Definitions

  2. CS372::= See http://cse.csusb.edu/dick/cs372/.

  3. DCD::diagram="Design Class Diagram", shows the classes that will be implemented in code.
  4. DRY::XP="Don't Repeat Yourself".

  5. ESSUP::Process= See http://www.ivarjacobson.com/essup.cfm, Ivar Jacobsen simplified "Essential" UP.

  6. Glossary::= See http://cse.csusb.edu/dick/cs375/uml.glossary.html.
  7. GoF::="Gang of Four", [ patterns.html#GoF ]
  8. GRASP::patterns="General Responsibility Assignment Software Patterns", a set of guidelines for designing objects and classes. They take a single event that the system must handle and determine a good class to carry it out. See [ patterns.html#GRASP -- General Responsibility Assignment Software Patterns ]
  9. Grades::= See http://cse.csusb.edu/dick/cs375/grading/.

  10. KISS::Folk_law="Keep It Simple, Stupid", in agile processes this means never drawing a diagram or preparing a document that doesn't provide value to the clients and stakeholders. In all processes it means never designing or coding what is not needed, see YAGNI.

  11. OO::shorthand="Object-Oriented".

  12. OOAD::="Object-Oriented Analysis and Design", See chapter 1 in text.
  13. patterns::="Documented families of problems and matching solutions", see Patterns.
  14. Patterns::= See http://cse.csusb.edu/dick/cs375/patterns.html.

  15. Process::="How to develop software".

  16. RJB::=The author of this document, RJB="Richard J Botting, Comp Sci Dept, CSUSB".
  17. RUP::Process="Rational UP", a proprietary version of UP.

  18. SSD::="System Sequence Diagrams", see chapter 10.

  19. TBA::="To Be Announced".

  20. UML::="Unified Modeling Language". [ Unified_Modeling_Language ]

  21. UP::="Unified Process", an iterative, risk-driven, and evolutionary way to develop OO software.

  22. YAGNI::XP="You Ain't Gonna Need It", an XP slogan that stops you planning and coding for things that are not yet needed. As a rule the future is not predictable enough to program a feature until the stakeholders actually need it now. In this class it means "It won't be on the final or in quizzes".

  23. XP::="Extreme Programming", the ultimate iterative code-centric, user-involved process.

End