This document describes the objectives of the combined 372/375 sequence.
Items covered in CS372 only are indicated (372).
- Analysis and design IV-6
- Role of IS in Organisations IV-6
- Theoretical foundations IV-7
- Communication skills IV-14 (oral + written)
- Collaborative skills IV-16
- Study in an IS environment IV-2
To know how computer technology is used in real organizations and
use this knowledge to manage software development projects and analyze
existing systems, propose improvements, identify problems, generate and
evaluate hardware/software solutions, and draw up software requirement
specifications.
There should be evidence on file that demonstrates that during CSCI372/5 sequence the students:
- Worked in small groups/teams to analyze systems and propose solutions.
- Studied two or more existing information systems.(372)
- Studied how software is developed in at least one organization, for example on campus.(372)
- Presented their work for review by peers, faculty, and IS workers.
- Used at least one CASE tool.
- Completed a UML model for a computerized solution to a problem in an existing system.
- (Note. The solution may expressed on paper, as a presentation, and/or as a web site.
- It may or may not include simply prototypes.
- It may be a photographic or software record of a presentation.
- )
- Carried out a group simulation of at least one object-oriented program design.
After completing the 372/375 sequence a student will be able to:
- Describe real computerized systems including: enterprise servers/mainframes, dept servers, e-commerce and web-based systems, POS and office workstations, mobile systems, embedded systems, etc.(372)
- Quote and apply general systems theory (boxes and arrows).(372)
- Describe a typical information systems department and some variants.(372)
- Describe the traditional systems development life cycle (SDLC) and some variants(RAD, Agile,...).(372)
- Select and justify a suitable process/SDLC for a given situation.(372)
- Describe & apply simple planning techniques: CPA PERT.(372)
- Describe & apply simple cost/benefit techniques.(372)
- Use record structures to describe and evaluate existing/proposed data/information.
- Quote and apply elementary information theory to estimating data volumes/rates.
- Define a use case and give examples.
- Define a scenario and write simple examples of scenarios.
- Distinguish actors from use cases and give examples of actors.
- Study an existing system and describe it using data flows, processes and data stores (DFD).(372)
- Describe an existing system architecture using UML deployment and component diagrams.
- Record existing activities and business logic using UML activity diagrams (flowcharts).(372)
- Use structured English, UML activity diagrams, flowcharts, or tables to express business rules/logic.(372)
- Read and critique a set of DFDs.(372)
- Correct errors in a DFD model of a system.(372)
- Plan a new system using high level DFDs.(372)
- Select parts of a DFD to be computerized and justify the selection (372)
- Propose and justify a way to implement a part of a DFD (Application, script, user-developed, COTS, bespoke, ..., expert system). (372)
- Use simple UML use case diagrams + scenarios to state requirements.
- Correctly utilize use case extension, includes and generalization.
- Draw object-oriented domain models using UML class diagrams with classes, associations, roles, and multiplicities.
- Use state diagrams to trace the life-cycle of an object in a system.
- Use a state diagram to map out a session on a web site.
- Extend a domain model to include attributes/data based on DFDs and logic.
- Allocate responsibilities to classes and test result vs scenarios.
- Use UML message sequence diagrams to describe interactions between objects.
- Use UML collaboration diagrams to describe interactions between objects.
- Use UML collaboration diagram sequence numbers correctly.
- Use iteration and conditions correctly in collaboration and sequence diagrams.
- Translate between message sequence and collaboration diagrams.
- Know how to draw, read, and critique a UML class diagram with attributes and operations.
- Use visibility and derivation symbols correctly in a class diagram.
- Cross-validate a use case model plus collaboration/message sequence diagrams against a class diagram.
- Use the General Responsibility Assignment Patterns to place operations in a design model.
- (Design model = class diagram + either message sequence or collaboration diagrams).
- Extend simple class diagrams to include generalization, aggregation, and composition.
- Use some simple design patterns correctly: State, Composite, Observer, Factory, Adapter, ...
- Use simple deployment and component diagrams to describe a proposed architecture.
After completing the 372/375 sequence a student may:
- Use either CASE tools or low-tech techniques (chalk board, posters, cards) for documentation.
- Use the UML notation for parameterized, active, and interface classes.
- Use symbols or stereotypes to distinguish boundary, control, entity classes.
- Develop simple prototypes and tests as executable specifications of components.
- Develop a first iteration of a set of components.
. . . . . . . . . ( end of section CS372+375 Objectives) <<Contents | End>>
- Artifact::="Anything that is created in the course of a project".
- artifact::=see above.
- DCD::diagram="Design Class Diagram", shows the classes that will be implemented in code.
- Deliverables::="A packet of artifacts that must be prepared by a deadline for review or distribution".
- Glossary::= See http://cse.csusb.edu/dick/cs375/uml.glossary.html.
- GoF::="Gang of Four",
[ patterns.html#GoF ]
- 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 ]
- Grades::= See http://cse.csusb.edu/dick/cs375/grading/.
- 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.
- OO::shorthand="Object-Oriented".
- OOAD::="Object-Oriented Analysis and Design", See chapter 1 in text.
- patterns::="Documented families of problems and matching solutions", see
Patterns.
- Patterns::= See http://cse.csusb.edu/dick/cs375/patterns.html.
- Process::="How to develop software".
- RJB::=The author of this document,
RJB="Richard J Botting, Comp Sci Dept, CSUSB".
- RUP::Process="Rational UP", a proprietary version of UP.
- SSD::="System Sequence Diagrams", see chapter 10.
- TBA::="To Be Announced".
- UML::="Unified Modeling Language".
[ Unified_Modeling_Language ]
- UP::="Unified Process", an iterative, risk-driven, and evolutionary way to develop OO software.
- 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 now. In this class it also means
"It won't be on the final or in quizzes".
- XP::="Extreme Programming", the ultimate iterative, code-centric, user-involved
process.