0% found this document useful (0 votes)
12 views14 pages

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
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views14 pages

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
We take content rights seriously. If you suspect this is your content, claim it here.
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