Maricopa Community Colleges  CSC272   19986-20086 
Official Course Description: MCCCD Approval: 07/22/08
CSC272 19986-20086 LEC 4 Credit(s) 4 Period(s)
Object Oriented Analysis and Design Using Data Modeling Languages and Tools
Background and expertise in data modeling languages and tools to support the development of applications in client/server, distributed enterprise, and real-time systems environments.
Prerequisites: CSC210, or CSC250, or CSC260, or permission of Instructor.
Go to Competencies    Go to Outline
 
MCCCD Official Course Competencies:
 
CSC272   19986-20086 Object Oriented Analysis and Design Using Data Modeling Languages and Tools
1. Explain why a rigorous process is necessary when developing a large complex software system. (I, III, VI)
2. Describe the five levels of the SEI (Software Engineering Institute) Capability Maturity Model. (I)
3. Explain the major diagrams that comprise the Booch object- oriented design method. (II)
4. Given a set of initial requirements, develop a Project Scope document and a Project Plan. (III)
5. Given a set of initial requirements, validate them using formal methods. (III)
6. Given a well-defined problem domain, describe the steps necessary to build a Conceptual Model. (III)
7. Define Interactive Development, and contrast this with traditional Waterfall methods. (III)
8. Given a well-defined problem domain, create class diagrams that model the domain using visual modeling tools. (III, V)
9. Describe what happens when the Generalization phase is omitted from the development process. (III)
10. Exemplify two-tiered and three-tiered architectures. (IV)
11. Describe the role that UML (Unified Modeling Language) plays in the development process. (V)
12. Given a set of system events, specify a System Sequence Diagram in UML. (V)
13. Describe a system that was developed using formal techniques, and explain the benefits that were derived from this approach. (VI)
Go to Description    Go to top of Competencies
 
MCCCD Official Course Outline:
 
CSC272   19986-20086 Object Oriented Analysis and Design Using Data Modeling Languages and Tools
    I. Software Process
        A. Software Engineering Institute (SEI) Capability Maturity Model (CMM)
          1. Description of the SEI levels
          2. Key process areas for each level
          3. Case studies
      II. Methodologies
          A. Booch method
          B. OMT Object model (Rumbaugh method)
        III. Introduction to a Development Process
            A. Initiation/Planning Phase
              1. Definition and validation of initial requirements
                a. CRC (Class-Responsibility-Collaborator) cards
                b. Use-Case scenario testing
                c. The Project Scope document
              2. Initial Project Plan
              3. Justification of the project
                a. Feasibility studies
              4. Definition of an infrastructure
                a. The team
                b. The target production environment
                c. The development environment
                d. The tools to be used
                e. The quality standards
                f. Deliverables to be produced
            B. Interactive Development
              1. Modeling phase
                a. Specification of the system problem domains
                b. Definition of boundaries around domains
                c. Conceptual model for each problem domain
              1. Identify named objects within the domain
              2. Identify responsibilities of objects
              3. Identify static and dynamic behavior of objects
              4. Group objects into classes
                a. Abstraction
                b. Classification
              5. Determine interrelationships between classes
                a. Identify associations (e.g., "A uses services of B")
                b. Identify specialization's of a common superclass (e.g., "A is a B")
                c. Identify layering relationships (e.g., "A has a B")
              6. Identify common interfaces and polymorphic relationships among classes
              7. Produce class diagrams
                d. Document system behaviors
              1. System sequences
              2. Operations and rules: Pre and Post conditions
              3. Model behaviors using state diagrams
                e. Role of a System Dictionary (glossary)
                f. Test the conceptual models
              1. Describe actual Use-Cases
              2. Role of CRC cards
              2. Programming Phase
                a. Create class definitions
                b. Map models to code
                c. Apply container and collection classes
                d. Specify exception and error handling strategies
                e. Develop database schemes
              3. Generalization Phase
                a. Extend and refine conceptual models
              4. Unit Testing
                a. Test planning
                b. Coverage verifications
            C. Delivery Phase: System Testing
            D. Maintenance and Support Phase
            E. Bug identification and enhancement phase
          IV. Software Architectures
              A. Two-tiered architectures
              B. Three-tiered architectures
              C. Beyond three-tiered architectures
              D. Rules-base architectures
              E. Object-based architectures
              F. Component-based architectures
              G. Evaluating an architecture
                1. Salability
                2. Performance
                3. Ease of incorporating changes
              H. Distribution of an architecture across a Network
              I. Role of Corba and other distributed application standards
            V. Development Process Tools
                A. Visual modeling tools: Rational Rose
                B. Unified Modeling Language (UML)
                  1. Use-case modeling
                  2. Class and object modeling
                  3. Component modeling
                C. Other case tools
                D. Project tracking software
              VI. Specific Systems
                  A. Class project
                    1. Planning phase
                    2. Iterative development
                      a. Modeling phase
                      b. Programming phase
                      c. Generalization
                      d. Unit test
                    3. Delivery
                    4. Quality Measurements
                  B. Case Studies
              Go to Description    Go to top of Competencies    Go to top of Outline