You are on page 1of 4

Course Code CPE204

Course Title Software Design


Course Software design is both the process of defining the architecture, components, interfaces and
Description other characteristics of a system, and the result of that process. Essentially, software design is
the software life cycle activity in which parameters outlined and defined in the Requirements
process are translated into a description of a software system’s internal structure that can be
used as a basis for construction. This course begins with design fundamentals, including
concepts, context and processes. It then progresses through key design issues; structure and
architecture; user interface design; design quality analysis and evaluation; notations;
strategies and design tools, all within the context of real-world challenges.

No. of Units 3 units


No. of Hours 3 hours
Pre-requisites Data Structures and Algorithms
Co-Requisites Software Design Laboratory
1. History and Overview
 What is Software Design?
 Design Engineering Concept
DR, MARIFE E. GOMEZ
 Design Models
Reaction Paper 1
 Architectural Design
 Interface Design
 Procedural design
2. Software Development Life Cycle (SDLC)
2.1 What is SDLC?
2.2 SDLC Model
 Waterfall Model
 Iterative Model LINSANGAN, JIMWELL
 Spiral Model RESNERA, SHEENA
 V Model Reaction Paper 2
 Big Bang Model
 Agile Model
 RAD Model
 Prototyping Model
3. Relevant Tools, Standards and/or Engineering
Constraints
 Structured Approach Modelling
EBREO, ZEVENNA
 Entity Relationship Diagrams
RAMOS, EDEN
 Data Flow Diagrams
ICAMIN, KELVIN
 Structured English or Pseudo codes
DADULLA, OLIVER
 Flowcharts
Reaction Paper 3
 Object oriented Approach Modelling Tools
 Unified Modelling Language (UML)

4. Programming Constructs & Paradigms MATULAC, RALPH


SORNILLO, MICHAEL JOHN DAVID
4.1 Programming Standards and Procedures Reaction Paper 4
4.2 Programming Paradigms
 Object Oriented Programming
 Functional Programming
 Logic Programming
 Procedural Programming
4.3 Programming Guidelines
 Using Pseudo Codes
 Control Structure Guidelines
 Documentation Guidelines
5. Problem-Solving Strategies
5.1 Software Design Process
5.2 Design Strategies MISSION, JOHN ISAAC
DELA PENA, JOHN ROMEO Reaction
 Functional Design Strategy
Paper 5
 Object Oriented Design Strategy
 Design Strategies Comparison

6. Data Structures
LAWANG, MICHELLE
 What are Data Structures
VILLAS, JOSH ANNE
 Binary Search
ONGUE, RONALYN
 Linked List Data Structures
BONTO, JHENNY
 Queue
CRISPINO, JANELLE
 Binary Trees
Reaction Paper 6
 Array Data Structures
7. Recursion
CAPILLO, CATHERINE
 What is Recursion
RAMOS, PRINCESS EDLYN
 Advantages of Recursive Programming
LUMIARES, ZHAMAE
 Single and Multiply Recursion
Reaction Paper 7
 Recursion Approaches
8. Object-Oriented Design ABAMO, JAY-IVAN
 Objects and Object Classes ALABAT, ADRIAN ANDREW
 An Object-Oriented Design Process ILAO, LLOYD
 Design Evolution Reaction Paper 8
9. Software Testing and Quality
 Software Testing Introduction
 Levels of Software Testing
NIEVA, KURT JHOEBERT
 Static Testing Techniques
BARRUGA, JOHN PAUL
 Development Process Models
Reaction Paper 9
 Software Test Types
 Dynamic Testing Techniques
 Software Quality Assurance
10. Data Modeling PANGILINAN, AISAAC DRAKE
SARINO, STEVEN KYLE
10.1 Concepts of Data Modeling CARAAN, OLIN DANIEL
10.2 Relational Model of Data MACAPAGAL, JOE MERLIN JR.
Reaction Paper 10
 Overview of Data Models
 Basics of the Relational Model
 Defining a Relation Schema in SQL
 An Algebraic Query Language
 Constraints on Relations
10.3 Design Theory for Relational Databases
 Functional Dependencies
 Design of Relational Database Schemas
 Normalization Process
10.4 High-Level Database Models
 The Entity/Relationship Model
 Design Principles
 Constraints in the ER Model
 Weak Entity Sets
 From E/R Diagrams to Relational
Designs
 Unified Modeling Language
 UML Classes
 Keys for UML Classes
 Associations Classes
 Sub Classes in UML
11. Database Systems
 Fundamentals of Database Systems GALERIA, JERIX
 Database Management Systems CORTEZ, KEVIN JULIAN
 11.3 Advanced Database Systems Reaction Paper 11

12. Event-Driven and Concurrent Programming


12.1 What are Event-Driven Program
12.2 Key Characteristics of Event-Driven
TAN, MARC CHESTER
Program
SENADOS, JAYSON
 Forms Reaction Paper 12
 Event Loops
 Trigger Functions
 Event Handlers
13 Using Application Programming Interfaces (API)
13.1 Purpose and Usage
 Libraries and Frameworks
 Operating Systems
 Remote APIs
 Web APIs MANALON, LEO
DIATA, ANGELO
13.2 Design
DAGUIO, DEIV ARCHANGEL
13.3 Release Policies PETALCORIN, MARK
Reaction Paper 13
13.3 Public API Implications
13.4 Documentation
13.5 Copyright Controversy
13.6 Examples
14. Data Mining
 Data Mining Introduction
 Knowledge Representation ARCHANGEL, DANIEL
 Classification in Data Mining PENARANDA, BEA
 Online Analytical Processing (OLAP) Reaction Paper 14
 Associations in Data Mining
 Regression in Data Mining
15. Data Visualization
 What is Data Visualization
 The Advantages and Benefits of Good Data BASCAL, RAILEY AMBROSE
Visualization SERRANO, MA. ALESSANDRA
 Different Types of Visualization Reaction Paper 15
 Common General Types of Data
Visualization
Learning At the end of the semester the students are expected to:
Objectives: 1. Outline the software design process, and demonstrate how the essential design
principles are applied within it.
2. Apply the concepts of concurrency, data persistence, error handling and security to a
typical software design project.
3. Illustrate the essential elements of software structure and architecture in terms of
styles, patterns and families of programs and frameworks.
4. Explain the application of user interface design to a software development project,
including essential principles, interaction modalities, information presentation and
the UI design process.
5. Demonstrate the application of quality analysis and evaluation principles, including
quality attributes, analysis and evaluation techniques, and quality measures.
6. Explain through example the concept of design notations in terms of structure and
behavioral descriptions.
7. Employ function, object, data-structure and component-based design methodologies
in a typical software design project.
Course Attendance, Assignments, Seatwork, Quizzes, Major Exams, Case Analysis, Research
Requirements
REFERENCES and OPEN EDUCATIONAL RESOURCES (OER)
1. Knuth, Donald E., The Art of Computer Programming, Addison-Wedley Other Suggested Readings:
Professional, 18 December 2015
Websites
2. Sommerville, Ian, Software Engineering; 10th Edition, Pearson India, 24
October 2018  https://

3. Roth, Stephan, Clean C++: Sustainable Software Development Patterns www.geeksforgeeks.org/

and Best Practices with C++ 17, Apress, 29 September 2017 software-engineering-

4. Helm, Richard; Johnson, Ralph; and Vlissides, John, Design Patterns: software-design-process

Elements of Reusable Object-Oriented Software  https://sea.ucar.edu/best-


practices/design

You might also like