0% found this document useful (0 votes)
9 views

00 CourseIntroduction

This document outlines the content and objectives of a course on software analysis and design. The course introduces object-oriented techniques like UML for modeling requirements, architecture, interfaces and data. It covers topics like use case analysis, class diagrams, database design and software architecture.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

00 CourseIntroduction

This document outlines the content and objectives of a course on software analysis and design. The course introduces object-oriented techniques like UML for modeling requirements, architecture, interfaces and data. It covers topics like use case analysis, class diagrams, database design and software architecture.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

University of Science, VNU-HCM

Faculty of Information Technology

Course Introduction
Assoc. Prof. TRAN Minh Triet
Department of Software Engineering
Course Objectives

❖ This course aims to equip students with basic skills to analyze and
design software.
❖ Upon completion this course, students can:
 Describe the common principles to analyze and design software

from software requirements


 Apply object oriented methods and techniques to analyze and

design software
 Recognize, analyze and evaluate basic pros and cons of an

existing analysis or design model, the architecture of a software


system, the communication between components in a given
system.
 Apply basic object oriented techniques to optimize
analysis/design models to enhance the evolution and flexibility of
software systems.

2
Summary of Content

❖ This course introduces the common principles to analyze and


design software from software requirements.
❖ The content of this course focuses on object oriented techniques
(using UML) to analyze, to design architecture, interface, business
logic, and data.
❖ Several advanced topics can be optionally introduced (e.g. design
patterns, service oriented architecture…)

3
Assignments, Projects, and Examinations

❖ Midterm exam: 2.5 marks


❖ Final exam: 3.5 marks
❖ Assignments: 1.0 mark
▪ N personal assignments (5  N  10)
▪ Each assignment 1/N mark
▪ Total 1.0 mark

❖ Final Project 3.0+ marks


▪ 2 student(s) per group
▪ Documentation: 1.5+ marks
▪ Application: 1.5+ marks
❖ Advanced Topics +1.0 mark
▪ TBA

4
Content Outline

Part 1: Overview and Revision


❖ Concepts in Software Engineering
 Software
 Software Quality
 Software Engineering
 Software Processes
 Object-oriented Software Engineering
❖ Best Practices in Software Development
 Develop Iteratively
 Manage Requirements
 Use Component Architectures
 Model Visually (UML)
 Continuously Verify Quality
 Manage Change

5
Content Outline

Part 1: Overview and Revision (cont’d)


❖ Concepts in Object-Oriented Programming
 Classes and Objects:
▪ Attributes and Methods
▪ Visibility: Public, Protected, Private
▪ Inheritance, Polymorphism
 Relationships:
▪ Generalization
▪ Association, Aggregation, Composition
▪ Dependency
 Other notations

6
Content Outline

Part 2: Requirement Modeling


❖ Requirement Modeling with UML – Use-case Diagrams
 Problem Statement
 Actors and Use-cases
 Use-case Model
 Use-case Diagram
 Relationships in Use-case Diagrams: generalization, <<include>>,
<<extend>>
 Use-case Specification: Scenarios, Flows of Events, Alternatives, Pre-
conditions, Post-conditions…
 Glossary and Supplemental Specification
 Examples
❖ Requirement Modeling with UML – Activity Diagrams

7
Content Outline

Part 3: Use-case Analysis – Static Analysis


❖ (Analysis) Class Diagrams
 Revisions: basic concepts in OOP (again…) and notations in UML
(c.f. Part 1)
 How to enhance the capability for software evolution?
(tips and tricks)
 Lots of examples!

❖ State Machine diagrams


 Concepts and notations
 Examples

8
Content Outline

Part 4: Use-case Analysis – Dynamic Analysis


❖ Analysis Classes
❖ Sequence Diagrams, Communication Diagrams, and VOPCs
 Concepts and notations
 Examples

9
Content Outline

Part 5: Data(base) Design


❖ Relational Database Design
 Mapping from a class diagram to a relational database
 How to enhance the capability for software evolution?
(tips and tricks)
 Lots of examples!

❖ XML and Semi-structured Data


 Introduction to XML
 How to store data using XML
 Comparison between relational databases and XML-based data

10
Content Outline

Part 6: Software Architecture


❖ Introduction to Software Architecture
❖ Layers and Tiers
❖ Some guidelines for Software Architecture Analysis and Design

11
Content Outline

Part 7: (User) Interface Design


❖ Introduction
 Layout and behavior of a (user) interface
 Some common approaches for designing user interfaces
 Some (common and easy-to-understand) notations
❖ Examples and applications
 Data Input Forms: simple object, complex object, relation
 Search Forms
 Processing Business Forms
 Reports
❖ Several Techniques to Enhance Qualities of User Interfaces
 Supplemental Information
 Supplemental Operations
 Action Acceleration
 Exception Handlers

12
Content Outline

Part 8: Miscellaneous
❖ Design Patterns
❖ Software Refactoring
❖ Late-binding functions
❖ Web services (SOAP, REST) and Service Oriented Architecture
❖ Model-Driven Architecture
❖ Mashups and Widgets
❖ …

13
References

❖ Roger S Pressman, Roger Pressman (2004), Software Engineering: A


Practitioner's Approach, McGraw-Hill Science/Engineering/Math
❖ Ian Sommerville (2006), Software Engineering (8th Edition) , Addison Wesley
❖ Mike O’Docherty (2005), Object-Oriented Analysis and Design - Understanding
System Development with UML 2.0, John Wiley & Sons
❖ Bernd Oestereich (2001), Developing software with UML - Object-oriented
analysis and design in practice, 2nd Edition, Addison Wesley
❖ Grady Booch et. al. (2007), Object-oriented Analysis and Design with
Applications, 3rd Edition, Addison Wesley
❖ Craig Larman (2001), Applying UML and Patterns: An Introduction to Object-
Oriented Analysis and Design and the Unified Process, 2nd Edition, Prentice
Hall PTR
❖ Dennis de Champeaux, Douglas Lea, Penelope Faure (1993). Software
Engineering - Object-Oriented System Development, Addison Wesley
❖ Len Bass, Paul Clements, Rick Kazman (2003), Software Architecture in
Practice, 2nd edition, Addison Wesley
❖ Sherif M. Yacoub, Hany H. Ammar (2003), Pattern-Oriented Analysis and
Design: Composing Patterns to Design Software Systems, Addison Wesley.
❖ Alan Shalloway, James R. Trott (2004), Design Patterns Explained – A New
Perspective on Object Oriented Design, Addison Wesley
14

You might also like