The nature of software engineering: Technology and Business processes, modelling software, complexity of software, estimation of risks, roles and responsibilities.
Software Development Life Cycle: Waterfall, Rational Unified Process, Agile process. Prototypes. CASE tools and reverse engineering.
Requirements analysis: Requirements and Specifications. Documentation.
UML: visual modelling language. Parts, views, models, tools.
Use Case modelling: Use Cases and Actors. Use Case-driven software development.
System Analysis: Approaches to modelling.
Object Orientation: The fundamentals. Objects as modules.
Object-Oriented Analysis: Information modeling. Object identification and applying Entity-Relationship modeling.
Object-Oriented Analysis: Dynamic modeling. Events and event tracing. Sequence diagrams. State modeling. Data flow modeling and diagrams.
System Design: System and software architecture. Basic architectural components. Design as a continuation of analysis. Implementation as a bridge between analysis and design.
Object-Oriented Software (detailed) Design: Software characteristics. External and internal quality factors. Modularity and its object-oriented interpretation and implementation. Class design guidelines.
Components, Patterns and Frameworks: Transition from objects to components and frameworks through analysis and design patterns.
|