represent states with objects
1. The behavior of objects in the real world is more complex than simply being in
one state at a time.
the conditions of an Object being in more than one state at a time is called "concurrency"
or concurrent states.
CSE-307-Software-Engineering
Objective
Concepts of software engineering: software engineering paradigms, different phases of software system development, different types of information, qualities of information; Project management concepts: software process and project metrics, software project planning, risk analysis and management, project scheduling and tracking, software cost analysis, COCOMO model; Analysis concepts and principles: requirement analysis, analysis modeling, data modeling; Design concepts and principles: architectural design, user interface design, object oriented software development and design, iterative development and the unified process, sequential waterfall life cycles, use case model for requirement writing, elaboration using system sequence diagram, domain model, visualizing concept classes; UML diagrams: Interaction and Collaboration Diagram for designing Software, class diagram; GoF design patterns: adapter, factory, singleton, strategy, composite, facade, and observer; Content management systems: concepts, planning and developing dynamic web content sites; Software testing: white box and black box testing, basis path testing, testing for specialized environment; Software testing strategies: unit testing, integration testing, validation testing, system testing; Art of debugging; Analysis of system maintenance and upgrading: software repair, downtime, error and faults, specification and correction, maintenance cost models, documentation; Software quality assurance: quality factors. software quality measures, cost impact of software defects, concepts of software reliability, availability and safety, function based metrics and bang metrics, metrics for analysis and design model, metrics for source code, testing and maintenance.