This document provides details about a course on software construction, including its code, title, credit hours, prerequisites, textbooks, reference materials, objectives, topics covered each week, and assessment methods. The course aims to teach students how to construct reliable software by applying design patterns, principles of modularity, cohesion and coupling, UML diagrams, and following coding guidelines.
This document provides details about a course on software construction, including its code, title, credit hours, prerequisites, textbooks, reference materials, objectives, topics covered each week, and assessment methods. The course aims to teach students how to construct reliable software by applying design patterns, principles of modularity, cohesion and coupling, UML diagrams, and following coding guidelines.
This document provides details about a course on software construction, including its code, title, credit hours, prerequisites, textbooks, reference materials, objectives, topics covered each week, and assessment methods. The course aims to teach students how to construct reliable software by applying design patterns, principles of modularity, cohesion and coupling, UML diagrams, and following coding guidelines.
This document provides details about a course on software construction, including its code, title, credit hours, prerequisites, textbooks, reference materials, objectives, topics covered each week, and assessment methods. The course aims to teach students how to construct reliable software by applying design patterns, principles of modularity, cohesion and coupling, UML diagrams, and following coding guidelines.
Course Title Software Construction Credit Hours 3 = (2+1) Prerequisites by CS-222 Analysis and Design for Software Systems Course(s) and Topics Textbook (or E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Laboratory Manual Patterns, Addison-Wesley, 1995 for Laboratory X. Jia, Object-Oriented Software Development Using Java, 2/e, Addison-Wesley, 2003 Courses) P. Vora, Web Application Design Patterns, Burlington, Morgan Kaufmann Publishers, 2009 S.A. Keller, Structured Systems Analysis and Design – A concise case study, Prentice-Hall, India, 2004 Reference Material Ian Sommerville “Software Engineering”, 6th Ed. Software Engineering by Roger S.Pressman Object Oriented design by craig Larman Course Objectives To construct reliable software products from design documents by using multiple approaches of software development. Focus would be on testable description of modules. Course Contents Structured and OO implementation of design using design document(s) developed in CS-222:SAD Modules specification from external specifications: internal specification / logic specification using OO concepts of accessors, mutators, constructors, polymorphism, inheritance, abstract methods; Architectural styles for structured software systems: data- centered / data flow / call and return / layered / client-server; Factoring of a system: Modularity, partitioning: horizontal / vertical; Cohesion and coupling; Cohesion classification: functional / sequential / communication / procedural / temporal / logical / co- incidental; Representing design: Structured charts / process design language / interface description language /; Representing design for OO systems: class diagram, sequence diagram, package diagram; Design patterns: creational / structural / behavioral; Coding guidelines; Unit test design: walkthroughs, inspections, code reviews; Metrics: Cyclomatic complexity / data binding / cohesion metric Islamabad Model College for Boys H-9, Islamabad Course Description – Software Construction CS-322
COURSE CONTENTS WITH BREAKUP
WEEK # Topics WEEK # Topics 1 SOFTWARE ENGINEERING 10 Sequence Diagram Software Development Activities Message, return values Software Construction and its Object creation and destruction importance Control information Software Construction main Examples Activities Interaction Diagrams Software Quality Practical Module Specification Objects and Classes Real World vs Model Representation 2 Mutable Objects 11 Package Diagram Immutable Object Purpose of Package Accessors & Mutators Notation Accessibility of Methods Relations Accessors Mutators Abstraction Abstract & Concrete Class Encapsulation 3 Polymorphism 12 Design Patterns Overloading Four essential Parts Overriding Types of Patterns Inheritance Singleton Super Class State Pattern Super Interface Creational pattern Architectural pattern and types Factory Data-centered Builder Data flow Structural Patterns Call and Return Behavioral Patterns Layered Client-server 4 Modularity and design 13 Coding Guidelines Software Modularity Coding Monolithic Software Programming Practice Software Partitioning Information hiding Horizontal vs Vertical Partitioning Internal documentation Coding standards Programe statements Software Documentation Code inspection and reviews 5 Cohesion 14 Unit Test Design Coupling Types of testing Module Coupling Traditional testing Vs Unit testing Cohesion Classification Guidelines Functional Cohesion Sequential Cohesion Communicational Cohesion Procedural Cohesion Temporal Cohesion Logical Cohesion Coincidental Cohesion Advantages of Cohesion is Software Engineering 6 Characteristics of a Good Design 15 Walkthroughs ,inspections, code Structured Design reviews Structured Charts Process design Language Sequence Construct If construct Selection Constructs Repetition Constructs Interface Description Language 7 Rational Unified Process 16 Metrics Unified Process Measurement Iterative and Evolutionary Indicator Development Types of Metric RUP life cycle phases Process Metric Inception, Evaluation, Elaboration, Product Metric Construction Project Metric Transition Phase Size oriented metric Function oriented metric Cyclomatic Complexity 8 How To Draw Use Case Diagram 17 Data Binding and Cohesion Metric Practical 9 UML diagrams Classes Class Attributes Class operations Relationships and its Types Practical