CS 8532: Adv. Software Eng. – Spring 2009 Dr. Hisham Haddad 01-12-2009, Monday CS 8532: Advanced Software Engineering Dr. Hisham Haddad Class will start momentarily. Please Stand By … CS 8532: Adv. Software Eng. – Spring 2009 Dr. Hisham Haddad Technical Aspects of Software Engineering: Concepts, Methods, and Measurements Discussion of course syllabus CS 8532: Adv. Software Eng. – Spring 2009 Dr. Hisham Haddad Outline • Syllabus Discussion • Course Overview • Class Project CS 8532: Adv. Software Eng. – Spring 2009 Dr. Hisham Haddad Course Syllabus • Complete Syllabus is posted on the course webpage at http://science.kennesaw.edu/~hhaddad/Spring2009/CS8 532/CS8532Syllabus.htm CS 8532: Adv. Software Eng. – Spring 2009 Dr. Hisham Haddad Course Overview - 1 • System Engineering – The big picture for developing a product, service, or technology – It includes various elements - Hardware, Software, People, Data, Procedure, Polices, etc… – Each element is addressed by appropriate engineer discipline (such as Software Engineering) • Requirements Engineering – – – – – – Concepts and Principles Gathering system requirements (tasks) Process to be followed Analysis principles - partitioning and modeling (use-cases) Building analysis model Requirement validations CS 8532: Adv. Software Eng. – Spring 2009 Dr. Hisham Haddad Course Overview - 2 • Analysis Models – – – – – Analysis rules Data modeling: relationship between data objects (ERD) Flow-oriented analysis: data transformation and flow (DFD) OO Analysis: classes, relations, messages, behavior Elements of OOA model: Techniques for OOA model: Usecases, CRC-modeling, Class-Hierarchies – Behavioral modeling: modeling various states of the system and transitions between states (STD) (i.e., how the system behaves in terms of its events) CS 8532: Adv. Software Eng. – Spring 2009 Dr. Hisham Haddad Course Overview - 3 • Design Engineering: – Design process: transition from analysis to design – Design principles and concepts: abstraction, refinement, modularity, architecture, structural partitioning, information hiding, etc… – Design model: architecture, user interface, component design • Architectural Design – Software architecture: what is it and why important – Data design: data modeling and data structures – Architectural styles: data-centered, data-flow, layered, callreturn, OO – Mapping requirements to an architecture: sequence of steps CS 8532: Adv. Software Eng. – Spring 2009 Dr. Hisham Haddad Course Overview - 4 • Component-Level Design – Guidelines and concepts: interfaces, dependency, inheritance, cohesion, and coupling – Component construction: sequence of steps – Structured Programming and design notation (PDL) • User Interface Design – Rules and guidelines – Analysis and design steps – Design evaluation CS 8532: Adv. Software Eng. – Spring 2009 Dr. Hisham Haddad Course Overview - 5 • Software Testing: – Testing strategies for conventional software: Unit testing, integration testing (bottom-up, top-down), regression testing – Testing strategies for OO software: class-level testing, and test case design – System testing and debugging – Testing techniques: whitebox and blackbox, basic path, OO testing methods. • Software Metrics – – – – – Software quality: quality factors Metrics for analysis model Metrics for design model Metrics for source code Metrics for testing and maintenance CS 8532: Adv. Software Eng. – Spring 2009 Dr. Hisham Haddad Course Project • Select a project (system or part of a system) and conduct software requirements analysis and design, and generate a report with 3 parts throughout the semester: Project Development Plan (scope and schedule), Software Requirements Specification (SRS) and Software Design Document (SDD). • Individual or team projects are allowed. • Please send me your project idea with some explanation of its purpose and a description of the system to be developed. • Goal: to apply OOA and OOD concepts and work with a modeling tool (UML). CS 8532: Adv. Software Eng. – Spring 2009 Dr. Hisham Haddad Homework • • • • • • Review chapters 1, 2, 3, and 4 Refresh your memory of what SE is about Know why software is dynamic and changes constantly Understand what a SE process is Be familiar with SE process models Read chapter 5 for Wednesday lecture CS 8532: Adv. Software Eng. – Spring 2009 Dr. Hisham Haddad Last Slide End of chapter Lecture.