Objectives:
1. To appreciate the emerging techniques in Software Engineering.
2. To understand the concept of Software Architecture.
3. Identify the role of Software Architecture in Software Engineering.
Review of Software Engineering Basics: Life cycle models, Requirement Analysis and specification, Formal requirements specification, System Analysis.
Fundamental issues in Software Design: Goodness of design, cohesions, coupling.
Function & Object oriented design: Structured design. Overview of object –oriented concepts, UML, CBSE.
Emerging Web technologies: Web engineering: attributes of web based system and application, web applications engineering layers, web engineering process.
Software re-engineering, s/w maintenance, process model.
Security Engineering: security concepts, risk management, design and system survivability.
Service oriented software engineering, services as reusable components, engineering and s/w development with services.
Aspect oriented software development: The separations of concerns, aspects, join points & point cuts, S/W Engineering with aspects, Agile methods.
Architecture in the Software Development Life Cycle, Future of software architecture, the role of Software Architecture and Architects in Software Engineering
Elements of Software Architecture: Components, Connectors, Data.
Creating Architecture: Understanding Quality Attributes, Achieving qualities, creating the architecture, Case Study.
Pipes and Filters, data abstraction and object oriented organization, Event based, implicit invocation, Layered systems, Repositories, Interpreters, Process control, Other familiar Architectures, Heterogeneous Architectures, Reconstructing Software Architecture.